最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql的判斷語句方式

 更新時(shí)間:2025年12月12日 15:35:09   作者:無語堵上西樓  
本文詳細(xì)介紹了SQL中的條件判斷(if...else...elseif...)、循環(huán)控制(while、repeat、loop)以及它們的使用方法和案例,涵蓋了SQL編程中的基本控制結(jié)構(gòu),對(duì)初學(xué)者和已有一定基礎(chǔ)的開發(fā)者都具有一定的參考價(jià)值

if

if 用于做條件判斷,具體的語法結(jié)構(gòu)如下,在if條件判斷的結(jié)構(gòu)中,ELSE IF 結(jié)構(gòu)可以有多個(gè),也可以沒有。

ELSE結(jié)構(gòu)可以有,也可以沒有。

?
IF 條件1 THEN
.....
ELSEIF 條件2 THEN -- 可選
.....
ELSE -- 可選
.....
END IF;

案例

create procedure p3()
begin
declare score int default 58;
declare result varchar(10);
if score >= 85 then
    set result := '優(yōu)秀';
elseif score >= 60 then
    set result := '及格';
else
    set result := '不及格';
end if;
select result;
end;
call p3();

case

如果判定條件有多個(gè),多個(gè)條件之間,可以使用 and or 進(jìn)行連接。

方法一

-- 含義: 當(dāng)case_value的值為 when_value1時(shí),執(zhí)行statement_list1,當(dāng)值為 when_value2時(shí),
執(zhí)行statement_list2, 否則就執(zhí)行 statement_list
CASE case_value
WHEN when_value1 THEN statement_list1
[ WHEN when_value2 THEN statement_list2] ...
[ ELSE statement_list ]
END CASE;

方法二

-- 含義: 當(dāng)條件search_condition1成立時(shí),執(zhí)行statement_list1,當(dāng)條件search_condition2成
立時(shí),執(zhí)行statement_list2, 否則就執(zhí)行 statement_list
CASE
WHEN search_condition1 THEN statement_list1
[WHEN search_condition2 THEN statement_list2] ...
[ELSE statement_list]
END CASE;

案例

create procedure p6(in month int)
begin
declare result varchar(16);
case
	when month >= 1 and month <= 3 then
		set result := '第一季度';
	when month >= 4 and month <= 6 then
		set result := '第二季度';
	when month >= 7 and month <= 9 then
		set result := '第三季度';
	when month >= 10 and month <= 12 then
		set result := '第四季度';
	else
		set result := '非法參數(shù)';
	end case ;
	
	select concat('您輸入的月份為: ',month, ', 所屬的季度為: ',result);
end;
call p6(16);

while

while 循環(huán)是有條件的循環(huán)控制語句。滿足條件后,再執(zhí)行循環(huán)體中的SQL語句。

-- 先判定條件,如果條件為true,則執(zhí)行邏輯,否則,不執(zhí)行邏輯
WHILE 條件 DO
    SQL邏輯...
END WHILE;

案例

-- A. 定義局部變量, 記錄累加之后的值;
-- B. 每循環(huán)一次, 就會(huì)對(duì)n進(jìn)行減1 , 如果n減到0, 則退出循環(huán)
create procedure p7(in n int)
	begin
	declare total int default 0;
	while n>0 do
		set total := total + n;
		set n := n - 1;
	end while;
	select total;
	end;
call p7(100);

repeat

repeat是有條件的循環(huán)控制語句, 當(dāng)滿足until聲明的條件的時(shí)候,則退出循環(huán)

-- 先執(zhí)行一次邏輯,然后判定UNTIL條件是否滿足,如果滿足,則退出。如果不滿足,則繼續(xù)下一次循環(huán)
REPEAT
    SQL邏輯...
    UNTIL 條件
END REPEAT;

案例

-- A. 定義局部變量, 記錄累加之后的值;
-- B. 每循環(huán)一次, 就會(huì)對(duì)n進(jìn)行-1 , 如果n減到0, 則退出循環(huán)
create procedure p8(in n int)
	begin
	declare total int default 0;
	repeat
		set total := total + n;
		set n := n - 1;
		until n <= 0
	end repeat;
	select total;
	end;
call p8(10);
call p8(100);

loop

LOOP 實(shí)現(xiàn)簡單的循環(huán),如果不在SQL邏輯中增加退出循環(huán)的條件,可以用其來實(shí)現(xiàn)簡單的死循環(huán)。

LOOP可以配合一下兩個(gè)語句使用:

  • LEAVE :配合循環(huán)使用,退出循環(huán)。
  • ITERATE:必須用在循環(huán)中,作用是跳過當(dāng)前循環(huán)剩下的語句,直接進(jìn)入下一次循環(huán)。
[begin_label:] LOOP
    SQL邏輯...
END LOOP [end_label];

LEAVE label; -- 退出指定標(biāo)記的循環(huán)體
ITERATE label; -- 直接進(jìn)入下一次循環(huán)

案例

-- A. 定義局部變量, 記錄累加之后的值;
-- B. 每循環(huán)一次, 就會(huì)對(duì)n進(jìn)行-1 , 如果n減到0, 則退出循環(huán) ----> leave xx
create procedure p9(in n int)
	begin
	declare total int default 0;
	sum:loop
		if n<=0 then
			leave sum;
		end if;
			set total := total + n;
			set n := n - 1;
	end loop sum;
	select total;
	end;
call p9(100);

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Mysql開啟慢SQL并分析原因

    Mysql開啟慢SQL并分析原因

    今天小編就為大家分享一篇關(guān)于Mysql開啟慢SQL并分析原因,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • 一文帶你了解MySQL中的鎖機(jī)制

    一文帶你了解MySQL中的鎖機(jī)制

    鎖是計(jì)算機(jī)協(xié)調(diào)多個(gè)進(jìn)程或線程并發(fā)訪問某一資源的機(jī)制(避免爭搶)。本文就來通過幾個(gè)簡單的實(shí)力為大家詳細(xì)講講MySQL中的鎖機(jī)制吧
    2023-02-02
  • MySQL中正則表達(dá)式(REGEXP)使用詳解

    MySQL中正則表達(dá)式(REGEXP)使用詳解

    正則表達(dá)式常用來檢索和替換那些符合魔種模式的文本,下面這篇文章主要給大家介紹了關(guān)于MySQL中正則表達(dá)式(REGEXP)使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • 深度解析MySQL存儲(chǔ)引擎與索引

    深度解析MySQL存儲(chǔ)引擎與索引

    本文全面解析了MySQL數(shù)據(jù)庫的核心知識(shí)體系,包括存儲(chǔ)引擎、索引優(yōu)化、SQL優(yōu)化、視圖與存儲(chǔ)過程、鎖機(jī)制以及InnoDB引擎原理等關(guān)鍵內(nèi)容,感興趣的朋友跟隨小編一起看看吧
    2026-05-05
  • MySQL中VARCHAR和TEXT的區(qū)別小結(jié)

    MySQL中VARCHAR和TEXT的區(qū)別小結(jié)

    MySQL中VARCHAR和TEXT用于存儲(chǔ)字符串,VARCHAR可變長度存儲(chǔ)在行內(nèi),適合短文本;TEXT存儲(chǔ)在溢出頁,適合大文本,下面就來具體的了解一下兩者的區(qū)別,感興趣的可以了解一下
    2025-09-09
  • 淺談MyISAM 和 InnoDB 的區(qū)別與優(yōu)化

    淺談MyISAM 和 InnoDB 的區(qū)別與優(yōu)化

    InnoDB和MyISAM是在使用MySQL最常用的兩個(gè)表類型,各有優(yōu)缺點(diǎn),視具體應(yīng)用而定。下面我們就來具體探討下吧
    2015-07-07
  • MySQL系統(tǒng)及自定義變量方式

    MySQL系統(tǒng)及自定義變量方式

    這篇文章主要介紹了MySQL系統(tǒng)及自定義變量方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • MySQL將時(shí)間戳轉(zhuǎn)換為年月日格式的實(shí)現(xiàn)

    MySQL將時(shí)間戳轉(zhuǎn)換為年月日格式的實(shí)現(xiàn)

    在我們的項(xiàng)目開發(fā)過程中,經(jīng)常需要將時(shí)間戳或日期時(shí)間字段轉(zhuǎn)換為特定的格式,本文主要介紹了MySQL將時(shí)間戳轉(zhuǎn)換為年月日格式的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • mysql如何將多行數(shù)據(jù)合并成一行

    mysql如何將多行數(shù)據(jù)合并成一行

    這篇文章主要介紹了mysql將多行數(shù)據(jù)合并成一行的方法,需要的朋友可以參考下
    2014-08-08
  • CentOS 6.4下編譯安裝MySQL5.6.14教程

    CentOS 6.4下編譯安裝MySQL5.6.14教程

    這篇文章主要為大家詳細(xì)介紹了CentOS 6.4下編譯安裝MySQL 5.6.14教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01

最新評(píng)論

宜城市| 措美县| 凤翔县| 临朐县| 聂荣县| 周至县| 平凉市| 类乌齐县| 甘孜| 兴安盟| 长岭县| 赞皇县| 太保市| 高陵县| 平邑县| 陆丰市| 鄯善县| 璧山县| 肥西县| 鹿邑县| 阜宁县| 万安县| 白山市| 天全县| 海门市| 城市| 瓮安县| 蒙阴县| 靖宇县| 会东县| 肥城市| 昌吉市| 焦作市| 姜堰市| 日土县| 太仓市| 博罗县| 东台市| 洪江市| 雷山县| 临城县|