数据库-游标简介.ppt

数据库-游标简介.ppt

ID:53567550

大小:137.51 KB

页数:17页

时间:2020-04-20

数据库-游标简介.ppt_第1页
数据库-游标简介.ppt_第2页
数据库-游标简介.ppt_第3页
数据库-游标简介.ppt_第4页
数据库-游标简介.ppt_第5页
资源描述:

《数据库-游标简介.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、游标简介一个对表进行操作的SQL语句(如select)通常都可产生或处理一组记录,但是许多应用不能把整个结果集作为一个单元来处理,所以就需要一种机制来保证每次处理结果其中的一行或几行,游标(cursor)就提供了这种机制。SQLServer通过游标提供了对一个结果集进行逐行处理的能力,游标可看做一种特殊的指针,它与某个查询结果相联系,可以指向结果集的任意位置,以便对指定位置的数据进行处理。使用游标可以在查询数据的同时对数据进行处理。游标是系统为用户开设的一个数据缓冲区,存放SQL语句的结果数据集,每个游标区都有一个名字,通过移动游标名代表的指针来访问数据集中的数据游标的使用步骤使用游标

2、需要经历五个步骤:定义游标:DECLARE打开游标:OPEN逐行提取游标集中的行:FETCH关闭游标:CLOSE释放游标:DEALLOCATE2游标的定义游标的定义DECLARE<游标名>[SCROLL]CURSORFOR[for[readonly

3、update{of<列名>}]SCROLL:说明所声明的游标可以前滚、后滚,可使用所有的提取选项。如省略,则只能使用NEXT提取选项。[FOR[READONLY

4、UPDATE{OF<列名>}]:READONLY表示当前游标集中的元组仅可以查询,不能修改;UPDATE{OF<列名>}表示可以对当前游标集中的元组进行更新操作

5、。如果有OF<列名>,表示仅可以对游标集中指定的属性列进行更新操作。缺省为UPDATE定义一个能够存放sc表数据的游标Declarecur_sccursorforSelect*fromsc打开游标游标定义后,如果要使用游标,必须先打开游标。打开游标操作表示:系统按照游标的定义从数据库中将数据检索出来,放在内存的游标集中(如果内存不够,会放在临时数据库中)为游标集指定一个游标,该游标指向游标集中的第1个元组格式:Open游标名;例:Opencur_sc打开游标打开游标后,可以使用全局变量@@CURSOR_ROWS查看游标集中数据行的数目。全局变量@@CURSOR_ROWS中保存着最后打开

6、的游标中的数据行数。当其值为0时,表示没有游标打开;当其值为m(m为正整数)时,游标已被完全填充,m是游标中的数据行数。【例】定义游标XS_CUR3,然后打开该游标,输出其行数。DECLAREXS_CUR3CURSORSCROLLFORSELECT学号,姓名,总学分FROMXSBFORUPDATEOF总学分OPENXS_CUR3SELECT'游标XS_CUR3数据行数'=@@CURSOR_ROWS获取游标数据FETCH[NEXT

7、PRIOR

8、FIRST

9、LAST

10、ABSOLUTE{n

11、@nvar}

12、RELATIVE{n

13、@nvar}]FROM{游标}[INTO@变量名[,…]]NEXT

14、

15、PRIOR

16、FIRST

17、LAST:说明读取数据的位置。1.Next:读取当前行的下一行,并使其置为当前行。如fetchnext为对游标的第一次提取操作,则读取第一行,next为默认值。2.prior:读取当前行的前一行,并使其置为当前行。如是第一次操作,则无值返回,游标被置于第一行之前。3.first:读取第一行,并使其置为当前行。4.last:读取最后一行,并使其置为当前行。获取游标数据5.ABSOLUTE{n

18、@nvar}

19、RELATIVE{n

20、@nvar}:给出读取数据的位置与游标头或当前位置的关系,其中n必须为整型常量,@nvar必须为smallint、tinyint或int

21、型的。【例】从游标XS_CUR1中提取数据。设该游标已经声明并打开。FETCHNEXTFROMXS_CUR1执行结果如下:【例】从游标XS_CUR2中提取数据。设该游标已经声明。OPENXS_CUR2FETCHFIRSTFROMXS_CUR2读取游标第一行(当前行为第一行),结果如下:FETCHNEXTFROMXS_CUR2读取下一行(当前行为第二行),结果如下:获取游标数据FETCHPRIORFROMXS_CUR2读取上一行(当前行为第一行),结果如下:FETCHLASTFROMXS_CUR2读取最后一行(当前行为最后一行),结果如下:获取游标数据FETCHRELATIVE-2FRO

22、MXS_CUR2读取当前行的上两行(当前行为倒数第三行),结果如下:FETCH语句的执行状态保存在全局变量@@FETCH_STATUS中,其值为0表示上一个FETCH执行成功;为-1表示所要读取的行不在结果集中;为2表示被提取的行已不存在(已被删除)。例如,接着上例继续执行如下语句:FETCHRELATIVE3FROMXS_CUR2SELECT'FETCH执行情况'=@@FETCH_STATUS执行结果如下:获取游标数据结束游标的使用关闭游标

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。