count和sum区别: 求和用累加 sum(),求行的个数用累计count
count(1) 和 count(*) 的区别
- count(1) 和 count(*) 的作用:
都是检索表中所有记录行的数目,不论其是否包含NULL值。 - 区别:但是 count(1) 比 count(*) 效率更高
count(字段)与count(1)和count(*)的区别
- count(1) 会统计表中的所有的记录数,包含字段为null 的记录。
- count(字段) 会统计该字段在表中出现的次数,忽略字段为null 的情况。即不统计字段为null 的记录
count(*) 和 count(1)和count(列名)区别:
执行效果上:
count(*)
包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL
count(1)
包括了所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL
count(列名)
只包括列名那一列,在统计结果的时候,会忽略列值为空(这里的空不是只空字符串或者0,而是表示NULL)的计数,即某个字段值为NULL时,不统计。
执行效率上:
列名为主键,count(列名)
会比count(1)
快
列名不为主键,count(1)
会比count(列名)
快
如果表多个列并且没主键,则 count(1)
的执行效率优于 count(*)
如果表有主键,则 select count(主键)
的执行效率是最优的
如果表只一个字段,则 select count (*)
最优。