数据库第五六七章作业答案_第1页
数据库第五六七章作业答案_第2页
数据库第五六七章作业答案_第3页
数据库第五六七章作业答案_第4页
数据库第五六七章作业答案_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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、关系模式:学生修课(学号,姓名,所在系,性别,、关系模式:学生修课(学号,姓名,所在系,性别,课程号,课程名,学分,成绩)课程号,课程名,学分,成绩)语义:一个学生可以选多门课程,一门课程可以被多语义:一个学生可以选多门课程,一门课程可以被多名学生选。一个学生有唯一的所在系,每门课程有名学生选。一个学生有唯一的所在系,每门课程有唯一的课程名和学分唯一的课程名和学分答:候选码为(学号,课程号),同时也是此关系模答:候选码为(学号,课程号),同时也是此关系模式的主键式的主键分解:分解:学生表(学生表(学号学号,姓名,所在系,

温馨提示

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

评论

0/150

提交评论