欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据库—存储过程

程序员文章站 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 存储过程名