MySQL -> 存储过程,创建(create procedure),调用(call),查询(select),删除(drop procedure),查看信息(show)

创建存储过程:

create procedure 存储名字(参数列表)
begin
	存储过程体;
end

参数列表:in,out,inout
in 字段名 字段类型			# in:输出的,需要外边传值,默认是in
out 字段名 字段类型		# out:输出的,可以返回值
inout 字段名 字段类型		# inout:即可以输出又可以输入
delimiter 分隔符			# 存储过程结尾加delimiter重新设置

调用存储:

call 存储名(实参列表);

例子:in

创建
# 设置分隔符
delimiter $ #以后都是用$结束
create procedure mmp() # 创建存储过程mmp
begin
	insert into(id,name) 
	values(1,'2'),(2,'2'),(3,'3'); #这里的;已经不是结束语句的意思了,$才是结束,这里的;只是分割不同的语句,如增删改查
	updateset name='33' where id=2;
	delete fromwhere id=1;
end $  #这里只能$结束
# 存储体中只用;结尾了,为了判断不会因为;而结束,将结束符改成了$,之后想结束语句都只用$,;已经不是结束语句了

调用
call mmp()$   # 这里依然是$结束

查看结果
selelct * from 表$  # 这里也是$结尾
"使用用户名密码登陆,成功或者识别"
delimiter $
create procedure mmp1(in username varchar(11),in password int(11))
begin
	declare 局部变量 int(11) default 0;# declare定义局部变量,默认为0
	select count(*) into 局部变量 # 将select 的值赋给局部变量
	fromwhere.username = username
	and.password = password;# 输入的值满足条件
	select if(局部变量>0,'成功','失败');# 查询如果>0,输出成功,否则失败
end $

call mmp1(波多野结衣,88888888)$ # 调用输入xx,xx;执行

select * from 表$ # 显示修改后的表

例子:out

"输入一个name,返回他的密码和爱好"
delimiter $ # 老规矩$结束
# out 返回的值在变量中储存,变量在call的时候设置(调用的时候)
create procedure mmp2(in username varchar(11),out password int(11),out likehao varchar(11))
begin
	select1.password,2.likehao into password,likehao  #select的结果返回给两个局部变量
	from1
	join2 on1.id=2.id	# 正常使用sql所用语句
	where1.username = username;
end $

set @pword,@lhao$	# 默认为null,其实可以不写,call的时候会默认创建
call mmp2('波多野结衣',@pword,@lhao)$	# 调用,输入xx,局部变量返回xx,xx,返回的值储存在用户变量里
select @pword,@lhao$	# 查询用户变量,查看返回的值

例子:inout

"举个不一样的例子,输入一个数,返回他的2倍"
delimiter $
# inout:即使输入,又是输出,所以等会call的时候,参数即是有传入的数据,又要是可以接受的用户变量
create procedure mmp3(inout a int ,inout b int)
begin
	set a=a*2;	# 可直接搞赋值
	set b=b*2;
end $

set @a=100,@b=200$ # 定义两个用户变量,有初始值,初始值用来传入,
call mmp3(@a,@b)$ # 即传入了初始值,有可以接受返回的数据,美滋滋

删除存储过程:drop procedure

# 删除一词技能删除一个
drop procedure mmp3;

查看存储过程的信息:show create procedure

show create procedure mmp1;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值