mysql存儲過程的游標有什么作用

這篇文章主要講解了“MySQL存儲過程的游標有什么作用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“mysql存儲過程的游標有什么作用”吧!

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了渠縣免費建站歡迎大家使用!

在mysql存儲過程中,游標也稱為光標,是一個存儲在DBMS服務(wù)器上的數(shù)據(jù)庫查詢,是檢索操作返回一組結(jié)果集,一般用于對檢索出來的數(shù)據(jù)進行前進或者后退操作。

mysql存儲過程的游標有什么作用

本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。

在 MySQL 中,存儲過程或函數(shù)中的查詢有時會返回多條記錄,而使用簡單的 SELECT 語句,沒有辦法得到第一行、下一行或前十行的數(shù)據(jù),這時可以使用游標來逐條讀取查詢結(jié)果集中的記錄。游標在部分資料中也被稱為光標。

游標簡介

1、游標:也稱為光標,是一個存儲在DBMS服務(wù)器上的數(shù)據(jù)庫查詢,它不是一條select語句,而是被該語句檢索出來的結(jié)果集。

2、用途:對檢索出來的數(shù)據(jù)進行前進或者后退操作,主要用于交互式應(yīng)用,如用戶滾動屏幕上的數(shù)據(jù)

3、特性:

  • 能夠標記游標為只讀,使數(shù)據(jù)能讀取,但不能更新和刪除

  • 能控制可以執(zhí)行的定向操作(向前、向后、第一、最后、絕對位置、相對位置等)

  • 能標記某些列為可編輯的,某些列為不可編輯的

  • 規(guī)定范圍,使游標對創(chuàng)建它的特定請求(如存儲過程)或?qū)λ姓埱罂稍L問

  • 只是DBMS對檢索出的數(shù)據(jù)(而不是指出表中活動數(shù)據(jù))進行復(fù)制,使數(shù)據(jù)在游標打開和訪問期間不變化

4、支持游標的DBMS:DB2、MariaDB、MySQL 5、SQL Server、SQLite、Oracle和PostgreSQL,而Microsoft Access不支持

5、游標對基于Web的應(yīng)用用處不大(ASP、ASP.NET、ColdFusion、PHP、Python、Ruby、JSP等),大多數(shù)Web應(yīng)用開發(fā)人員不使用游標

6、使用:

  • 聲明游標: DECLARE cursor_name CURSOR FOR SELECT * FROM table_name;  // 還沒有檢索數(shù)據(jù)

-- MySQL游標的聲明
DECLARE cursor_name CURSOR FOR select_statement

-- SQL Server游標的聲明
DECLARE cursor_name CURSOR FOR select_statement [FOR [READ ONLY | UPDATE {[co lumn_list]}]]

-- Oracle游標的聲明
DECLARE CORSOR cursor_name IS {select_statement}
  • 打開游標:OPEN cursor_name; // 開始檢索數(shù)據(jù),即指定游標的SELECT語句被執(zhí)行,并且查詢的結(jié)果集被保存在內(nèi)存里的特定區(qū)域。

-- MySQL打開游標
OPEN cursor_name


-- SQL Server打開游標
OPEN cursor_name


-- Oracle打開游標
OPEN cursor_name [param1 [, param2]]
  • 獲取數(shù)據(jù):FETCH cursor_name into var1,var2,...,varn; // 當游標cursor_name檢索完數(shù)據(jù)后,只有等到下一次fetch時才會觸發(fā)結(jié)束的標志

-- MySQL游標獲取數(shù)據(jù)
FETCH cursor_name INTO var1_name [, var2_name] ...


-- SQL Server游標獲取數(shù)據(jù)
FETCH NEXT FROM cursor_name [INTO fetch_list]


-- Oracle游標獲取數(shù)據(jù)
FETCH cursor_name  {INTO : host_var1 [[INDICATOR] : indicator_var1] [, : host_var2 [[INDICATOR] : indicator_var2]] | USING DESCRIPTOR DESCRIPTOR}
  • 關(guān)閉游標:CLOSE cursor_name;

-- MySQL關(guān)閉游標,會主動釋放資源,所以不需要DEALLOCATE語句
CLOSE cursor_name


-- SQL Server關(guān)閉游標和釋放資源
CLOSE cursor_name
DEALLOCATE cursor_name


-- Oracle關(guān)閉游標,會主動釋放資源,所以不需要DEALLOCATE語句
CLOSE cursor_name

感謝各位的閱讀,以上就是“mysql存儲過程的游標有什么作用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對mysql存儲過程的游標有什么作用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

文章標題:mysql存儲過程的游標有什么作用
當前URL:http://muchs.cn/article0/ijsdoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航網(wǎng)站營銷、用戶體驗、Google、域名注冊、App設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站