真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MySQL中怎么使用游標(biāo)

這篇文章主要介紹了MySQL中怎么使用游標(biāo),具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

站在用戶的角度思考問題,與客戶深入溝通,找到寶豐網(wǎng)站設(shè)計(jì)與寶豐網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請(qǐng)域名、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋寶豐地區(qū)。

要明白什么是游標(biāo),首先要了解存儲(chǔ)過程,存儲(chǔ)過程是事先經(jīng)過編譯并且存儲(chǔ)在數(shù)據(jù)庫中的一段SQL語句,他可以接受參數(shù),也可以在其中使用IF語句、設(shè)置變量、循環(huán)等,比如下面語句用于創(chuàng)建一個(gè)存儲(chǔ)過程?!鞠嚓P(guān)推薦:mysql視頻教程】

delimiter $$
create procedure select_all() begin select * from user; end;$$

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

mysql>  call select_all;$$

存儲(chǔ)過程可以減少數(shù)據(jù)庫和應(yīng)用服務(wù)器之間的傳輸,對(duì)提供數(shù)據(jù)庫處理效率還是有好處的,而游標(biāo)(Cursor)有的地方又叫光標(biāo),可以在存儲(chǔ)過程中,對(duì)結(jié)果集進(jìn)行循環(huán)處理,但是目前,MySQL只允許我們從SELECT語句從頭到尾獲取結(jié)果集中的每一行,無法從最后一行獲取到第一行,也無法直接跳轉(zhuǎn)到結(jié)果集中的指定行。

使用游標(biāo)有以下幾個(gè)步驟。

1、游標(biāo)定義

DECLARE cursor_name CURSOR FOR select_statement

2、打開游標(biāo)

OPEN cursor_name;

3、獲取游標(biāo)中的數(shù)據(jù)

FETCH cursor_name INTO var_name [, var_name]...

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

CLOSE cursor_name;

5、釋放光標(biāo)

DEALLOCATE cursor_name;

實(shí)例

創(chuàng)建表

CREATE TABLE cursor_table
(id INT ,name VARCHAR(10),age INT
)ENGINE=innoDB DEFAULT CHARSET=utf8;
insert into cursor_table values(1, '張三', 500);
insert into cursor_table values(2, '李四', 200);
insert into cursor_table values(3, '王五', 100);
insert into cursor_table values(4, '老六', 20);


create table cursor_table_user(name varchar(10));

下面我們通過游標(biāo),遍歷cursor_table表,把年齡大于30的人名存放到cursor_table_user

drop procedure getTotal;
delete from cursor_table_user ;

CREATE  PROCEDURE getTotal()
BEGIN  
   DECLARE total INT; 
   DECLARE sid INT;  
   DECLARE sname VARCHAR(10);  
   DECLARE sage INT;  
   DECLARE done INT DEFAULT false;  
   DECLARE cur CURSOR FOR SELECT id,name,age from cursor_table where age>30;  
   DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = true;   
   SET total = 0;  
   OPEN cur;  
   FETCH cur INTO sid, sname, sage;  
   WHILE(NOT done) 
   DO  
       insert cursor_table_user values(sname);
       SET total = total + 1;  
       FETCH cur INTO sid, sname, sage;  
       
   END WHILE;  
   CLOSE cur;  
   SELECT total;  
END
call getTotal();

mysql> select * from cursor_table_user;
+--------+
| name   |
+--------+
| 張三   |
| 李四   |
| 王五   |
+--------+
3 rows in set (0.00 sec)

這段程序有一行非常重要,DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = true;  ,他表示如果游標(biāo)或SELECT語句沒有數(shù)據(jù)的時(shí)候,將done變量的值設(shè)置  為 true,用來退出循環(huán)。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“MySQL中怎么使用游標(biāo)”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!


網(wǎng)頁名稱:MySQL中怎么使用游標(biāo)
網(wǎng)頁地址:http://weahome.cn/article/jigops.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部