mysql存储过程简单用法

show procedure status 查看所有存储过程


<!--  简单存储过程  -->
先将结束符改成//
delimiter //
create procedure query(page int)
beginselect * from class where id > page;
end//
将结束符改回;
delimiter ;
<!--  调用存储过程  -->
call query(20)
<!--  删除存储过程  -->
drop procedure query
<!--  会话变量的使用  -->
SET @age=10;
select @age;
<!--  声明一个输出参数的存储过程  -->
delimiter //
 create procedure pro(out str varchar(20))
 begin
 set str="测试";
 end%
delimiter ;
CALL PRO(@NAME);  <!--  调用存储过程  -->
SELECT @NAME;     <!--  获得数据  -->
<!--  声明一个输入 / 输出参数的存储过程  -->
delimiter //
 create procedure xx(inout n int)
 begin
select n; <!--  此时n是局部变量  -->
set n=500;
 end//
delimiter ;
set @n=10;
call xx(@n); <!--  打印10  -->
select @n <!--  打印500  -->


查看全局变量
SHOW GLOBAL VARIABLES;  




设置全局变量
SET GLOBAL max_allowed_packet=53687091200;  


带条件判断的存储过程
delimiter $
create procedure testIf(in num int,out str varchar(20))
begin 
if num = 1 then 
set str = '星期一';

if num = 2 then 
set str = '星期二';
else
set str = '星期一';
end if;
end $




定义一个循环,求1-100的和
delimiter $
create procedure testWhile(in num int,out result int)
begin
-- 定义一个局部变量
declare i int default 1;
declare vsum int default 0;
while i<num do
set vsum = vsum + i;
set i = i + 1;
end while;
set result = vsum;
end $




call testWhile(100,@result);
select @result;


into 的使用,将查询结果作为返回值
delimiter $
create procedure findByID(in eid int,out vname varchar(20))
begin
select empName into vname from employee where id = eid;
end $


call findByID(1,@name);
select @name;
<!--  修改数据  -->


<!--  插入数据  -->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码科学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值