流程控制结构
顺序结构:程序从上往下依次执行
分支结构:程序从两条或多条路径中选择一条去执行
循环结构:程序在满足一定条件的基础桑,重复执行一段代码
分支结构
1、if函数
功能:实现简单的双分支
语法:
if(表达式1,表达式2,表达式3)
执行顺序:
如果表达式1成立,则if函数就返回表达式2的值,否则返回表达式3的值
应用场景:任何地方
2、case结构
1 情况一、类似于Java中的switch语句,一般用于实现等值判断 2 语法: 3 case 变量|表达式|字段 4 when 要判断的值1 then 返回的值1或语句1; 5 when 要判断的值2 then 返回的值2或语句2; 6 ... 7 else 要返回的值n或语句n; 8 END case; 9 情况二、类似于Java中的多重if语句,一般用于实现区间的判断 10 语法: 11 case 12 when 要判断的条件1 then 返回值1或语句1; 13 when 要判断的条件2 then 返回值2或语句2; 14 ... 15 else 要返回的值n或语句n; 16 end case; 17 18 特点: 19 (1) 20 可以作为表达式,嵌套在其他语句中使用,可以放在任何地方,begin end中或begin end的外边 21 可以作为独立的语句去使用,只能放在begin end中 22 (2) 23 如果when中的值满足条件或条件成立,则执行对应的then后面的语句,并且结束case 24 如果都不满足,则执行else中的语句或值 25 (3) 26 else可以省略,如果else省略了,并且所有的when条件都不满足,则返回null
案例:创建存储过程,根据传入的成绩,来显示等级,成绩 90-100显示A,80-90显示B,80-60显示C,否则显示D
1 CREATE PROCEDURE test_case(in score int) 2 begin 3 case 4 when score>=90 and score<=100 then select 'A'; 5 when score>=80 then select 'B'; 6 when score>=60 then select 'C'; 7 ELSE SELECT 'D'; 8 END CASE; 9 end $ 10 CALL test_case(95)$
运行结果:
3、实现多重分支
语法:
if 条件1 then 语句1
elseif 条件2 then 语句2
elseif 条件3 then 语句3
...
[else 语句n]
end if;
应用场景:应用在begin end中
案例:创建函数,根据传入的成绩,来显示等级,成绩 90-100显示A,80-90显示B,80-60显示C,否则显示D
1 create FUNCTION test_if(score int) RETURNS char 2 begin 3 if score>=90 and score<=100 then return 'A'; 4 ELSEIF SCORE>=80 then return 'B'; 5 ELSEIF SCORE>=60 THEN RETURN 'C'; 6 ELSE RETURN 'D'; 7 END IF; 8 END $
运行结果:
来源:https://www.cnblogs.com/dongyaotou/p/12365805.html