MySQL——count()

MySQL——count()

count():用于统计数据库表中数据的函数

常见的使用方式:count(*)、count(1)、count(列名)、count(distinct 列名)

函数统计统计结果时
count(*)包括所有列,相当于行数不会忽略列值为NULL的记录
count(1)忽略所有列,1代表代码行,可以用2、 3等数字代替不会忽略列值为NULL的记录
count(列名)只包括列名指定列,返回指定列的记录数会忽略列值为NULL的记录
count(distinct 列名)只包括列名指定列,返回指定列的记录数,并去重会忽略列值为NULL的记录

使用效果

基于表tb_sutdent

在这里插入图片描述

count(*)

SELECT COUNT(*) FROM tb_student;

在这里插入图片描述

count(1)

SELECT COUNT(1) FROM tb_student;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FD7DgY7k-1662562223324)(E:/Typora/image/1662535867956.png)]

count(列名)

SELECT COUNT(列名) FROM tb_student;

count(distinct 列名)

SELECT COUNT(DISTINCT 列名) FROM tb_student;

当统计的是具体的列的时候,此时,会忽略null,但不会忽略空字符和0

在这里插入图片描述

如图,使用COUNT(列名)查询时,stuResume的统计数据为0,但实际上,由原表可以看出,stuResume列有17行,但这17行都是null,这就是因为COUNT(列名)不会对null进行统计。

而count(distinct 列名)和count(列名)相似,只是相比count(列名)多了关键字distinct,以方便在统计时进行去重

count(*)&count(1)&count(列名)执行效率比较:

(1)如果列为主键,count(列名)效率优于count(1)

(2)如果列不为主键,count(1)效率优于count(列名)

(3)如果表中存在主键,count(主键列名)效率最优

(4)如果表中只有一列,则count(*)效率最优

(5)如果表有多列,且不存在主键,则count(1)效率优于count(*)

(4)如果表中只有一列,则count(*)效率最优

(5)如果表有多列,且不存在主键,则count(1)效率优于count(*)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值