第13节 游标.ppt

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第13章 游标 13.3.1 游标概念 三种游标应用接口方法 DECLARE CURSOR语句的格式 DECLARE 游标名 [INSENSITIVE] [SCROLL] CURSOR FOR SELECT-查询块 [FOR {READ ONLY|UPDATE [OF 〈列名〉[,〈列名〉…]]}] OPEN语句的格式 OPEN 游标名 从游标中提取记录语句的格式 FETCH [[ NEXT | PRIOR | FIRST | LAST | ABSOLUTE n | RELATIVE n ] FROM ] 游标名 [ INTO 局部变量1, 局部变量2 …] 关闭游标 CLOSE 游标名 释放游标 DEALLOCATE 游标名 该命令的功能是删除由DECLARE声明的游标。该命令不同于CLOSE命令,CLOSE命令只是关闭游标,需要时还可以重新打开; 而DEALLOCATE命令则要释放和删除与游标有关的所有资源,包括游标的声明,以后就不能再使用OPEN语句打开此游标了。 对游标的理解 与程序设计语言中的文件相对照: DECLARE CURSOR相当于说明了一个文件; OPEN相当于打开文件; FETCH相当于读一条记录; CLOSE相当于关闭文件; DEALLOCATE语句相当于删除文件。 利用游标显示表中的数据 * * 13.1 13.2 函数(自学) 13.3 游标 13.3 游标 13.3.1 游标概念 13.3.2 使用游标 13.3.3 游标示例 SQL语言中SELECT语句的执行结果是一个记录集(二维表)。只能对这个结果集做整体处理。 在交互式应用中可能需要对结果中的指定行做处理,就需要通过定义和使用游标(Cursor)结果集来完成。 可以把游标看成是带有记录指针定位器的数据库查询或处理结果集容器。 … 游标当前行指针 游标结果集 游标特点 允许定位在结果集的特定行。 从结果集的当前位置检索一行或多行。 支持对结果集中当前位置的行进行数据修改。 为由其他用户对显示在结果集中的数据库数据所做的更改提供不同级别的可见性支持。 Transact-SQL:是服务器端游标,通过语句实现的。Transact-SQL游标主要用在存储过程、触发器和Transact-SQL脚本中。(本节介绍) 数据库应用程序编程接口(API)游标函数:客户端应用程序调用API游标函数,在服务器端实现游标操作。 客户端游标:是在客户端实现的客户端游标。可将整个结果集高速缓存在客户端上,所有的游标操作都在此客户端高速缓存中执行。 13.3.2 使用游标 是 否 声明游标 打开游标 提取游标记录 处理完成? 关闭游标 释放资源 DECLARE CURSOR(声明游标) OPEN(打开游标) FETCH(提取游标记录,推进游标) CLOSE(关闭游标) DEALLOCATE(释放游标资源) INSENSITIVE说明用数据的临时拷贝来定义游标,所有对游标的请求都反映在这个临时表上,因此这时的游标实际上是不允许修改的; SCROLL说明可以用所有的方法来存取数据,允许删除和更新(假定没有使用INSENSITIVE选项); FOR READ ONLY或FOR UPDATE说明游标为只读的或可修改的。 SELECT-查询块定义一个游标(文件),它的内容是SELECT-查询块的查询结果(多个记录组成的临时表)。 该语句的功能是打开或启动指出的游标,该游标名是用DECLARE CURSOR语句已经定义好的。执行该语句意味着执行在DECLARE CURSOR语句中定义的SELECT查询,并使游标指针指向查询结果的第一条记录。 该语句的功能是取出游标的当前记录并送入局部变量,同时使游标指针指向下一条记录(NEXT,或根据选项指向某条记录)。这里的游标必须是已经声明并打开了的,INTO后的局部变量可用来存放提取记录的各字段值,与在DECLARE CURSOR中SELECT的字段相对应。 @@FETCH_STATUS 可以使用@@FETCH_STATUS全局变量判断数据提取的状态。 @@FETCH_STATUS返回 FETCH 语句执行后的游标最终状态。 返回值 含义 0 FETCH语句成功。 -1 FETCH语句失败或此行不在结果集中。 -2 被提取的行不存在。 在使用CLOSE语句关闭某游标后,系统并没有完全释放游标的资源,并且也没有改变游标的定义,当再次使用OPEN语句时可以重新打开此游标。 13.3.3 游标示例 例1.定义一个查询全体姓“王”的学生姓名和所在系的游标,并输出游标结果。 DECLARE @sn CHAR(1

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档