流程

202066

15:55

一、分支结构

1if函数

功能:实现简单的双分支结构

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

执行顺序:如果1成立,者返回表达式2的值,如果不成立者是表达式3

2case结构

功能1、实现类似switch语句,用于实现等值判断

语法:

Case 变量|表达式|字段

When 要判断的值 then 返回值1(或语句1;)

When 要判断的值 then 返回值2(或语句2;)

When 要判断的值 then 返回值3(或语句3;)

Else 要返回的n

end

功能2、实现类似i多重f语句,

语法:

Case

When 要判断的值 then 返回值1

When 要判断的值 then 返回值2(或语句1;)

When 要判断的值 then 返回值3(或语句1;)

Else 要返回的n

End

   

特点:

  •    

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

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

  • 如果在when中的值满足或条件成立,则执行对应的then后面的语句,并结束case

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

  • Else 可以省略,如果else 省略,并且所有的我很条件都不满足,则返回null

3if结构

实现多重分支

语法:

If 条件语句1 then 语句1;

Elseif 条件2 then 语句2;

…..

【else 语句n;】

End if;

应用场合:应用在begin end 中

   

#案例1:创建函数,实现传入成绩,如果成绩>90,返回A,如果成绩>80,返回B,如果成绩>60,返回C,否则返回D

   

CREATE FUNCTION test_case(score FLOAT) RETURNS CHAR

BEGIN

DECLARE ch CHAR DEFAULT 'A';

   

CASE

WHEN score>90 THEN SET ch='A';

WHEN score>80 THEN SET ch='B';

WHEN score>60 THEN SET ch='C';

ELSE SET ch='D';

END CASE;

   

RETURN ch;

END $

   

SELECT test_case(56)$

二、循环结构:

分类:

while、loop、repeat

循环控制:

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

Leave 类似 break ,跳出循环

   

1while

语法:

【标签:】while 循环条件 do

循环体;

End while 【标签】;

2loop

语法:

【标签:】loop

循环体;

End loop;

可以用来模拟死循环

3repeat

语法:

【标签:】repeat

循环体;

Until 结束循环的条件

End repeat 【标签】;

   

案例:

###根据输入确定插入次数###

CREATE PROCEDURE pickinsert( IN a INT)

BEGIN

DECLARE i INT DEFAULT 1;

b:WHILE a >= i DO

INSERT INTO admin(username,PASSWORD)VALUES(CONCAT('leijun',i),'8888');

SET i = i+1;

END WHILE b;

   

END $

###根据输入确定偶数时插入###

CREATE PROCEDURE pickinsert( IN a INT)

BEGIN

DECLARE i INT DEFAULT 1;

b:WHILE a >= i DO

SET i = i+1;

IF MOD(i,2)!= 0 THEN ITERATE b;

END IF;

INSERT INTO admin(username,PASSWORD)VALUES(CONCAT('leijun',i),'8888');

END WHILE b;

   

END $

   

   

   

  

posted @ 2020-06-06 17:52  伊芙利特  阅读(131)  评论(0编辑  收藏  举报