资源描述:
《数据库《游标的使用》实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、xx大学计算机与信息技术学院实验报告姓名学号专业班级课程名称数据库系统概论实验日期成绩指导教师批改日期实验名称游标的使用一、实验目的:•掌握游标的使用方法•掌握使用游标逐行操作SELECT语句结果集的数据的技能二、实验内容:•游标声明•打开游标•读取数据•关闭游标•释放游标三、实验步骤:(一)使用游标的几个步骤:1、声明游标。使用T-SQL语句生成一个结果集,并且定义游标的特征,如游标中的记录是否可以修改;2、打开游标3、推进游标指针,从游标的结果集中提取数据,从游标中检索一行或多行数据成为提取数据。4、逐行处理游标指针所指向的行数据。5、关
2、闭和释放游标。例1、利用标准方式声明一个名称为“student”的游标use学生选课declarestudentcursorforselectSno,Sname,sageFROMstudentWHEREsage=19FORREADONLYGOopenstudent//打开gofetchnextfromstudent//从游标中读取数据goclosestudent//关闭deallocatestudent//删除例2:声明一个名称为Xuanke的游标use学生选课/*声明一个名称为Xuanke的游标*/DECLAREXUANKECURSORDY
3、NAMIC/*动态的,动力的*/FORSELECTSno,GradeFROMSCWHERECno='1'FORUPDATEOFSnoGO/*打开XUANKE游标*/OPENXUANKEGO/*从XUANKE游标中读取数据*/FETCHNEXTFROMXUANKEGO/*关闭XUANKE游标*/CLOSEXUANKE/*删除XUANKE游标*/DEALLOCATEXUANKE例3:声明一个游标,可前后滚动,可对选课表2中的成绩进行修改use学生选课/*声明一个游标,可前后滚动,可对选课表中的成绩进行修改use学生选课*/DECLAREXKCUR
4、SORFORSELECT*FROMSCFORUPDATEOFGrade/*打开游标XK*/OPENXKSELECT'游标数据行数'=@@CURSOR_ROWS/*全局变量@@CURSOR_ROWS返回最后打开的游标中当前存在的合格行的数量。返回值为-m,表示游标被异步填充。返回值-m是键集中当前的行数。返回值为-1,表示游标为动态。因为游标可反映所有更改,所以符合游标的行数不断变化。因此永远不能确定地说所有符合条件的行均已检索到。返回值为,没有被打开的游标,没有符合最后打开的游标的行,或最后打开的游标已被关闭或被释放。返回值为n,游标已完全填
5、充。返回值n是在游标中的总行数。@@ROWCOUNT返回受上一语句影响的行数。任何不返回行的语句将这一变量设置为.*//*从游标XK中读取数据*/FETCHNEXTFROMXK/*关闭游标XK*/closeXKdeallocateXK例4:为学生表中姓“李”的同学的行声明游标,并使用FETCHNEXT逐个提取这些行。(SCROLL指定所有的提取选项FIRST,LAST,PRIOR,NEXT,RELATIVE,ABSOLUTE均可使用)use学生选课/*为学生表中姓“李”的同学的行声明游标,并使用FETCHNEXT逐个提取这些行。(SCROLL
6、指定所有的提取选项FIRST,LAST,PRIOR,NEXT,RELATIVE,ABSOLUTE均可使用)use学生选课*/DECLARESTUSCROLLCURSORFORSELECTSnameFROMStudentWHERESnameLIKE'李%'ORDERBYSnameGOOPENSTUFETCHNEXTFROMSTUWHILE@@FETCH_STATUS=0BEGINFETCHNEXTFROMSTUENDcloseSTU/*@@FETCH_STATUS返回针对连接当前打开的任何游标发出的上一条游标FETCH语句的状态。0FETCH语
7、句成功。-1FETCH语句失败或行不在结果集中。-2提取的行不存在*/例5:创建一个SCROLL游标,使其通过LAST,PRIOR,RELATIVE,ABSOLUTE选项支持所有滚动能力。/*创建一个SCROLL游标,使其通过LAST,PRIOR,RELATIVE,ABSOLUTE选项支持所有滚动能力。NEXT:返回当前行的下一行,并使其为当前行。如果FETCHNEXT是对游标的第一次提取操作,则返回结果集中的第一行。NEXT为默认的游标提取选项。PRIOR:返回当前行的前一行,并使其为当前行。如果FETCHPRIOR是对游标的第一次提取操作
8、,则没有行返回并且游标置于第一行之前。FIRST:返回游标中的第一行并将其作为当前行。LAST:返回游标中的最后一行并将其作为当前行。ABSOLUTE{n/@nva