MySQL的储存过程

本文详细介绍了MySQL中的存储过程定义、参数传递(in和out),以及流程控制结构(if、case、while、repeat、loop等)的使用方法,帮助读者理解如何在MySQL中进行复杂的数据处理和逻辑操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

格式定义及调用

定义

delimiter +自定义的结束符号
create procedure 储存名 ()
begin
sql语句
end +自定义的结束符
delimiter;

调用

call + 储存名;

变量定义

 局部变量

用户自定义,在begin-end块中有效

格式

declare 变量名 变量类型;
举例
declare name varchar(5);

 用户变量

用户自定义,当前会话(连接)有效,不需要提前声明,使用及声明

定义格式

set @变量名;
举例
set @ename;

 全局系统变量

由系统提供,整个系统有效

操作

-- 查看全局变量
show global variables;

-- 查看某全局变量
select @@global.变量名;

-- 修改全局变量的值
set global sort buffer size = ;
set @@global.sort buffer size = ;

储存过程传参

in

in 表示传入的参数,可以传入数值或者变量,即使传入变量,并不会更改变量的值可以内部更改,仅仅作用在函数范围内。

应用举例

-- 封装有参数的存储过程
delimiter $$
create procedure param (in empno varchar(20))
begin
sql语句;
end $$
delimiter ;
cal param(传入参数);

out

out 表示从存储过程内部传值给调用者

应用实例

流程控制

if判断语句

if语句包含多个条件判断,结果为true false执行语句,与编程语言中的if循环结构类似

if 执行条件
then 执行语句
elseif 执行条件
then 执行语句
...
else 执行语句
end if

case判断语句 

语法一
case case_value
when when_value then 执行语句
when when_value then 执行语句
else 执行语句
...
end case
语法二
case 
when 执行条件 then 执行语句
when 执行条件 then 执行语句
else 执行语句
...
end case

循环语句

概述

循环是一段在程序中只出现一次,但可能会连续运行多次的代码

循环中的代码会运行特定的次数,或者是运行到特定条件成立时结束循环

循环分类

while
标签:(可用可不用)  while 循环条件
do  sql语句
 end while 标签;
repeat
标签:(可用可不用)
 repeat sql语句
until  条件表达式
 end repeat 标签;
loop
标签: 
loop sql语句
   if 判断语句 
   then leave 标签;
   end if ;
end loop;

循环控制

 leave 类似于 break,跳出,结束当前所在的循环

 iterate类似于 continue,继续,结束本次循环,继续下一次

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值