游標(cursor)是乙個儲存在dbms伺服器上的資料庫查詢,它不是一條select語句,而是被該語句檢索出來的結果集。在儲存了游標之後,應用程式可以根據需要滾動或瀏覽其中的資料。
使用游標的步驟:
在使用游標前,必須宣告(定義)它。這個過程實際上沒有檢索資料,它只是定義要使用的select語句和游標選項。
一旦宣告,就必須開啟游標以供使用。這個過程用前面定義的select語句把資料實際檢索出來。
對於填有資料的游標,根據需要取出(檢索)各行。
在結束游標使用時,必須關閉游標,可能的話,釋放游標(有賴於具體的dbms)。
宣告游標後,可根據需要頻繁地開啟和關閉游標。在游標開啟時,可根據需要頻繁地執行取操作。
1. 建立游標
在sql server中使用declare
命名游標,並定義相應的select
語句,根據需要帶where
和其他子句,示例如下:
12. 使用游標declare custcursor cursor
2for
3select
*from
customers
4where cust_email is
null
使用open cursor
語句開啟游標,使用fetch
語句訪問游標資料了。fetch
指出要檢索哪些行,從何處檢索它們以及將它們放於何處(如變數名),下面是sql server中使用游標的示例:
1在此例中,為每個檢索出的列宣告乙個變數,fetch語句檢索一行並儲存值到這些變數中。使用while迴圈處理每一行,條件while @@fetch_status = 0在取不出更多的行時終止處理(退出迴圈)。這個例子也不進行具體的處理,實際**中,應該用具體的處理**替換其中的declare
@cust_id
char(10),2
@cust_name
char(50),3
@cust_address
char(50),4
@cust_city
char(50),5
@cust_state
char(5),6
@cust_zip
char(10),7
@cust_country
char(50),8
@cust_contact
char(50),9
@cust_email
char(255)10
open
custcursor
11fetch
next
from
custcursor
12into
@cust_id, @cust_name, @cust_address,13
@cust_city, @cust_state, @cust_zip,14
@cust_country, @cust_contact, @cust_email
15while
@@fetch_status=0
16begin
1718
fetch
next
from
custcursor
19into
@cust_id, @cust_name, @cust_address,20
@cust_city, @cust_state, @cust_zip,21
@cust_country, @cust_contact, @cust_email
22...
23end
24close custcursor
…
佔位符。
3. 關閉游標
sql server 中關閉游標:
1close語句用來關閉游標。一旦游標關閉,如果不再次開啟,將不能使用。第二次使用它時不需要再宣告,只需用open開啟它即可。close
custcursor
2deallocate
cursor custcursor
分類:
sql,
讀書筆記
SQL 必知必會 筆記 19 使用游標
游標 cursor 是乙個儲存在dbms伺服器上的資料庫查詢,它不是一條select語句,而是被該語句檢索出來的結果集。在儲存了游標之後,應用程式可以根據需要滾動或瀏覽其中的資料。使用游標的步驟 在使用游標前,必須宣告 定義 它。這個過程實際上沒有檢索資料,它只是定義要使用的select語句和游標選...
SQL必知必會筆記二十一(使用游標)
sql檢索操作返回一組稱為結果集的行,這組返回的行都是與sql語句相匹配的行 零行或多行 簡單地使用select語句,沒有辦法得到第一行 下一行或前10行。但這是關係dbms功能的組成部分。結果集 result set sql查詢所檢索出的結果。有時,需要在檢索出來的行中前進或後退一行或多行,這就是...
《sql必知必會》筆記
資料庫 儲存有組織的資料的容器 通常是乙個檔案或一組檔案 注意誤用混淆 資料庫軟體被稱為dbms,資料庫是通過dbms建立和操縱的容器 模式 關於資料庫和表的布局及特性的資訊。主鍵 一列或一組列,其值能夠唯一標識表中的每一行。多條sql語句必須以 分隔。sql語句不區分大小寫,select和sele...