返回

SQL自定义函数

发布时间:2022-11-11 06:55:41 340

存储函数和存储过程统称为存储例程(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)

 

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线