想问下SQL语句中count(*)的含义

如下题第二问,答案中的count(*)是统计表的总行数吗?如果替换成count(课程号)可不可以呢?

img

星星会统计null值,字段不会


你可以这样理解,count是汇总的意思,"*" 是所有字段,count(*)就代表当前"*"的总数,也就是满足所有字段的总数,这和你有几条数据是对等的。
如果是count(某个字段),则代表改列下的所有数据总和,我们知道,一条数据中可以存在某些字段是空的,所以count(某个字段)<=count(*)

count(*)是统计所有行,count(字段也可以)

  • count(*)是统计所有行数
  • count(字段)是统计这个字段有多少行
    如求数据总数,或者某个字段的数据总数时常用
* 就代表所有字段
当统计行数时,使用count(*)和count(字段)的结果是一致的