美文网首页
SQL进阶练习题36-40

SQL进阶练习题36-40

作者: awsome365 | 来源:发表于2019-03-06 22:32 被阅读0次

SQL进阶练习题36-40

大背景和建表、插入语句就不啰嗦了,参考第一篇

四张表概要:

  1. 学生表
    student(sid,sname,sage,ssex) --sid 学生编号,sname 学生姓名,sage 出生年月,ssex 学生性别
  2. 课程表
    course(cid,cname,tid) --cid 课程编号,cname 课程名称,tid 教师编号
  3. 教师表
    teacher(tid,tname) --tid 教师编号,tname 教师姓名
  4. 成绩表
    sc(sid,cid,score) --sid 学生编号,cid 课程编号,score 分数
    为了方便查看,我把四个表截了图:


    student
    course
    teacher
    sc

题目:

  1. 查询不及格的课程
  2. 查询课程编号为 01 且课程成绩在 80 分以上的学生的学号和姓名
  3. 求每门课程的学生人数
  4. 成绩不重复,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩
  5. 成绩有重复的情况下,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩

sql

查询不及格的课程

select * from sc
where score<60;

查询课程编号为 01 且课程成绩在 80 分以上的学生的学号和姓名

select s.sid,s.sname from student s
join sc on s.sid=sc.sid
where sc.cid='01' and sc.score>=80;

求每门课程的学生人数

select cid,count(*) from sc
group by cid;

select c.cname,count(sc.score) from sc
join course c on sc.cid=c.cid
group by c.cname;

成绩不重复,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩

select s.*,sc.score from student s
join sc on s.sid=sc.sid
join course c on c.cid=sc.cid
join teacher t on t.tid=c.tid
where t.tname='张三' and sc.score
order by sc.score desc
limit 0,1;
--mysql中显示前几个使用limit x,y 从x+1开始显示y行

select sid from sc where cid=(select cid from course where tid=(select tid from teacher where tname = '张三'))

select s.*,a.score from student s
join (
select sid,score from sc where cid=(
  select cid from course where tid=(
    select tid from teacher where tname='张三'
  )
)
) a on s.sid=a.sid
order by a.score desc
limit 0,1;
--这句使用子查询优化

成绩有重复的情况下,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩

相关文章

  • SQL进阶练习题36-40

    SQL进阶练习题36-40 大背景和建表、插入语句就不啰嗦了,参考第一篇。 四张表概要: 学生表student(s...

  • SQL进阶练习题2019-02-18

    SQL进阶练习题 新上项目需要用到sql,虽然以前学过一些语法,但是在工作中总是感觉欠火候。于是从网上找来一份sq...

  • SQL进阶练习题31-35

    SQL进阶练习题31-35 大背景和建表、插入语句就不啰嗦了,参考第一篇。 四张表概要: 学生表student(s...

  • SQL进阶练习题46-50

    SQL进阶练习题46-50 大背景和建表、插入语句就不啰嗦了,参考第一篇。 四张表概要: 学生表student(s...

  • SQL进阶练习题41-45

    SQL进阶练习题41-45 大背景和建表、插入语句就不啰嗦了,参考第一篇。 四张表概要: 学生表student(s...

  • SQL进阶练习题6-10

    SQL进阶练习题6-10 大背景和建表、插入语句就不啰嗦了,参考第一篇。 四张表概要: 学生表student(si...

  • SQL进阶练习题11-15

    SQL进阶练习题11-15 大背景和建表、插入语句就不啰嗦了,参考第一篇。 四张表概要: 学生表student(s...

  • SQL进阶练习题1-5

    SQL进阶练习题1-5 大背景和建表、插入语句就不啰嗦了,参考第一篇。 四张表概要: 学生表student(sid...

  • SQL进阶练习题16-20

    SQL进阶练习题16-20 大背景和建表、插入语句就不啰嗦了,参考第一篇。 四张表概要: 学生表student(s...

  • SQL进阶练习题21-25

    SQL进阶练习题21-25 大背景和建表、插入语句就不啰嗦了,参考第一篇。 四张表概要: 学生表student(s...

网友评论

      本文标题:SQL进阶练习题36-40

      本文链接:https://www.haomeiwen.com/subject/krpfpqtx.html