• 技术文章 >数据库 >mysql教程

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

    青灯夜游青灯夜游2021-02-01 10:58:16原创1299

    相同点:不可单独使用,主要用于存储过程和函数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

    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

    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、语法:

    loop_name : LOOP
        IF condition THEN
            LEAVE loop_name ;
        END IF;
        doSomething
    END LOOP;

    2、说明:

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

    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三种循环语句有什么异同?的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:While Loop Repeat MySQL
    上一篇:大数据学习之二 MYSQL进阶 下一篇:dba数据库管理员的职责有哪些
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• 介绍PHP7.3.5封装类访问mysql数据库• 讲解Mac下更换MySQL版本后如何恢复原有的数据库表• 总结MySQL常见错误分析与解决方法• 介绍基于Java和MySQL的图书管理系统
    1/1

    PHP中文网