MySQL基础篇(二)

本文详细介绍了MySQL 8.0.16版本中五种主要的聚合函数:count(), sum(), avg(), max() 和 min() 的使用方法与特性。包括函数分类、特点及具体实例,特别强调了NULL值处理和与DISTINCT搭配使用的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL(8.0.16)聚合函数详解

聚合函数分类:
函数名称函数说明
count()计算个数
sum()求和
avg()平均数
max()最大值
min()最小值
聚合函数特点:

1.sum(),avg()一般用于处理数值型,max(),min(),count()可以处理任何类型
2.以上分组函数都可以忽略NULL值来进行计算。
3.可以和distinct搭配实现去重的运算。
4.和聚合函数一同查询的字段要求是group by后的字段。

举例说明:

下表为基础进行举例说明:
在这里插入图片描述
分组函数的简单使用:

count()函数

1.查询上表总个数
在这里插入图片描述
也等价于下面这个语句
在这里插入图片描述
但是因为count()函数忽略null值,所以下面这句语句的总数只有6个

在这里插入图片描述
效率:
MYISAM存储引擎下 ,count(* )的效率高
INNODB存储引擎下,count(* )和count(1)的效率差不多,比COUNT(字段)要高一些.
所以一般使用count(*)用作统计行数
大家可以用下面的语句来查看自己的默认存储引擎,
MySQL在V5.1之前默认存储引擎是MyISAM;在此之后默认存储引擎是INNODB
在这里插入图片描述

sum() 函数

2.计算表的lowest_sal字段的sum与highest_sal字段的sum
在这里插入图片描述
因为sum()函数用于处理数值型,所以如果计算grade_level的和,如下所示:
在这里插入图片描述
这里虽然mysql没有报错,但这个数值毫无意义。

avg()函数

3.计算表的lowest_sal字段的平均数与highest_sal字段的平均数
在这里插入图片描述
因为avg()函数也是用于处理数值型,所以如果计算grade_level的平均数,如下所示:
在这里插入图片描述
这里虽然mysql也没有报错,但这个数值也是毫无意义的。

max()函数

4.计算表的lowest_sal字段的最大值与highest_sal字段的最大值
在这里插入图片描述
因为max函数可以用来处理任何类型,所以当求字符型grade_level的最大值时,如下所示:
在这里插入图片描述
使用max函数查询一个字符串类型的字段时,因为字符串类型大小比较是先比较首字符的ASCII码,然后依次往后进行比较
大家有兴趣可以试试比较字符串‘10000’和‘9999’的最大值,会发现最大值其实是字符串‘9999’
如下所示:
在这里插入图片描述
当这个字段比较大小时会发现最大的是‘9999’
在这里插入图片描述
顺带说下字符串的比较把:
比较的时候,从字符串左边开始,一次比较每个字符,直接出现差异、或者其中一个串结束为止。
比如ABC与ACDE比较,第一个字符相同,继续比较第二个字符,由于C>B,所以不再继续比较,结果就是ACDE大。
再如ABC与ABC123比较,比较三个字符后第一个串结束,所以就是后面一个串大。
所以,长度不能直接决定大小,字符串的大小是由左边开始最前面的字符决定的。


如果真的要比较,那就转为数值型后再比较把:
例如这样:
在这里插入图片描述
上述这样写会默认帮你转为数值型后再进行比较谁最大。

min()函数

5.计算表的lowest_sal字段的最小值与highest_sal字段的最小值
在这里插入图片描述
min()函数跟max()函数差不多,也是可以处理任何数据类型,理解max()函数后,min()函数也是一样的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值