内容发布更新时间 : 2025/1/11 17:42:28星期一 下面是文章的全部内容请认真阅读。
实验5:复杂数据查询与视图管理
一、实验目的
1、掌握复杂查询的使用方法。
2、掌握视图的创建、视图的查询以及通过视图更新(插入、修改、删除)基本表中的数据。 二、实验任务及截图:
注意:用到的表结构及信息如下:
S:学生基本信息表;C:课程基本信息表;SC:学生选课信息表。各表的结构以及数据如下所示: 表 2.1 学生基本信息表(表名:S)
sno sname ssex 男 女 女 男 sbirth Sdept 95001 李勇 95002 刘晨 95003 王敏 95004 张立 1986/1/1 CS 1985/2/1 IS 1886/10/4 MA 1985/6/8 IS 表 2.2 课程基本信息表(表名:C)
cno 1 2 3 cname 数据库 数学 cpno 2 Ccredit 4 3 4 信息系1 统 4 操作系5 统 3 5 数据结6 构 3 6 C语言 2 表 2.3 学生选课信息表(表名:SC)
sno 95001 95001 95001 95002 95002 95003 95004 95004 95002 95003
综合查询:
1、求不选修C语言课程的学生学号。
select sno from S
where not exists(select C.*,SC.*
cno 1 2 3 2 3 1 2 4 5 4 grade term 92 85 87 78 84 30 58 70 60 70 1 2 3 2 3 1 2 3 4 3 from C,SC
where C.cno=SC.cno AND C.cname='C语言');
2、查询平均成绩在60分以上的学生姓名。
select sname,AVG(SC.grade) '平均分' from S,SC
where S.sno=SC.sno group by sname
having AVG(SC.grade)>60
3、求这样的学生姓名:该学生选修了全部课程并且其中一门课在90分以上。
select sname from S,SC
where S.sno=SC.sno AND grade>90
AND not exists(select * from C
where not exists(select * from SC
where sno=s.sno AND cno=C.cno))