有一个数据库StudentInfo,里面有学生表tblStudent(编号SId、姓名Sname、年龄Sage、性别Ssex),课程表tblCourse(课程编号CId、课程名称Cname、教师编号TId),成绩表tblScore(学生编号SId、课程编号CId、成绩Score),教师表tblTeacher(教师编号TId、姓名Tname),记录若干。按如下要求查找:
1、查询“001”课程比“002”课程成绩高的所有学生的学号;
2、查询平均成绩大于60分的同学的学号和平均成绩;
3、查询所有同学的学号、姓名、选课数、总成绩;
4、查询姓“李”的老师的个数;
5、查询没学过“叶平”老师课的同学的学号、姓名;
6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;
7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;
8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;
9、查询所有课程成绩小于60分的同学的学号、姓名;
10、查询没有学全所有课的同学的学号、姓名;
--1、查询“001”课程比“002”课程成绩高的所有学生的学号;
select Student.Sid from (select sid,score from SC where Cid='1') Student,
(select Sid,score from SC where Cid='2') Course
--2、查询平均成绩大于60分的同学的学号和平均成绩;
select Sid,avg(score) from SC group by Sid having avg(score)>60
--3、查询所有同学的学号、姓名、选课数、总成绩;
select Sid,Sname,Cid,score from Student inner join SC on(Student.Sid=SC.Sid) inner join Course on (Course.Cid=SC.Cid)
--4、查询姓“李”的老师的个数;
select count(*) from Teacher where Tname like '李%'
--5、查询没学过“叶平”老师课的同学的学号、姓名;
--select Sid,Sname from Student inner join SC on (Student.Sid=score.Sid) inner join Course on(Course.Cid=SC.Cid) inner join Teacher on (Teacher.Tid=Course.Tid) where Teacher.Tname is null
--6、查询学过“”并且也学过编号“”课程的同学的学号、姓名;
select SID,Sname
--7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;
select Sid,Sname
from Student
where Sid in (select Sid from SC ,Course ,Teacher where SC.Cid=Course.Cid AND Teacher.Tid=Course.Tid AND Teacher.Tname='叶平'
group by Sid
having count(SC.Cid)=(select count(Cid) from Course,Teacher where Teacher.Tid=Course.Tid AND Tname='叶平'))
--8、查询课程编号“”的成绩比课程编号“”课程低的所有同学的学号、姓名;
--9、查询所有课程成绩小于60分的同学的学号、姓名;
Select Student.SID,Student.Sname from Student,SC where Student.Sid=SC.Sid and SC.score<60
--10、查询没有学全所有课的同学的学号、姓名;
select Student.Sid,Student.Sname
from Student,SC where Student.Sid=SC.Sid
group by Student.Sid,Student.Sname
having count(Cid) <(select count(Cid) from Course)
交个朋友吧!好在大家都是学程序的
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息