MySQL學習筆記:while循環


  思考:while循環是否只能使用在存儲過程或者存儲函數之中,不能直接在查詢語句中使用?

  ———— 循環一般在存儲過程和存儲函數中使用。


  直接放幾個例子:

  例一:

  1.創建存儲過程

DELIMITER $$ CREATE PROCEDURE test_while_001(IN in_count INT) # 創建存儲過程 學習while循環的用法 BEGIN
    DECLARE COUNT INT DEFAULT 0; DECLARE SUM INT DEFAULT 0; WHILE COUNT < in_count DO SET SUM = SUM + COUNT; SET COUNT = COUNT + 1; END WHILE; SELECT SUM; END $$ DELIMITER ;

  2.調用存儲過程

CALL test_while_001(10); # 45 輸出

  3.刪除存儲過程

DROP PROCEDURE test_while_001;

 

 

例二:

  1.創建函數

DELIMITER $$ CREATE FUNCTION my_test_function(quantity INT(10)) RETURNS INT(10) # 創建函數 學習while循環的用法 BEGIN
    WHILE quantity MOD 12 > 0 DO SET quantity = quantity + 1; END WHILE; RETURN quantity; END $$ DELIMITER ;

  注意:創建函數之前必須更改系統設置 否則無法創建函數

SET GLOBAL log_bin_trust_function_creators=TRUE;

  2.調用函數

SELECT my_test_function(10); SELECT my_test_function(24); SELECT my_test_function(222);

  3.刪除函數

DROP FUNCTION my_test_function;

 

  

  例三:

  1.如果存在,則刪除

DROP PROCEDURE IF EXISTS u_head_and_low_pro;

  2.創建存儲過程

DELIMITER $$ CREATE PROCEDURE u_head_and_low_pro() BEGIN
    DECLARE n INT DEFAULT 10; SET n = n - 1; WHILE n > 0 DO SELECT n; SET n = n - 1; END WHILE; END $$ DELIMITER ;

  3.調用存儲過程

CALL u_head_and_low_pro();

  4.刪除存儲過程

DROP PROCEDURE u_head_and_low_pro;

  注:不依賴於任何數據庫表,完整展示變量、while語句、存儲過程的用法。


 

 

  例四:

# 創建存儲過程
DELIMITER $$
CREATE PROCEDURE test_while() BEGIN DECLARE SUM INT DEFAULT 0; DECLARE t INT DEFAULT 5; WHILE t > 0 DO SET SUM = SUM + t; SET t = t - 1; END WHILE; SELECT SUM; END $$ DELIMITER ; # 調用存儲過程 CALL test_while(); # 15 # 刪除 DROP PROCEDURE test_while;

END 2018-05-22 13:11:34


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM