标签:sid teacher 别名 排序 均值 大于 course cname 课程
多表查询练习:已知三张表:
Student 学生信息表(Student(SID,Sname,Sage,Ssex) -SID 学生编号,Sname 学生姓名,Sage 年龄,Ssex 学生性别)
SC学生课程成绩表 course课程信息表(Course(CID,Cname,TID) --CID --课程编号,Cname 课程名称,TID 教师编号)
teacher表(Teacher(TID,Tname) --TID 教师编号,Tname 教师姓名)
course课程表(CID,Cname,TID) --CID --课程编号,Cname 课程名称,TID 教师编号)
1.查询"01"课程比"02"课程成绩高的学生的信息及课程分数
select a.*,b.score as ‘01课程分数’,c.score as ‘02课程分数’ //as取别名
from student a,SC b,SC c
where a.SID = b.SID and a.SID = c.SID and b.CID = 1 and c.CID = 2 and b.score > c.score;
2、查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩
select a.SID , a.Sname ,avg(b.score) avg_score
from Student a,SC b
where a.SID = b.SID group by a.SID having avg(b.score) >= 60; //因为要根据每一个的成绩作平均值再排序,所以用到group by
3、查询在sc表中不存在成绩的学生信息。
select * from Student where SID not in (select distinct SID from SC);
4、查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩
select a.SID, a.Sname,count(b.CID) as count, sum(b.score) as sum_score
from Student a, SC b
where a.SID = b.SID group by a.SID;
5.查找有成绩但不是学生的学生学号、课程号、成绩
select *from SC where SID not in(select distinct SID from student)
6.查询李姓老师的数量
标签:sid teacher 别名 排序 均值 大于 course cname 课程
原文地址:https://www.cnblogs.com/laurarararararara/p/11940993.html