MySql--存储过程

概念类似函数,就是把一段代码封装,当需要调用这段代码是,通过存储成功来实现
在封装的语句中,可以由if/else case while 等控制结构,进行sql编程
存储过程特点

  1. 执行效率特别快,存储过程时在数据库的服务器端执行
  2. 移植性很差,不同数据库的存储过程时不能移植的

创建存储过程:
要自定义结束符
修改结束符 delimiter
delimiter $

创建:
create procedure 存储过程名( 参数)
begin
sql 语句;
end $

调用
call 存储过程名$

删除存储过程
drop PROCEDURE 存储过程名$

例子:
1.创建存储过程,查询emp标配的所有数据
delimiter $
CREATE PROCEDURE p1()
BEGIN
SELECT * FROM emp;
END $

CALL p1();
2. 有参
查询薪资大于参数n的记录
delimiter $
CREATE PROCEDURE p2(n INT)
BEGIN
SELECT * FROM emp WHERE sal >n;
END $

CALL p2(2000) 

3.控制结构

参数 n  薪资, j  类型
如果j='h',查询薪资高于n的记录
否则,查询薪资低于n的记录
delimiter $
CREATE PROCEDURE p3(n INT ,j CHAR(1))
BEGIN
if j='h' THEN
select * from emp where sal>n;
else
select * from emp where sal<n;
end if;
end $

调用
CALL p3(2000,'h')

4,循环结构
--计算1->n的和
delimiter $
CREATE PROCEDURE p4( n int)
BEGIN
DECLARE i INT;
DECLARE s INT;
SET i = 1;
SET s = 0;
WHILE i<=n DO
	SET s =s+i;
	SET i = i+1;
END WHILE;
SELECT s;
END $

CALL p4(10)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值