游標的作用

2021-09-20 13:34:28 字數 2606 閱讀 3176

關聯式資料庫中的操作會對整個行集產生影響。由       select       語句返回的行集包括所有滿足該語句       where       子句中條件的行。由語句所返回的這一完整的行集被稱為結果集。應用程式,特別是互動式聯機應用程式,並不總能將整個結果集作為乙個單元來有效地處理。這些應用程式需要一種機制以便每次處理一行或一部分行。游標就是提供這種機制的結果集擴充套件。   

游標通過以下方式擴充套件結果處理:     

允許定位在結果集的特定行。   

從結果集的當前位置檢索一行或多行。   

支援對結果集中當前位置的行進行資料修改。   

為由其他使用者對顯示在結果集中的資料庫資料所做的更改提供不同級別的可見性支援。   

提供指令碼、儲存過程和觸發器中使用的訪問結果集中的資料的       transact-sql       語句。     

請求游標   

microsoft®       sql       server™       2000       支援兩種請求游標的方法:     

transact-sql     

對根據       sql-92       游標語法制定的游標,transact-sql       語言支援使用它們的語法。   

資料庫應用程式程式設計介面(api)游標函式     

sql       server       支援這些資料庫       api       的游標功能:   

ado(microsoft       activex®       資料物件)   

ole       db   

odbc(開放式資料庫連線)   

db-library     

應用程式不能混合使用這兩種請求游標的方法。已經使用       api       指定游標行為的應用程式不能再執行       transact-sql       declare       cursor       語句請求乙個       transact-sql       游標。只有在將所有       api       游標特性均設回預設值後,應用程式才可以執行       declare       cursor。   

如果       transact-sql       和       api       游標均未被請求,則預設情況下       sql       server       將乙個完整的結果集返回給應用程式,這個結果集稱為預設結果集。   

游標程序   

transact-sql       游標和       api       游標有不同的語法,但下列一般程序可用於所有       sql       server       游標:     

把游標與       transact-sql       語句的結果集相關聯,並且定義游標的特徵,如是否能夠更新游標中的行。   

執行       transact-sql       語句以填充游標。   

檢索想要檢視的游標中的行。從游標中檢索一行或多行的操作稱為提取。執行一系列的提取操作以向前或向後檢索行的操作稱為滾動。   

根據需要,對游標中當前位置的行執行修改操作(更新或刪除)。   

關閉游標。     

簡單的說,跟c語言裡的指標相識   

可以隨意移動到需要的行

例:declare cursor_name cursor

[ local | global ]

[ forward_only | scroll ]

[ static | keyset | dynamic | fast_forward ]

[ read_only | scroll_locks | optimistic ]

[ type_warning ]

for select_statement

[ for update [ of column_name [,...n ] ] ]

開啟該游標時所生成的結果集包括pubs資料庫的authors表中的所有行和列。可以更新該游標,對該游標所做的所有更新和刪除均在提取中表現出來。因為沒指定 scroll 選項,fetch next 是唯一可用的提取選項。

declare authors_cursor cursor

for select * from authors

open authors_cursor

fetch next from authors_cursor

牽套游標

declare      cursor      cursor_name      for     

select      *      from      table_name      (for      read      only)   

fetch      cursor_name      to      variable_name     

;   

;   

;    

注:fetch      從 transact-sql 伺服器游標中檢索特定的一行。

游標的作用

游標實際上是一種能從包括多條資料記錄的結果集中每次提取一條記錄的機制。游標充當指標的作用。儘管游標能遍歷結果中的所有行,但他一次只指向一行。概括來講,sql的游標是一種臨時的資料庫物件,即可以用來存放在資料庫表中的資料行副本,也可以指向儲存在資料庫中的資料行的指標。游標提供了在逐行的基礎上操作表中資...

游標的作用

關聯式資料庫中的操作會對整個行集產生影響。由 select 語句返回的行集包括所有滿足該語句 where 子句中條件的行。由語句所返回的這一完整的行集被稱為結果集。應用程式,特別是互動式聯機應用程式,並不總能將整個結果集作為乙個單元來有效地處理。這些應用程式需要一種機制以便每次處理一行或一部分行。游...

Cursor游標(游標)的使用

為了處理sql語句,oracle 將在記憶體中分配乙個區域,這就是上下文區。這個區包含了已經處理完的行數 指向被分析語句的指標,整個區是查詢語句返回的資料行集。游標就是指向上下文區控制代碼或指標。兩種游標 一 顯示游標 需要明確定義!顯示游標被用於處理返回多行資料的select 語句,游標名通過cu...