對於遊標的一些自我看法

遊標

定義
遊標(Cursor)是處理數據的一種方法,爲了查看或者處理結果集中的數據,遊標提供了在結果集中一次一行或者多行前進或向後瀏覽數據的能力。可以把遊標當作一個指針,它可以指定結果中的任何位置,然後允許用戶對指定位置的數據進行處理。
簡單的說 遊標是一個存儲在MySQL服務器上的數據庫查詢,它不是一條SELECT語句,而是被該語句檢索出來的結果集。在存儲了遊標之後,應用程序可以根據需要滾動或瀏覽其中的數據。
Transact_SQL 遊標
Transact_SQL 遊標由DECLARE CURSOR 語法定義、主要用在Transact_SQL腳本、存儲過程和觸發器中。Transact_SQL 遊標主要用在服務器上,由從客戶端發送給服務器的Transact_SQL 語句或是批處理、存儲過程、觸發器中的Transact_SQL 進行管理。 Transact_SQL 遊標不支持提取數據塊或多行數據。這也是我們最常用的一種遊標。

下面舉例遊標的常用方法

聲明遊標

declare 遊標名 CURSOR
for select 條件  from 表名

打開遊標

open 遊標名

直接open就行

下面舉個例子

簡單說明遊標的使用

在這裏插入圖片描述
首先建一個表如上
在這裏插入圖片描述
可以自行添加數據,最後一行不要添加數據,這是我執行之後的效果

根據價格設置每本書的等級
–價格<50 便宜
–>=50-100 中等
–>100 貴

這邊設置條件代碼如下

--聲明遊標
declare cur_set_lever CURSOR
for select id,Price from books
--打開遊標
open cur_set_lever
--獲取數據 id price 
declare @id int 
declare @price decimal(18,2)
fetch next from cur_set_lever into @id,@price
print @id
--循環獲取
while(@@FETCH_STATUS=0)
begin 
--修改等級
if(@price<50)
update books set Levels='便宜' where ID=@id
else if(@price<100)
update books set Levels='中等' where ID=@id
else
update books set Levels='貴' where ID=@id

     fetch next from cur_set_lever into @id,@price
end
--關閉遊標
close cur_set_lever
--釋放遊標
deallocate cur_set_lever

得到如下運行效果
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章