在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; // 還沒有檢索資料1 2 3 4 5 6 7 8 | -- 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語句被執行,並且查詢的結果集被保存在記憶體裡的特定區域。 1 2 3 4 5 6 7 8 9 10 | -- 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時才會觸發結束的標誌1 2 3 4 5 6 7 8 9 10 | -- 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;1 2 3 4 5 6 7 8 9 10 11 | -- MySQL关闭游标,会主动释放资源,所以不需要DEALLOCATE语句
CLOSE cursor_name
-- SQL Server关闭游标和释放资源
CLOSE cursor_name
DEALLOCATE cursor_name
-- Oracle关闭游标,会主动释放资源,所以不需要DEALLOCATE语句
CLOSE cursor_name
|
登入後複製
【相關推薦:
mysql影片教學】
以上是mysql預存程序的遊標是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!