MySQL中如何创建存储过程和存储函数(下篇)

        上两篇主要说了如何创建存储过程和存储函数,本篇主要说流程控制。

        控制语句主要有,if,case,loop,leave,iterate,repeat以及while语句。

        1.if语句。

        if语句包含多个判断条件,根据判断条件的结果进行语句的执行。

        其语法为 if 条件 then 执行语句 elseif 条件 then 执行语句 ...end if;

# 例如:如果val为null则输出1否则0;
if val is null
then select 1;
else select 0;
end if;

        2.case语句。

        case语句也判断语句。

        其语法格式为:case 参数 when 值 then 语句 end case;

# 当val为1时输出1,为2时输出2否则输出0。
# 第一种写法
case val
when 1 then select 1;
when 2 then select 2;
else then select 0;
end case;
# 第二种写法
case 
    when val=1 then select 1;
    when val=2 then select 2;
    else select 0;
end case;

        3.loop语句。

        loop是循环语句,其语法格式为:loop 循环体 end loop;

# 首先定义ID参数给出默认值0,进行循环判断,小于10继续执行循环体。
DECLARE id int default 0;
add_loop:loop
set id = id + 1;
if id >=10 then leave add_loop;
end if;
end loop add_loop;

        4.leave语句。

        leave语句是用来退出任何被标注的流程控制构造。

        其语法为:leave 参数;

DECLARE id int default 10;
d_loop:loop
set id = id - 1;
if id = 0 then leave d_loop;
end if;
end loop d_loop;

        5.iterate语句。

        iterate语句执行顺序转到开头,语法格式为:iterate 参数。

create procedure item()
begin
declare p1 int default 0;
d_loop:loop
    set p1 = p1 + 1;
    if p1 < 10 then iterate d_loop;
    elseif p1 > 20 then leave d_loop;
    end if;
end loop d_loop;
end

        6.repeat语句。

        repeat语句是一个带条件的循环过程,每次执行语句执行完毕后对条件进行判断,如果为真则结束,否则终止。

declare id int default 0;
repeat
set id  = id + 1;
until id >= 10
end repeat;

        7.while语句。

        while语句也是一个带判断条件的循环过程,不过与repeat不同的是,while在执行语句时,先对表达式进行判断,如果为真,就执行,否则退出。

declare i int default 0;
while i < 10 DO
set i = i + 1;
end while;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值