一、
实验目的:
理解游标的作用
掌握游标的声明、打开、读取、关闭和释放
二、 实验内容
1、 建立游标实现,逐行读取选过课程的学生信息,要
求列出学号 ,姓名,课程名,成绩。
declare 学生信息 cursor static for
select *from 学生 open 学生信息
fetch first from 学生信息 declare @n int set @n=1
while @n <=@@CURSOR_ROWS begin
set @n =@n +1
fetch next from 学生信息 end
close 学生信息 deallocate 学生信息
2、 建立游标实现,对选课表中的成绩做逐个判定等级,
并将等级显示出来。90分以上的等级为:优秀;80-90的为良好;70-80的为中等;60-70的为合格;60分以下的为不及格。
declare 等级判定 cursor static
for
select *from 成绩
open 等级判定
declare @xh nvarchar(255),@kch nvarchar(255),@cj float,@dj char(10),@n int
fetch first from 等级判定 into @xh,@kch,@cj select @xh,@kch,@cj set @n=1
while @n <=@@CURSOR_ROWS begin set @dj= case
when @cj >=90 then '优秀' when @cj >=80 then '良好' when @cj >=70 then '中等' when @cj >=60 then '合格' when @cj <60 then '不及格' end
select @xh ,@kch,@cj ,@dj
fetch next from 等级判定 into @xh,@kch,@cj set @n =@n +1 end
close 等级判定 deallocate 等级判定 select *from 学生
3、 建立游标实现,将入学成绩大于560分的学生的政
治面貌改为党员。
declare 改面貌 cursor
for select * from 学生 where 入学成绩>560 for update of 政治面貌 open 改面貌
declare @n int set @n =1
while @n <@@CURSOR_ROWS begin
fetch next from 改面貌
update 学生 set 政治面貌 = '党员' where CURRENT of 改面貌 end
close 改面貌 deallocate 改面貌
4、 建立游标实现,删除选课表中“旅游学概论”的选
课信息
declare 删除选课 cursor
for select distinct 课程号 from 成绩 where 课程号=(select distinct 课程号 from 课程 where 课程名='旅游学概论') for update of 课程号 open 删除选课
declare @n int set @n =1
while @n <@@CURSOR_ROWS begin
fetch next from 删除选课
delete from 成绩 where 课程号=(select distinct 课程号 from 课程 where 课程名='旅游学概论') end
select * from 课程 close 删除选课
deallocate 删除选课
因篇幅问题不能全部显示,请点此查看更多更全内容