文档详情

数据库系统概论实验报告三讲解.doc

发布:2017-03-16约3.65千字共8页下载文档
文本预览下载声明
山西大学计算机与信息技术学院 姓 名 张浩田学 号 专业班级 课程名称 实验日期 2016/12/12 指导教师 王俊红 成 绩 实验名称 一、实验目的: 二、实验原理: 三、实验步骤: 实验时用到的SC表的数据 实验时用到的Student表的数据 ?游标声明 ?打开游标 ?读取数据 ?关闭游标 ?释放游标 使用游标的几个步骤: 1、声明游标。使用T-SQL语句生成一个结果集,并且定义游标的特征,如游标中的记录是否可以修改; 2、打开游标 3、推进游标指针,从游标的结果集中提取数据,从游标中检索一行或多行数据成为提取数据。 4、逐行处理游标指针所指向的行数据。 5、关闭和释放游标。 例1: 利用标准方式声明一个名称为“student”的游标 use TestDB declare student cursor for select Sno,Sname,Sage FROM Student WHERE Sage=19 FOR READ ONLY GO 例2: 声明一个名称为Xuanke的游标 use TestDB DECLARE XUANKE CURSOR DYNAMIC FOR SELECT Sno,Grade FROM SC WHERE Cno=2 FOR UPDATE OF Sno GO 打开XUANKE游标 OPEN XUANKE GO 从XUANKE游标中读取数据 FETCH NEXT FROM XUANKE GO 关闭XUANKE游标 CLOSE XUANKE 删除XUANKE游标 DEALLOCATE XUANKE 例3: 声明一个游标,可前后滚动,可对选课表2中的成绩进行修改 use TestDB DECLARE XK CURSOR FOR SELECT* FROM SC FOR UPDATE OF Grade GO 打开游标XK OPEN XK SELECT 游标数据行数=@@CURSOR_ROWS@@CURSOR_ROWS返回最后打开的游标中当前存在的合格行的数量。 返回值为-m,表示游标被异步填充。返回值-m是键集中当前的行数。 返回值为-1,表示游标为动态。因为游标可反映所有更改,所以符合游标的行数不断变化。因此永远不能确定地说所有符合条件的行均已检索到。 返回值为0,没有被打开的游标,没有符合最后打开的游标的行,或最后打开的游标已被关闭或被释放。 返回值为n,游标已完全填充。返回值n是在游标中的总行数。 @@ROWCOUNT 返回受上一语句影响的行数。任何不返回行的语句将这一变量设置为FETCH NEXT FROM XK 关闭游标XK CLOSE XK 例4: 为学生表中姓“李”的同学的行声明游标,并使用FETCH NEXT逐个提取这些行。(SCROLL 指定所有的提取选项FIRST, LAST, PRIOR, NEXT, RELATIVE, ABSOLUTE均可使用) use TestDB DECLARE STU SCROLL CURSOR FOR SELECT Sno FROM Student WHERE Sname LIKE 李% ORDER BY Sno GO OPEN STU FETCH NEXT FROM STU WHILE @@FETCH_STATUS=0 BEGIN FETCH NEXT FROM STU END @@FETCH_STATUS返回针对连接当前打开的任何游标发出的上一条游标 FETCH 语句的状态。 0 FETCH 语句成功。 -1 FETCH 语句失败或行不在结果集中。 -2 提取的行不存在use TestDB declare student scroll cursor for select Sname,Sage FROM Student open student fetch last from student fetch prior from student fetch absolute 2 from student fetch relative 3 from student fetch relative -2 from student 使用游标修改数据 UPDATE和DELETE都是集合操作语句,如果只想修改或删除其中某个记录,则需要用带游标的SELECT语句查出所有满足条件的记录,从中进一步找出要修改或删除的记录,然后用CURRENT形式的UPDATE 和DELETE 语句修改或删除之。具体步骤: 1、用DECLARE语句声明游标,并指定FOR UPDATE OF column_name_lis
显示全部
相似文档