数据库原理与应用--实验七

实验内容:

  1. 声明一个只读游标,数据来源是表Student的所有情况,按照名字排序,打开该游标,查看全局变量@@cursor_rows,提取第1行数据,第2行数据,第3行数据,试试能否把当前行的年龄改为50,能否提取最后一行数据;
  2. 声明一个可滚动(SCROLL)的只读游标,数据来源是选择表Student的姓名和学号,按照名字排序,打开该游标,查看全局变量@@cursor_rows,提取第5行数据,并把数据的学号和姓名赋予给变量学号和姓名(对比上一题理解SCROLL的作用);
  3. 声明一个具有灵敏性(INSENSITIVE)的游标,数据来源是表Student的学号姓名,按照名字排序,打开该游标,定义两个变量,使用全局变量@@FETCH_STATUS(0 FETCH 语句成功,-1 FETCH 语句失败或此行不在结果集中,-2 被提取的行不存在)与WHILE循环遍历游标所在数据集赋值给两个变量,并print变量;
  4. 声明一个可更新的游标,数据来源是表Student的所有情况,打开该游标,提取第1行数据,并把当前行的年龄改为50,然后查看基本表看是否已经修改;
  5. 利用游标查询全部学生的选课信息,显示格式如下所示:
  6. 试试看能不能声明一个有SCROLL或INSENSITIVE的可更新的游标;
  7. 统计“数据结构”课程考试成绩的各分数段的分布情况,即不及格、及格、中等、良好和优秀的人数。
源代码:
1.声明一个只读游标,数据来源是表Student的所有情况,按照名字排序,打开该游标,查看全局变量@@cursor_rows,提取第1行数据,第2行数据,第3行数据,试试能否把当前行的年龄改为50,能否提取最后一行数据;
declare s_sur cursor
for
select * from student order by sname
for read only
open s_sur
fetch next from s_sur
select 's_sur行数'=@@cursor_rows
update student
set SAge=50
where sname='程灵素'
fetch last from s_sur
close s_sur
deallocate  s_sur


2.声明一个可滚动(SCROLL)的只读游标,数据来源是选择表Student的姓名和学号,按照名字排序,打开该游标,查看全局变量@@cursor_rows,提取第5行数据,并把数据的学号和姓名赋予给变量学号和姓名(对比上一题理解SCROLL的作用);
declare s_sur1  scroll cursor
for
select sno,sname from student order by sname
for read only

open s_sur1
select 's_sur行数'=@@cursor_rows
fetch absolute 5 from s_sur1
declare @学号 CHAR(5)
declare @姓名 char(20)
into @学号,@姓名
select @学号'学号',@姓名'姓名'
close s_sur1
deallocate  s_sur1

3.声明一个具有灵敏性(INSENSITIVE)的游标,数据来源是表Student的学号姓名,按照名字排序,打开该游标,定义两个变量,使用全局变量@@FETCH_STATUS(0 FETCH 语句成功,-1 FETCH 语句失败或此行不在结果集中,-2 被提取的行不存在)与WHILE循环遍历游标所在数据集赋值给两个变量,并print变量;
declare s_sur2 insensitive scroll cursor
for
select SNO,SName from student order by sname
open s_sur2
declare @学号 char(5), @姓名 varchar(20)
WHILE @@FETCH_STATUS=0 
BEGIN
fetch next from s_sur2
into @学号,@姓名
print @学号
print @姓名
END
close s_sur2
deallocate  s_sur2

4.声明一个可更新的游标,数据来源是表Student的所有情况,打开该游标,提取第1行数据,并把当前行的年龄改为50,然后查看基本表看是否已经修改;
declare s_sur3 scroll cursor
for
select * from student
for update
open s_sur3
fetch first from s_sur3
update student
set sage=50
where current of s_sur3
close s_sur3
deallocate  s_sur3

5.利用游标查询全部学生的选课信息;
declare s_sur4  scroll cursor
for
select Student.SNo,SName,CName,Score from Student
join sc on Student.SNo=sc.SNo join course
on sc.CNo=course.CNo order by SName
open s_sur4
declare @学号 char(5),@姓名 char(10),@课程 char(10),@成绩 int,@临时学号 char(5)
fetch next from s_sur4
into  @学号,@姓名,@课程,@成绩
set @临时学号=@学号
print @学号+'   '+@姓名
print @姓名+'   选修了:'+@课程+'   成绩为:'+convert(char(5),@成绩)
while @@FETCH_STATUS=0
begin
fetch next from s_sur4
into  @学号,@姓名,@课程,@成绩
if not @临时学号=@学号
print @学号+'    '+@姓名
print @姓名+'    选修了:'+@课程+'   成绩为:'+convert(char(5),@成绩)
set @临时学号=@学号
end
close s_sur4
deallocate  s_sur4

6.试试看能不能声明一个有SCROLL或INSENSITIVE的可更新的游标;
SCROLL
declare s_sur5 scroll cursor
for
select * from student
for update
open s_sur5
fetch next from s_sur5
close s_sur5
deallocate  s_sur5

INSENSITIVE
declare s_sur5 INSENSITIVE cursor
for
select * from student
for update
open s_sur5
fetch next from s_sur5
close s_sur5
deallocate  s_sur5

7.统计“数据结构”课程考试成绩的各分数段的分布情况,即不及格、及格、中等、良好和优秀的人数。
select 
SUM(case when score>=0 and score <60 then 1 else  0 end)as 不及格,
SUM(case when score >=60 and Score<75 then 1 else 0 end)as 中,
SUM(case when score >= 75and Score<85 then 1 else 0 end)as 良,
SUM(case when score >= 85  then 1 else 0 end)as 优秀
from sc where sc.CNo=(select cno from course where CName='数据结构')

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
数据库原理应用实验是在数据库原理应用课程中的实践环节,通过实验来加深学生对数据库原理应用的理解和掌握。在实验中,学生可以通过设计数据库、编写SQL语句、实现数据库的操作等方式来应用所学理论知识,同时也可以了解数据库管理系统的使用和数据库应用的实际情况。 以下是数据库原理应用实验的一些分析: 1. 实验目的 数据库原理应用实验的主要目的是让学生通过实践来加深对数据库原理应用的理解和掌握,同时也能够了解数据库管理系统的使用和数据库应用的实际情况。 2. 实验内容 数据库原理应用实验的内容包括数据库设计、SQL语句编写、数据库的操作实现等方面。通过实验,学生可以学习到关系模型、E-R图、范式等数据库设计原理,以及SQL语句的基本语法、查询、插入、删除、更新等操作。 3. 实验过程 数据库原理应用实验的过程一般包括以下几个步骤: (1)数据库设计:学生需要根据实际需求设计一个数据库,包括数据的设计、数据类型的选择、关系建立等方面。 (2)SQL语句编写:学生需要编写SQL语句来实现数据库的各种操作,如查询、插入、删除、更新等。 (3)数据库的操作实现:学生需要在数据库管理系统中实现数据库的各种操作,包括创建数据、插入数据、查询数据、删除数据等。 4. 实验结果 通过数据库原理应用实验,学生可以获得以下几个方面的结果: (1)对数据库原理应用的理解和掌握更加深入。 (2)对SQL语句的编写和数据库的操作实现更加熟练。 (3)对数据库管理系统的使用和数据库应用的实际情况有了更加深入的了解。 总之,数据库原理应用实验数据库原理应用课程中的重要实践环节,通过实验可以加深学生对数据库原理应用的理解和掌握,同时也可以了解数据库管理系统的使用和数据库应用的实际情况

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值