• SQL自定义函数


    存储函数和存储过程统称为存储例程(store routine),存储函数的限制比较多,
    例如不能用临时表,只能用表变量,而存储过程的限制较少,存储过程的实现功能要复杂些,
    而函数的实现功能针对性比较强

    存储过程和函数的区别:

    一、 存储函数有且只有一个返回值,而存储过程不能有返回值,但可以利用输出参数带回值

    二、 函数只能有输入参数,而且不能带in, 而存储过程可以有多个in,out,inout参数。

    三、存储过程中的语句功能更强大,存储过程可以实现很复杂的业务逻辑,
    而函数有很多限制,如不能在函数中使用insert,update,delete,create等语句;
    存储函数只完成查询的工作,可接受输入参数并返回一个结果,
    也就是函数实现的功能针对性比较强。

    四、 存储过程可以调用存储函数。但函数不能调用存储过程。

    五、 存储过程一般是作为一个独立的部分来执行(call调用)。而函数可以作为查询语句的一个部分来调用。


    create procedure sp_pro3(typeid int ,out mycount int )
    BEGIN

        if typeid=1 THEN
           select count(*) into mycount  from score where cid='01' and mark>90;
        elseif typeid=2 THEN
           select count(*) into mycount from score where cid='02' and mark>90;
         end if;
    end;

    create function fun(typeid int)
    returns INT
    BEGIN
         declare x int;
         if typeid=1 THEN
            select count(*) into x from score where cid='01' and mark>90;
         elseif typeid=2 THEN
            select count(*) into x from score where cid='02' and mark>90;
         end if;
         return x;
    end; 

    select fun(2)

  • 相关阅读:
    微信小程序:仅前端实现对象数组的模糊查询
    go-gin-vue3-elementPlus带参手动上传文件
    Redis配置与优化
    9问502
    2022-09-05 mysql/stonedb-查询时多线程并行处理开发路线图
    使用stream实现两个list集合的合并(对象属性的合并)
    [实时流基础 flink] 窗口
    语音芯片NRK3302 在按摩仪上的应用
    Redis五种基本数据类型-Set
    SATA系列专题之四:4.0 Command Layer命令层概述
  • 原文地址:https://blog.csdn.net/daimenglaoshi/article/details/127741965