目錄
一、簡單區別
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
運行結果