数据库—存储过程

14.1 存储过程

作用:一般情况下,用于数据库的增删改

格式
create procedure 存储过程名(参数列表)
begin
	存储过程体(合法有效的sql语句)
end

注意点:
1.参数列表 包含3个部分 参数模式 参数名 参数类型(例: in uesrname varchar(20))
2.参数模式
in 表示该参数作为输入,该参数调用的时候传入值
out 该参数作为输出,就是返回值
inout 即可以当做输入,也可以当做输出
3.begin  end,在存储过程只有一条语句时,可以省略
4.关于结束符,存储过程体的每一条sql语句都需要是合法有效的,一定要加';',存储过程的结尾需要重新声明结束符  delimiter  结束符
5.关于存储过程的调用  call 存储过程名(参数列表)

14.1.1 空参列表

delimiter $
create procedure p1()
begin
	insert into brand(brandname) value('asd'),('asd123');
end$

call p1()

14.1.2 in参数模式

根据传入的品牌id,查询品牌和商品
delimiter $
create procedure p2(in brandid int)
begin
	select goods.name,brand.brandname
	from goods inner join brand
	on goods.brand_id=brand.id
	where goods.brand_id=brandid;
end$

call p2(1)

14.1.3 out参数模式

根据传入的商品id,返回商品的名字
delimiter $
create procedure p3(in goodsid int,out goodsname varchar(20))
begin
	select goods.name into goodsname from goods where goods.id=goodsid;
end$

set @gname=''
select @gname
call p3(1,@gname)

需要一个用户变量接收返回值,可以不声明变量

14.1.4 inout参数模式

传入两个数据,将数据翻倍输出
delimiter $
creat procedure p4(inout a int,inout b int)
begin
	set a= a*2;
	set b= b*2;
end$

set @m=1$
set @n=2$
call p4(@m,@n)
select @m
select @n

14.1.5 删除存储过程

drop procedure 存储过程名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值