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

一、简单区别

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

二、速度比较

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

三、举例

3.1创建表

sql语句

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

插入数据

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');

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

3.1.1利用count(*)进行统计所有行的数目

Sql语句

SELECT COUNT(*)
FROM student_t

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

3.1.2利用count(1)进行统计所有行的数目

Sql语句

SELECT COUNT(1)
FROM student_t

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

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

Sql语句

SELECT COUNT(sname)
FROM student_t

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章