我對SQL資料庫游標的理解

2021-10-06 13:11:47 字數 1371 閱讀 9909

什麼是游標?

游標是sql 的一種資料訪問機制。可以將游標簡單的看成是查詢的結果集的乙個指標,可以根據需要在結果集上面來回滾動,瀏覽需要的資料。

游標的作用是什麼?

可以儲存查詢結果,方便查詢,可以建立乙個游標可以多次使用。提高查詢效率。

例項–宣告游標

declare cur_cust_level cursorfor select id,consumeramount from customers

–開啟游標

open cur_cust_level

–瀏覽資料,取資料id,customeraccount

–取資料–拿之前先定義兩個變數

declare @id int

declare @cacount int

fetch next from cur_cust_level into @id,@cacount

–迴圈往下

while(@@fetch_status=0)

begin

print @id+@cacount

fetch next from cur_cust_level into

@id,@cacount end 游標

–關閉游標close cur_cust_level

–釋放游標deallocate cur_cust_level

declare cur_statis cursor

forselect year(consumertime) yy,month(consumertime) mm,day(consumertime)dd,sum(consumeramount) yye from customers

group by year(consumertime),month(consumertime),day(consumertime)

–開啟游標

open cur_statis

–瀏覽資料並獲取

declare @yy varchar(50)

declare @mm varchar(50)

declare @dd varchar(50)

declare @yye int

fetch next from cur_statis into @yy,@mm,@dd,@yye

while(@@fetch_status=0)

begin

insert into statis values(@yy,@mm,@dd,@yye)

fetch next from cur_statis into @yy,@mm,@dd,@yyeend

–關閉游標

close cur_statis

deallocate cur_statis

select * from statis

資料庫游標的應用

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

資料庫游標的編寫

1 定義游標 declare 游標名 cur youbiao cursor fast forward for select from 表名 fast forward 最快的游標 2 開啟游標 open 游標名 cur youbiao 2.1 對游標的操作 將每條資料讀取並輸出 2.1.1將游標向後移...

資料庫中游標的使用

1.為何使用游標 使用游標 cursor 的乙個主要的原因就是把集合操作轉換成單個記錄處理方式。用sql語言從資料庫中檢索資料後,結果放在記憶體的一塊區域中,且結果往往是乙個含有多個記錄的集合。游標機制允許使用者在sql server內逐行地訪問這些記錄,按照使用者自己的意願來顯示和處理這些記錄。2...