中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

mysql中光標(biāo)怎樣書寫

這篇文章主要介紹MySQL中光標(biāo)怎樣書寫,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的前鋒網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

mysql中光標(biāo)書寫的方法:首先聲明光標(biāo);然后開啟光標(biāo),代碼為【OPEN cursor_name】;接著捕獲光標(biāo);最后關(guān)閉光標(biāo),代碼為【CLOSE cursor_name】。

mysql中光標(biāo)書寫的方法:

1,什么是光標(biāo)

在存儲(chǔ)過程或函數(shù)中,可以使用光標(biāo)對(duì)結(jié)果集進(jìn)行循環(huán)處理。以下是個(gè)人的見解,光標(biāo)就類似于java循環(huán)中的自增變量i。

2,光標(biāo)的使用

光標(biāo)的使用包括一下三個(gè)步驟:

1,聲明光標(biāo)

格式:DECLARE cursor_name CURSOR FOR select_statement;

cursor_name:光標(biāo)名,用戶自己設(shè)定,最好見名知意。

select_statement:完整的查詢語句,查詢表中的列名(后面案例詳解)。

2,開啟光標(biāo)

cursor_name:聲明時(shí)的光標(biāo)名。

格式:OPEN cursor_name;

3,捕獲光標(biāo)

格式:FETCH cursor_name INTO var_name...;(...表示可以有多個(gè))

cursor_name:聲明時(shí)的光標(biāo)名。

var_name:自定義的變量名。(后面案例詳解)

4,關(guān)閉光標(biāo)

格式:CLOSE cursor_name;

cursor_name:聲明時(shí)的光標(biāo)名。

3,光標(biāo)使用的小案例

該案例并沒有實(shí)際的意義,只是單純的為了演示光標(biāo)使用

首先創(chuàng)建一個(gè)users表

CREATE TABLE `users` (
  `u_id` int(4) NOT NULL,
  `u_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
  `u_age` int(4) DEFAULT NULL,
  PRIMARY KEY (`u_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

插入以下數(shù)據(jù)

創(chuàng)建一個(gè)存儲(chǔ)過程,名為select_age

BEGIN
    #Routine body goes here...
    declare i_user_id int;
    declare i_user_age int;
    declare cur_age cursor for select u_id,u_age from users;
    declare exit handler for not FOUND close cur_age;
    set @age_ji = 0;
    set @age_ou = 0;
    
    open cur_age;
    REPEAT
        fetch cur_age into i_user_id,i_user_age;
        if i_user_id%2 = 1 THEN
            set @age_ji = @age_ji + i_user_age; 
        else
            set @age_ou = @age_ou + i_user_age;
        end if;
    until 0 end REPEAT;
    close cur_age;
END

調(diào)用該存儲(chǔ)過程

call select_age();
select @age_ji,@age_ou;

代碼的詳細(xì)解釋:

1,首先定義兩個(gè)局部變量 i_user_id,i_user_age;用來存放光標(biāo)遍歷的表的列。

2,聲明一個(gè)光標(biāo),遍歷users表中的u_id,u_age 兩列。

3,聲明一個(gè)異常,在發(fā)生異常時(shí)關(guān)閉光標(biāo)。

4,設(shè)置兩個(gè)用戶變量用來存儲(chǔ)最終結(jié)果。

5,開啟光標(biāo)。

6,寫一個(gè)循環(huán)體,終結(jié)條件是遍歷到表的最后一列。

7,捕獲光標(biāo),將遍歷到的內(nèi)容放到兩個(gè)局部變量里面。

8,通過對(duì) i_user_id 的奇偶的判斷,分別將i_user_age 加到兩個(gè)用戶變量中

9,關(guān)閉光標(biāo)。

4,注意事項(xiàng)

變量,自定義異常,異常處理,光標(biāo)都是通過declare關(guān)鍵字定義的,他們之間是有順序要求的。變量、自定義異常必須放在最前面,然后是光標(biāo)的聲明,最后是異常處理的聲明。

以上是mysql中光標(biāo)怎樣書寫的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)頁題目:mysql中光標(biāo)怎樣書寫
網(wǎng)頁鏈接:http://www.rwnh.cn/article22/peopjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站設(shè)計(jì)公司、小程序開發(fā)、網(wǎng)站導(dǎo)航、自適應(yīng)網(wǎng)站、響應(yīng)式網(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í)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
武山县| 蛟河市| 石城县| 靖宇县| 巫溪县| 陈巴尔虎旗| 江城| 视频| 闽侯县| 鱼台县| 西峡县| 通海县| 嘉兴市| 水城县| 柏乡县| 冷水江市| 闸北区| 湖南省| 吉隆县| 舟曲县| 阳新县| 塘沽区| 唐山市| 锡林浩特市| 略阳县| 那曲县| 务川| 南投县| 吕梁市| 常州市| 遵化市| 武威市| 东安县| 瑞昌市| 瓦房店市| 隆化县| 和硕县| 疏附县| 千阳县| 五莲县| 南丰县|