数据库—存储过程
程序员文章站
2022-06-02 08:59:21
...
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 存储过程名
上一篇: mysql中视图
下一篇: 数据库悲观锁和乐观锁