`
eeeewwwqq
  • 浏览: 36468 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

count(*) 和 count(1)和count(列名)区别

 
阅读更多
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(*)最优
分享到:
评论

相关推荐

    为什么阿里巴巴禁止使用 count(列名)或 count(常量)来替代 count(*)1

    在数据库查询中,`COUNT(*)`、`COUNT(列名)`和`COUNT(常量)`都是用来统计行数的方法,但它们之间存在细微的差异。本文将深入探讨这些差异,以及为什么阿里巴巴禁止使用`count(列名)`或`count(常量)`来替代`count(*)`...

    sql server中Select count(*)和Count(1)的区别和执行方式

    在SQL Server中,`SELECT COUNT(*)` 和 `COUNT(1)` 是两种常见的聚合函数,用于统计表中的行数。虽然在大多数情况下它们的结果相同,但它们的执行方式和背后的原理存在细微差别,这也是数据库优化中常常讨论的话题。...

    count(1)、count(*)与count(列名)的执行区别详解

    执行效果: 1. count(1) and count(*) 当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时...所以没必要去count(1),用count(*),sql会帮你完成优化的 因此: count(1)和count(*)基本没有差别!

    【优化】COUNT(1)、COUNT()、COUNT(常量)、COUNT(主键)、COUNT(ROWID)、COUNT(非空列)等

    BLOG_Oracle_lhr_【优化】COUNT(1)、COUNT()、COUNT(常量)、COUNT(主键)、COUNT(ROWID)、COUNT(非空列)、COUNT(允许为空列)、COUNT(DISTINCT 列名).pdf

    Select count(*)、Count(1)和Count(列)的区别及执行方式

    综上所述,`COUNT(*)`、`COUNT(1)` 和 `COUNT(列名)` 在使用上没有本质的区别,它们都是用来统计满足条件的行数,但 `COUNT(列名)` 特别关注指定列的非NULL值。在考虑性能优化时,应根据查询需求和表结构,合理创建...

    达梦和oracle的差异说明

    在处理字段名时,达梦数据库和Oracle有着显著的区别。对于字段名的大小写敏感性问题,两者采用了不同的处理方式: - **达梦数据库**:支持字段名的大小写敏感性,即在查询结果中会按照原始SQL语句中的大小写返回...

    常用SQL语句解析

    **语法**: `SELECT "列名", COUNT("列名") FROM "表名" GROUP BY "列名" HAVING COUNT("列名") > 1;` **示例**: ```sql SELECT store_name, COUNT(*) FROM Store_Information GROUP BY store_name HAVING COUNT(*) >...

    使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT

    如果需要对多个列进行唯一性统计,则可以将列名用逗号隔开,例如COUNT(DISTINCT column1, column2)。 在涉及到GROUP BY语句时,我们通常会对某一列或多列进行分组,并希望获取每个分组中记录的数量。这时,如果我们...

    第08章_聚合函数.docx

    在 MySQL 中,COUNT(*) 和 COUNT(1) 是等价的,但是在 InnoDB 引擎中,COUNT(*) 和 COUNT(1) 不同,COUNT(*) 会统计值为 NULL 的行,而 COUNT(1) 不会。 GROUP BY 子句 GROUP BY 子句用于将表中的数据分成若干组。...

    数据库原理第9讲.ppt

    1. **计数COUNT**:COUNT(*)用于计算表中的所有行数,而COUNT([列名])则计算指定列的非空值数量。COUNT(DISTINCT [列名])会去除重复值后再进行计数。 2. **求和SUM**:SUM([列名])计算指定列的所有数值的总和,可以...

    第08章_聚合函数1

    在InnoDB引擎中,使用COUNT(*)和COUNT(1)性能相近,但优于COUNT(列名),因为它们直接读取行数。然而,COUNT(列名)不计算该列的NULL值。 5. **GROUP BY子句** - GROUP BY用于根据一个或多个列对数据进行分组,以便...

    Mysql中的count()与sum()区别详细介绍

    在性能方面,`COUNT(*)`和`COUNT(列名)`在InnoDB引擎中可能需要扫描整个表来获取结果,而在MyISAM引擎中,由于其存储特性,`COUNT(*)`的统计通常更快。但是,对于复杂条件的计数,如`SUM(score )`,则需要逐行检查,...

    SQL常用查询语句.pdf

    基本语法为:`COUNT(*)` 或 `COUNT(列名)` * `COUNT(*)`:统计所有记录的数量 * `COUNT(列名)`:统计指定列的数量 * `COUNT(DISTINCT 列名)`:统计指定列的唯一数量 示例: * `SELECT COUNT(*) FROM student;`:...

    SQL语句中SUM与COUNT的区别深入分析

    总结一下,SUM和COUNT函数在SQL中的主要区别在于: 1. SUM函数用于数值列的求和,而COUNT函数用于统计记录数量。 2. SUM函数会忽略非数字值和NULL值,而COUNT函数会统计所有非NULL记录,或者指定列中的非NULL值。 3....

    PL/SQL实现获得所有表名及列名到表

    - **PL/SQL过程**:编写一个PL/SQL块,使用游标(CURSOR)遍历`USER_TAB_COLUMNS`视图中的数据,提取表名和列名,并插入到`table_tmp`表中。 ### 二、实现步骤详解 #### 1. 创建存储结果的表 ```sql CREATE TABLE ...

    SQl查询数据库表名、表的列名

    通过上述内容,我们了解了如何使用SQL查询来获取数据库中的表名和列名,并且提供了一个简单的C#示例代码来实现这一功能。这对于日常数据库管理是非常实用的技巧。同时,也对SQL Server中的部分系统表进行了简要介绍...

    SQL复习之聚集函数

    1. **COUNT()** 函数 COUNT() 函数用于计算表中特定列的非空值的数量。如果未指定列名,它将返回所有行的数量。例如: ```sql SELECT COUNT(*) FROM table_name; ``` 如果只对某一列的非空值计数,可以写为: ...

    解析关于SQL语句Count的一点细节

    count语句支持*、列名、常量、变量,并且可以用distinct关键字修饰, 并且count(列名)不会累计null的记录。下面随便用一些例子示范一下count的规则:比如对如下表做统计,所有列这里都用sql_variant类型来表示。 代码...

    presql高级数据选择

    SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名; ``` - **示例**: - **按城镇分组统计客户数量**: ```sql SELECT town, COUNT(*) FROM customer GROUP BY town; ``` 这个查询将返回每个城镇及其对应的客户...

Global site tag (gtag.js) - Google Analytics