新SQL Server 数据库教程 2008版 教学课件 郑阿奇 刘启芬 顾韵华 第4章 数据库查询和视图.pptVIP

  • 12
  • 0
  • 约 100页
  • 2016-10-26 发布于广东
  • 举报

新SQL Server 数据库教程 2008版 教学课件 郑阿奇 刘启芬 顾韵华 第4章 数据库查询和视图.ppt

4.4.3 打开游标 声明游标后,要使用游标从中提取数据,就必须先打开游标。在T-SQL中,使用OPEN语句打开游标,其格式为: OPEN { { [ GLOBAL ] cursor_name } | cursor_variable_name } OPEN语句打开游标,然后通过执行在DECLARE CURSOR(或 SET cursor_variable)语句中指定的T-SQL语句来填充游标(即生成与游标相关联的结果集)。 例如,语句 OPEN XS_CUR1 【例4.79】 定义游标XS_CUR3,然后打开该游标,输出其行数。 DECLARE XS_CUR3 CURSOR LOCAL SCROLL SCROLL_LOCKS FOR SELECT 学号, 姓名, 总学分 FROM XSB FOR UPDATE OF 总学分 OPEN XS_CUR3 SELECT 游标XS_CUR3数据行数 = @@CURSOR_ROWS 4.4.4 读取数据 游标打开后,就可以使用FETCH语句从中读取数据了。 语法格式: FETCH [ [ NEXT | PRIOR | FIRST | LAST | ABSOLUTE { n | @nvar } | RELATIVE { n | @nvar} ] FROM ] { { [ GLOBAL ] cursor_name } | @cursor_variable_name } [ INTO @variable_name [ ,…n ] ] 【例4.80】 从游标XS_CUR1中提取数据。设该游标已经声明并打开。 FETCH NEXT FROM XS_CUR1 执行结果如图4.38所示。 4.4.4 读取数据 【例4.81】 从游标XS_CUR2中提取数据。设该游标已经声明。 OPEN XS_CUR2 FETCH FIRST FROM XS_CUR2 读取游标第一行(当前行为第一行),结果如图4.39所示。 FETCH NEXT FROM XS_CUR2 读取下一行(当前行为第二行),结果如图4.40所示。 4.4.4 读取数据 FETCH PRIOR FROM XS_CUR2 读取上一行(当前行为第一行),结果如图4.41所示。 FETCH LAST FROM XS_CUR2 读取最后一行(当前行为最后一行),结果如图4.42所示。 FETCH RELATIVE -2 FROM XS_CUR2 读取当前行的上两行(当前行为倒数第三行),结果如图4.43所示。 4.4.4 读取数据 例如,接着上例继续执行如下语句: FETCH RELATIVE 3 FROM XS_CUR2 SELECT FETCH执行情况 = @@FETCH_STATUS 执行结果如图4.44所示。 4.4.5 关闭游标 游标使用完以后要及时关闭。关闭游标使用CLOSE语句,格式为: CLOSE { { [ GLOBAL ] cursor_name } | @cursor_variable_name } 语句参数的含义与OPEN语句中的相同。例如, CLOSE XS_CUR2 将关闭游标XS_CUR2。 4.4.6 删除游标 游标关闭后,其定义仍在,需要时可用OPEN语句打开它再使用。若确认游标不再需要,就要释放其定义占用的系统空间,即删除游标。删除游标使用DEALLOCATE语句,格式为 DEALLOCATE { { [ GLOBAL ] cursor_name } | @cursor_variable_name } 语句参数的含义与OPEN和CLOSE语句中的相同。例如, DEALLOCATE XS_CUR2 将删除游标XS_CUR2。 * 4.2.7 ORDER BY子句 在应用中经常要对查询的结果排序输出,如将学生成绩由高到低排序。在SELECT语句中,使用ORDER BY子句对查询结果进行排序。ORDER BY子句的格式为: [ ORDER BY { order_by_expression [ COLLATE collation_name ] [ ASC | DESC ] } [ ,...n ] ] 【例4.58】 将通信工程专业的学生按出生时间先后顺序排序。 SELECT * FROM XSB WHERE 专业= 通信工程 ORDER BY 出生时间 4.2.7 ORDER BY子句 【例4.59】 将计算机专业学生的“计算机基础”课程成绩按降序排列。 SELECT 姓名, 课程名, 成绩 FROM XSB, KCB, CJB WHERE XS

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档