数据库存储过程学习笔记(mysql操作)

数据库存储过程

存储函数名称	test()
自定义语句结束符号 delimiter $	--(替代语句中的;号,更好的区分)
存储过程开始及结束标识 begin.....end
给变量赋值 set @val=1;	--(@后面是变量名称)
定义变量 declare val int default 2;		--(val--变量名、int--数据类型、2--默认值)

1.创建存储过程–最简单的存储过程

delimiter $
create procedure test()
begin
	select * from test;
end$

–在sql实行界面调用存储过程
call test();

–删除存储过程
drop procedure if exists test()

2.创建可以传参数的存储过程–in 输入参数

delimiter $
create procedure in_test(in n int)
begin
	declare num int default 0;	--设置变量num默认为0
	declare total int default 0;	--设置变量total默认为0
	while num < n do	--循环num<输入的n的时候
	set num=num+1;		--设置num=num+1
	set total=total+num;		--总数=累加0....n
	end while;		--结束循环
	select total;	--查询总数
end$

call test(10)$ 		--total=55

3.创建可以传参数的存储过程–out输出参数

delimiter $
create procedure  out_test(in userId int,out nums int) 		--定义输入参数为userId,输出参数为nums
begin
	delete from user where id=userId;
	select count(id)  from user into nums; 		--将count(id)的值存入nums
end$
delimiter ;
call out_test(1,@nums); 	--调用存储过程
select @nums; 		--查看输出的值

多out输出参数

delimiter $
create procedure outs_test(in userId int ,out nums int,out username varchar(20)) 	--定义输入参数userId,输出参数nums,username
begin
	select name from user where id = userId into username; 		--name存入username
	delete from user where id = userId;
	select count(id) from user into nums; 		--将count(id)的值存入nums
end $
delimiter ;

call outs_test(3,@nums,@username); 		--调用存储过程
select @nums; 	--查看输出的值
select @username; 		--查看输出的值

4.创建可以传参数的存储过程–inout输入输出参数

delimiter $
create procedure inout_test( inout num int) 	--定义输入输出参数num
begin
	set num=num+10;
end$

--**由于参数是inout类型,所以需要传入一个赋值过的变量,以便在存储过程内部对其修改后返回。
set @num=3; 		--现给一个赋值
call square(@num); 	--调用存储过程
select @num;		--查询结果

参考链接: MySQL数据库-存储过程详解.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值