顺序结构:程序从上往下依次执行
分支结构:程序从两条或多条路径中选择一条执行
循环结构:程序在满足一定条件的基础上,重复执行代码
一,分支结构
1.if 函数功能:实现简单的双分支
语法:
IF (表达式1,表达式2,表达式3) 执行顺序: 如果表达式1成立,则IF函数返回表达式2的值,否则返回表达式3的值
应用:任何地方
2.case 结构情况1:类似于 java 中 的 switch 语句,一般用于实现等值判断
语法:
CASE 变量 | 表达式 | 字段 WHEN 要判断的值 THEN 返回的值1或语句1; WHEN 要判断的值 THEN 返回的值2或语句2; ... ELSE 要返回的值 n 或语句 n; END CASE;
情况2:类似于 java 中的多重 IF 语句,一般用于实现区间判断
语法:
CASE WHEN 要判断的条件1 THEN 返回的值1或语句1; WHEN 要判断的条件2 THEN 返回的值2或语句2; ... ELSE 要返回的值n或语句n; END CASE;
特点:
①
可以作为表达式,嵌套在其它语句中使用,可以放在任何地方,BEGIN END 中 或 BEGIN END 的外面。
可以作为独立的语法使用,只能放在 BEGIN END 中。
②
如果 WHEN 中的值或条件成立,则执行对应的 THEN 后面的语句,并且结束 CASE。
如果都不满足,则执行 ELSE 中的语句或值。
③
ELSE 可以省略哦,如果 ELSE 省略了,并且所有 WHEN 条件都不满足,则返回 NULL;
案例创建存储过程根据传入的成绩,来显式等级,比如传入的成绩:90-100,显式 a ,80-90,显式 b ,60-80,显式 c ,否则,显式 d
DELIMITER $ CREATE PROCEDURE test_case(IN score INT) BEGIN CASE WHEN score>=90 AND score<=100 THEN SELECT 'a'; WHEN score>=80 THEN SELECT 'b'; WHEN score>=60 THEN SELECT 'c'; ELSE SELECT 'd'; END CASE; END $ DELIMITER $ CALL test_case(95);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
DELIMITER $ CREATE FUNCTION test_if(score INT) RETURNS CHAR BEGIN IF score>=90 AND score<=100 THEN RETURN 'A'; ELSEIF score>=80 THEN RETURN 'B'; ELSEIF score>=60 THEN RETURN 'C'; ELSE RETURN 'D'; END IF; END $



