在Mysql中count(*)、count(1)与count(字段/列名)的详解—聚合函数count

1、简单区别

count(*):对行的数目进行计算,包括NULL的统计。
count(1):和count(*)返回结果同样,且包括NULL的统计。注:count(2)、count(‘a’)、count(‘b’)和count(1)同样
count(字段/列名):对特定的字段/列进行计算,不包括NULL的统计。web

2、速度比较

1.若表沒有主键(Primary key), 那么count(1)比count( * )快。
2.若表有主键的話,那么主键做为count的条件时候count(主键)最快。
3.若表只有一个字段,那么count(*)就是最快的。sql

3、举例

3.1建立表

sql语句svg

CREATE TABLE student_t (
   sno BIGINT PRIMARY KEY AUTO_INCREMENT,
   sname varchar(20) NOT NULL,
   sbirthday datetime DEFAULT NULL
   
)CHARSET=utf8;

插入数据spa

insert into student_t values('1','陈奇','2000-11-02');
insert into student_t values('2','陈飞','1999-12-05');
insert into student_t values('3','周杰','1989-03-01');
insert into student_t values('4','昆凌','1989-04-15');
insert into student_t values('5','王丽','1999-05-16');
insert into student_t values('6','蔡蔡','2000-08-17');

查看表
在这里插入图片描述
经常使用练习:code

3.1.1利用count(*)进行统计全部行的数目

Sql语句xml

SELECT COUNT(*)
FROM student_t

运行结果
在这里插入图片描述blog

3.1.2利用count(1)进行统计全部行的数目

Sql语句token

SELECT COUNT(1)
FROM student_t

运行结果
在这里插入图片描述图片

3.1.3利用count(字段/列名)进行统计sname字段的的数目

Sql语句string

SELECT COUNT(sname)
FROM student_t

运行结果
在这里插入图片描述