久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL中怎么使用游標

170次閱讀
沒有評論

共計 1916 個字符,預計需要花費 5 分鐘才能閱讀完成。

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

要明白什么是游標,首先要了解存儲過程,存儲過程是事先經過編譯并且存儲在數據庫中的一段 SQL 語句,他可以接受參數,也可以在其中使用 IF 語句、設置變量、循環等,比如下面語句用于創建一個存儲過程。【相關推薦:mysql 視頻教程】

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

調用存儲過程。

mysql  call select_all;$$

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

使用游標有以下幾個步驟。

1、游標定義

DECLARE cursor_name CURSOR FOR select_statement

2、打開游標

OPEN cursor_name;

3、獲取游標中的數據

FETCH cursor_name INTO var_name [, var_name]...

4、關閉光標

CLOSE cursor_name;

5、釋放光標

DEALLOCATE cursor_name;

實例

創建表

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));

下面我們通過游標,遍歷 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  
 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;  ,他表示如果游標或 SELECT 語句沒有數據的時候,將 done 變量的值設置   為 true,用來退出循環。

感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“MySQL 中怎么使用游標”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,更多相關知識等著你來學習!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-28發表,共計1916字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 临潭县| 武穴市| 海晏县| 永丰县| 革吉县| 阿坝县| 永胜县| 明溪县| 靖江市| 义马市| 寿光市| 永年县| 永善县| 晋城| 崇礼县| 衡山县| 鄂尔多斯市| 屏东县| 铜陵市| 湘阴县| 雅安市| 鹤庆县| 云龙县| 稷山县| 沙雅县| 元朗区| 临城县| 湟中县| 康马县| 浠水县| 遂川县| 乌海市| 织金县| 宾阳县| 安徽省| 肇州县| 凤山市| 启东市| 固安县| 永丰县| 申扎县|