新聞中心

10年積累的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有武都免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
下面將詳細(xì)講解這些流程控制語句。
1. IF語句
IF 語句用來進(jìn)行條件判斷,根據(jù)是否滿足條件(可包含多個(gè)條件),來執(zhí)行不同的語句,是流程控制中最常用的判斷語句。其語法的基本形式如下:
IF search_condition THEN statement_list
[ELSEIF search_condition THEN statement_list]...
[ELSE statement_list]
END IF
其中,search_condition 參數(shù)表示條件判斷語句,如果返回值為 TRUE ,相應(yīng)的 SQL 語句列表(statement_list)被執(zhí)行;如果返回值為 FALSE,則 ELSE 子句的語句列表被執(zhí)行。statement_list 可以包括一個(gè)或多個(gè)語句。
例 1
下面是一個(gè)使用 IF 語句的示例。代碼如下:
IF age>20 THEN SET @count1=@count1+1;
ELSEIF age=20 THEN @count2=@count2+1;
ELSE @count3=@count3+1;
END lF;
該示例根據(jù) age 與 20 的大小關(guān)系來執(zhí)行不同的 SET 語句。如果 age 值大于20,那么將 count1 的值加 1;如果 age 值等于 20,那么將 count2 的值加 1;其他情況將 count3 的值加 1。IF 語句都需要使用 END IF 來結(jié)束。
2. CASE語句
CASE 語句也是用來進(jìn)行條件判斷的,它提供了多個(gè)條件進(jìn)行選擇,可以實(shí)現(xiàn)比 IF 語句更復(fù)雜的條件判斷。CASE 語句的基本形式如下:
CASE case_value
WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list]...
[ELSE statement_list]
END CASE
其中:
- case_value 參數(shù)表示條件判斷的變量,決定了哪一個(gè) WHEN 子句會(huì)被執(zhí)行;
- when_value 參數(shù)表示變量的取值,如果某個(gè) when_value 表達(dá)式與 case_value 變量的值相同,則執(zhí)行對應(yīng)的 THEN 關(guān)鍵字后的 statement_list 中的語句;
- statement_list 參數(shù)表示 when_value 值沒有與 case_value 相同值時(shí)的執(zhí)行語句。
- CASE 語句都要使用 END CASE 結(jié)束。
CASE 語句還有另一種形式。該形式的語法如下:
CASE
WHEN search_condition THEN statement_list
[WHEN search_condition THEN statement_list] ...
[ELSE statement_list]
END CASE
其中,search_condition 參數(shù)表示條件判斷語句;statement_list 參數(shù)表示不同條件的執(zhí)行語句。
與上述語句不同的是,該語句中的 WHEN 語句將被逐個(gè)執(zhí)行,直到某個(gè) search_condition 表達(dá)式為真,則執(zhí)行對應(yīng) THEN 關(guān)鍵字后面的 statement_list 語句。如果沒有條件匹配,ELSE 子句里的語句被執(zhí)行。
例 2
下面是一個(gè)使用 CASE 語句的示例。代碼如下:
CASE age
WHEN 20 THEN SET @count1=@count1+1;
ELSE SET @count2=@count2+1;
END CASE;
代碼也可以是下面的形式:
CASE
WHEN age=20 THEN SET @count1=@count1+1;
ELSE SET @count2=@count2+1;
END CASE;
本示例中,如果 age 值為 20,count1 的值加 1,否則 count2 的值加 1。
3. LOOP 語句
LOOP 語句可以使某些特定的語句重復(fù)執(zhí)行。與 IF 和 CASE 語句相比,LOOP 只實(shí)現(xiàn)了一個(gè)簡單的循環(huán),并不進(jìn)行條件判斷。
LOOP 語句本身沒有停止循環(huán)的語句,必須使用 LEAVE 語句等才能停止循環(huán),跳出循環(huán)過程。LOOP 語句的基本形式如下:
[begin_label:]LOOP
statement_list
END LOOP [end_label]
其中,begin_label 參數(shù)和 end_label 參數(shù)分別表示循環(huán)開始和結(jié)束的標(biāo)志,這兩個(gè)標(biāo)志必須相同,而且都可以省略;statement_list 參數(shù)表示需要循環(huán)執(zhí)行的語句。
例 3
使用 LOOP 語句進(jìn)行循環(huán)操作。代碼如下:
add_num:LOOP
SET @count=@count+1;
END LOOP add_num;
該示例循環(huán)執(zhí)行 count 加 1 的操作。因?yàn)闆]有跳出循環(huán)的語句,這個(gè)循環(huán)成了一個(gè)死循環(huán)。LOOP 循環(huán)都以 END LOOP 結(jié)束。
4. LEAVE 語句
LEAVE 語句主要用于跳出循環(huán)控制。其語法形式如下:
LEAVE label
其中,label 參數(shù)表示循環(huán)的標(biāo)志,LEAVE 語句必須跟在循環(huán)標(biāo)志前面。
例 4
下面是一個(gè) LEAVE 語句的示例。代碼如下:
add_num:LOOP
SET @count=@count+1;
IF @count=100 THEN
LEAVE add_num;
END LOOP add num;
該示例循環(huán)執(zhí)行 count 加 1 的操作。當(dāng) count 的值等于 100 時(shí),跳出循環(huán)。
5. ITERATE 語句
ITERATE 是“再次循環(huán)”的意思,用來跳出本次循環(huán),直接進(jìn)入下一次循環(huán)。ITERATE 語句的基本語法形式如下:
ITERATE label
其中,label 參數(shù)表示循環(huán)的標(biāo)志,ITERATE 語句必須跟在循環(huán)標(biāo)志前面。
例 5
下面是一個(gè) ITERATE 語句的示例。代碼如下:
add_num:LOOP
SET @count=@count+1;
IF @count=100 THEN
LEAVE add_num;
ELSE IF MOD(@count,3)=0 THEN
ITERATE add_num;
SELECT * FROM employee;
END LOOP add_num;
該示例循環(huán)執(zhí)行 count 加 1 的操作,count 值為 100 時(shí)結(jié)束循環(huán)。如果 count 的值能夠整除 3,則跳出本次循環(huán),不再執(zhí)行下面的 SELECT 語句。
6. REPEAT 語句
REPEAT 語句是有條件控制的循環(huán)語句,每次語句執(zhí)行完畢后,會(huì)對條件表達(dá)式進(jìn)行判斷,如果表達(dá)式返回值為 TRUE,則循環(huán)結(jié)束,否則重復(fù)執(zhí)行循環(huán)中的語句。
REPEAT 語句的基本語法形式如下:
[begin_label:] REPEAT
statement_list
UNTIL search_condition
END REPEAT [end_label]
其中:
- begin_label 為 REPEAT 語句的標(biāo)注名稱,該參數(shù)可以省略;
- REPEAT 語句內(nèi)的語句被重復(fù),直至 search_condition 返回值為 TRUE。
- statement_list 參數(shù)表示循環(huán)的執(zhí)行語句;
- search_condition 參數(shù)表示結(jié)束循環(huán)的條件,滿足該條件時(shí)循環(huán)結(jié)束。
- REPEAT 循環(huán)都用 END REPEAT 結(jié)束。
例 6
下面是一個(gè)使用 REPEAT 語句的示例。代碼如下:
REPEAT
SET @count=@count+1;
UNTIL @count=100
END REPEAT;
該示例循環(huán)執(zhí)行 count 加 1 的操作,count 值為 100 時(shí)結(jié)束循環(huán)。
7. WHILE 語句
WHILE 語句也是有條件控制的循環(huán)語句。WHILE 語句和 REPEAT 語句不同的是,WHILE 語句是當(dāng)滿足條件時(shí),執(zhí)行循環(huán)內(nèi)的語句,否則退出循環(huán)。WHILE 語句的基本語法形式如下:
[begin_label:] WHILE search_condition DO
statement list
END WHILE [end label]
其中,search_condition 參數(shù)表示循環(huán)執(zhí)行的條件,滿足該條件時(shí)循環(huán)執(zhí)行;statement_list 參數(shù)表示循環(huán)的執(zhí)行語句。WHILE 循環(huán)需要使用 END WHILE 來結(jié)束。
例 7
下面是一個(gè)使用 WHILE 語句的示例。代碼如下:
WHILE @count<100 DO
SET @count=@count+1;
END WHILE;
該示例循環(huán)執(zhí)行 count 加 1 的操作,count 值小于 100 時(shí)執(zhí)行循環(huán)。如果 count 值等于 100 了,則跳出循環(huán)。
本文標(biāo)題:MySQL流程控制語句詳解
URL鏈接:http://fisionsoft.com.cn/article/djdosje.html


咨詢
建站咨詢
