#1、创建存储过程,传入学生成绩,100-90 返回A 90-80 返回B 80-60 返回C 60以下返回D
delimiter $$
create procedure pro_getABCD(in score int)
begin
#判断 if
#判断成绩时候是大于 90 小于100的
if score >= 90 and score <= 100 then #代表着开始
select 'A';
elseif score>=80 and score <90 then
select 'B';
elseif score>=60 and score <80 then
select 'C';
else #小于60的
elect'D';
#千万别忘记结束判断
end if
end $$
delimiter;
#调用存储过程
call pro_getABCD(50);
#传入数字判断是奇数还是偶数
delimiter $$
create procedure pro_jo(in num int)
begin
#num % 2 = 0 就是偶数 等于1 就是奇数
if num % 2 =0 then
select '偶数';
else
select '奇数';
end if;
end $$;
delimiter;
call pro_jo(5);
delimiter $$
create procedure pro_max(in a int,in b int)
begin
if a> b then
#把最大值a赋值给max;
select = a;
elseif b>a then
#把最大值b赋值给max
select = b;
else
select '一样大';
end if;
end $$
delimiter;
call pro_max(5,8);
1、常见存储过程
delimiter $$ #自定义结束符
create procedure 存储过程名(参数列表)
begin
存储过程体;
end $$ #用自定义$$结束代码
delimiter ; #创建存储过程完毕再修改回来
注意:可以将delimiter省略
但是因为分号是结束符,在dos窗口中分号“;”会结束代码,
所以为了保持存储过程是完整的,需要使用delimiter 自定义结束符
2、查询存储过程语法
A、查询所有数据库中所有的存储过程语法
show procedure status;
B、查询指定数据库的所有存储过程语法
db是数据库的关键字
show procedure status where db = '数据库名';
C、查询指定存储过程语法
a、使用等号查询存储过程名
show procedure status where name = '存储过程名';
b、使用like关键字模糊查询存储过程名
show procedure status where name like '%存储过程名%';
D、查询指定存储过程源码语法
show create procedure 存储过程名;
3、调用存储过程语法:
call 存储过程名(参数);
4、删除存储过程
drop procedure 存储过程名;
5、带参存储过程语法:
参数关键字:
in :表示当前参数为输入参数
out :表示当前参数为输出参数(雷士JAVA方法的返回值)
inout :既是输入参数又是输出参数 定义输入输出参数
create procedure
存储过程名(in|out|inout 参数名1 数据类型(长度)
,in|out|inout 参数名2 数据类型(长度))
例如
delimiter $$ #自定义结束符
create procedure 存储过程名(
in|out|inout 参数1 数据类型(长度),
in|out|inout 参数2 数据类型(长度)
)
begin
存储过程体;
end $$ #用自定义$$结束代码
delimiter ; #创建存储过程完毕再修改回来
注意:
1、存储过程名命名要规范 p_xxx pro_xxx
2、没有参数时,存储过程小括号可以空着不能省略
3、参数名应该避免和表列名一致
4、变量命名方式是:@变量名
在调用存储过程是,可以直接使用@变量,无需声明
*/
/*
调用带有输出参数的存储过程
1、需要使用变量来直接接收输出参数 语法:@变量名直接进行使用
如下:@num 就可以直接接收存储过程返回的输出变量
call p_getNum(20,@num);
查询变量
select @num 数量;
2、存储过程中输出参数的创建 out 参数名 数据类型
3、存储过程方法体中,使用into关键字,把指定的值赋值给输出参数
4、调用带输出的存储过程
直接使用@变量 接收输出参数 call 存储过程名(@变量名)
5、查看变量 select @变量名;
nums 输出参数名 @数量 接收值的变量
6、变量赋值
set @变量名 = xxx;
MySQL 存储过程
最新推荐文章于 2024-05-18 16:42:38 发布