数据库第五六七章作业答案.ppt

上传人:sh****n 文档编号:16562131 上传时间:2020-10-12 格式:PPT 页数:22 大小:207.50KB
收藏 版权申诉 举报 下载
数据库第五六七章作业答案.ppt_第1页
第1页 / 共22页
数据库第五六七章作业答案.ppt_第2页
第2页 / 共22页
数据库第五六七章作业答案.ppt_第3页
第3页 / 共22页
资源描述:

《数据库第五六七章作业答案.ppt》由会员分享,可在线阅读,更多相关《数据库第五六七章作业答案.ppt(22页珍藏版)》请在装配图网上搜索。

1、第五章作业 1、查询学生选课表中的全部数据 select * from sc 2、查询计算机系学生的姓名、年龄 select sname,sage from student where sdept=计算机系 3、查询成绩在 70-80的学生的学号、课程号和成绩 select * from sc where grade between 70 to 80 4、查询计算机系年龄在 18-20的男生的姓名、年龄 select sname,sage from student Where sdept=计算机系 and sage between 18 to 20 and ssex=男 5、查询“ C01”课

2、程的最高成绩 Select max(grade) from sc where cno=c01 6、查询计算机系学生的最大年龄和最小年龄 select max(sage),min(sage) from student where sdept=计算机系 7、统计每个系的学生人数 select sdept,count(*) from student group by sdept 8、统计每门课程的选课人数和考试最高分 select cno,count(*),max(grade) from sc group by cno 9、统计每个学生的选课门数和考试总成绩,并按选课门数 升序显示结果 select

3、 sno,count(*),sum(grade) from sc group by sno order by count(*) asc 10、查询总成绩超过 200分的学生,要求列出学号、总成绩 select sno,sum(grade) from sc group by sno having sum(grade)200 11、查询选修了” C02“课程的学生的姓名和所在系 select sname,sdept from student s join sc on s.sno=sc.sno where sc.con=c02 12、查询成绩 80分以上的学生的姓名、选的课程号和成绩, 并按成绩降序

4、排列结果 select sname,cno,grade from student s join sc on s.sno=sc.sno where grade 80 order by grade desc 13、查询哪些学生没有选课,要求列出学号、姓名和所在系 select s.sno,sname,sdept from student s left join sc on s.sno=sc.sno where o is null 14、查询与 VB在同一学期开设的课程的课程名和开课学期 select ame,c1.semester from course c1 join course c2 on

5、c1.semester=c2.semester where ame=VBand ame!=VB 15、查询与李勇年龄相同的学生的姓名、所在系和年龄 select s2.sname,s2.sdept,s2.sage from student s1 join student s2 on s1.sage=s2.sage where s1.sname=李勇 and s2.sname!=李勇 16、查询计算机系年龄最小的 2名学生的姓名和年龄 select top 2 with ties sname,sage from student where sdept=计算机系 order by sage asc

6、 17、查询 VB考试成绩最高的前 2名学生的姓名、所在系和 VB成绩,包括并列的情况 select top 2 with ties sname,sdept,grade from student s join sc on s.sno=sc.sno join course c on o=o where cname=VB order by grade desc 18、查询选课门数最多的前 2名学生的学号和选课门数,包 括并列的情况 select top 2 with ties sno,count(*) from sc group by sno order by count(*) desc 19、查

7、询学生人数最多的系,列出系名和人数。 select top 1 sdept,count(*) from student group by sdept order by count(*) desc 20、用子查询实现如下查询: 1)查询选修了” C01“课程的学生姓名和所 在系 select sname,sdept from student where sno in(select sno from sc where con=c01) 2)查询数学系成绩 80分以上的学生的学号、 姓名、选的课程号和成绩 select sno,sname,cno,grade from student join sc

8、 on student.sno=sc.sno where sdept=数学系 and sno in (select sno from sc where grade80) 20、 3)查询计算机系考试成绩最高的学生的姓名 select sname from student s join sc on s.sno=sc.sno where sdept=计算机系 and grade=(select max(grade) from sc join student s on s.sno=sc.sno where sdept=计算机系 ) 4)查询数据结构考试成绩最高的学生的姓名、所 在系、性别和成绩 se

9、lect sname,sdept,ssex,grade from student s join sc on s.sno=sc.sno join course on o=o where cname=数据结构 and grade=(select max(grade) from sc join count on o=o where cname=数据结 构 ) 21、查询没有选修 VB课程的学生的姓名和所在系 select sname sdept from student s join sc on s.sno=sc.sno join course c on o=o where cname!=VB 22

10、、查询计算机系没有选课的学生的姓名和所在系 select sname from student s left join sc on s.sno = sc.sno Where sdept = 计算机系 and o is null 23、查询计算机系考试平均最低的学生的姓 名以及所选的课程名 select sname,cname from student s join sc on s.sno=sc.sno join course c on o=o where sdept = 计算机系 and sno=(select top 1 sno from sc order by ave(grade) asc

11、) 24、查询 1-5学期中选课人数最少的课程的课 程名、开课学期和学分 SELECT Cname, Semester, Credit FROM Course WHERE (Cno IN (SELECT TOP 1 WITH ties cno FROM sc GROUP BY cno ORDER BY COUNT(*) ASC) AND (Semester BE TWEEN 1 AND 5) 25、 create table test_t( col1 int, col2 char(10) not null, col3 char(10) insert into test_t(col2) valu

12、es(b1) insert into test_t(col1,col2,col3) values(1,b2,c2) insert into test_t(col1,col2) values(2,b3) 26、删除考试成绩低于 50分的学生的该门课程的选 课记录 delete from sc where grade60 and sdept=计算机 系 29、删除 VB考试成绩最低的学生的 VB选课记录 delete from sc join student s on s.sno=sc.sno join course c on o=o where cname=vb and grade=(selec

13、t min(grade) from sc join student s on sc.sno=s.sno where cname=vb) 30、将第 2学期开设的所有课程的学分增加 2分 update course set credit=credit+2 where semester=2 31、将 VB课程的学分改为 3分 update course set credit=credit+2 where cname=vb 32、将计算机系学生的年龄增加 1岁 update student set sage=sage+1 where sdept=计算机系 33、将信息系学生的“计算机文化学”课程的考

14、试成 绩加 5分 update sc set grade=grade+5 where cno in(select cno from course where cname=计算机系 ) and sno in (select sno from student where sdept=信息系) 34、将选课人数最少的课程的学分降低 1分 update course set credit=credit-1 where cno = (select top 1 cno from sc group by cno order by count(*) asc) 第六章作业 9、 1)在 student表上为 s

15、name列建立一个聚集索引,索引 名为 sldx create clustered index sldx on student(sname) 2)在 course表上为 cname列建立一个唯一的非聚集索 引,索引名为 cnidx create unique nonclustered index cnidx on course(cname) 3)在 SC表上为 SNO和 CNO建立一个组合的聚集索引, 索引名为 snocnoidx Create clustered index snocnoidx on sc(sno,cno) 4)删除 SNAME列上建立的 sldx 索引 Drop index

16、 sldx 12、 1)查询学生的学号、姓名、所在系、课程名、课程号、课程学分 create view v1 as select s.sno,sdept,cno,cname,credit from student s join sc on s.sno=sc.sno join course c on o=o 2)查询学生的学号、姓名、选修的课程名和考试成绩 create view v2 as select s.sno,sname,cname,grade from student s join sc on s.sno=sc.sno join course c on o=o 3) 统计每个学生的选课

17、门数,要求列出学生学号和选课门数 create view v3 as select sno,count(*) as total from sc group by sno 4) 统计每个学生的选课总学分,要求列出学生学号和总学分(说明:考试成 绩大于等于 60分才能获得此门课程的学分) create view v4 as select sno,sum(credit) total_credit from sc join course c on o=o where grade=60 group by sno 13、 1)查询考试成绩大于等于 90分得学生的姓名、课程名和成绩 select sname

18、,cname,grade from v2 where grade=90 2)查询选课门数超过 3门的学生的学号和选课门数 select * from v3 where total3 3)查询计算机系选课门数超过 3门的学生的姓名和选课门数 select sname,total from v3 join student s on v3.sno=s.sno 4)查询修课总学分超过 10分的学生的学号、姓名、所在系和修 课总学分 select v4.sno,sname,sdept,total_credit from v4 join student s on s.sno=v4.sno where to

19、tal_credit10 5)查询年龄大于等于 20的学生中,修课总学分超过 10分的学生 的姓名、年龄、所在系和修课总学分 select sname,sage,sdept,total_credit from v4 join student s on v4.sno=s.sno where sage=20 and total_credit=10 14、修改视图 v4,使其查询每个学生的学号、总学分 和总的选课门数 alter view v4 as select sno,sum(credit),count(*) from sc join course c on o=o group by sno 第

20、七章作业 6、关系模式:学生修课(学号,姓名,所在系,性别, 课程号,课程名,学分,成绩) 语义:一个学生可以选多门课程,一门课程可以被多 名学生选。一个学生有唯一的所在系,每门课程有 唯一的课程名和学分 答:候选码为(学号,课程号),同时也是此关系模 式的主键 分解: 学生表( 学号 ,姓名,所在系,性别) 课程表( 课程号 ,课程名,学分) 选课表( 学号,课程号 ,成绩) 7、关系模式:学生(学号,姓名,所在系,班号,班 主任,系主任) 语义:一个学生只在一个系的一个班学习,一个系只 有一个系主任,一个班只有一名班主任,一个系可 以有多个班。 答:候选码为学号,同时也是此关系模式的主键 分解: 学生表( 学号 ,姓名,所在系,班号) 班级表( 班号 ,班主任) 选课表( 所在系 ,系主任) 8、关系模式:教师授课(课程号,课程名,学分,授 课教师号,教师名,授课时数) 语义:一名课程(有课程号决定)有确定的课程名和 学分,每名教师(有教师号决定)有确定的教师名, 每门课程可以有多名教师讲授,每名教师也可以讲 授多门课程,每名教师对每门课程有确定的授课时 数 答:候选码为(课程号,授课教师号),同时也是此 关系模式的主键 分解: 课程表( 课程号 ,课程名,学分) 教师表( 教师号 ,教师名) 授课表( 课程号,教师号 ,授课时数)

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!