美文网首页转载部分
MySQL经典50题-第26到30题

MySQL经典50题-第26到30题

作者: 皮皮大 | 来源:发表于2021-03-28 11:08 被阅读0次

本文中介绍的是第26-30题目,主要涉及的知识点是:

  • 分组之后count统计人数

  • 模糊匹配

  • 同一个表的自连接

  • having的使用

5个题目是:

  • 查询每门课被选修的学生数

  • 查询出只有两门课程的全部学生的学号和姓名

  • 查询男女生人数

  • 查询名字中含有字的学生信息

  • 查询同名同性的学生名单,并统计同名人数

image

题目26

题目需求

查询每门课被选修的学生数

分析过程

题目想求解的是每门课有多少人选修,挺简单的

SQL实现

select 
  c.c_id
  ,c.c_name
  ,count(s.s_id)
 from Course c
 join Score s
 on c.c_id = s.c_id
 group by c.c_id;
image

题目27

题目需求

查询出只有两门课程的全部学生的学号和姓名

分析过程

image

课程:Score,通过c_id来决定课程数

学生:Student

SQL实现

having条件是分组之后在执行的,where语句是分组前先执行的

select 
    s.s_id
    ,s.s_name
from Student s
join Score sc
on s.s_id = sc.s_id
group by 1,2
having count(sc.c_id) = 2;
image

题目28

题目需求

查询男女生人数

分析过程

直接统计Student表中的性别s_sex人数

SQL实现

先看看数据:男女人数都是4

image
--  自己的方法
select 
    count(case when s_sex='男' then 1 end) as '男'
    ,count(case when s_sex='女' then 1 end) as '女'
from Student;

-- 参考方法
select 
    s_sex
    ,count(s_sex) as `人数`
from Student
group by s_sex;
image image

题目29

题目需求

查询名字中含有字的学生信息

分析过程

名字中带有风,我们使用模糊匹配%;使用的表是Student

SQL实现

先看看哪些同学的名字中有风

image
-- 模糊匹配:我们在两边都加上了%,考虑的是姓或者名字含有风,虽然风姓很少见
 select * from Student where s_name like "%风%";
image

题目30

题目需求

查询同名同性的学生名单,并统计同名人数

分析过程

从Student表中找出同名且同性的学生人数

SQL实现

1、先看看班级的学生信息

image

现有的数据中没有同名的学生,但是当班级人数增多的时候很有可能在班级上出现同名的学生

2、假设有同名同性的学生

 select 
  a.s_name
  ,a.s_sex
  ,count(*)
 from Student a  -- 同一个表的自连接
 join Student b
 on a.s_id != b.s_id   -- 连接的时候不能是同一个人:学号保证,每个人的学号是唯一的,其他字段都可能重复
 and a.s_sex = b.s_sex  -- 性别相同
 and a.s_name = b.s_name -- 名字相同
 group by 1,2;
image

相关文章

  • MySQL经典50题-第26到30题

    本文中介绍的是第26-30题目,主要涉及的知识点是: 分组之后count统计人数 模糊匹配 同一个表的自连接 ha...

  • MySQL经典50题-第16到20题

    MySQL50-6-第16-20题 本文中介绍的是第16-20题,涉及到的知识点包含: 自连接 SQL实现排序 多...

  • MySQL经典50题-第21到25题

    MySQL50-7-第21-25题 本文中介绍的是第21-25题目,主要涉及的知识点是: 分组统计求和,百分比 如...

  • MySQL经典50题-第31到35题

    MySQL50-9-第31-35题 本文中介绍的是第31-35题目,主要涉及的知识点是: 模糊匹配 同时指定多种排...

  • MySQL经典50题-第36到40题

    MySQL50-10-第36-40题 本文中介绍的是第36-40题目,涉及到的知识点都是多表的连接查询,需要指定不...

  • MySQL经典50题-第41到45题

    MySQL50-11-第41-45题 本文中介绍的是第41-45题,主要包含的知识点: 表的自连接查询比较信息 找...

  • 完结篇!MySQL经典50题-第46到50题

    MySQL50-12-第46-50题 本文中介绍的是第46-50题,主要的知识点:各种时间和日期函数的使用 yea...

  • MySQL经典50题-第1-5题

    MySQL经典50题-3-第1-5题目 本文中介绍的是1-5题,从题目和答案两个方面进行记录,涉及到的知识点: 一...

  • MySQL经典50题-第6-10题

    MySQL50-4-第6-10题 本文中介绍的是第6-10题,涉及到的主要知识点: 模糊匹配和通配符使用 表的自连...

  • MySQL经典50题-第11-15题

    MySQL50-5-第11-15题 本文中介绍的是第11-15题,具体的题目包含: 查询没有学完全部课程的同学的信...

网友评论

    本文标题:MySQL经典50题-第26到30题

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