4.7学习总结
数据库原理第五章习题
1.试说明视图的好处
答:利用视图可以简化客户端的数据查询语句, 使用户能从多角度看待同一数据, 可以提高数据的安全性, 视图对应数据库三级模式中的外模式, 因此提供了一定程度的逻辑独立性。适当的利用视图可以更清晰的表达查询
2.使用视图可以加快数据的查询速度,这句话对吗?为什么?
答:不对,因为视图并没有保存数据,对视图的查询要转换成为对基本表的查询,这个转换需要时间,它会降低查询效率。
3.利用第3章建立的Student、Course和SC表,写出创建满足下述要求的视图的SQL语句。
⑴查询学生学号、姓名、所在系、课程号、课程名、课程学分。
Create view t1(sno,sname,sdept,cno,cname,credit)
As Select s.sno ,s.sname,s.dept,c.cno,c.cname,c.credit From student s join course c on s.sno=c.sno
⑵查询学生的学号、姓名、选修的课程名和考试成绩。 Create view t2(sno,sname,cname,grade) As
Select s.sno,s.sname,c.cname,c.grade
From student s join course c on s.sno=c.cno
⑶统计每个学生的选课门数,要求列出学生学号和选课门数。 Create view t3(sno,选课门数) As
Select s.sno ,count(*) 选课门数
From student s LEFT OUTER join sc on s.sno=sc.sno group by s.sno
⑷统计每个学生的选课总学分,要求列出学生学号和总学分(说明:考试成绩大于等于陆拾才可获得此门课程的学分)。 Create view t4 (sno,总学分) As
Select sno , sum(credit) From sc
Where grade>=60 Group by sno
(5)查询计算机系JAVA考试成绩最高的学生的学号、姓名和JAVA考试成绩
Create view v5As
Select top1 with ties s.sno,sname, grade
From studentsjoin scon s.sno=sc.sno
Join course c on c.cno =sc.cno
Where sdept =计算机系 and cname ='java'
Order by grade desc
4.利用第3题建立的视图,完成如下查询:
(1)查询考试成绩大于等于90分的学生的姓名、课程名和成绩。
Select sname,cname,grade From v2 where grade >=90
(2)查询选课门数超过3门的学生的学号和选课门数。
Select*from v3where total >=3
(3)查询计算机系选课门数超过3 门的学生的姓名和选课门数
Select sname,total from v3 join student s on s.sno = v3.sno
Where sdept=计算机系 and total >= 3
(4)查询修课总学分超过 10 分的学生的学号、姓名、所在系和修课总学分。
Select v4.sno,sname,sdept,total credit
From v4 join student s on s.sno = v4.sno
Where totalcredit >= 10
(5)查询年龄大于等于20 岁的学生中,修课总学分超过 10分的学生的姓名、年龄所在系和修课总学分。
Select sname,sage,sdept,total credit
Fromv4 join student s ons.sno= v4.sno
Where sage >= 20 and total credit >= 10
5修改第3题(4)定义的视图,使其查询每个学生的学号、总学分以及总的选课门数。
Alter view v4 As Select sno,sum(credit) as total credit,count(*) as total cnoFrom sc join course c on c.cno=sc.cno Group by sno
6修改第3题(5)定义的视图,使其统计全体学生中JAVA 考试成绩最高的学生的学号、姓名、所在系和JAVA考试成绩。
Alter view v5 As Select top 1 with ties s.sno,sname,sdept, grade From students join scon s.sno=sc.sno
Join course c on c.cno =sc.cno
Where cname=’java'
Order by grade desc
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本