23 MySQL基本函数、分组查询、多列排序(3)

        上一篇「22 B端产品经理与MySQL基本查询、排序(2)」了解了基本的常识和基本查询以及单列排序。下面介绍常见的基本函数、分组查询以及多列排序:

基本函数

user表 (注:以下SQL语句示例全部基于下面「user表」)

uidunamedepiduageugendermsalhiredate
1张三133200002013/07/12
2李四225150002018/11/23
3王锵137250002012/10/15
4彭昶324150002020/06/12
5王小二228200002017/01/19
6宁笑笑121Null2023/12/13
7陈晨433250002022/04/16
常用函数作用举例解释
COUNT()统计;返回查询的记录总数。
SELECT count(uid) AS contuid FROM user;

返回user表中uid共多少条记录。
AVG()平均值;返回一个表达式的平均值。
SELECT AVG(uage) AS avgage FROM user;
返回user表中uage字段的平均值。
SUM()求和;返回指定字段的总和。
SELECT sum(uage) AS sumage FROM user;
MAX()最大值;返回字段中的最大值。
SELECT MAX(uage) AS largestmage FROM user;
返回user表中uage字段的最大值。
MIN()最小值;返回字段中的最小值。
SELECT MIN(uage) AS minage FROM user;

返回user表中uage字段的最小值。

注:AS 后的字段为查询的结果起得名称。

日期函数作用举例结果
NOW()返回当前日期和时间。
SELECT NOW();
2019-10-07 16:27:44
CURDATE()返回当前日期。
SELECT CURDATE();
2019-10-07
CURRENT_TIME()返回当前时间。
SELECT CURRENT_TIME();
16:27:44
DATE()提取日期。
SELECT DATE("2017-06-15");
2017-06-15
DATEDIFF(d1,d2)计算俩日期之间相隔的天数。
SELECT DATEDIFF('2001-01-01','2001-02-02');
32

注:更多函数使用可参考:「MySQL函数教程」

分组查询

  • GROUP BY:根据一个或多个列对结果集进行分组。

  • 在分组的列上我们可以使用上述提到的 COUNT, SUM, AVG,等函数。

  • GROUP BY是用于汇总和分析数据的重要工具。

 SELECT depid,count(uid) 
 FROM user
 GROUP BY depid
 --查询「user表」中,每个部门的编号以及每个部门下的人数。
SELECT depid,COUNT(*)
 FROM user
 WHERE msal>20000
 GROUP BY depid;
 --查询「user表」中,每个部门的编号以及每个部门下月薪大于20000的人数。
  • WHERE: 是对分组前记录的条件,如果某行记录没有满足 WHERE 子句的条件,那 么这行记录不会参加分组;

  • HAVING: 是对分组后数据的约束。

 SELECT depid, SUM(msal)
 FROM user
 GROUP BY depid
 HAVING SUM(msal) > 50000;
 --查询「user表」中,月薪总和大于 50000 的部门编号以及月薪和。

多列排序

  • 多列排序

SELECT * FROM user
 ORDER BY uage ASC, hiredate DESC;
 --查询「user表」,并将查询的数据先按用户年龄升序排,当年龄相同时再按入职日期降序排。
  • 使用表达式排序

SELECT uname, msal * 12 AS ysal
 FROM user
 ORDER BY ysal DESC;
 --查询「user表」中的用户姓名和 用户根据月薪计算的出的年薪,并按年薪降序排序。
  • 使用 NULLS FIRST 或 NULLS LAST 处理 NULL 值。

 SELECT * FROM user
 ORDER BY usal DESC NULLS LAST;
 --查询「user表」,并将查询的数据按用户薪水降序排,将 NULL 值排在最后。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值