李玉婷MYSQL进阶15-流程控制结构

 

顺序结构:程序从上往下一次执行

分支结构:程序从两条或多条路径中选择一条去执行

循环结构:程序在满足一定条件的基础上,重复执行一段代码

一、分支结构

1.if函数

功能:实现简单的双分支

语法:

if (表达式1,表达式2,表达式3)

执行顺序:

应用:任何地方

2.case结构

情况1:类似Java中的switch语句,一般用于实现的等值判断

情况2:类似Java中的多重if语句,一般用于实现区间判断

//情况一:类似于switch
case 变量/表达式/字段
when 值1 then 返回值1/或语句1(如果是语句,需要加分号) 
when 值2 then 返回值2/或语句2(如果是语句,需要加分号)
...
else 结果n或语句n(如果是语句,需要加分号)
end 【case】(如果是放在begin end中需要加上case,如果放在select后面不需要)

//情况二:类似于多重if
case (无)
when 条件1 then 结果1或语句1(如果是语句,需要加分号) 
when 条件2 then 结果2或语句2(如果是语句,需要加分号)
...
else 结果n或语句n(如果是语句,需要加分号)
end 【case】(如果是放在begin end中需要加上case,如果放在select后面不需要)

特点:

1.

可以作为表达式,嵌套在其他语句中使用,可以放在任何地方,begin end中或begin end的外面

可以作为独立的语句去使用,只能放在begin end中

2.

如果when中的值或条件成立,则执行then后面的语句,并且结束case

如果都不满足,则执行else中的语句和值

3.

else可以省略,如果else省略了,并所有的when条件不符合,则返回null

案例:

创建存储过程,根据传入的成绩,来显示等级,比如传入的成绩:90-100A,80-90B,60-80C,否则,显示D

3.if else if结构

功能:实现多重分支

语法:

if 情况1 then 语句1;
elseif 情况2 then 语句2;
...
【else 语句n;】
end if;

特点:
只能用在begin end中!!!!!!!!!!!!!!!

案例:

创建存储过程,根据传入的成绩,来显示等级,比如传入的成绩:90-100返回A,80-90返回B,60-80返回C,否则,返回D

 

三者比较:
应用场合
if函数 简单双分支
case结构 等值判断 的多分支
if结构 区间判断 的多分支

 

二、循环结构

分类:while、loop、repeat

循环控制:

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

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

1.while

语法:

【标签:】WHILE 循环条件  DO
	循环体;
END WHILE 【标签】;

特点:

只能放在BEGIN END里面

如果要搭配leave跳转语句,需要使用标签,否则可以不用标签

leave类似于java中的break语句,跳出所在循环!!!

2.loop

【标签:】LOOP 
	循环体;
END LOOP 【标签】;

可以模拟简单的死循环

3.repeat

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

//没有添加循环控制语句

 案例:批量插入,根据次数插入到admin表中多条记录

 

 

 

 

 

 

你可能感兴趣的:(MYSQL)