欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQL中游標(cursor)的基本使用實例

 更新時間:2021年11月23日 11:43:19   作者:feiquan  
當你檢索的數(shù)據(jù)只是一條記錄時,你所編寫的事務語句代碼往往使用SELECT INSERT語句,但如果從某一結果集中逐一地讀取一條記錄呢?游標為我們提供了一種極為優(yōu)秀的解決方案,這篇文章主要給大家介紹了關于SQL中游標(cursor)基本使用的相關資料,需要的朋友可以參考下

?類型:

  1.普通游標? ?只有NEXT操作

  2.滾動游標 有多種操作

1.普通游標

DECLARE @username varchar(20),@UserId varchar(100)
DECLARE cursor_name CURSOR FOR --定義游標
    SELECT TOP 10 UserId,UserName FROM UserInfo
    ORDER BY UserId DESC
OPEN cursor_name --打開游標
FETCH NEXT FROM cursor_name INTO  @UserId,@username  --抓取下一行游標數(shù)據(jù)
WHILE @@FETCH_STATUS = 0
    BEGIN
        PRINT '用戶ID:'+@UserId+'            '+'用戶名:'+@username
        FETCH NEXT FROM cursor_name INTO @UserId,@username
    END
CLOSE cursor_name --關閉游標
DEALLOCATE cursor_name --釋放游標

結果:

用戶ID:zhizhi? ? ? ? ? ? 用戶名:鄧鴻芝

用戶ID:yuyu? ? ? ? ? ? 用戶名:魏雨

用戶ID:yujie? ? ? ? ? ? 用戶名:李玉杰

用戶ID:yuanyuan? ? ? ? ? ? 用戶名:王夢緣

用戶ID:YOUYOU? ? ? ? ? ? 用戶名:lisi

用戶ID:yiyiren? ? ? ? ? ? 用戶名:任毅

用戶ID:yanbo? ? ? ? ? ? 用戶名:王艷波

用戶ID:xuxu? ? ? ? ? ? 用戶名:陳佳緒

用戶ID:xiangxiang? ? ? ? ? ? 用戶名:李慶祥

用戶ID:wenwen? ? ? ? ? ? 用戶名:魏文文

2.滾動游標

--帶SCROLL選項的游標
SET NOCOUNT ON
DECLARE C SCROLL CURSOR FOR  --SCORLL 后,有了更多的游標操作(滾動游標)
    SELECT TOP 10 UserId,UserName FROM UserInfo
    ORDER BY UserId DESC
OPEN C 
FETCH LAST FROM C   --最后一行的數(shù)據(jù),并將當前行為指定行
FETCH ABSOLUTE 4 FROM C  --從第一行開始的第4行數(shù)據(jù),并將當前行為指定行  這里的n可正可負,n>0 往下翻,n<0 往上翻
FETCH RELATIVE 3 FROM C  --相對于當前行的后3行數(shù)據(jù),并將當前行為指定行  這里的n可正可負
FETCH RELATIVE -2 FROM C --相對于當前行的前2行數(shù)據(jù),并將當前行為指定行
FETCH PRIOR FROM C   ----相對于當前行的前1行數(shù)據(jù)
FETCH FIRST FROM C   --剛開始第一行的數(shù)據(jù),并將當前行為指定行
FETCH NEXT FROM C   --相對于當前行的后1行數(shù)據(jù)

CLOSE C
DEALLOCATE C

結果(可以參考第一個結果分析):

具體FETCH用法:

FETCH   
          [ [ NEXT | PRIOR | FIRST | LAST   
                    | ABSOLUTE { n | @nvar }   
                    | RELATIVE { n | @nvar }   
               ]   
               FROM   
          ]   
{ { [ GLOBAL ] cursor_name } | @cursor_variable_name }   
[ INTO @variable_name [ ,...n ] ]

Arguments

NEXT

Returns the result row immediately following the current row and increments the current row to the row returned. If FETCH NEXT is the first fetch against a cursor, it returns the first row in the result set. NEXT is the default cursor fetch option.

PRIOR

Returns the result row immediately preceding the current row, and decrements the current row to the row returned. If FETCH PRIOR is the first fetch against a cursor, no row is returned and the cursor is left positioned before the first row.

FIRST

Returns the first row in the cursor and makes it the current row.

LAST

Returns the last row in the cursor and makes it the current row.

ABSOLUTE { n| @nvar}

If n or @nvar is positive, returns the row n rows from the front of the cursor and makes the returned row the new current row. If n or @nvar is negative, returns the row n rows before the end of the cursor and makes the returned row the new current row. If n or @nvar is 0, no rows are returned. n must be an integer constant and @nvar must be smallint, tinyint, or int.

RELATIVE { n| @nvar}

If n or @nvar is positive, returns the row n rows beyond the current row and makes the returned row the new current row. If n or @nvar is negative, returns the row n rows prior to the current row and makes the returned row the new current row. If n or @nvar is 0, returns the current row. If FETCH RELATIVE is specified with n or @nvar set to negative numbers or 0 on the first fetch done against a cursor, no rows are returned. n must be an integer constant and @nvar must be smallint, tinyint, or int.

GLOBAL

Specifies that cursor_name refers to a global cursor.

cursor_name

Is the name of the open cursor from which the fetch should be made. If both a global and a local cursor exist with cursor_name as their name, cursor_name to the global cursor if GLOBAL is specified and to the local cursor if GLOBAL is not specified.

@cursor_variable_name

Is the name of a cursor variable referencing the open cursor from which the fetch should be made.

INTO @variable_name[ ,...n]

Allows data from the columns of a fetch to be placed into local variables. Each variable in the list, from left to right, is associated with the corresponding column in the cursor result set. The data type of each variable must either match or be a supported implicit conversion of the data type of the corresponding result set column. The number of variables must match the number of columns in the cursor select list.

總結

到此這篇關于SQL中游標(cursor)基本使用的文章就介紹到這了,更多相關SQL游標的使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • dapper使用Insert或update時部分字段不映射到數(shù)據(jù)庫

    dapper使用Insert或update時部分字段不映射到數(shù)據(jù)庫

    我們在使用dapper的insert或update方法時可能會遇見一些實體中存在的字段但是,數(shù)據(jù)庫中不存在的字段,這樣在使用insert時就是拋出異常提示字段不存在,這個時候該怎么解決呢,下面給大家分享示例實體代碼,感興趣的朋友一起看看吧
    2023-12-12
  • 介紹PostgreSQL中的范圍類型特性

    介紹PostgreSQL中的范圍類型特性

    這篇文章主要介紹了介紹PostgreSQL中的范圍類型特性,范圍類型特性自9.2版本開始加入,需要的朋友可以參考下
    2015-04-04
  • SQLServer與Oracle常用函數(shù)實例對比匯總

    SQLServer與Oracle常用函數(shù)實例對比匯總

    這篇文章主要介紹了SQLServer與Oracle常用函數(shù)對比,需要的朋友可以參考下
    2014-06-06
  • Access轉換成SQL Server需要注意事項整理

    Access轉換成SQL Server需要注意事項整理

    很多朋友想用SQL2000數(shù)據(jù)庫的編程方法,但是卻又苦于自己是學ACCESS的,對SQL只是一點點的了解而已,這里我給大家提供以下參考---將ACCESS轉化成SQL2000的方法和注意事項
    2008-04-04
  • 一款高顏值且免費的 SQL 開發(fā)工具之Beekeeper Studio詳解

    一款高顏值且免費的 SQL 開發(fā)工具之Beekeeper Studio詳解

    今天給大家推薦一款適用于Windows,Linux和Mac的跨平臺免費的開源SQL編輯器和數(shù)據(jù)庫管理應用程序 —— beekeeper-studio。對Beekeeper Studio 安裝使用教程感興趣的朋友一起看看吧
    2021-09-09
  • 淺析GBase8s?唯一索引與非唯一索引問題

    淺析GBase8s?唯一索引與非唯一索引問題

    GBase8s中主鍵(PRIMARY?KEY)會自動創(chuàng)建一個唯一索引。一個良好的表設計都應該定義主鍵或者唯一約束索引。特別是在OLTP系統(tǒng)中,唯一索引可以幫助快速定位少量記錄,對GBase8s?索引相關知識感興趣的朋友一起看看吧
    2022-02-02
  • Navicat?Premium自定義?sql?標簽的創(chuàng)建方式

    Navicat?Premium自定義?sql?標簽的創(chuàng)建方式

    Navicat 中可以自定義一下sql語句的標簽,方便開發(fā)者使用,這篇文章主要介紹了Navicat?Premium自定義sql標簽的創(chuàng)建方式,包括自定義標簽創(chuàng)建方式,結合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • 詳解SQLite中的數(shù)據(jù)類型

    詳解SQLite中的數(shù)據(jù)類型

    這篇文章主要介紹了詳解SQLite中的數(shù)據(jù)類型,針對版本為SQLite3,講解非常詳細,超推薦!需要的朋友可以參考下
    2015-07-07
  • Navicat快速導入和導出sql文件的方法

    Navicat快速導入和導出sql文件的方法

    Navicat是MySQL非常好用的可視化管理工具,功能非常強大,能滿足我們?nèi)粘?shù)據(jù)庫開發(fā)的所有需求。今天教大家如何導入和導出SQL文件,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • hadoop map-reduce中的文件并發(fā)操作

    hadoop map-reduce中的文件并發(fā)操作

    hadoop mapreduce最主要的應用是基于鍵值對的數(shù)據(jù)的運算,過濾,提取。但除此之外,我們可以順帶利用mapreduce高并發(fā)的特性做一些用常用方法難以處理的問題,比如大量數(shù)據(jù),大量文件的并發(fā)讀寫
    2014-04-04

最新評論