数据库之视图、索引和游标.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库之视图、索引和游标

补充1、编写一个程序,采用游标方式输出所有课程的平均分。 USE xscj GO --声明变量 DECLARE @c_name varchar(8),@s_avg float --声明游标 DECLARE st_cursor CURSOR FOR SELECT 课程表.课程名,AVG(成绩表.分数) FROM 课程表,成绩表 WHERE 课程表.课程号=成绩表.课程号 AND 成绩表.分数 IS NOT NULL GROUP BY 课程表.课程名 --打开游标 OPEN st_cursor --提取第一行数据 FETCH NEXT FROM st_cursor INTO @c_name,@s_avg --打印表标题 PRINT 课程   平均分 PRINT ----------------- WHILE @@FETCH_STATUS = 0 BEGIN --打印一行数据 PRINT @c_name+ +CAST(@s_avg AS char(10)) --提取下一行数据 FETCH NEXT FROM st_cursor INTO @c_name,@s_avg END --关闭游标 CLOSE st_cursor --释放游标 DEALLOCATE st_cursor GO 补充2、编写一个程序,采用游标方式输出所有学号、课程号和成绩等级。 USE xscj GO --声明变量 DECLARE @no1 char(5),@no2 char(6),@fs char(2) --声明游标 DECLARE fs_cursor CURSOR FOR SELECT 学号,课程号, CASE WHEN 分数=90 THEN A WHEN 分数=80 THEN B WHEN 分数=70 THEN C WHEN 分数=60 THEN D WHEN 分数60 THEN E END FROM 成绩表 WHERE 分数 IS NOT NULL ORDER BY 学号 --打开游标 OPEN fs_cursor --提取第一行数据 FETCH NEXT FROM fs_cursor INTO @no1,@no2,@fs --打印表标题 PRINT 学号 课程号 等级 PRINT ----------------- WHILE @@FETCH_STATUS = 0 BEGIN --打印一行数据 PRINT @no1+ +@no2+ +@fs --提取下一行数据 FETCH NEXT FROM fs_cursor INTO @no1,@no2,@fs END --关闭游标 CLOSE fs_cursor --释放游标 DEALLOCATE fs_cursor GO 补充3、 使用游标查看数据库XSCJ中“学生表”中满足条件的记录个数。 USE XSCJ GO --声明游标 DECLARE jbxxb_Cursor CURSOR FOR SELECT 学号, 姓名 FROM xscj.dbo.学生表 WHERE 院系名称= ‘计算机学院 --打开游标 OPEN jbxxb_Cursor --提取第一行数据 FETCH NEXT FROM jbxxb_Cursor WHILE @@FETCH_STATUS = 0 BEGIN --提取下一行数据 FETCH NEXT FROM jbxxb_Cursor END --关闭游标 CLOSE jbxxb_Cursor --释放游标 DEALLOCATE jbxxb_Cursor 补充4、为“学生表”中姓名以“张”开头的行声明一个简单的游标jbxxb1_cursor,并使用 FETCH NEXT 逐个提取这些行。FETCH 语句以单行结果集形式返回由 DECLARE CURSOR 指定列的值。 USE XSCJ GO DECLARE jbxxb1_cursor CURSOR FOR SELECT 姓名 FROM 学生表 WHERE 姓名 LIKE 张% ORDER BY 姓名 OPEN jbxxb1_cursor FETCH NEXT FROM jbxxb1_cursor WHILE @@FETCH_STATUS = 0 BEGIN FETCH NEXT FROM jbxxb1_cursor END CLOSE jbxxb1_cursor DEALLOCATE jbxxb1_cursor 补充5、本例与上例相似,使用 FETCH语句将值存入变量,但 FETCH 语句的值存储于

文档评论(0)

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

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

1亿VIP精品文档

相关文档