《数据库第五六七章作业答案ppt课件.ppt》由会员分享,可在线阅读,更多相关《数据库第五六七章作业答案ppt课件.ppt(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章作业1、查询学生选课表中的全部数据、查询学生选课表中的全部数据select * from sc2、查询计算机系学生的姓名、年龄、查询计算机系学生的姓名、年龄select sname,sage from student where sdept=计算机系计算机系3、查询成绩在、查询成绩在70-80的学生的学号、课程号和成绩的学生的学号、课程号和成绩select * from sc where grade between 70 to 804、查询计算机系年龄在、查询计算机系年龄在18-20的男生的姓名、年龄的男生的姓名、年龄select sname,sage from studentWhere
2、 sdept=计算机系计算机系 and sage between 18 to 20 and ssex=男男5、查询、查询“C01”课程的最高成绩课程的最高成绩Select max(grade) from sc where cno=c016、查询计算机系学生的最大年龄和最小年龄、查询计算机系学生的最大年龄和最小年龄 select max(sage),min(sage) from student where sdept=计算机系计算机系7、统计每个系的学生人数、统计每个系的学生人数 select sdept,count(*) from student group by sdept8、统计每门课程的
3、选课人数和考试最高分、统计每门课程的选课人数和考试最高分 select cno,count(*),max(grade) from sc group by cno9、统计每个学生的选课门数和考试总成绩,并按选课门数、统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果升序显示结果 select sno,count(*),sum(grade) from sc group by sno order by count(*) asc10、查询总成绩超过、查询总成绩超过200分的学生,要求列出学号、总成绩分的学生,要求列出学号、总成绩 select sno,sum(grade) from sc g
4、roup by sno having sum(grade)20011、查询选修了、查询选修了”C02“课程的学生的姓名和所在系课程的学生的姓名和所在系 select sname,sdept from student s join sc on s.sno=sc.sno where sc.con=c0212、查询成绩、查询成绩80分以上的学生的姓名、选的课程号和成绩,分以上的学生的姓名、选的课程号和成绩,并按成绩降序排列结果并按成绩降序排列结果 select sname,cno,grade from student s join sc on s.sno=sc.sno where grade 80
5、order by grade desc13、查询哪些学生没有选课,要求列出学号、姓名和所在系、查询哪些学生没有选课,要求列出学号、姓名和所在系 select s.sno,sname,sdept from student s left join sc on s.sno=sc.sno where o is null14、查询与、查询与VB在同一学期开设的课程的课程名和开课学期在同一学期开设的课程的课程名和开课学期 select ame,c1.semester from course c1 join course c2 on c1.semester=c2.semester where ame=VBa
6、nd ame!=VB15、查询与李勇年龄相同的学生的姓名、所在系和年龄、查询与李勇年龄相同的学生的姓名、所在系和年龄 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
7、by sage asc17、查询、查询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 desc18、查询选课门数最多的前、查询选课门数最多的前2名学生的学号和选课门数,包名学生的学号和选课门数,包括并列的情况括并列的情况 select top 2 with
8、ties sno,count(*) from sc group by sno order by count(*) desc19、查询学生人数最多的系,列出系名和人数。、查询学生人数最多的系,列出系名和人数。 select top 1 sdept,count(*) from student group by sdept order by count(*) desc20、用子查询实现如下查询:、用子查询实现如下查询: 1)查询选修了)查询选修了”C01“课程的学生姓名和所课程的学生姓名和所在系在系 select sname,sdept from student where sno in(selec
9、t sno from sc where con=c01) 2)查询数学系成绩)查询数学系成绩80分以上的学生的学号、分以上的学生的学号、姓名、选的课程号和成绩姓名、选的课程号和成绩 select sno,sname,cno,grade from student join sc on student.sno=sc.sno where sdept=数学系数学系 and sno in (select sno from sc where grade80) 20、3)查询计算机系考试成绩最高的学生的姓名)查询计算机系考试成绩最高的学生的姓名 select sname from student s joi
10、n 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)查询数据结构考试成绩最高的学生的姓名、所)查询数据结构考试成绩最高的学生的姓名、所在系、性别和成绩在系、性别和成绩 select sname,sdept,ssex,grade from student s join sc on s.sno=sc.sno join course on o=o where cname=数据结构数据结构
11、 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!=VB22、查询计算机系没有选课的学生的姓名和所在系、查询计算机系没有选课的学生的姓名和所在系 select sname from student s left join sc
12、on s.sno = sc.sno Where sdept = 计算机系计算机系 and o is null23、查询计算机系考试平均最低的学生的姓、查询计算机系考试平均最低的学生的姓名以及所选的课程名名以及所选的课程名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)24、查询、查询1-5学期中选课人数最少的课程的课学期中选课
13、人数最少的课程的课程名、开课学期和学分程名、开课学期和学分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 BETWEEN 1 AND 5) 25、create table test_t( col1 int, col2 char(10) not null, col3 char(10) insert into test_t(col2) values(b1) ins
14、ert 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
15、 cname=vb and grade=(select 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=231、将、将VB课程的学分改为课程的学分改为3分分update course set credit=credit+2 where cname=vb32、将计算机系学生的年龄增加、将计算机系学生的年龄增加1岁岁update studen
16、t set sage=sage+1 where sdept=计算机系计算机系33、将信息系学生的、将信息系学生的“计算机文化学计算机文化学”课程的考试成课程的考试成绩加绩加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-
17、1 where cno = (select top 1 cno from sc group by cno order by count(*) asc)第六章作业9、1)在在student表上为表上为sname列建立一个聚集索引,索引列建立一个聚集索引,索引名为名为sldx create clustered index sldx on student(sname)2)在在course表上为表上为cname列建立一个唯一的非聚集索列建立一个唯一的非聚集索引,索引名为引,索引名为cnidx create unique nonclustered index cnidx on course(cname)
18、3)在在SC表上为表上为SNO和和CNO建立一个组合的聚集索引,建立一个组合的聚集索引,索引名为索引名为snocnoidx Create clustered index snocnoidx on sc(sno,cno)4)删除删除SNAME列上建立的列上建立的sldx 索引索引Drop index sldx12、1)查询学生的学号、姓名、所在系、课程名、课程号、课程学分查询学生的学号、姓名、所在系、课程名、课程号、课程学分create view v1 as select s.sno,sdept,cno,cname,credit from student s join sc on s.sno=s
19、c.sno join course c on o=o2)查询学生的学号、姓名、选修的课程名和考试成绩查询学生的学号、姓名、选修的课程名和考试成绩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=o3) 统计每个学生的选课门数,要求列出学生学号和选课门数统计每个学生的选课门数,要求列出学生学号和选课门数create view v3 as select sno,count(*) as total from sc group by sno
20、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 sno13、1)查询考试成绩大于等于)查询考试成绩大于等于90分得学生的姓名、课程名和成绩分得学生的姓名、课程名和成绩select sname,cname,grade from
21、 v2 where grade=902)查询选课门数超过查询选课门数超过3门的学生的学号和选课门数门的学生的学号和选课门数select * from v3 where total33)查询计算机系选课门数超过查询计算机系选课门数超过3门的学生的姓名和选课门数门的学生的姓名和选课门数select sname,total from v3 join student s on v3.sno=s.sno4)查询修课总学分超过查询修课总学分超过10分的学生的学号、姓名、所在系和修分的学生的学号、姓名、所在系和修课总学分课总学分select v4.sno,sname,sdept,total_credit f
22、rom v4 join student s on s.sno=v4.sno where total_credit105)查询年龄大于等于查询年龄大于等于20的学生中,修课总学分超过的学生中,修课总学分超过10分的学生分的学生的姓名、年龄、所在系和修课总学分的姓名、年龄、所在系和修课总学分select sname,sage,sdept,total_credit from v4 join student s on v4.sno=s.sno where sage=20 and total_credit=1014、修改视图、修改视图v4,使其查询每个学生的学号、总学分,使其查询每个学生的学号、总学分和
23、总的选课门数和总的选课门数alter view v4 as select sno,sum(credit),count(*) from sc join course c on o=o group by sno第七章作业6、关系模式:学生修课(学号,姓名,所在系,性别,、关系模式:学生修课(学号,姓名,所在系,性别,课程号,课程名,学分,成绩)课程号,课程名,学分,成绩)语义:一个学生可以选多门课程,一门课程可以被多语义:一个学生可以选多门课程,一门课程可以被多名学生选。一个学生有唯一的所在系,每门课程有名学生选。一个学生有唯一的所在系,每门课程有唯一的课程名和学分唯一的课程名和学分答:候选码为(
24、学号,课程号),同时也是此关系模答:候选码为(学号,课程号),同时也是此关系模式的主键式的主键分解:分解:学生表(学生表(学号学号,姓名,所在系,性别),姓名,所在系,性别)课程表(课程表(课程号课程号,课程名,学分),课程名,学分)选课表(选课表(学号,课程号学号,课程号,成绩),成绩)7、关系模式:学生(学号,姓名,所在系,班号,班、关系模式:学生(学号,姓名,所在系,班号,班主任,系主任)主任,系主任)语义:一个学生只在一个系的一个班学习,一个系只语义:一个学生只在一个系的一个班学习,一个系只有一个系主任,一个班只有一名班主任,一个系可有一个系主任,一个班只有一名班主任,一个系可以有多个
25、班。以有多个班。答:候选码为学号,同时也是此关系模式的主键答:候选码为学号,同时也是此关系模式的主键分解:分解:学生表(学生表(学号学号,姓名,所在系,班号),姓名,所在系,班号)班级表(班级表(班号班号,班主任),班主任)选课表(选课表(所在系所在系,系主任),系主任)8、关系模式:教师授课(课程号,课程名,学分,授、关系模式:教师授课(课程号,课程名,学分,授课教师号,教师名,授课时数)课教师号,教师名,授课时数)语义:一名课程(有课程号决定)有确定的课程名和语义:一名课程(有课程号决定)有确定的课程名和学分,每名教师(有教师号决定)有确定的教师名,学分,每名教师(有教师号决定)有确定的教师名,每门课程可以有多名教师讲授,每名教师也可以讲每门课程可以有多名教师讲授,每名教师也可以讲授多门课程,每名教师对每门课程有确定的授课时授多门课程,每名教师对每门课程有确定的授课时数数答:候选码为(课程号,授课教师号),同时也是此答:候选码为(课程号,授课教师号),同时也是此关系模式的主键关系模式的主键分解:分解:课程表(课程表(课程号课程号,课程名,学分),课程名,学分)教师表(教师表(教师号教师号,教师名),教师名)授课表(授课表(课程号,教师号课程号,教师号,授课时数),授课时数)
限制150内