数据库原理及应用(第2版)参考答案 何玉洁

答:select s.sno,sname,cno,grade from student s

left join sc on s.sno = sc.sno

16. 查询哪些课程没有人选,要求列出课程号和课程名。

答:select c.cno,cname from course c left join sc on c.cno = sc.cno

where sc.cno is null

17.查询计算机系没有选课的学生,列出学生姓名。

答:select sname from student s left join sc on s.sno = sc.sno Where sdept = '计算机系' and sc.sno is null

18. 列出“数据库基础”课程考试成绩前三名的学生的学号、姓名、所在系和考试成绩。 答:select top 3 s.sno, sname, sdept, grade from Student s join SC on s.Sno = SC.Sno join Course c on c.Cno = SC.Cno where cname = '数据库基础' order by grade desc

19.查询VB考试成绩最低的学生的姓名、所在系和VB成绩。

答:select top 1 with ties sname,sdept,grade from student s join sc on s.sno = sc.sno join course c on c.cno = sc.cno where cname = 'VB' order by grade asc

·13· 20. 查询有考试成绩的所有学生的姓名、修课名称及考试成绩,要求将查询结果放在一张新的永久表中,假设新表

名为new_sc。

答:select sname, cname, grade into new_sc from student s join sc on s.sno = sc.sno join course c on c.cno = sc.cno where grade is not null

21. 分别查询信息管理系和计算机系的学生的姓名、性别、修课名称、修课成绩,并要求将这两个查询结果合并成

一个结果集,并以系名、姓名、性别、修课名称、修课成绩的顺序显示各列。

答:select sdept 系名, sname 姓名, ssex 性别, cname 修课名称, grade 修课成绩 from student s join sc on s.sno=sc.sno join course c on c.cno=sc.cno where sdept = '信息管理系'

UNION

select sdept , sname, ssex, cname, grade from student s join sc on s.sno=sc.sno join course c on c.cno=sc.cno where sdept = '计算机系'

22.查询选了VB的学生学号、姓名、所在系和成绩,并对所在系进行如下处理:

13

·14· 当所在系为“计算机系”时,显示“CS”; 当所在系为“信息管理系”时,显示“IS”; 当所在系为“通信工程系”时,显示“CO”;

对其他系,均显示“OTHER”。

答:select s.sno 学号,sname 姓名, case sdept when '计算机系' then 'CS' when '信息系' then

>>鐏炴洖绱戦崗銊︽瀮<<
12@gma联系客服:779662525#qq.com(#替换为@)