学习笔记-存储过程

存储过程

1.提高代码的重用性
2.简化操作
3.较少了编译次数并减少和数据库服务的链接次数

创建语法

CREATE PROCEDURE 存储过程名(参数列表)
BEGIN
	存储过程体
END

注意
1、参数列表包括三部分 参数模式 参数名 参数类型
参数模式
IN:该参数可以作为输入
OUT:该参数可以作为输出
INOUT:该参数既可以作为输入 也可以作为输出

2、如果存储过程体只有一句话,begin end 可以省略。
存储过程体中的每条sql语句的结尾要求必须加分号;
存储过程的结尾可以使用 DELIMITER 重新设置
语法:

DELIMITER 结束标记
DELIMITER $

调用语法

CALL 存储过程名(实参列表)

空参列表

DELIMITER $
create procedure myp1()
begin
	INSERT into stu(name,kecheng,fenshu)
	values('a','a','a'),('b','b','b'),('c','c','c');
end $
调用
call myp1() $

创建带in模式参数的存储过程

create procedure myp2(in beautyName varchar(20))
begin
	select bo.*
	from boys bo
	right join beauty b on bo.id = b.id
	where b.name = beautyName 
end $
调用
call myp2('aaa')$

创建out模式的存储过程

create procedure myp5(in beautyName varchar(20),out boyname varchar(20))
begin
	select bo.boyname into boyname
	from boys bo 
	inner join beauty b on bo.id = b.boyname
	where b.name = beautyName
end $

调用
set @bName$
call myp5('a',@bName$)$
select @bName$

2.返回多个out 
 create procedure myp6(in beautyName varchar(20),out boyname varchar(20),out userCp int)
 begin
	select bo.boyname,bo.userCP into boyname,userCp
	from boys bo 
	inner join beauty b on bo.id = b.boyname
	where b.name = beautyName
end $
调用
call myp6('a',@bName,@userCp)$

inout 模式参数的存储过程

create procedure myp7(inout a int,inout b int)
begin 
	set a= a*2;
	set b= b*2;
end$ $
调用
set @m=10$;
set @n=20$;
call myp7(@m,@n)$
select @m,@n

存储过程的删除

drop procedure 存储过程名;
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值