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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)