count
count用于返回内容(行)的个数
-
COUNT(*) 能对整张表的内容(行)进行计数,不管内容(行)是有值还是空值
- COUNT(1) 能对整张表的内容(行)进行计数,不管内容(行)是有值还是空值
- COUNT(字段) 能对某一字段的内容(行)进行计数,但是会忽略 NULL 值。
![](https://img.haomeiwen.com/i18392927/14322d99d6ce6d34.png)
select count(*) from table
![](https://img.haomeiwen.com/i18392927/16c64e574d740953.png)
select count(1) from table
![](https://img.haomeiwen.com/i18392927/f8e9227aa5585b4d.png)
select count(ID) from table
![](https://img.haomeiwen.com/i18392927/e82850a1435bcecc.png)
区别
- 如果列为主键,count(列名)效率优于count(1)
- 如果列不为主键,count(1)效率优于count(列名)
- 如果表中存在主键,count(主键列名)效率最优
- 如果表中只有一列,则count(*)效率最优
- 如果表有多列,且不存在主键,则count(1)效率优于count(*)
count(1),其实就是计算一共有多少符合条件的行,1并不是表示第一个字段,而是表示一个固定值,这个字段就是固定值1,count(1),就是计算一共有多少个1。
count(*),执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低一些。
AVG
AVG() 函数通过计算某字段(列)内容(行)的个数和它们的数值之和来返回某一字段的平均值。
MAX
MAX() 函数能够返回某一字段(列)的最大值。值得注意的是,要想使用 MAX() 函数,就一定需要有特定的字段(列)与之配对,不能偷懒用通配符 * 作参数。
网友评论