• Mysql基础(三)——常用函数与聚合函数


    〇、学生表数据:

     

    一、常用函数

    1.1、查询学生信息,并将学生姓名转换为小写(lower):

    select *,lower(student_name) from students;

      

    1.2、查询学生信息,并将学生姓名转换为大写(upper):

    select *,upper(student_name) from students;

    2.1、查询学生信息,并将学生姓名字段截取一部分:

    select *,substr(student_name,5,2) from students;

    该函数的意思是,截取student_name字段数据的,第五位开始,截取两位。 

    2.2、查询第五个字符为‘W’的学生信息:

    select * from students where substr(student_name,5,1)='w';

    3、查询所有学生的名字,并显示出名字的长度:

    select student_name,length(student_name) from students;

    4、查询学生信息,并多显示一列成绩,如果为空,则换为0:

    select *,ifnull(achievement,0) from students;

    看第七行数据

    二、聚合函数

    1、计算总成绩:

    select sum(achievement) from students;

     

    2、求平均成绩:

    select avg(achievement) from students;

    3、求最大年龄和最小年龄:

    select max(age),min(age) from students;

    4、 查询学生数量:

    select count(id) from students;

    一般写count(*) 

    5、 查询有成绩的学生人数:

    select count(achievement) from students;

    6、查询所有学生的姓名,重名的只显示一条:

    select distinct(student_name) from students;

    我们发现,只有9条数据了,因为有两位学生都叫【XiaoMing】 。

    7、查询学生不重名的总人数:

    select count(distinct(student_name)) from students;

    8、查询男生有几人,女生有几人:

    select sex,count(*) from students group by sex;

    9、按小组划分,查询各个小组的总成绩:

    select team_id,sum(achievement) from students group by team_id;

    10、在9的基础上,筛选出总成绩大于100的小组:

    select team_id,sum(achievement) from students group by team_id having sum(achievement)>100;

     

     【having】一般要搭配【group by】来使用。

    select XXX from XXX where XXX group by XXX having XXX order by XXX limit.

    11、limit:

    11.1、取排序前五的学生:

    select * from students limit 5;

     11.2、取第三条数据,往下取五条:

    select * from students limit 2,5;

    【limit 2,5】的当中的【2】的意思是,索引为2,即第三条数据。 

    11.3、查询成绩前五名的学生信息:(按照成绩降序)

    select * from students order by achievement desc limit 5;

    12、总结:查询男性当中的,按照小组划分,小组的总成绩大于30的,按照小组总成绩降序排列,取前2条数据:

    select team_id,sum(achievement) from students where sex=0 group by team_id having sum(achievement)>30 order by sum(achievement) desc limit 2;

  • 相关阅读:
    【Android 四大组件之Content Provider】一文吃透Content Provider 内容提供者
    文心一言Plugin实战来了,测试开发旅游攻略助手
    Redis持久化策略
    uCOS-III基础入门函数
    企业即时通讯软件,如何让沟通协作更加安全高效?
    Go :测试终结器用于微小的组合分配(附完整源码)
    改造xxl-job适配nacos注册中心
    售后服务管理系统(Java+Web+J2EE+MySQL)
    AI虚拟主播开发实战(附源码)
    字节跳动后端面经(17)
  • 原文地址:https://blog.csdn.net/qq_41523175/article/details/126300782