您好,登錄后才能下訂單哦!
這篇文章主要講解了“mysql存儲過程的游標有什么作用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“mysql存儲過程的游標有什么作用”吧!
在mysql存儲過程中,游標也稱為光標,是一個存儲在DBMS服務器上的數據庫查詢,是檢索操作返回一組結果集,一般用于對檢索出來的數據進行前進或者后退操作。
本教程操作環境:windows7系統、mysql8版本、Dell G3電腦。
在 MySQL 中,存儲過程或函數中的查詢有時會返回多條記錄,而使用簡單的 SELECT 語句,沒有辦法得到第一行、下一行或前十行的數據,這時可以使用游標來逐條讀取查詢結果集中的記錄。游標在部分資料中也被稱為光標。
游標簡介
1、游標:也稱為光標,是一個存儲在DBMS服務器上的數據庫查詢,它不是一條select語句,而是被該語句檢索出來的結果集。
2、用途:對檢索出來的數據進行前進或者后退操作,主要用于交互式應用,如用戶滾動屏幕上的數據
3、特性:
能夠標記游標為只讀,使數據能讀取,但不能更新和刪除
能控制可以執行的定向操作(向前、向后、第一、最后、絕對位置、相對位置等)
能標記某些列為可編輯的,某些列為不可編輯的
規定范圍,使游標對創建它的特定請求(如存儲過程)或對所有請求可訪問
只是DBMS對檢索出的數據(而不是指出表中活動數據)進行復制,使數據在游標打開和訪問期間不變化
4、支持游標的DBMS:DB2、MariaDB、MySQL 5、SQL Server、SQLite、Oracle和PostgreSQL,而Microsoft Access不支持
5、游標對基于Web的應用用處不大(ASP、ASP.NET、ColdFusion、PHP、Python、Ruby、JSP等),大多數Web應用開發人員不使用游標
6、使用:
聲明游標: DECLARE cursor_name CURSOR FOR SELECT * FROM table_name; // 還沒有檢索數據
-- 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; // 開始檢索數據,即指定游標的SELECT語句被執行,并且查詢的結果集被保存在內存里的特定區域。
-- MySQL打開游標 OPEN cursor_name -- SQL Server打開游標 OPEN cursor_name -- Oracle打開游標 OPEN cursor_name [param1 [, param2]]
獲取數據:FETCH cursor_name into var1,var2,...,varn; // 當游標cursor_name檢索完數據后,只有等到下一次fetch時才會觸發結束的標志
-- MySQL游標獲取數據 FETCH cursor_name INTO var1_name [, var2_name] ... -- SQL Server游標獲取數據 FETCH NEXT FROM cursor_name [INTO fetch_list] -- Oracle游標獲取數據 FETCH cursor_name {INTO : host_var1 [[INDICATOR] : indicator_var1] [, : host_var2 [[INDICATOR] : indicator_var2]] | USING DESCRIPTOR DESCRIPTOR}
關閉游標:CLOSE cursor_name;
-- MySQL關閉游標,會主動釋放資源,所以不需要DEALLOCATE語句 CLOSE cursor_name -- SQL Server關閉游標和釋放資源 CLOSE cursor_name DEALLOCATE cursor_name -- Oracle關閉游標,會主動釋放資源,所以不需要DEALLOCATE語句 CLOSE cursor_name
感謝各位的閱讀,以上就是“mysql存儲過程的游標有什么作用”的內容了,經過本文的學習后,相信大家對mysql存儲過程的游標有什么作用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。