成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

mysql流程控制語(yǔ)句是什么

這篇文章將為大家詳細(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)

成都定制網(wǎng)站建設(shè)
哈尔滨市| 临洮县| 蒙城县| 榆社县| 巴林右旗| 南涧| 邳州市| 四平市| 灵武市| 辉县市| 乐安县| 鸡泽县| 龙陵县| 洮南市| 明星| 平乐县| 诏安县| 马边| 山西省| 鄄城县| 色达县| 沿河| 牡丹江市| 确山县| 年辖:市辖区| 柞水县| 松阳县| 双桥区| 芦山县| 独山县| 永平县| 陆河县| 资兴市| 镇平县| 旌德县| 太原市| 育儿| 饶平县| 霍山县| 武乡县| 临潭县|