14.查询选修编号为'3-105'课程且成绩高于选修编号为'3-245'课程的同学的课程号、学号 、成绩。
注释:all 表示所有;
答案:
select * from sc where 课程号='3-105' and 成绩 > all (select成绩 from sc where 课程号='3-245') order by 成绩desc;
15.
列出所有教师和同学的姓名 、性别 、年龄。
注释:此题将所有表连接在一起:
答案:
selectstudent.姓名 as 学生姓名,student.性别 as 学生性别,student.年龄 as 学生年龄,
teacher.
姓名 as 教师姓名,teacher.性别 as 教师性别,teacher.年龄 as 教师年龄 from
student
inner join(sc inner join(course inner jointeacher oncourse.教师号=teacher.教师号)
on sc.课程号=course.课程号) on student.学号=sc.学号;
16.
查询成绩比'3-105'课程的平均成绩低的学生的成绩表。
答案:
select * from sc where 成绩 < (select avg(成绩) from sc where 课程号='3-105') and 课程号='3-105';
17.
查询成绩比该课程平均成绩低的学生的成绩表。
注释:此题是所有题中最难的,下面的方法很经典,请认真琢磨,先按照课程进行分组,查出小于各门课程平均成绩的所有成绩;
答案:
select * from sc where 成绩 < any (select avg(成绩) from scgroup by 课程号) order by 课程号 asc;
18.
列出所有任课教师的姓名和专业。
注释:姓名和专业涉及两个表course表和teacher,只需连接这两个表就能解决此题了;
答案:
selectteacher.姓名 as 教师姓名,专业 from teacher where 教师号 in (select 教师号 from course where 课程号 in(select 课程号 from sc groupby 课程号));
19.
列出所有未讲课教师的姓名和专业。
注释:解答同上题;
答案:
selectteacher.姓名 as 教师姓名,专业 from teacher where 教师号 not in
(
select 教师号 from course where 课程号 in (select 课程号 from sc groupby 课程号));
20.
列出至少有2名男生的班号。
注释:根据性别=''这个条件来对student表进行分组就可以了;
答案:
select 班级 as 班号 from student where 性别='' groupby 班级 having count(*) >= 2;
21.
查询不姓''的学生记录。
答案:
1:select *  from student where 姓名 not like '%';
2:select * from student where 姓名 notin (select 姓名 from student where 姓名like '%');
22.
查询每门课最高分的学生的学号、课程号、成绩。
注释:此题的技巧在于根据最高分来查成绩表;
答案:
select * from sc where 成绩 in (select max(成绩) from scgroup by 课程号);
23.
查询与'李军'同性别并同班的同学名字。
注释:嵌套查询;
答案:
select 姓名 from student where 性别=(select 性别 from student where 姓名='李军') and
班级=(select 班级 from studentwhere 姓名='李军');
24.
查询''教师及其所上的课程。
注释:先分析此题涉及的表;
答案:
select 姓名 as 教师名,课程名 as 课程 from teacher inner join course on teacher.教师号=course.教师号where 性别='';
25.
查询选修'计算机导论'课程的''同学的成绩表。
注释:此题用嵌套查询和表连接两种方法进行解答;
答案:
1:select * from sc where 课程号=(select 课程号 from course where 课程名='计算机导论') and 学号 in (select 学号 from student where 性别='');
2:select sc.学号,student.姓名 as 学生姓名,student.性别 as 学生性别,sc.课程号,sc.成绩,course.课程名 fromstudent inner join (sc inner join course on sc.课程号=course.课程号)
onstudent.学号=sc.学号 where 性别='' and 课程名='计算机导论';