0
点赞
收藏
分享

微信扫一扫

【大数据系列之MySQL】(三十五):MySQL中的流程控制


一、分支结构

1.if函数

实现双分支结构

if (表达式1,表达式2, 表达式3)
如果表达式1成立,则if函数返回表达式2的值,否则返回表达式3的值

2.case结构

  • 情况1:类似于Java中的switch语句,一般用于实现等值判断
  • 情况2:类似于Java中的多重if分支结构,一般用于实现区间判断

case 要判断的字段或表达式
when 常量1 要显示的值或语句;
when 常量2 要显示的值或语句;
...
else 要显示的值或语句;(相当于default)
end

case
when 条件1 要显示的值或语句;
when 条件2 要显示的值或语句;
...
else 要显示的值或语句;
end

可以作为表达式,嵌套在其它语句中使用,可以放在任何地方

3.if结构

实现多重分支,不同于if函数,只能应用在begin end中

if 条件1 then 语句1
elseif 条件2 then 语句2
...
可选【else 语句n;】
end if;

# 根据传入的成绩,来显示等级,比如传入的成绩:90-100返回A
create function test_if(score INT) returns char
begin
if score>=90 and score<=100 then return 'A'
elseif score>=80 then return 'B'
elseif score>=60 then return 'C'
else return 'D';
end if;
end $

二、循环结构

分类:

  • while、loop、repeate
  • iterate类似于continue,继续,结束本次循环,继续下一次
  • leave类似于break,跳出,结束当前所在的循环

1.while

【标签: 】while 循环条件 do
循环体
end while【标签:】;

# 批量插入多条数据
create procedure pro_while(IN insertCount int)
begin
declare i int default 1;
while i<= insertCount do
insert into admin(username, password) values(concat('rose', i), '666')
set i = i+1
end while;
end $

2.loop

【标签: 】loop
循环体
end loop【标签:】;

# 可以用来模拟死循环

3.repeat

【标签: 】repeat
循环体
until 结束循环的条件
end repeat【标签:】;

# 类似于do while

4.使用leave

# 批量插入多条数据,如果次数大于20停止
create procedure pro_while(IN insertCount int)
begin
declare i int default 1;
a: while i<= insertCount do
insert into admin(username, password) values(concat('rose', i), '666')
if i>=20 then leave a;
set i = i+1
end while a;
end $


举报

相关推荐

0 条评论