sql中的游标怎么用(高级SQL之游标)

【本文详细介绍了数据库中游标的基本概念和使用方法,欢迎读者朋友们阅读、转发和收藏】,今天小编就来聊一聊关于sql中的游标怎么用?接下来我们就一起去研究一下吧!

sql中的游标怎么用(高级SQL之游标)

sql中的游标怎么用

【本文详细介绍了数据库中游标的基本概念和使用方法,欢迎读者朋友们阅读、转发和收藏!】

1 基本概念1.1 定义

一般情况下,我们用SELECT这些查询语句时,都是针对的一行记录而言,如果要在查询分析器中对多行记录(即记录集)进行读取操作时,则需要使用到游标。游标分为静态游标和动态游标两种

  • 静态游标在打开时会将数据集存储在tempdb中,因此显示的数据与游标打开时的数据集保持一致,在游标打开以后对数据库的更新不会显示在游标中。
  • 动态游标在打开后会反映对数据库的更改。所有UPDATE、INSERT和DELETE操作都会显示在游标的结果集中,结果集中的行数据值、顺序和成员在每次提取时都会改变。
1.2 使用

1 、声明游标

游标在使用之前必须先声明,可用DECLARE CURSOR语句声明游标,其一般格式为:

DECLAR<游标名>[INSENSITIVE][SCROLL]CURSOR FOR<SELECT-查询块> [FOR{READ ONLY|UPDATE[OF<列名>[,<列名>...]]}]

说明:

  • INSENSITIVE—— 使用数据的临时复制来定义游标,这时的游标实际上不允许修改的。
  • SCROLL—— 可以使用任何方法来存取数据,允许更新和删除。
  • FOR<SELECT- 查询块>——使用SELECT查询块来定义一个游标。
  • FOR READ ONLY 或FOR UPDATE——说明是只读的游标还是可修改的游标。

2 、打开游标

使用OPEN语句的功能是打开游标,实际上就是执行相应的SELECT查询语句,将查询结果放到缓冲区。这时游标处于活动状态,游标指针指向第一条记录。其一般格式为:

OPEN<游标名>

3 、提取游标

FETCH 语句是从游标中提取特定的一行。其一般格式为:

FETCH [[NEXT|PRIOR|FIRST|LAST|ABSOLUTE n|RELATIVE n]FROM] <游标名> [INTO:<主变量1>,<主变量2>...]

说明:

  • NEXT—— 说明如果是在OPEN后第一次执行FETCH命令,则返回结果集的第一行,否则使游标的指针指向结果集的下一行,NEXT是默认的选项。
  • PRIOR—— 返回结果集当前行的前一行。
  • FIRST—— 返回结果集的第一行。
  • LAST—— 返回结果集的最后一行。
  • ABSOLUTE n—— 如果n是正数,返回结果集的第n行,如果n是负数,则返回结果集的倒数第n行
  • RELATIVE n—— 如果n是正数,返回当前行后的第n行,如果n是负数,则返回当前行开始倒数的第n行。
  • INTO—— 该语句的功能是把游标取出的当前记录送入到主变量,INTO后的主变量要与在DECLARE CURSOR中SELECT的字段相对应。

4 、关闭游标

使用CLOSE 语句关闭游标,其一般格式为:

CLOSE<游标名>

5 、释放游标

使用DEALLOCATE语句释放游标,其一般格式为:

DEALLOCATE<游标名>

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页