流程
2020年6月6日
15:55
一、分支结构
1、if函数
功能:实现简单的双分支结构
if(表达式1,表达式2,表达式3)
执行顺序:如果1成立,者返回表达式2的值,如果不成立者是表达式3
2、case结构
功能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
3、if结构
实现多重分支
语法:
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 ,跳出循环
1、while
语法:
【标签:】while 循环条件 do
循环体;
End while 【标签】;
2、loop
语法:
【标签:】loop
循环体;
End loop;
可以用来模拟死循环
3、repeat
语法:
【标签:】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 $