MySQL流程控制语句概述示例与使用总结
MySQL也有着和一般开发语言类似功能的流程控制语句,主要用于自定义函数,存储过程,通过流程控制确定语句的执行顺序、方式。
目前常见的流程控制语句包括以下关键字:IF、CASE、WHILE、REPEAT、LEAVE、ITERATE和LOOP等。
以下通过描述功能和示例的方式进行说明:
1. IF使用
和其他程序开发语言一样,一般IF用于进行条件判断,根据表达式是否为真,以执行不同的语句,IF使用的概率较高,需要熟练使用。语法格式如下:
IF 条件 THEN 执行语句1
[ELSEIF 条件 THEN 执行语句N]...
[ELSE 执行语句N+1]
END IF
根据IF的“条件”是否为TRUE,执行相应的“语句1”,如果为FALSE,则执行ELSEFI的语句N”,如果都不满足最后执行ELSE后的 语句 “N+1”。
示例代码:
IF power>90 THEN SET brand = 'Jedi' ;
ELSEIF power>80 THEN SET brand = 'Yewen' ;
ELSEIF power>70 THEN SET brand = 'Samurai' ;
ELSEIF power>60 THEN SET brand = 'Taiquan' ;
ELSE SET brand = 'Zhazha';
END IF;
语句中如果一个人的战斗力大于90就是绝地武士级别,如果小与等于90大于80就是叶问级别,如果小于等于80大于70就是日本武士级别,如果小于等于70大于60就是泰拳级别,如果小于等于60那么就判定为渣渣。
2. CASE使用
MySQL中case也是用于条件判断,比if语句表现形式更加丰富,case的基本语句有两种:
语法一
CASE 条件
WHEN 值 THEN 执行语句
[WHEN 值 THEN 执行语句]...
[ELSE 执行语句]
END CASE
其中“条件”作为判断,用“值”与“条件”进行判断,如果为TRUE则执行后面的语句。
语法二
CASE
WHEN 条件1 THEN 执行语句1
[WHEN 条件N THEN 执行语句N] ...
[ELSE 执行语句3]
END CASE
语法二中,当满足条件1则执行语句1,满足条件N则执行语句N,最后都不满足则执行语句N+1
语法一示例:
CASE brand
WHEN 'Jedi' THEN SET grade = 'S';
WHEN 'Yewen' THEN SET grade = 'A';
WHEN 'Samurai' THEN SET grade = 'B';
WHEN 'Taiquan' THEN SET grade = 'C'
ELSE SET grade = 'D';
END CASE;
语法二示例:
CASE
WHEN power>90 THEN SET brand = 'Jedi' ;
WHEN power>80 THEN SET brand = 'Yewen' ;
WHEN power>70 THEN SET brand = 'Samurai' ;
WHEN power>60 THEN SET brand = 'Taiquan' ;
ELSE SET brand = 'Zhazha' ;
3. while使用
MySQL中while同样是条件控制语句, WHILE的语法形式如下:
WHILE 条件 DO
执行语句
END WHILE
当符合while语句的条件时,才执行循环内部的语句,否则退出循环。
示例代码:
WHILE p<100 DO
SET p = p+1;
END WHILE;
先判断p战斗力是否小于100,如果小于通过不断训练给p战斗力加值,直到达到100,战斗力爆满,循环结束。
4. REPEAT使用
MySQL中,REPEAT是执行语句,再判断,需注意与WHILE的区别,
REPEAT基本语句语法:
REPEAT
执行语句
UNTIL 条件
END REPEAT
先执行循环内部的语句,当符合UNITL语句的条件时,否则退出循环。
示例代码:
REPEAT
SET p = p+1 ;
UNTIL p>=100;
END REPEAT;
先给武士战斗力值p训练,然后判断是否大于100,如果小于就继续训练,直到100,结束循环。
5. LOOP使用
MySQL中LOOP用于进行无限循环,与其他控制语句相比,LOOP并不会进行条件判断。LOOP的基本语法如下:
[标记:]LOOP
执行语句
END LOOP [标记]
其中,标记是用户标记循环的,前后标记需要一样,可以省略。
示例代码:
add_p:LOOP
SET p = p+1;
END LOOP add_p;
给武士的战斗值无限的+1,直到宇宙毁灭。
6. LEAVE使用
MySQL中LEAVE主要用于跳出循环,当满足一定条件时就跳出循环,结合IF、WHILE、REPEAT、LOOP使用,同时需要配置循环标记。
示例代码:
l:LOOP
SET p = p+1 ;
IF p=100 THEN
LEAVE l;
END IF;
END LOOP l;
给武士的战斗值p+1,为了防止出现不和谐情况,通过IF判断如果p达到100后,进行阻断,跳出循环不再训练。
7. ITERATE
MySQL中ITERATE是用户跳过“本次循环”然后“再次循环”的意思,结合IF、WHILE、REPEAT、LOOP使用,同时需要配置循环标记。
示例代码:
l:LOOP
IF MOD(p,7)=0 THEN
ITERATE l;
END IF;
SET p = p+1 ;
END LOOP l;
除了星晴天,每天都给武士进行训练战斗值。
总结
以上内容就是MySQL中主要的流程控制语句,在实际生产中根据需求选择合适的控制语句:简单的判断使用IF,多个条件匹配使用CASE,需要循环获取使用WHILE、REPEAT,死循环一般较少使用,一般会结合LEAVE、ITRATE使用。
如示例中的武士,需要不断的练习,巩固技能,加深映像,这样才能获得更多的知识,做到学以致用。
- 点赞
- 收藏
- 关注作者
评论(0)