MySQL 存储过程

#1、创建存储过程,传入学生成绩,100-90 返回A 90-80  返回B  80-60  返回C  60以下返回D
delimiter $$
create procedure pro_getABCD(in score int)
begin 
  #判断  if
  #判断成绩时候是大于 90 小于100if 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;






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值