共計 2601 個字符,預計需要花費 7 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
這篇文章將為大家詳細講解有關 mysql 流程控制語句是什么,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
mysql 中的流程控制語句包括有:IF 語句、CASE 語句、LOOP 語句、WHILE 語句、REPEAT 語句、LEAVE 語句和 ITERATE 語句,它們都可以來控制程序的流程。
在存儲過程和自定義函數中可以使用流程控制語句來控制程序的流程。MySQL 中流程控制語句有::IF 語句、CASE 語句、LOOP 語句、WHILE 語句、REPEAT 語句、LEAVE 語句和 ITERATE 語句,它們可以進行流程控制。
1、IF 語句
IF 語句用來進行條件判斷,根據不同的條件執行不同的操作。該語句在執行時首先判斷 IF 后的條件是否為真,則執行 THEN 后的語句,如果為假則繼續判斷 IF 語句直到為真為止,當以上都不滿足時則執行 ELSE 語句后的內容。IF 語句表示形式如下:
IF condition THEN
ELSE condition THEN
END IF
示例:使用 IF 語句用來進行條件判斷。
-- 創建存儲過程
CREATE PROCEDURE example_if (IN x INT)
BEGIN
IF x = 1 THEN
SELECT 1;
ELSEIF x = 2 THEN
SELECT 2;
ELSE
SELECT 3;
END IF;
-- 調用存儲過程
CALL example_if(2);
注意:MySQL 中的 IF() 函數不同于這里的 IF 語句。
2、CASE 語句
CASE 語句為多分支語句結構,該語句首先從 WHEN 后的 VALUE 中查找與 CASE 后的 VALUE 相等的值,如果查找到則執行該分支的內容,否則執行 ELSE 后的內容。CASE 語句表示形式如下:
CASE value
WHEN value THEN ...
WHEN value THEN ...
ELSE ...
END CASE
CASE 語句另一種語法表示形式如下:
CASE
WHEN value THEN ...
WHEN value THEN ...
ELSE ...
END CASE
示例:使用 CASE 語句用來進行條件判斷。
-- 創建存儲過程
CREATE PROCEDURE example_case(IN x INT)
BEGIN
CASE x
WHEN 1 THEN SELECT 1;
WHEN 2 THEN SELECT 2;
ELSE SELECT 3;
END CASE;
-- 調用存儲過程
CALL example_case(5);
3、WHILE 循環語句
WHILE 循環語句執行時首先判斷 condition 條件是否為真,如果是則執行循環體,否則退出循環。該語法表示形式如下:
WHILE condition DO
END WHILE;
示例:使用 WHILE 循環語句執行求前 100 的和。
-- 創建存儲過程
CREATE PROCEDURE example_while(OUT sum INT)
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE s INT DEFAULT 0;
WHILE i = 100 DO
SET s = s+i;
SET i = i+1;
END WHILE;
SET sum = s;
-- 調用存儲過程
CALL example_while(@sum);
SELECT @sum;
4、LOOP 循環語句
LOOP 循環沒有內置的循環條件,但可以通過 LEAVE 語句退出循環。LOOP 語句表示形式如下:
LOOP
END LOOP
LOOP 語句允許某特定語句或語句群的重復執行,實現一個簡單的循環構造,在循環內的語句一直重復直至循環被退出,退出循環應用 LEAVE 語句。
LEAVE 語句經常和 BEGIN…END 或者循環一起使用,其表示形式如下:
LEAVE label
label 是語句中標注的名字,這個名字是自定義的。
示例:使用 LOOP 循環語句求前 100 的和。
-- 創建存儲過程
CREATE PROCEDURE example_loop(OUT sum INT)
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE s INT DEFAULT 0;
loop_label:LOOP
SET s = s+i;
SET i = i+1;
IF i 100 THEN
-- 退出 LOOP 循環
LEAVE loop_label;
END IF;
END LOOP;
SET sum = s;
-- 調用存儲過程
CALL example_loop(@sum);
SELECT @sum;
5、REPEAT 循環語句
REPEAT 循環語句先執行一次循環體,之后判斷 condition 條件是否為真,則退出循環,否則繼續執行循環。REPEAT 語句表示形式如下:
REPEAT
UNTIL condition
END REPEAT
示例:使用 REPEAT 循環語句求前 100 的和。
-- 創建存儲過程
CREATE PROCEDURE example_repeat(OUT sum INT)
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE s INT DEFAULT 0;
REPEAT
SET s = s+i;
SET i = i+1;
UNTIL i 100
END REPEAT;
SET sum = s;
-- 調用存儲過程
CALL example_repeat(@sum);
SELECT @sum;
6、ITERATE 語句
ITERATE 語句可以出現在 LOOP、REPEAT 和 WHILE 語句內,其意為“再次循環”。語句格式如下:
ITERATE label
該語句的格式與 LEAVE 大同小異,區別在于:LEAVE 語句是離開一個循環,而 ITERATE 語句是重新開始一個循環。
示例:求 10 以內奇數值的和。
-- 創建存儲過程
CREATE PROCEDURE example_iterate(OUT sum INT)
BEGIN
DECLARE i INT DEFAULT 0;
DECLARE s INT DEFAULT 0;
loop_label:LOOP
SET i = i+1;
IF i 10 THEN
-- 退出整個循環
LEAVE loop_label;
END IF;
IF (i mod 2) THEN
SET s = s+i;
ELSE
-- 退出本次循環,繼續下一個循環
ITERATE loop_label;
END IF;
END LOOP;
SET sum = s;
-- 調用存儲過程
CALL example_iterate(@sum);
SELECT @sum
關于 mysql 流程控制語句是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
向 AI 問一下細節
丸趣 TV 網 – 提供最優質的資源集合!