流程控制結(jié)構(gòu):
順序結(jié)構(gòu):程序從上往下依次執(zhí)行
分支結(jié)構(gòu):程序從兩條或者多條路徑中選擇一條去執(zhí)行
循環(huán)結(jié)構(gòu):程序在滿足一定條件的基礎(chǔ)上悲关,重復(fù)執(zhí)行一段代碼
一. 分支結(jié)構(gòu)
1.if函數(shù)
功能:實(shí)現(xiàn)簡單的雙分支
語法:
if( 表達(dá)式1业踏,表達(dá)式2秕脓,表達(dá)式3)
執(zhí)行順序:(類似三元表達(dá)式)
如果表達(dá)式1成立队魏,則if函數(shù)返回表達(dá)式2的值室囊,否則返回表達(dá)式3的值
應(yīng)用:任何地方
2.case結(jié)構(gòu)
情況1:類似于java中的switch語句泼橘,一般用于實(shí)現(xiàn)等值判斷
語法:case 變量|表達(dá)式|字段
when 要判斷的值 then 返回的值1或語句1饲宿;
when 要判斷的值 then 返回的值2或語句2秩命;
...
else 要返回的值n或語句n尉共;
end case;
情況2:類似于java中的多量if語句弃锐,一般用于實(shí)現(xiàn)區(qū)間的判斷
語法:
case
when 要判斷的條件1 then 返回的值1或語句1袄友;
when 要判斷的條件1 then 返回的值2或語句2;
...
else 要返回的值n或語句n霹菊;
end case剧蚣;
特點(diǎn):
(1)可以作為表達(dá)式,嵌套在其他語句中使用旋廷,可以放在任何地方鸠按,befin end 中或begin end的外面
可以作為獨(dú)立的語句使用,只能放在begin end中
(2)如果when中的值滿足或條件成立饶碘,則執(zhí)行對應(yīng)的then 后面的語句目尖,并且結(jié)束case
如果都不滿足,則執(zhí)行else 中的語句或值
(3) else可以省略扎运,如果else省略了瑟曲,并且所有when條件都不滿足,則返回null
4.if結(jié)構(gòu)
功能:實(shí)現(xiàn)多重分支
語法:
if 條件1 then 語句1豪治;
elseif 條件2 then 語句2洞拨;
...
[else 語句 n;]
end if;
應(yīng)用在begin end 中
案例:
案例1:創(chuàng)建存儲過程,根據(jù)傳入的成績负拟,來顯示等級烦衣,比如傳入的成績:90——100.顯示A...
mysql> create procedure test_case (in score int)
-> begin
-> case
-> when score>=90 and score<=100 then select'A';
-> when score>=80 then select'B';
-> when score>=70 then select'C';
-> else select 'D';
-> end case;
-> end $
Query OK, 0 rows affected (0.11 sec)
mysql> call test_case(98)$
+---+
| A |
+---+
| A |
+---+
1 row in set (0.01 sec)
Query OK, 0 rows affected (0.01 sec)
案例2:創(chuàng)建存儲過程,根據(jù)傳入的成績掩浙,來顯示等級花吟,比如傳入的成績:90——100.返回A...
mysql> create function test_if(score int) returns char
-> begin
-> if score>=90 and score<=100 then return 'A';
-> elseif score>=80 then return 'B';
-> elseif score>=70 then return 'C';
-> else return 'D';
-> end if;
-> end $
Query OK, 0 rows affected (0.16 sec)
mysql> select test_if(85)$
+-------------+
| test_if(85) |
+-------------+
| B |
+-------------+
1 row in set, 1 warning (0.00 sec)
二.循環(huán)結(jié)構(gòu)
1.while
語法:
【標(biāo)志:】while 循環(huán)條件 do
循環(huán)體;
end while【標(biāo)志】厨姚;
2.loop
語法:
【標(biāo)志:】loop
循環(huán)體衅澈;
end loop【標(biāo)志】;
可以模擬簡單的死循環(huán)
3.repeat
語法:
【標(biāo)志:】repeat
循環(huán)體遣蚀;
until 結(jié)束循環(huán)的條件
end repeat【標(biāo)志】矾麻;
嗯??,這次的mysql學(xué)習(xí)就在這先告一段落芭梯,么么险耀。
注:這是本人的學(xué)習(xí)筆記及練習(xí),如果有錯誤的地方望指出一起討論玖喘,謝謝甩牺!