《MYSQL教程MySql存儲(chǔ)過(guò)程之邏輯判斷和條件控制》要點(diǎn):
本文介紹了MYSQL教程MySql存儲(chǔ)過(guò)程之邏輯判斷和條件控制,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
MYSQL數(shù)據(jù)庫(kù)具體詳情請(qǐng)看下文小編給大家?guī)?lái)的知識(shí)點(diǎn).
MYSQL數(shù)據(jù)庫(kù)同編寫(xiě)程序類(lèi)似,存儲(chǔ)過(guò)程中也有對(duì)應(yīng)的條件判斷,功能類(lèi)似于if、switch.在MySql里面對(duì)應(yīng)的是IF和CASE
MYSQL數(shù)據(jù)庫(kù)1、IF判斷
MYSQL數(shù)據(jù)庫(kù)IF判斷的格式是這樣的:
MYSQL數(shù)據(jù)庫(kù)
IF expression THEN commands
[ELSEIF expression THEN commands]
[ELSE commands]
END IF;
MYSQL數(shù)據(jù)庫(kù)這里expression是我們的判斷表達(dá)式;ELSE IF 和ELSE都是可選的;command就是當(dāng)條件為真(true為1,false為0)時(shí)執(zhí)行的命令.比如我們?cè)O(shè)計(jì)一個(gè)存儲(chǔ)過(guò)程用于返回商品的價(jià)格,這里價(jià)格通過(guò)傳入的參數(shù)來(lái)判斷是要帶稅收的價(jià)格還是沒(méi)有帶稅收的價(jià)格.先看看表的數(shù)據(jù):
MYSQL數(shù)據(jù)庫(kù)
MYSQL數(shù)據(jù)庫(kù)然后下面是我們的存儲(chǔ)過(guò)程:
MYSQL數(shù)據(jù)庫(kù)
MYSQL數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程的話有兩個(gè)輸入?yún)?shù),第一個(gè)isTaxed表示是不是要帶稅價(jià)格,第二個(gè)是產(chǎn)品的名稱(chēng);在存儲(chǔ)過(guò)程里面定義了兩個(gè)變量,finalPrice用來(lái)保存價(jià)格,而taxRate表示稅率.這里代碼比較簡(jiǎn)單,就是判斷下如果是要加稅,就把原來(lái)的價(jià)格乘上稅率.下面是測(cè)試結(jié)果:
MYSQL數(shù)據(jù)庫(kù)
MYSQL數(shù)據(jù)庫(kù)
MYSQL數(shù)據(jù)庫(kù)true的情況表示是帶稅的價(jià)格.好了這個(gè)是使用IF的一個(gè)例子,下面看看CASE;
MYSQL數(shù)據(jù)庫(kù)2、CASE的使用
MYSQL數(shù)據(jù)庫(kù)同編程里面的那個(gè)switch ....case.....類(lèi)似,使用CASE同編程一樣也是當(dāng)判斷比較多時(shí)便于閱讀和維護(hù),我們也來(lái)看下CASE的語(yǔ)法:
MYSQL數(shù)據(jù)庫(kù)
CASE case_expression
WHEN when_expression THEN commands
WHEN when_expression THEN commands
...
ELSE commands
END CASE;
MYSQL數(shù)據(jù)庫(kù)? a、這里可以看到CASE好比我們編程里面的那個(gè)switch,后面的case_expression就好比switch后面跟著的表達(dá)式;
MYSQL數(shù)據(jù)庫(kù)? b、然后WHEN則類(lèi)似編程里面的case,when_expression類(lèi)似case后面跟著的值,commands則對(duì)應(yīng)于相應(yīng)的case下執(zhí)行的命令;
MYSQL數(shù)據(jù)庫(kù)?c、最后一個(gè) ELSE 則類(lèi)似于default,就是如果都沒(méi)在上面那些WHEN里面的情況時(shí)執(zhí)行的命令.
MYSQL數(shù)據(jù)庫(kù)
下面我們假設(shè)不同類(lèi)型的商品對(duì)應(yīng)的稅收稅率是不一樣的情況來(lái)看個(gè)例子,這里假設(shè)甜點(diǎn)的稅率是0.05,奶制品的是0.1,家具類(lèi)的是0.2:,下面是存儲(chǔ)過(guò)程:
MYSQL數(shù)據(jù)庫(kù)
MYSQL數(shù)據(jù)庫(kù)上面增加了一個(gè)保存產(chǎn)品類(lèi)型的一個(gè)變量proType,用來(lái)保存商品類(lèi)型.然后使用CASE來(lái)進(jìn)行判斷來(lái)設(shè)置稅率,下面是測(cè)試的部分:
MYSQL數(shù)據(jù)庫(kù)可以看到沙發(fā)的價(jià)格是1250*1.2=1500,而蛋糕的價(jià)格是10*1.05 = 10.5
MYSQL數(shù)據(jù)庫(kù)
MYSQL數(shù)據(jù)庫(kù)
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/3261.html