在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

運行結果
在這裏插入圖片描述

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