MySQL存储过程--(1)

穿精又带淫゛_ 提交于 2020-01-29 11:56:38

 

/*
参数模式:
IN:该参数作为输入,该参数调用传入值
out:该参数作为输出,该参数作为返回值
INOUT:该参数即可作为输入,也可作为输出,该参数即可调用传入值,也可作为返回值
delimiter:设置结束标记,比如 //、$、#
delimiter #
*/

1、不带参数存储过程

delimiter //
create procedure mies()
BEGIN
select * from student ;
END
//

drop PROCEDURE mies();

call mies();

 

2、带参数 in 存储过程

delimiter //
/*传入参数,设置参数类型*/
create procedure mies(in sid int)
BEGIN
select * from student where sid=sno;
END
//

drop PROCEDURE mies();
/*设置参数值*/
set @sid=20162010;
call mies(@sid);

 

 

/*登录用户名*/

delimiter //
create procedure login(in sno int,in sname VARCHAR(16))
BEGIN
declare result int DEFAULT 0;#声明并初始化

select COUNT(*) into result from student #赋值
where student.sno=sno and student.sname=sname;

select IF(result>0,'成功','失败');
END
//

call login(20162002,'晨晨')

 

/*使用inout函数*/
delimiter //
create procedure inouta(inout a int,inout b int)
BEGIN
set a=a*2;
set b=b*6;
END
//
/*
首先定义两个变量
其次给变量赋值
最后选择要打印的结果
*/
set @m=6;
set @n=8;
call inouta(@m,@n)
select @m,@n

 

 

/*使用in,out函数*/
delimiter //
create procedure info(in sno int,out sname VARCHAR(16),out sage int)
BEGIN
select student.sname,student.sage into sname,sage
from student
where student.sno=sno;
END
//

call info(20162002,@m,@n)
select @m,@n

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!