美文网首页linux运维
SQL进阶练习题11-15

SQL进阶练习题11-15

作者: awsome365 | 来源:发表于2019-02-19 23:19 被阅读0次

SQL进阶练习题11-15

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

四张表概要:

  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 "的同学所学相同的同学的信息
  3. 查询和" 01 "号的同学学习的课程完全相同的其他同学的信息
  4. 查询没学过"张三"老师讲授的任一门课程的学生姓名
  5. 查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩

sql

查询没有学全所有课程的同学的信息

select * from student
where sid in
(select sid from sc
group by sid
having count(cid)<>3);

查询至少有一门课与学号为" 01 "的同学所学相同的同学的信息

select * from student where sid in (
select distinct sid from sc where cid in
(select cid from sc where sid='01'));

查询和" 01 "号的同学学习的课程完全相同的其他同学的信息

select * from student
where sid in(select distinct sid from sc where cid in(select distinct cid from sc where sid='01') and sid<>'01'
group by sid
having count(cid)=3);

查询没学过"张三"老师讲授的任一门课程的学生姓名
select sname from student
where sid not in
(select sid from sc
where cid in(select cid from course
where tid in(select tid from teacher where tname ='张三')));

查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩
select s.sid,s.sname,avg(sc.score) from student s,sc
where sc.score<60 and s.sid=sc.sid
group by s.sid,s.sname
having count(sc.score)>=2;

select s.sid,s.sname,a.avg from student s right join 
(select sid,avg(score) avg from sc where score<60 group by sid having count(cid)>=2) a
on s.sid=a.sid;

相关文章

  • SQL进阶练习题11-15

    SQL进阶练习题11-15 大背景和建表、插入语句就不啰嗦了,参考第一篇。 四张表概要: 学生表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进阶练习题36-40

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

  • SQL进阶练习题6-10

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

  • 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进阶练习题11-15

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