存储过程入门

1 存储过程是什么?

带有逻辑的sql语句

2 存储过程有哪些优点?

​ 2.1 快! 对于较为复杂的sql,存储过程执行速度更快

​ 2.2 减少服务器压力

​ 2.3 稳定
缺点暂时不提

3 一些简单的存储过程分享

3.1创建一个简单查询的存储过程

DELIMITER $
CREATE PROCEDURE simple_procedure()
BEGIN
SELECT id FROM student;
END $

#调用存储过程
call simple_procedure();

#删除存储过程
drop PROCEDURE simple_procedure;

3.2一个带输入参数的简单查询

DELIMITER $
CREATE PROCEDURE simple_in(in aid int)
BEGIN
SELECT id FROM student where id = aid;
END $

call simple_in(1)
drop PROCEDURE simple_in;

3.3一个带输出参数的简单查询

DELIMITER $
CREATE PROCEDURE simple_out(out str varchar(20))
BEGIN
set str=“this is simple out”;
END $

call simple_out(@str);
select @str
drop PROCEDURE simple_in;

3.3一个输入+输出的存储过程

DELIMITER $
CREATE PROCEDURE simple_in_and_out(in aid int, out str2 varchar(20))
BEGIN
select id from student where id = aid;
set str=“this is simple in out”;
END $
call simple_in_and_out(2, @str2)
select @str2
drop PROCEDURE simple_in_and_out;

3.4一个带if语句的存储过程

输入为1,输出aid is 1。否则输出aid is not 1

DELIMITER $
CREATE PROCEDURE simple_if(in aid int, out str_if varchar(20))
BEGIN
if aid =1 then
set str_if=“aid is 1”;
else
set str_if=“aid is not 1”;
end if;
END $

call simple_if(1, @str3);
select @str3
call simple_if(2, @str4);
select @str4
drop PROCEDURE simple_if;

3.5一个带循环的存储过程

计算0到10的和

delimiter $
create procedure simple_while(in num int,out result int)
begin
declare i int default 1;
declare sum int default 0;
while i<=num do
set sum = sum+i;
set i = i+1;
end while;
set result = sum;
END $

call simple_while(10,@result);
select @result
drop PROCEDURE simple_while;

简单插入语句

delimiter $
create procedure simple_insert(in num int)
begin
DECLARE count int default 10;
while num<=count do
INSERT INTO stu ( name, time) VALUES
(‘123123412’+num, NOW());
set num = num+1;
end while;
END $

call simple_insert(1);
drop procedure simple_insert;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值