mysql流程控制语句包括哪些?


本文摘自PHP中文网,作者青灯夜游,侵删。

mysql中的流程控制语句包括有:IF语句、CASE语句、LOOP语句、WHILE语句、REPEAT语句、LEAVE语句和ITERATE语句,它们都可以来控制程序的流程。

在存储过程和自定义函数中可以使用流程控制语句来控制程序的流程。MySQL 中流程控制语句有::IF语句、CASE语句、LOOP语句、WHILE语句、REPEAT语句、LEAVE语句和ITERATE语句,它们可以进行流程控制。(推荐教程:mysql视频教程)

1、IF语句

IF语句用来进行条件判断,根据不同的条件执行不同的操作。该语句在执行时首先判断IF后的条件是否为真,则执行THEN后的语句,如果为假则继续判断IF语句直到为真为止,当以上都不满足时则执行ELSE语句后的内容。IF语句表示形式如下:

1

2

3

4

5

6

7

IF condition THEN

    ...

ELSE condition THEN

    ...

ELSE

    ...

END IF

示例:使用IF语句用来进行条件判断。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

-- 创建存储过程

CREATE PROCEDURE example_if (IN x INT)

BEGIN

    IF x = 1 THEN

        SELECT 1;

    ELSEIF x = 2 THEN

        SELECT 2;

    ELSE

        SELECT 3;

    END IF;

END;

 

-- 调用存储过程

CALL example_if(2);

注意:MySQL 中的 IF( ) 函数不同于这里的 IF 语句。

2、CASE语句

CASE语句为多分支语句结构,该语句首先从WHEN后的VALUE中查找与CASE后的VALUE相等的值,如果查找到则执行该分支的内容,否则执行ELSE后的内容。CASE语句表示形式如下:

1

2

3

4

5

CASE value

    WHEN value THEN ...

    WHEN value THEN ...

    ELSE ...

END CASE

CASE语句另一种语法表示形式如下:

1

2

3

4

5

CASE

    WHEN value THEN ...

    WHEN value THEN ...

    ELSE ...

END CASE

示例:使用CASE语句用来进行条件判断。

1

2

3

4

5

6

7

8

9

10

11

12

-- 创建存储过程

CREATE PROCEDURE example_case(IN x INT)

BEGIN

    CASE x

        WHEN 1 THEN SELECT 1;

        WHEN 2 THEN SELECT 2;

        ELSE SELECT 3;

    END CASE;

END;

 

-- 调用存储过程

CALL example_case(5);

3、WHILE循环语句

WHILE循环语句执行时首先判断condition条件是否为真,如果是则执行循环体,否则退出循环。该语法表示形式如下:

1

2

3

WHILE condition DO

...

END WHILE;

示例:使用WHILE循环语句执行求前100的和。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

-- 创建存储过程

CREATE PROCEDURE example_while(OUT sum INT)

BEGIN

    DECLARE i INT DEFAULT 1;

    DECLARE s INT DEFAULT 0;

 

    WHILE i <= 100 DO

        SET s = s+i;

        SET i = i+1;

    END WHILE;

 

    SET sum = s;

END;

 

-- 调用存储过程

CALL example_while(@sum);

SELECT @sum;

4、LOOP循环语句

LOOP循环没有内置的循环条件,但可以通过LEAVE语句退出循环。LOOP语句表示形式如下:

1

2

3

LOOP

    ...

END LOOP

LOOP语句允许某特定语句或语句群的重复执行,实现一个简单的循环构造,在循环内的语句一直重复直至循环被退出,退出循环应用LEAVE语句。

LEAVE语句经常和BEGIN...END或者循环一起使用,其表示形式如下:

1

LEAVE label

label是语句中标注的名字,这个名字是自定义的。

示例:使用LOOP循环语句求前100的和。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

-- 创建存储过程

CREATE PROCEDURE example_loop(OUT sum INT)

BEGIN

    DECLARE i INT DEFAULT 1;

    DECLARE s INT DEFAULT 0;

     

    loop_label:LOOP

        SET s = s+i;

        SET i = i+1;

     

        IF i>100 THEN

            -- 退出LOOP循环

            LEAVE loop_label; 

        END IF;

    END LOOP;

 

    SET sum = s;

END;

 

-- 调用存储过程

CALL example_loop(@sum);

SELECT @sum;

5、REPEAT循环语句

REPEAT循环语句先执行一次循环体,之后判断condition条件是否为真,则退出循环,否则继续执行循环。REPEAT语句表示形式如下:

1

2

3

4

REPEAT

    ...

    UNTIL condition

END REPEAT

示例:使用REPEAT循环语句求前100的和。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

-- 创建存储过程

CREATE PROCEDURE example_repeat(OUT sum INT)

BEGIN

    DECLARE i INT DEFAULT 1;

    DECLARE s INT DEFAULT 0;

 

    REPEAT

        SET s = s+i;

        SET i = i+1;

         

        UNTIL i > 100

    END REPEAT;

     

    SET sum = s;

END;

 

-- 调用存储过程

CALL example_repeat(@sum);

SELECT @sum;

6、ITERATE语句

ITERATE语句可以出现在LOOP、REPEAT和WHILE语句内,其意为“再次循环”。语句格式如下:

1

ITERATE label

该语句的格式与LEAVE大同小异,区别在于:LEAVE语句是离开一个循环,而ITERATE语句是重新开始一个循环。

示例:求10以内奇数值的和。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

-- 创建存储过程

CREATE PROCEDURE example_iterate(OUT sum INT)

BEGIN

    DECLARE i INT DEFAULT 0;

    DECLARE s INT DEFAULT 0;

     

    loop_label:LOOP

 

        SET i = i+1;       

 

        IF i > 10 THEN

            -- 退出整个循环

            LEAVE loop_label; 

        END IF;

 

        IF (i mod 2) THEN

            SET s = s+i;

        ELSE

            -- 退出本次循环,继续下一个循环

            ITERATE  loop_label;

        END IF;

 

    END LOOP;

 

    SET sum = s;

END;

 

-- 调用存储过程

CALL example_iterate(@sum);

SELECT @sum

更多编程相关知识,请访问:编程学习网站!!

以上就是mysql流程控制语句包括哪些?的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

如何查看mysql当前密码是什么

怎么添加mysql到环境变量中

详解mysqlmysqlbackup备份与恢复实践

实例详解阿里云下配置mysql远程连接步骤

如何利用ssh通道访问mysql

mysql数据库怎么创建数据表

mysql数据库查询基础,简单查询,条件查询,对查询结果排序

mysql如何修改字段为null

mysql执行sql语句的流程详解

mysql如何新建权限设置密码

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...