Mysql 流程控制结构if case while loop repeat


Mysql 流程控制结构

  • 顺序结构
  • 分支结构
  • 循环结构


一、分支结构

1. if函数

功能: 实现简单的双分支

# 语法:
if(表达式1,表达式2,表达式3)
如果表达式1成立,则返回表达式2的值,否则返回表达式3的值.

应用: 任何的地方

2. case结构

功能:
1.一般用于实现等值判断,实现后续分支.
2.一般用于实现区间判断,实现后续分支.

# 语法:
case [变量|表达式|字段]
when 要判断的条件 then 返回值1或语句1;
when 要判断的条件 then 返回值2或语句2;
...
else 要返回的值n或语句n;
end case;
end

# 如果when...then 后加语句则后面必须加;结尾

# 特点 :
作为表达式,嵌套在语句中使用,可以放在任何地方.
作为独立语句使用时,只能放在begin end中.


3. if结构

功能: 实现多重分支

# 语法:
if 条件1 then 语句1;
elseif 条件2 then 语句2;
...
[else 语句n;]
end if;

# 应用与begin end中


二、循环结构


循环分类:
while loop repeat

循环控制:
iterate 类似continue ,结束本次循环,继续下一次.
leave 类似break,跳出,结束当前所在的循环层.

1. loop

# 语法 :
[tag:] loop 
    循环体;
end loop [标签];

可以用来模拟简单的死循环.

2. repeat

# 语法 :
[tag:] repeat 
    循环体;
until 结束循环的条件
end repeat [标签];

3. while

# 语法 :
[tag:] while 循环条件 do
    循环体;
end while [标签];


# 1. 没有添加循环控制
案例: 做一个循环a,批量插入,根据次数插入到aa表多条记录(名字n,密码123).
create procedure pro1(in insertCount int)
begin
    declare i int default 1;
    while i<=insertCount do
        insert into aa(name,password) values(concat('任意名字'+i),'123');
        set i=i+1;
    end while;    #循环名a前后都可以不写.
end call pro1(100)


# 2. 添加循环控制的while
案例1: 做一个循环a,批量插入,根据次数插入到aa表多条记录(名字n,密码123),当次数>20则停止
create procedure pro2(in insertCount int)
begin
    declare i int default 1;
    a:while i<=insertCount do
        insert into aa(name,password) values(concat('任意名字'+i),'123');
        if i>20 then leave a; #循环体名a
        end if;
        set i=i+1;
    end while a;    #循环体名a
end call pro2(100)

案例2: 做一个循环a,批量插入,根据次数插入到aa表多条记录(名字n,密码123),当偶数时插入.
create procedure pro3(in insertCount int)
begin
    declare i int default 0;
    a:while i<=insertCount do
        set i=i+1;
        if mod(i,2)!=0 then iterate a;
        end if;
        insert into aa(name,password) values(concat('任意名字'+i),'123');
    end while a;    #循环体名a
end call pro3(100)

## 注意! 如果使用了循环控制,则必须使用循环体命名.

三、经典案例


Copyright © 2009 - Now . XPBag.com . All rights Reserved.
夜心的小站 » Mysql 流程控制结构if case while loop repeat

提供最优质的资源集合

立即查看 了解详情