千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 执行count(1)、count(*) 与 count(列名) 到底有什么区别?

执行count(1)、count(*) 与 count(列名) 到底有什么区别?

来源:千锋教育
发布人:xqq
时间: 2023-10-14 21:31:35 1697290295

一、语义不同

count(1):表示统计查询结果的行数,不考虑表中的任何列的值,只关心是否存在行。count(*):表示统计查询结果的行数,与count(1)类似,不考虑表中的任何列的值,只关心是否存在行。count(列名):表示统计指定列的非空值的数量,只统计指定列中不为NULL的行。

二、性能差异

count(1)和count(*):这两种写法在大多数数据库系统中的性能是相同的,因为它们都不关心具体的列值,只关心行的存在与否。count(列名):这种写法在某些数据库系统中可能会比count(1)和count(*)性能稍差,因为它需要检查指定列的值是否为NULL,并排除NULL值的行。

三、对空值的处理不同

count(1)和count(*):不关心表中的具体列值,因此不受空值影响,会将包含NULL值的行也计算在内。count(列名):只统计指定列的非空值,会排除包含NULL值的行,只计算指定列中不为NULL的行

四、使用范围不同

count(1)和count(*):适用于查询整个表或满足特定条件的行数。count(列名):适用于统计特定列的非空值数量。

五、结果集不同

count(1)和count(*):返回的结果集只有一行一列,即表示查询结果的行数。count(列名):返回的结果集只有一行一列,即表示指定列的非空值数量。

六、可读性不同

count(1):语义上不够明确,不容易理解其作用。count(*):语义明确,表示统计行数。count(列名):语义明确,表示统计指定列的非空值数量。

延伸阅读

COUNT(*)是什么

COUNT(*) 是一种数据库查询语句,用于统计某个表中的记录数或满足指定条件的记录数。它返回一个表示记录数量的整数值。使用 COUNT() 时,数据库引擎会对指定的表进行扫描,并计算符合条件的记录数量。 表示选择所有的列,而不是特定的列名。因此,COUNT(*) 将统计整个表中的记录数,无论具体的列值是什么。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT