标签:count 忽略 小贴士 学习 mysql null where 主键 select
一.count(*)、count(列)、count(1)的区别
count(1)会统计表中的所有记录数,包含字段为null的记录
count(列)会统计该字段在表中出现的次数,忽略字段为null的情况,即不统计字段为null的记录
执行效果上:
count(*)包含了所有的列,相当于行数,在统计结果的时候,不会忽略列值为null
count(1)包含了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为null
count(列)只包括列名那一列,在统计结果的时候,会忽略列值为null的计数,即某个字段值为null时,不统计
执行效率上:
count(列)会比count(1)快
列名不为主键,count(1)会比count(列)快
如果表多个列并且没有主键,则count(1)执行优于count(*)
如果有主键,则select count(主键列)的效率是最快的
如果表只有一个字段,则select count(*)最快
二.where、having、on的区别
数据库执行顺序
(8)select (9)distinct (11)top num(select list) (1)from (3)<join_type>join (2)on (4)where (5)group by
(6)with (7)having (10)order by
where是在group by之前执行的,所以where后面不能使用聚合函数来进行数据过滤
只能使用from表里的字段来进行数据过滤
having是在group by 之后执行的,那么这些数据是已经分过组的了,可以使用聚合函数来进行数据的分组过滤
举例说明一下
三.空字符串和空的区别
空字符串表现为"",占用内存空间
空表现为null,不占用内存空间
标签:count,忽略,小贴士,学习,mysql,null,where,主键,select 来源: https://blog.csdn.net/u013161892/article/details/117910174
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。