日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

    
        
    歡迎訪問 生活随笔!

    生活随笔

    當前位置: 首頁 > 运维知识 > 数据库 >内容正文

    数据库

    MySQL流程控制的使用

    發布時間:2025/3/20 数据库 23 豆豆
    生活随笔 收集整理的這篇文章主要介紹了 MySQL流程控制的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

    流程控制語句,用于將多個SQL語句,劃分或組成成符合業務邏輯的代碼塊

    流程控制語句

    包括,IF語句、CASE語句、LOOP語句、WHILE語句、LEAVE語句、ITERATE語句、REPEAT語句和WHILE語句

    每個流程中,可能包含一個單獨語句,也可以是使用BEGIN……END構造的復合語句,可以嵌套

    IF語句

    IF語句,是指如果滿足某種條件,根據判斷的結果為TRUE,或者FALSE執行相應的語句

    語法格式

    IF expr_condition THEN statement_list
    [ELSEIF expr_condition THEN statement_list]
    [ELSE statement_list]
    END IF
    IF實現了一個基本的條件構造

    參數說明

    Expr_condition,表示判斷條件
    Statement_list,表示SQL語句列表,它可以包括一個或多個語句

    如果,expr_condition求值為TRUE,相應的SQL語句列表就會被執行,如果,沒有expr_condition匹配,則ELSE子句李的語句列表被執行

    注意,MySQL中還有一個IF()函數,不同于這里的IF語句
    IF val IS NULL
    THEN SELECT ‘val is NULL’;
    ELSE SELECT ‘val is not NULL’;
    END IF;
    判斷val值是否為空
    如果,val值為空,輸出字符串val is NULL,否則,輸出字符串val is not NULL
    注意,IF語句都需要使用END IF來結束,不可省略

    CASE語句

    另一個進行條件判斷的語句,該語句有兩種語句格式

    第一種格式

    CASE case_expr
    WHEN when_value THEN statement_list
    [WHEN when_value THEN statement_list]……
    [ELSE statement_list]
    END CASE

    參數說明

    Case_expr,表示條件判斷的表達式,決定了哪一個WHEN自己會被執行
    When_value,表示表達式可能的值,如果,某個when_value表達式與case_expr表達式結果相同,則執行對應THEN關鍵字后的statement中的語句
    Statement_list,表示不同when_value值的執行語句

    使用CASE流程控制語句,第一種格式,判斷val值等于1、等于2,或者兩者都不等于
    CASE val
    WHEN 1 THEN SELECT ‘val is 1’;
    WHEN 2 THEN SELECT ‘val is 2’;
    ELSE SELECT ‘val is not 1 or 2’;
    END CASE;

    當val值為1時,輸出字符串val is 1
    當val值為2時,輸出字符串val is 2
    否則,輸出字符串val is not 1 or 2

    第二種格式

    CASE
    WHEN expr_condition THEN statement_list
    [WHEN expr_condition THEN statement_list]
    [ELSE statement_list]
    END CASE;

    注意,這里存儲過程中的CASE語句,與控制流程函數中的SQL CASE表達式中的CASE是不同的
    存儲過程中,CASE語句不能有ELSE NULL子句,并且,用END CASE代替END來終止

    LOOP語句

    LOOP循環語句,用來重復執行某些語句
    與IF和CASE語句相比,LOOP只是創建一個循環操作的過程,并不進行條件判斷
    LOOP內的語句一直重復執行,知道跳出循環語句

    語法格式

    [loop_label:] LOOP
    Statement_list
    END LOOP [loop_label]

    參數說明

    Loop_label,表示LOOP語句的標注名稱,該參數可以省略
    Statement,表示需要循環執行的語句

    使用LOOP 語句進行循環操作
    DECLARE id INT DEFAULT 0;
    Add_loop:LOOP
    SET id=id+1;
    IF id>=10 THEN LEAVE add_loop;
    END IF;
    END LOOP add_loop;

    循環執行了id加1的操作
    當id值小于10時,循環重復執行,當id值大于或者等于10時,使用LEAVE語句退出循環

    LEAVE語句

    用于退出任何被標注的流程控制結構

    語法格式

    LEAVE label

    參數說明

    label,表示循環的標志
    通常情況下,LEAVE語句與BEGIN……END、循環語句一起使用
    ITERATE,意思是再次循環

    ITERATE語句

    用于將執行順序轉到語句段的開頭處

    語法格式

    ITERATE lable

    參數說明

    Lable,表示循環的標志
    注意,ITERATE語句只可以出現在,LOOP、REPEAT和WHILE語句中

    演示ITERATE語句,在LOOP語句內的使用
    CREATE PROCEDURE doiterate()
    BEGIN
    DECLARE p1 INT DEFAULT 0;
    My_loop:LOOP
    SET p1=p1+1;
    IF p1<10 THEN ITERATE my_loop;
    ELSEIF p1>20 THEN LEAVE my_loop;
    END IF;
    SELECT ‘p1 is between 10 and 20’;
    END LOOP my_loop;
    END

    P1的初始值為0,如果,p1的值小于10時,重復執行p1加1的操作,當p1大于或等于10,并且小于20時,打印消息p1 is between 10 and 20,當p1大于20時,退出循環

    REPEAT語句

    用于創建一個帶有條件判斷的循環過程
    每次語句執行完畢之后,會對條件表達式進行判斷,如果表達式為真,則循環結束,否則,重復執行循環中的語句

    語法格式

    [repeat_lable:] REPEAT
    Statement_list
    UNTIL expr_condition
    END REPEAT [repeat_lable]

    參數說明

    Repeat_lable,為REPEAT語句的標注名稱,該參數是可選的
    REPEAT語句內的語句,或語句群被重復,直至expr_condition為真

    使用REPEAT語句,執行循環過程
    DECLARE id INT DEFAULT 0;
    REPEAT
    SET id=id+1;
    UNTIL id>=10;
    END REPEAT;

    WHILE語句

    創建一個帶條件判斷的循環過程
    與REPEAT不同的是,WHILE在語句執行時,先對指定的條件進行判斷,如果為真,則執行循環內的語句,否則退出循環

    語法格式

    [while_lable:] WHILE expr_condition DO
    Statement_list
    END WHILE [while_lable]

    參數說明

    While_lable,為WHILE語句的標注名稱
    Expr_condition,為進行判斷的表達式,如果表達式為真,WHILE語句內的語句,或語句群就被執行,直至expr_condition為假,退出循環

    使用WHILE語句,進行循環操作
    DECLARE i INT DEFAULT 0;
    WHILE i<10 DO
    SET i=i+1;
    END WHILE;

    總結

    以上是生活随笔為你收集整理的MySQL流程控制的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。