MySQL存储函数

本文详细介绍了如何在MySQL中编写包含参数、变量、条件判断及动态SQL的存储过程,并对比了存储过程与存储函数的区别,如输入变量声明、返回类型和调用方式。
摘要由CSDN通过智能技术生成

目录

1.写一个完整的包括参数,变量,变量赋值,条件判断,UPDATE语句,SELECT返回结果集的存储过程

2.创建一个执行动态SQL的存储过程

3.创建实现功能相同的存储函数,比较他们之间的不同点在什么地方


1.写一个完整的包括参数,变量,变量赋值,条件判断,UPDATE语句,SELECT返回结果集的存储过程

DELIMITER //
CREATE PROCEDURE count1 (IN sid INT,out num int)
BEGIN
declare a int;
declare b int;
set a=0,b=1;
SELECT COUNT(*) INTO num FROM fruits WHERE s_id = sid;
if a <=0 then
 select a;
else
 select b;
end if;
update fruits set f_name = 'aaaa' where f_name = 'xxxx';
END //
DELIMITER ;

 先查看运行前,fruits表的内容

运行代码

 查看结果

原本的名字xxxx已经更改为aaaa,update代码生效

2.创建一个执行动态SQL的存储过程

 DELIMITER //
 CREATE PROCEDURE count2 (IN sid INT, OUT num INT)
 BEGIN
 SELECT COUNT(*) INTO num FROM fruits WHERE s_id = sid;
select num;
 END //
 DELIMITER ;

 动态功能在第一问中已经实现,这里稍作修改

3.创建实现功能相同的存储函数,比较他们之间的不同点在什么地方

DELIMITER //
CREATE function count3( sid int)
returns char(50)
begin
DECLARE a int;
select count(*) into a from fruits where s_id = sid;
return(select a);
end //
DELIMITER ;

 

不同:

1.声明输入变量时,如果存储函数声明in输入会报错(默认为in),去掉in则不会

2.存储函数有returns和return两个必须存在的关键字

3.调用的方式不同一个是select另一个是call

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值