999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SQL數據庫中基于游標的數據更新

2015-04-16 01:30:10姚曦
電腦與電信 2015年9期
關鍵詞:數據庫

姚曦

(福建衛生職業技術學院公共基礎部,福建 福州 350101)

1 游標的概念

在數據庫的使用中,常常會遇到這種情況:用查詢語句,得到一個結果集,但對這個結果的操作不是相同的,需要根據不同的條件,對不同的記錄進行不同的處理。此時,就需要用到游標。

游標實際上是一種能從包括多條記錄的結果集中每次提取一條記錄的機制。游標總是與一條SQL查詢語句相關聯,允許應用程序對SELECT語句返回的行結果集中每一行進行相同或不同的操作,而不是一次對整個結果集進行同一種操作。這種特性使得對數據的操縱十分靈活。

2 游標的種類

SQL支持三種類型的游標:Transact-SQL游標、API游標和客戶游標。

Transact-SQL游標:T-SQL游標是由DECLARE CURSOR語句定義,主要用在腳本、存儲過程和觸發器中,應用在服務器上。

API游標:API游標使用在客戶端與服務器端的連接程序中(如OLE DB和ODBC等)。

客戶游標:客戶游標主要在當需要在客戶機上緩存結果集時使用。

3 游標的使用步驟

游標的操作可分為以下幾個步驟:

3.1 聲明游標

聲明游標的語法為:

DECLARE<游標名>[INSENSITIVE][SCROLL]CURSOR

FOR<SELECT語句>

[FOR{READ ONLY|UPDATE][OF<列名>[,…n]]}]

INSENSITIVE關鍵字:將取出的數據記錄放在一個臨時表內,對游標的讀取操作由臨時表來應答。游標不會隨著基表內容的改變而改變,同時也無法通過游標來更新基本表。

SCROLL關鍵字:表明所有的提取操作(FIRST,LAST,PRIOR,NEXT,RELATIVE,ABSOLUTE)等都可用,如不使用該保留字,只能進行NEXT操作。

READ ONLY關鍵字:只讀游標。

UPDATE關鍵字:可修改的游標,或指定修改的列。

3.2 打開游標

聲明游標后,如果要從游標中讀取數據,必須打開游標。

打開游標的語法為:

OPEN[GLOBAL]<游標名>│<游標變量>

在游標成功打開后,全局變量@@CURSOR_ROWS將用來記錄游標內數據行數。變量返回值代表的狀態如表1所示。

表1 @@CURSOR_ROWS變量的返回值

3.3 讀取游標中的數據

當游標成功打開以后,可以使用FETCH語句從中讀取數據。

{{GLOBAL<游標名>}│<@游標變量>}

[INTO@<變量名>[,…n]]

NEXT│PRIOR│FIRST│LAST:用于說明讀取數據的位置。

ABSOLUTE、RELATIVE:給出讀取數據的位置與游標頭或當前位置的關系。其中N必須為整型常量或變量。

其中全局變量@@FETCH_STATUS返回上次執行FETCH命令的狀態。在每次用FETCH從游標中讀取數據時,都應檢查該變量,以確定上次FETCH操作是否成功,來決定如何進行下一步處理。變量的返回值的狀態如表2所示。

表2 @@FETCH_STATUS的返回值

3.4 關閉游標

CLOSE[GLOBAL]<游標名>|@<游標變量>

游標關閉后,其定義仍在,需要時可用OPEN語句打開,再次使用。若確認游標不再需要,就要釋放其定義占用的系統空間,即刪除游標。

DEALLOCATE[GLOBAL]<游標名>|@<游標變量>

4 游標應用的實例

案例說明:數據庫company中有兩張表。Salary顯示的是全體員工的工資表,工作一段時間后,公司將按照員工的工作情況給員工加工資,每個員工加的工資不一樣多,有的員工工資有調整,有的員工工資無調整。工資調整表為addincome。這種不是統一變動的情況,使用游標就非常靈活便捷。

游標使用的具體代碼如下:

select*from salary

declare@id char(10),@salary int

declare sa_cur1 cursor

以上代碼說明:首先基于salary表生成一個更新游標的結果集。從中逐條讀取id參數,將id參數存放在@id變量中。使用@id變量在addincome表中查詢是否有此@id員工,如果有此@id就表明,此@id的工資有調整,使用更新游標將調整的工資更新到salary表。如果無此@id就說明此@id的工資無調整,回到游標結果集中讀取下一條記錄。

5 結論

本文介紹了SQL數據庫中游標的概念,闡述了游標的類型及游標的使用步驟。最后通過一個更新工資表的實例說明游標的使用方法。

[1]李丹.SQL Server2005數據庫管理與開發實用教程[M].北京:機械工業出版社,2010.

[2]申時凱,戴祖誠,佘玉梅.數據庫原理與技術[M].北京:清華大學出版社,2010.

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 久久久久久尹人网香蕉| 54pao国产成人免费视频| 亚洲欧美极品| 国产精品永久不卡免费视频| 国产swag在线观看| 国产成人福利在线| 久久精品视频一| 亚洲福利视频网址| 亚洲第一成年网| 玖玖精品视频在线观看| 综合五月天网| 性欧美精品xxxx| 亚洲国产av无码综合原创国产| P尤物久久99国产综合精品| 久久久久亚洲AV成人网站软件| 91在线视频福利| 国产99欧美精品久久精品久久| 97在线视频免费观看| 人妻无码一区二区视频| 激情视频综合网| 国产精品自拍露脸视频| 免费观看男人免费桶女人视频| 国产成人夜色91| 婷婷成人综合| av性天堂网| 久久久久无码精品国产免费| 一级毛片免费不卡在线 | 四虎成人精品在永久免费| 国产一级毛片yw| 伊人久久大线影院首页| 久久中文字幕2021精品| 国产成人综合日韩精品无码不卡| 午夜成人在线视频| 亚洲三级视频在线观看| 久久精品丝袜| 97在线碰| 国产精品手机视频| 亚洲娇小与黑人巨大交| 国产一区二区三区免费观看| 国产三级视频网站| 在线不卡免费视频| 91丝袜在线观看| 国产精品久线在线观看| 欧美国产视频| 欧美不卡在线视频| 欧美午夜在线观看| 一级做a爰片久久免费| 久久不卡国产精品无码| 亚洲欧美日韩中文字幕一区二区三区| 免费无遮挡AV| 五月婷婷伊人网| 综1合AV在线播放| 久久青草热| 国产亚洲精品91| 亚洲国产欧美目韩成人综合| 国产精品人莉莉成在线播放| 制服丝袜一区二区三区在线| 亚洲水蜜桃久久综合网站| 蝌蚪国产精品视频第一页| 日韩欧美国产另类| 青青青伊人色综合久久| 国产网站一区二区三区| 狠狠久久综合伊人不卡| 国产在线97| 国产成人免费观看在线视频| 精品无码人妻一区二区| 在线视频精品一区| 久久99国产乱子伦精品免| 国产国产人免费视频成18| 99色亚洲国产精品11p| 欧美成人a∨视频免费观看| 六月婷婷精品视频在线观看| 国产综合精品一区二区| 99热这里只有精品免费国产| 久久天天躁狠狠躁夜夜躁| 少妇被粗大的猛烈进出免费视频| 亚洲va精品中文字幕| 特级欧美视频aaaaaa| 大学生久久香蕉国产线观看| 亚洲欧美日本国产综合在线| 一级一级一片免费| 日本午夜在线视频|