MySQL-流程控制结构

流程控制结构
顺序结构:程序从上往下依次执行
分支结构:程序从两条或多条路径中选择一条去执行
循环结构:程序在满足一定条件的基础桑,重复执行一段代码

分支结构

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 (120 可以作为表达式,嵌套在其他语句中使用,可以放在任何地方,begin  end中或begin end的外边
21 可以作为独立的语句去使用,只能放在begin end中
22 (223 如果when中的值满足条件或条件成立,则执行对应的then后面的语句,并且结束case
24 如果都不满足,则执行else中的语句或值
25 (326 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)$

运行结果:

猜你喜欢

转载自www.cnblogs.com/dongyaotou/p/12365805.html