. . . .
2.查询计算机系的学生的姓名、年龄。
答:select sname,sage from student where sdept = '计算机系'
3. 查询成绩在70~80分之间的学生的学号、课程号和成绩。
答:select sno,cno,grade from sc on where grade between 70 and 80
4. 查询计算机系年龄在18~20之间且性别为“男”的学生的姓名、年龄。 答:select sname,sage from student
where sdept = '计算机系' and sage between 18 and 20 and ssex = '男'
5. 查询“C001”号课程的最高分。
答:select max(grade) from sc where cno = 'C001'
6. 查询计算机系学生的最大年龄和最小年龄。
答:select max(sage) as max_age, min(sage) as min_age from student where sdept = '计算机系'
7. 统计每个系的学生人数。
答:select sdept,count(*) from student group by sdept
8. 统计每门课程的选课人数和考试最高分。
. word资料可编辑 .
. . . .
答:select cno, count(*),max(grade) from sc group by cno
9. 统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。 答:select 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. 查询选课门数超过2门的学生的学号、平均成绩和选课门数。 答:select sno, avg(grade), count(*) from sc having count(*) > 2
12. 查询选了“C002”课程的学生的姓名和所在系。
答:select sname,sdept from student s join sc on s.sno = sc.sno where cno = 'C002'
13. 查询成绩80分以上的学生的姓名、课程号和成绩,并按成绩降序排列结果。 答:select sname,cno,grade from student s join sc on s.sno = sc.sno where grade > 80 order by grade desc
14. 查询计算机系男生修了“数据库基础”的学生的姓名、性别和成绩。
. word资料可编辑 .
. . . .
答:select sname,ssex,grade from student s join sc on s.sno = sc.sno join course c on c.cno = sc.cno
where sdept = '计算机系' and ssex = '男' and cname = '数据库基础'
15. 查询学生的选课情况,要求列出每位学生的选课情况(包括未选课的学生),并列出学生的学
号、姓名、课程号和考试成绩。
答: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 = '数据库基础'
. word资料可编辑 .
. . . .
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
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 = '信息管理系'
. word资料可编辑 .
. . . .
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的学生学号、姓名、所在系和成绩,并对所在系进行如下处理: 当所在系为“计算机系”时,显示“CS”; 当所在系为“信息管理系”时,显示“IS”; 当所在系为“通信工程系”时,显示“CO”;
对其他系,均显示“OTHER”。
答:select s.sno 学号,sname 姓名, case sdept when '计算机系' then 'CS' when '信息系' then 'IS' when '数学系' then 'CO' else 'OTHER'
end as 所在系,grade 成绩
from student s join sc on s.sno = sc.sno join course c on c.cno = sc.cno where cname = 'vb'
23. 用子查询实现如下查询:
. word资料可编辑 .