這篇文章將為大家詳細(xì)講解有關(guān)MySQL流程控制語(yǔ)句是什么,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
秦州網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),秦州網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為秦州上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的秦州做網(wǎng)站的公司定做!
mysql中的流程控制語(yǔ)句包括有:IF語(yǔ)句、CASE語(yǔ)句、LOOP語(yǔ)句、WHILE語(yǔ)句、REPEAT語(yǔ)句、LEAVE語(yǔ)句和ITERATE語(yǔ)句,它們都可以來(lái)控制程序的流程。
在存儲(chǔ)過(guò)程和自定義函數(shù)中可以使用流程控制語(yǔ)句來(lái)控制程序的流程。MySQL 中流程控制語(yǔ)句有::IF語(yǔ)句、CASE語(yǔ)句、LOOP語(yǔ)句、WHILE語(yǔ)句、REPEAT語(yǔ)句、LEAVE語(yǔ)句和ITERATE語(yǔ)句,它們可以進(jìn)行流程控制。
1、IF語(yǔ)句
IF語(yǔ)句用來(lái)進(jìn)行條件判斷,根據(jù)不同的條件執(zhí)行不同的操作。該語(yǔ)句在執(zhí)行時(shí)首先判斷IF后的條件是否為真,則執(zhí)行THEN后的語(yǔ)句,如果為假則繼續(xù)判斷IF語(yǔ)句直到為真為止,當(dāng)以上都不滿足時(shí)則執(zhí)行ELSE語(yǔ)句后的內(nèi)容。IF語(yǔ)句表示形式如下:
IF condition THEN ... ELSE condition THEN ... ELSE ... END IF
示例:使用IF語(yǔ)句用來(lái)進(jìn)行條件判斷。
-- 創(chuàng)建存儲(chǔ)過(guò)程 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; END; -- 調(diào)用存儲(chǔ)過(guò)程 CALL example_if(2);
注意:MySQL 中的 IF( ) 函數(shù)不同于這里的 IF 語(yǔ)句。
2、CASE語(yǔ)句
CASE語(yǔ)句為多分支語(yǔ)句結(jié)構(gòu),該語(yǔ)句首先從WHEN后的VALUE中查找與CASE后的VALUE相等的值,如果查找到則執(zhí)行該分支的內(nèi)容,否則執(zhí)行ELSE后的內(nèi)容。CASE語(yǔ)句表示形式如下:
CASE value WHEN value THEN ... WHEN value THEN ... ELSE ... END CASE
CASE語(yǔ)句另一種語(yǔ)法表示形式如下:
CASE WHEN value THEN ... WHEN value THEN ... ELSE ... END CASE
示例:使用CASE語(yǔ)句用來(lái)進(jìn)行條件判斷。
-- 創(chuàng)建存儲(chǔ)過(guò)程 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; END; -- 調(diào)用存儲(chǔ)過(guò)程 CALL example_case(5);
3、WHILE循環(huán)語(yǔ)句
WHILE循環(huán)語(yǔ)句執(zhí)行時(shí)首先判斷condition條件是否為真,如果是則執(zhí)行循環(huán)體,否則退出循環(huán)。該語(yǔ)法表示形式如下:
WHILE condition DO ... END WHILE;
示例:使用WHILE循環(huán)語(yǔ)句執(zhí)行求前100的和。
-- 創(chuàng)建存儲(chǔ)過(guò)程 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; END; -- 調(diào)用存儲(chǔ)過(guò)程 CALL example_while(@sum); SELECT @sum;
4、LOOP循環(huán)語(yǔ)句
LOOP循環(huán)沒(méi)有內(nèi)置的循環(huán)條件,但可以通過(guò)LEAVE語(yǔ)句退出循環(huán)。LOOP語(yǔ)句表示形式如下:
LOOP ... END LOOP
LOOP語(yǔ)句允許某特定語(yǔ)句或語(yǔ)句群的重復(fù)執(zhí)行,實(shí)現(xiàn)一個(gè)簡(jiǎn)單的循環(huán)構(gòu)造,在循環(huán)內(nèi)的語(yǔ)句一直重復(fù)直至循環(huán)被退出,退出循環(huán)應(yīng)用LEAVE語(yǔ)句。
LEAVE語(yǔ)句經(jīng)常和BEGIN...END或者循環(huán)一起使用,其表示形式如下:
LEAVE label
label是語(yǔ)句中標(biāo)注的名字,這個(gè)名字是自定義的。
示例:使用LOOP循環(huán)語(yǔ)句求前100的和。
-- 創(chuàng)建存儲(chǔ)過(guò)程 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循環(huán) LEAVE loop_label; END IF; END LOOP; SET sum = s; END; -- 調(diào)用存儲(chǔ)過(guò)程 CALL example_loop(@sum); SELECT @sum;
5、REPEAT循環(huán)語(yǔ)句
REPEAT循環(huán)語(yǔ)句先執(zhí)行一次循環(huán)體,之后判斷condition條件是否為真,則退出循環(huán),否則繼續(xù)執(zhí)行循環(huán)。REPEAT語(yǔ)句表示形式如下:
REPEAT ... UNTIL condition END REPEAT
示例:使用REPEAT循環(huán)語(yǔ)句求前100的和。
-- 創(chuàng)建存儲(chǔ)過(guò)程 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; END; -- 調(diào)用存儲(chǔ)過(guò)程 CALL example_repeat(@sum); SELECT @sum;
6、ITERATE語(yǔ)句
ITERATE語(yǔ)句可以出現(xiàn)在LOOP、REPEAT和WHILE語(yǔ)句內(nèi),其意為“再次循環(huán)”。語(yǔ)句格式如下:
ITERATE label
該語(yǔ)句的格式與LEAVE大同小異,區(qū)別在于:LEAVE語(yǔ)句是離開(kāi)一個(gè)循環(huán),而ITERATE語(yǔ)句是重新開(kāi)始一個(gè)循環(huán)。
示例:求10以內(nèi)奇數(shù)值的和。
-- 創(chuàng)建存儲(chǔ)過(guò)程 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 -- 退出整個(gè)循環(huán) LEAVE loop_label; END IF; IF (i mod 2) THEN SET s = s+i; ELSE -- 退出本次循環(huán),繼續(xù)下一個(gè)循環(huán) ITERATE loop_label; END IF; END LOOP; SET sum = s; END; -- 調(diào)用存儲(chǔ)過(guò)程 CALL example_iterate(@sum); SELECT @sum
關(guān)于mysql流程控制語(yǔ)句是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
新聞名稱:mysql流程控制語(yǔ)句是什么
文章URL:http://jinyejixie.com/article14/gggoge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站排名、電子商務(wù)、用戶體驗(yàn)、網(wǎng)站設(shè)計(jì)公司、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)