麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > SQL Server > 正文

sqlserver游標基本概念到生命周期的詳細學習(sql游標讀取)

2020-01-28 15:47:31
字體:
來源:轉載
供稿:網友
在關系數據庫中,我們對于查詢的思考是面向集合的。而游標打破了這一規則,游標使得我們思考方式變為逐行進行.對于類C的開發人員來著,這樣的思考方式會更加舒服。

正常面向集合的思維方式是:

2

而對于游標來說:

3

這也是為什么游標是邪惡的,它會使開發人員變懶,懶得去想用面向集合的查詢方式實現某些功能.

同樣的,在性能上,游標會吃更多的內存,減少可用的并發,占用寬帶,鎖定資源,當然還有更多的代碼量……

從游標對數據庫的讀取方式來說,不難看出游標為什么占用更多的資源,打個比方:

1

當你從ATM取錢的時候,是一次取1000效率更高呢,還是取10次100?

既然游標這么“邪惡”,為什么還要學習游標

我個人認為存在既是合理.歸結來說,學習游標原因我歸納為以下2點

1.現存系統有一些游標,我們查詢必須通過游標來實現

2.作為一個備用方式,當我們窮盡了while循環,子查詢,臨時表,表變量,自建函數或其他方式扔來無法實現某些查詢的時候,使用游標實現.

T-SQL中游標的生命周期以及實現

在T-SQL中,游標的生命周期由5部分組成

1.定義一個游標

在T-SQL中,定義一個游標可以是非常簡單,也可以相對復雜,取決于游標的參數.而游標的參數設置取決于你對游標原理的了解程度.

游標其實可以理解成一個定義在特定數據集上的指針,我們可以控制這個指針遍歷數據集,或者僅僅是指向特定的行,所以游標是定義在以Select開始的數據集上的:

4

T-SQL中的游標定義在MSDN中如下:


復制代碼代碼如下:
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 ] ] ]
[;]


看起來很讓人頭痛是吧.下面仔細講一下如何定義游標:

游標分為游標類型和游標變量,對于游標變量來說,遵循T-SQL變量的定義方法(啥,不知道T-SQL變量定義的規則?參考我前面的博文).游標變量支持兩種方式賦值,定義時賦值和先定義后賦值,定義游標變量像定義其他局部變量一樣,在游標前加”@”,注意,如果定義全局的游標,只支持定義時直接賦值,并且不能在游標名稱前面加“@”,兩種定義方式如下:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 手机视频在线播放 | va免费视频 | 毛片免费一区二区三区 | 日本在线不卡一区二区三区 | 一级黄色淫片 | 久久一本日日摸夜夜添 | 日韩视频精品一区 | 欧美成人黄色片 | 91福利国产在线观一区二区 | 777午夜精品视频在线播放 | 久久国产中文字幕 | 夜夜b| 久久久国产一区二区三区 | 男女无套免费视频 | 久久99国产精品免费网站 | 国内精品久久久久久久久久久久 | 久久艹逼 | 成人一级视频在线观看 | av成人在线播放 | 成人福利视频在 | 国产1区2区在线 | 在线看成人av | 美女网站黄在线观看 | av性色全交蜜桃成熟时 | 男女羞羞在线观看 | 宅男视频在线观看免费 | 日本在线播放一区二区三区 | 久久久久久免费 | 午夜视频福利 | 激情av在线 | 视频一区二区不卡 | 亚洲成人播放 | 日日草夜夜操 | 在线播放黄色网址 | 色婷婷a | 成人午夜淫片a | 亚洲涩涩图 | 日韩黄色片免费看 | 精国产品一区二区三区四季综 | 国产精品免费大片 | 免费看a级片 |