[理学]数据库设计相关课件之存储过程和游标7.pptVIP

  • 2
  • 0
  • 约6.62千字
  • 约 39页
  • 2018-03-07 发布于浙江
  • 举报

[理学]数据库设计相关课件之存储过程和游标7.ppt

[理学]数据库设计相关课件之存储过程和游标7

数据库原理与空间数据库 李伟涛 liweitao_801225@127.com 7.2 分行处理程序—游标 在数据库开发过程中,使用SELECT语句查询,得到一个结果集,对这个结果集中的不同数据行,可能要做不同的处理。 也就是要逐一处理每一个数据行。游标提供了一种比较好的解决方案。 7.2 分行处理程序—游标 例 在图书表中查询出与数据库相关的图书,并对其中的部分书的价格进行调整。 7.2.2 使用游标 操作步骤: 1. 声明游标(变量)。 2. 打开游标。 3. 从一个游标中提取信息。 4. 关闭(释放)游标。 1. 声明游标 语法格式: DECLARE 游标名 [SCROLL] CURSOR FOR SELECT语句 [FOR {READ ONLY | UPDATE [OF 列名 [,...n]]}] 1. 声明游标 例7-15 声明只读游标。 declare cur_c cursor for select 书名,作者,定价 from 图书 for read only 例7-16 声明更新游标。 declare cur_c cursor for select 书名,作者,定价 from 图书 for update 2. 声明游标变量 语法格式: DECLARE @变量名 CURSOR 建立游标变量与游标之间的关联。 方法1:先声明游标和游标变量,然后用SET语句将游标赋给游标变量。 例:DECLARE c1 CURSOR FOR SELECT * FROM s DECLARE @cur_var CURSOR SET @cur_var = c1 3. 打开游标 游标声明后,如果要从游标中读取数据,必须打开游标。 语法格式: OPEN [GLOBAL] 游标名|游标变量名 其中,GLOBAL表示要打开的是一个全局游标。 4. 读取游标中的数据 当游标被打开后,就可以从游标中逐行地读取数据。 语法格式: FETCH [[NEXT|PRIOR|FIRST|LAST|ABSOLUTE {n|@nvar} |RELATIVE {n|@nvar}] FROM ] {{[GLOBAL] 游标名}|@游标变量} [INTO @变量名[,...n]] 读取游标的数据(P207) Fatch [ next | prior | first | last ] [absolute n | relative n ] from 游标名 [ into 变量名 ] Next----返回当前行的下一行记录 Prior----返回紧邻当前行前面的结果行 Last----返回最后一行记录 Absolute n----返回第n行记录,当n为负值则从最后一行算起。 Relative ----游标当前位置起向后第n行,若n为负值则向前第n行。 游标的操作 Declare cur1 scroll cursor for Select * from 图书 Where 书名 like ‘%数据库%’ Open cur1 Fetch first from cur1 Fetch last from cur1 Fetch prior from cur1 Fetch absolute 2 from cur1 Fetch relative 2 from cur1 Close cur1 Deallocate cur1 (1) 使用CLOSE命令关闭游标 处理完游标中数据后,必须关闭游标来释放数据结果集和定位于数据记录上的锁。 语法格式: CLOSE [GLOBAL] 游标名|@游标变量 CLOSE 语句可以关闭游标,但不释放游标的数据结构。如果要再次使用游标,可用OPEN命令重新打开。 6. 释放游标 用CLOSE命令关闭游标并没有释放游标占用的数据结构。使用DEALLOCATE命令将释放游标占用的数据结构,游标使用的任何资源也随之释放。 语法格式: DEALLOCATE [GLOBAL] 游标名|@游标变量 游标的关闭指

文档评论(0)

1亿VIP精品文档

相关文档