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 分享