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

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

While、Loop和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— 先判断,后执行。

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

DROP PROCEDURE IF EXISTS pro_while ; CREATE PROCEDURE pro_while() BEGIN 	 DECLARE  sum INT DEFAULT 0 ; 	 WHILE sum <p style="text-indent:33px;">4、调用存储过程: <strong><span style="text-decoration:underline;">CALL pro_while();</span></strong></p><p>相关推荐《<a href="https://www.php.cn/course/list/51.html" target="_blank">mysql视频教程</a>》</p><p><strong>三、REPEAT 循环</strong></p><p style="text-indent:33px;">1、语法: REPEAT <span style="color:#ffbb66;">doSomething</span> UNTIL <span style="color:#ffbb66;">condition</span> END REPEAT ;</p><p style="text-indent:33px;">2、说明:doSomething 先执行相关操作 ,再判断是否满足条件,满足,结束循环。(和WHILE循环相反) <strong>--- 先执行,后判断。</strong></p><p style="text-indent:33px;">3、示例:创建 repeat 循环的函数 <span style="text-decoration:underline;">fun_repeat</span></p><pre class="brush:sql;toolbar:false;">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 &gt; 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、说明:

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

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 &gt; 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 循环无法执行。

更多计算机编程相关知识,请访问:mysql视频教程!!

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享