- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈数据库中游标应用
浅谈数据库中游标应用
[摘要]在数据库开发过程中,如果我们检索的数据只是一条记录时,我们可以使用SELECT INSERT 语句。但是我们通常会遇到这样的情况,若要从某一结果集中逐一读取一条记录,那么我们将如何解决这种问题?游标为我们提供了一种解决问题的优秀方案。
[关键词]游标 检索 逐一读取
一、前言
游标提供了一种对从表中检索出的结果集进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条T-S 选择语句相关联,因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和一条指向结果集中某一条特定记录的指针即游标位置组成。
二、使用游标
使用游标有四种基本的步骤:声明游标、打开游标、提取数据、关闭游标、释放游标。
(一)声明游标
使用游标之前要声明游标,生命有表可以通过DECLARER CURSOR语句实现。其语法格式如下。
DECLARE cursor_name[INSENSITIVE][SCROLL] CURSOR
[LOCAL][GLOBAL]
FOR
select_statement
[FOR {READ ONLY|UPDATE[OF 字段名[,.... .N]]}]
cursor_name是游标名称。
select_statement是SELECT 检索语句。
其中INSENSITIVE选项说明,定义游标时系统将在tempdb数据库中创建一个临时表,存储该游标使用的数据。
[LOCAL]|[GLOBAL]用于定义该游标的作用域是局部还是全局的。
SCROLL选项说明所定义的游标的数据提取操作可以使用下面的选项。
(1)FIRST:指出游标中的第一行数据。
(2)LAST:读取游标结果集中的最后一行数据。
(3)PRIOR:读取游标当前位置中的上一行数据。
(4) NEXT:读取游标结果集中当前位置的下一行数据。(在游标第一次检索时,默认NEXT是游标结果集中第一行数据)
(5)RELATIVE n:读取游标当前位置之后的第n行数据。
(6)ABSOLUTE n:读取游标中的第n行数据。
READ ONLY选项说明当前所定义的游标为只读,禁止通过该游标进行数据更新。
UPDATE选项说明可以通过游标修改基本表中的数据。
示例:
DECLARE zkyyb SCROLL CURSOR
FOR
select *
from student
order by sage
说明:声明一个叫zkyyb的游标,其游标结果集为student表中所有的记录,且结果集中的记录按年龄sage的大小顺序升序排列。其中student(sno,sname,sage,sdp),sno为学生学号,sname为姓名,sage为年龄,sdp为系部。
Student表如下图。
(二)打开游标
打开游标的语法格式如下。
OPEN cursor_name
其中cursor_name必须是已经声明过的游标。当用OPEN语句打开游标并在数据库中执行了查询后,还必须利用FETCH语句来取得游标结果集中的数据。而一条FETCH语句一次可以将一条记录放入某变量。
示例:
OPEN zkyyb
(三)提取数据
提取数据的语法格式如下。
FETCH [FIRST|LAST|PRIOR|NEXT|RELATIVE(n)|ABSOLUTE(n)]
FROM cursor_name
FETCH语句用来取得数据。一条FETCH语句一次可以将一条记录放入程序员指定的变量中。已经声明并打开一个游标后,我们就可以将数据放入任意的变量中。在FETCH语句中可以指定游标的名称和目标变量的名称。
示例:
FETCH FIRST FROM zkyyb/*从zkyyb游标的结果集中检索第一条记录*/
FETCH LAST FROM zkyyb/*从zkyyb游标的结果集中检索最后一条记录*/
FETCH PRIOR FROM zkyyb/*从zkyyb游标的结果集中检索当前记录的上一条记录*/
FETCH NEXT FROM zkyyb/*从zkyyb游标的结果集中检索当前记录的下一条记录*/
FETCH ABSOLUTE 3 FROM zkyyb/*从zkyyb游标的结果集中检索第3条记录*/
FETCH RELATIVE 2 FROM zkyyb/*从zkyyb游标的结
您可能关注的文档
最近下载
- UbuntuLinux操作系统第2版(微课版)钟小平课后习题答案.doc VIP
- 输电线路三跨的经验分享.ppt VIP
- 电动汽车分布式驱动系统动力学分析与优化设计.docx VIP
- 专题1.4数轴与动点经典题型(四大题型)(原卷版+解析).docx VIP
- 幼儿小蝌蚪找妈妈绘本ppt课件.pptx VIP
- 磷酸铁行业现状.docx VIP
- 马克思主义与社会科学方法论课后习题答案(2018版).pdf VIP
- 6.1 树立法治观念 统编版道德与法治八年级上.pptx VIP
- GB_T 43933-2024 金属矿土地复垦与生态修复技术规范.pdf VIP
- 车牌识别系统软件使用说明8.1软件基本设置.pdf VIP
原创力文档


文档评论(0)