实验5:数据库——复杂数据查询与视图管理 下载本文

内容发布更新时间 : 2024/5/6 7:03:09星期一 下面是文章的全部内容请认真阅读。

实验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))