ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:595.49KB ,
资源ID:30050327      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30050327.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库《游标的使用》实验报告.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据库《游标的使用》实验报告.docx

1、数据库游标的使用实验报告xx大学计算机与信息技术学院实验报告姓 名学 号专业班级课程名称数 据 库 系 统 概 论实验日期成 绩指导教师批改日期实验名称游标的使用一、 实验目的:掌握游标的使用方法 掌握使用游标逐行操作SELECT语句结果集的数据的技能二、 实验内容:游标声明打开游标读取数据关闭游标释放游标三、实验步骤:(一)使用游标的几个步骤:1、声明游标。使用T-SQL语句生成一个结果集,并且定义游标的特征,如游标中的记录是否可以修改;2、打开游标3、推进游标指针,从游标的结果集中提取数据,从游标中检索一行或多行数据成为提取数据。4、逐行处理游标指针所指向的行数据。5、关闭和释放游标。例1

2、、利用标准方式声明一个名称为“student”的游标use 学生选课declare student cursorforselect Sno,Sname,sageFROM studentWHERE sage=19FOR READ ONLYGO open student / 打开gofetch next from student /从游标中读取数据 goclose student / 关闭deallocate student / 删除例2:声明一个名称为Xuanke的游标use 学生选课/*声明一个名称为Xuanke的游标*/DECLARE XUANKE CURSORDYNAMIC /*动态的,动

3、力的*/FOR SELECT Sno,GradeFROM SCWHERE Cno=1FOR UPDATE OF SnoGO/*打开XUANKE游标*/OPEN XUANKEGO/*从XUANKE游标中读取数据*/FETCH NEXT FROM XUANKEGO/*关闭XUANKE游标*/CLOSE XUANKE/*删除XUANKE游标*/DEALLOCATE XUANKE例3:声明一个游标,可前后滚动,可对选课表2中的成绩进行修改use 学生选课/*声明一个游标,可前后滚动,可对选课表中的成绩进行修改use 学生选课*/DECLARE XK CURSORFOR SELECT * FROM SC

4、FOR UPDATE OF Grade /*打开游标XK*/OPEN XKSELECT 游标数据行数=CURSOR_ROWS/*全局变量CURSOR_ROWS返回最后打开的游标中当前存在的合格行的数量。返回值为-m,表示游标被异步填充。返回值-m是键集中当前的行数。返回值为-1,表示游标为动态。因为游标可反映所有更改,所以符合游标的行数不断变化。因此永远不能确定地说所有符合条件的行均已检索到。返回值为,没有被打开的游标,没有符合最后打开的游标的行,或最后打开的游标已被关闭或被释放。返回值为n,游标已完全填充。返回值n是在游标中的总行数。ROWCOUNT 返回受上一语句影响的行数。任何不返回行的

5、语句将这一变量设置为.*/*从游标XK中读取数据*/FETCH NEXT FROM XK/*关闭游标XK*/close XKdeallocate XK例4:为学生表中姓“李”的同学的行声明游标,并使用FETCH NEXT逐个提取这些行。(SCROLL 指定所有的提取选项FIRST, LAST, PRIOR, NEXT, RELATIVE, ABSOLUTE均可使用)use 学生选课/*为学生表中姓“李”的同学的行声明游标,并使用FETCH NEXT逐个提取这些行。(SCROLL 指定所有的提取选项FIRST, LAST, PRIOR, NEXT, RELATIVE, ABSOLUTE均可使用)

6、use 学生选课*/DECLARE STU SCROLL CURSOR FOR SELECT SnameFROM StudentWHERE Sname LIKE 李%ORDER BY SnameGOOPEN STU FETCH NEXT FROM STUWHILE FETCH_STATUS=0BEGINFETCH NEXT FROM STUENDclose STU/*FETCH_STATUS返回针对连接当前打开的任何游标发出的上一条游标FETCH 语句的状态。0 FETCH 语句成功。-1 FETCH 语句失败或行不在结果集中。-2 提取的行不存在*/例5:创建一个SCROLL游标,使其通过L

7、AST, PRIOR, RELATIVE, ABSOLUTE 选项支持所有滚动能力。/*创建一个SCROLL游标,使其通过LAST, PRIOR, RELATIVE, ABSOLUTE 选项支持所有滚动能力。NEXT:返回当前行的下一行,并使其为当前行。如果FETCH NEXT是对游标的第一次提取操作,则返回结果集中的第一行。NEXT为默认的游标提取选项。PRIOR:返回当前行的前一行,并使其为当前行。如果FETCH PRIOR是对游标的第一次提取操作,则没有行返回并且游标置于第一行之前。FIRST:返回游标中的第一行并将其作为当前行。LAST:返回游标中的最后一行并将其作为当前行。ABSOL

8、UTEn/nvar:如果n或nvar为正数,返回从游标头开始的第n行并将返回的行变成新的当前行;如果n或nvar为负数,返回游标尾之前的第n行并将返回的行变成新的当前行;如果n或nvar为,则没有行返回。n必须为整形常量且nvar必须为smallint, tinyint 或int。RELATIVEn/nvar:如果n或nvar为正数,返回当前行之后的第n行并将返回的行变成新的当前行;如果n或nvar为负数,返回当前行之前的第n行并将返回的行变成新的当前行;如果n或nvar为,返回当前行;如果对游标的第一次提取操作时将FETCH RELATIVE 的n或nvar指定为负数或,则没有行返回。n必须

9、为整形常量且nvar必须为smallint, tinyint 或int。use 学生选课*/declare student scroll cursor for select Sname,SageFROM Studentopen studentfetch last from studentfetch prior from studentfetch absolute 2 from studentfetch relative 3 from studentfetch relative -2 from studentdeallocate(二)使用游标修改数据UPDATE和DELETE都是集合操作语句,如

10、果只想修改或删除其中某个记录,则需要用带游标的SELECT语句查出所有满足条件的记录,从中进一步找出要修改或删除的记录,然后用CURRENT形式的UPDATE 和DELETE 语句修改或删除之。具体步骤:1、用DECLARE语句声明游标,并指定FOR UPDATE OF column_name_list。2、用OPEN语句打开游标。3、用FETCH语句推进游标指针。4、检查记录是否是需要修改或删除的记录。5、处理完毕用CLOSE语句关闭游标。用户可以在UPDATE 或DELETE 语句中使用游标来更新或删除表或视图中的行,但不能用来插入新行。例6:统计“数据结构”课程考试成绩的各分数段的分布情

11、况。use 学生选课declare course cursor for select Grade from SCwhere Cno=(select Cno from Course where Cname= Data structure)declare p_100 smallint,p_90 smallint,p_80 smallintdeclare p_70 smallint,p_60 smallint,p_others smallintdeclare p_grade smallintset p_100=0set p_90=0 set p_80=0set p_70=0set p_60=0set

12、 p_others=0set p_grade=0open courseloop:fetch next from course into p_gradeif (p_grade=100)set p_100=p_100+1else if (p_grade=90)set p_90=p_90+1else if (p_grade=80)set p_80=p_80+1else if (p_grade=70)set p_70=p_70+1else if (p_grade=60)set p_60=p_60+1else set p_others=p_others+1if (FETCH_STATUS =0) got

13、o loop print str(p_100)+,+str(p_90)+,+str(p_80)+,print str(p_70)+,+str(p_60)+,+str(p_others)close coursedeallocate course例7:定义一个游标,将学生表中所有学生的姓名、年龄显示出来。use 学生选课go declare sname varchar(50),sage intdeclare stud scroll cursor forselect Sname,Sage from Student for read onlyopen studfetch from stud into

14、sname,sagewhile FETCH_STATUS=0begin print 学生姓名:+sname+ +学生年龄:+str(sage) fetch from stud into sname,sageendclose studdeallocate stud例8:通过游标将学生表中第5位学生的年龄由19改为21use 学生选课go declare stu scroll cursor for select Sname, Sage from Studentfor update of Sageopen stufetch absolute 5 from stuupdate Studentset Sage=21where current of stufetch absolute 5 from stu close studeallocate stu三、 结果分析 (或者实验体会)本次试验学习了游标的使用,在老师的指导下通过在SQL Server 2005上对一些相关的例题进行操作了解并掌握了游标的使用方法。练习进行了游标的声明、如何打开游标、如何读取数据和如何关闭游标以及怎样释放游标的基本练习,并学会了使用游标逐行操作SELECT语句结果集的数据的技能。在实际操作中更加熟练的掌握和理解数据库语言,希望在今后的学习中能不断进步。 教 师评 语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1