1.学生表
2.课程表
3.老师表
4.选课成绩表
1.查询"01"课程比"02"课程成绩高的学生的信息及课程分数,查询同时存在"01"课程和"02"课程的情况
2.查询同时存在"01"课程和"02"课程的情况和存在"01"课程但可能不存在"02"课程的情况(不存在时显示为null)
3.select a.* , b.score 课程01的分数 ,c.score 课程02的分数 from Student a , SC b , SC c
where a.SID = b.SID and a.SID = c.SID and b.CID = ‘01’ and c.CID = ‘02’ and b.score < c.score
4.查询同时存在"01"课程和"02"课程的情况和不存在"01"课程但存在"02"课程的情况
select a.* , b.score 课程01的分数 ,c.score 课程02的分数 from Student a
left join SC b on a.SID = b.SID and b.CID = ‘01’
left join SC c on a.SID = c.SID and c.CID = ‘02’
where isnull(b.score,0) < c.score
5.查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩
select a.SID , a.Sname , cast(avg(b.score) as decimal(18,2)) avg_score
from Student a , sc b
where a.SID = b.SID
group by a.SID , a.Sname
having cast(avg(b.score) as decimal(18,2)) >= 60
order by a.SID
6.4、查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩
4.1、查询在sc表存在成绩的学生信息的SQL语句。
select a.SID , a.Sname , cast(avg(b.score) as decimal(18,2)) avg_score
from Student a , sc b
where a.SID = b.SID
group by a.SID , a.Sname
having cast(avg(b.score) as decimal(18,2)) < 60
order by a.SID
7.4.2、查询在sc表中不存在成绩的学生信息的SQL语句。
select a.SID , a.Sname , isnull(cast(avg(b.score) as decimal(18,2)),0) avg_score
from Student a left join sc b
on a.SID = b.SID
group by a.SID , a.Sname
having isnull(cast(avg(b.score) as decimal(18,2)),0) < 60
order by a.SID
8.5、查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩
5.1、查询所有有成绩的SQL。
select a.SID 学生编号 , a.Sname 学生姓名 , count(b.CID) 选课总数, sum(score) 所有课程的总成绩
from Student a , SC b
where a.SID = b.SID
group by a.SID,a.Sname
order by a.SID
9.查询"李"姓老师的数量
10.查询学过"张三"老师授课的同学的信息
select distinct Student.* from Student , SC , Course , Teacher
where Student.SID = SC.SID and SC.CID = Course.CID and Course.TID = Teacher.TID and Teacher.Tname = ‘张三’
order by Student.SID
11.查询没学过"张三"老师授课的同学的信息
select m.* from Student m where SID not in (select distinct SC.SID from SC , Course , Teacher where SC.CID = Course.CID and Course.TID = Teacher.TID and Teacher.Tname = ‘张三’) order by m.SID
12.1990出生
13按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩
14.查询不同老师所教不同课程平均分从高到低显示
15.查询出只有两门课程的全部学生的学号和姓名
15.查询各科成绩最高分、最低分和平均分:以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率
16.查询和01号的同学学习的课程完全相同的其他同学的信息
17.查询和01号的同学学习的课程完全相同的其他同学的信息
18.查询课程名称为数学,且分数低于60的学生姓名和分数
19.查询课程名称为数学,且分数低于60的学生姓名和分数
20.查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩
21.查询没学过张三老师讲授的任一门课程的学生姓名
22.查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,按课程编号升序排列
23查询平均成绩大于等于85的所有学生的学号、姓名和平均成绩
24.查询至少有一门课与学号为01的同学所学相同的同学的信息
25.查询至少有一门课与学号为01的同学所学相同的同学的信息
26.查询总成绩排名
27.检索01课程分数小于60,按分数降序排列的学生信息
28.没有学过全部课程
29.每门课被选修的学生数
30.学过 01,02
31.学过01没学过02