MySQL流程控制语句概述示例与使用总结

举报
穆生生 发表于 2020/12/30 15:16:30 2020/12/30
【摘要】 MySQL流程控制语句概述

MySQL也有着和一般开发语言类似功能的流程控制语句,主要用于自定义函数,存储过程,通过流程控制确定语句的执行顺序、方式。

目前常见的流程控制语句包括以下关键字:IFCASEWHILEREPEATLEAVEITERATELOOP等。

以下通过描述功能和示例的方式进行说明:

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主要用于跳出循环,当满足一定条件时就跳出循环,结合IFWHILEREPEATLOOP使用,同时需要配置循环标记。

示例代码:

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是用户跳过“本次循环”然后“再次循环”的意思,结合IFWHILEREPEATLOOP使用,同时需要配置循环标记。

示例代码:

l:LOOP

    IF MOD(p,7)=0 THEN

       ITERATE l;

       END IF;

       SET p = p+1 ;

END LOOP l;

除了星晴天,每天都给武士进行训练战斗值。

总结

以上内容就是MySQL中主要的流程控制语句,在实际生产中根据需求选择合适的控制语句:简单的判断使用IF,多个条件匹配使用CASE,需要循环获取使用WHILEREPEAT,死循环一般较少使用,一般会结合LEAVEITRATE使用。

如示例中的武士,需要不断的练习,巩固技能,加深映像,这样才能获得更多的知识,做到学以致用。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。