While、Loop和Repeat三种循环语句有什么异同?


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

相同点:不可单独使用,主要用于存储过程和函数FUNCTION中。区别:WHILE先判断,后执行;满足条件才执行。REPEAT和LOOP先执行,后判断;满足条件就结束循环。当条件为false时,REPEAT也能执行一次;其他两个语句无法执行。

本教程操作环境:windows7系统、mysql8版、Dell G3电脑。

一、MySQL循环概述

MySQL中有三种循环,分别是 WHILE , REPEAT , LOOP (据说还有 goto),不可单独使用,主要用于 存储过程 PROCEDURE 和 函数 FUNCTION 中。

二、WHILE 循环

1、语法: WHILE condition DO doSomething END WHILE ;

2、说明: condition 条件满足情况下,则执行循环体内容,不满足,则结束循环。(如:2>1,满足;1<2,不满足。) --- 先判断,后执行。

3、示例: 创建 while 循环的存储过程 pro_while

1

2

3

4

5

6

7

8

9

10

DROP PROCEDURE IF EXISTS pro_while ;

CREATE PROCEDURE pro_while()

BEGIN

     DECLARE  sum INT DEFAULT 0 ;

     WHILE sum < 100 DO

        INSERT INTO `chapter`.`batch` (`id`, `name`, `age`)

        VALUES (CONCAT(sum,''),CONCAT('while',sum) , sum);

        SET sum = sum + 1;

    END WHILE ;

END;

4、调用存储过程: CALL pro_while();

相关推荐《mysql视频教程》

三、REPEAT 循环

1、语法: REPEAT doSomething UNTIL condition END REPEAT ;

2、说明:doSomething 先执行相关操作 ,再判断是否满足条件,满足,结束循环。(和WHILE循环相反) --- 先执行,后判断。

3、示例:创建 repeat 循环的函数 fun_repeat

1

2

3

4

5

6

7

8

9

10

11

DROP FUNCTION IF EXISTS fun_repeat ;

CREATE FUNCTION fun_repeat() RETURNS INT

BEGIN

    DECLARE  sum INT DEFAULT 1000 ;

        REPEAT

            INSERT INTO `chapter`.`batch` (`id`, `name`, `age`)

            VALUES (CONCAT(sum,''),CONCAT('repeat',sum) , sum);

            SET sum = sum + 1; 

        UNTIL sum > 1100 END REPEAT ; -- 满足条件结束循环

    RETURN 1;

END;

4、执行函数: SELECT fun_repeat();

四、LOOP 循环

1、语法:

1

2

3

4

5

6

loop_name : LOOP

    IF condition THEN

        LEAVE loop_name ;

    END IF;

    doSomething

END LOOP;

2、说明:

  • loop_name 为循环名字,自定义,不可用关键字。
    • doSomething 执行的相关操作。
    • condition 满足条件,则结束循环。--- 先判断,后执行。

3、示例:创建 loop 循环的存储过程 pro_loop

1

2

3

4

5

6

7

8

9

10

11

12

13

DROP PROCEDURE IF EXISTS pro_loop ;

CREATE PROCEDURE pro_loop()

BEGIN

    DECLARE sum int DEFAULT 10000 ;

    loop_sums : LOOP -- 【开始】loop 名字,自定义

        IF sum > 10100 THEN

            LEAVE loop_sums ; -- 满足条件,则结束循环

        END IF;

        INSERT INTO `chapter`.`batch` (`id`, `name`, `age`)

        VALUES (CONCAT(sum,''),CONCAT('loop',sum) , sum);

        SET sum = sum + 1; 

    END LOOP ;  -- 【结束】

END ;

4、调用存储过程: CALL pro_loop();

五、总结

1、WHILE 循环,先判断,后执行。满足条件,执行,执行循环。

2、REPEAT 循环,先执行,后判断。满足条件,不执行,结束循环。

3、LOOP 循环,先执行,后判断。满足条件,不执行,结束循环。

4、当条件为false时,REPEAT循环也能执行一次,类似于 java中的 do {} while (condition); 循环; 而 WHILE、LOOP 循环无法执行。

更多计算机编程相关知识,请访问:编程入门!!

以上就是While、Loop和Repeat三种循环语句有什么异同?的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

怎么查看自己的mysql密码

mysql中多表不关联查询的实现方法详解

mysql如何进行表连接

在linux系统安装mysql步骤截图详解

mysql如何进行sql优化?

mysql和redis事务的比较(图文)

怎么查看mysql版本

mysql中explain的用法总结(详细)

如何测试空间是否支持mysql数据库?

mysql的重装问题解决方法

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


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

数据库系统概念 第6版

机械工业出版社

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



打赏

取消

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

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

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

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

评论

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