`

count(1) ,count(列名),count(*)查询区别

 
阅读更多
执行效果上:  
count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL  
count(1)包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL  
count(列名)只包括列名那一列,在统计结果的时候,会忽略列值为空(这里的空不是只空字符串或者0,而是表示null)的计数,即某个字段值为NULL时,不统计



执行效率上:  
列名为主键,count(列名)会比count(1)快  
列名不为主键,count(1)会比count(列名)快  
如果表多个列并且没有主键,则 count(1) 的执行效率优于 count(*)  
如果有主键,则 select count(主键)的执行效率是最优的  
如果表只有一个字段,则 select count(*)最优。
---------------------
作者:BigoSprite
来源:CSDN
原文:https://blog.csdn.net/ifumi/article/details/77920767
分享到:
评论

相关推荐

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

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

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

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

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

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

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

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

    大数据知识点mysql数据库

    * 查询员工信息:Select count(*) as 人数 from dept; * 查询员工信息并按工号降序排列:Select * from dept order by id desc; * 更新工号为 101 的员工,名字改为露露:Update dept set name=’露露’ where id=...

    SQL语句经验总结

    SET 列名1 = 新值1, 列名2 = 新值2, ..., 列名n = 新值n WHERE 条件; ``` - **列名**:表示要更新的字段名称。 - **新值**:表示更新后的数据值。 - **条件**:表示更新的过滤条件。 **注意事项**: - 必须指定...

    实验三 数据库的查询和视图.docx

    1. **SELECT语句**:SELECT语句用于从数据库中检索数据,是最基本的查询语句。在实验中,它被用来获取Employees表中的所有数据以及特定列,例如地址和电话号码。 2. **子查询**:子查询是在一个查询语句中嵌套另一...

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

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

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

    根据给定的信息,本文将详细解释如何通过SQL查询获取数据库中的表名以及这些表的列名。这在数据库管理及开发工作中是常见的需求之一,掌握这些技能有助于更好地管理和操作数据库。 ### 一、获取数据库中的所有表名 ...

    Derby_Java_DB_参考手册

    1. **版权信息**: 提供了有关文档版权的信息。 2. **许可协议**: 描述了使用和分发文档所需的许可条款。 3. **关于本指南**: 包括了文档的目的、受众以及组织结构等信息。 4. **SQL语言参考**: 涵盖了SQL语法、...

    sql语句汇总—一般用到的sql语句全有,绝对够用

    COUNT语句用于统计查询结果的行数。基本语法为:`COUNT(列名)` * 例如:`SELECT COUNT(au_lname) FROM authors`统计authors表中的au_lname列的行数 * 例如:`SELECT COUNT(*) FROM authors`统计authors表中的所有...

    最新资料SQLSERVER上机测验题.doc

    SELECT COUNT(*) AS TotalStudents FROM StudentInfos WHERE S_major = '计算机'; ``` 以上知识点覆盖了SQL Server数据库操作的基础和高级主题,可以帮助学习者更好地理解和掌握数据库管理的关键技术。

    数据库实验报告二.doc

    - **使用AS子句定制列名**:如SELECT Address AS 地址, Name AS 姓名 FROM Employees WHERE Sex = '0'; - **条件判断**:使用CASE语句进行条件判断,如SELECT Name, CASE WHEN Sex = 1 THEN '男' ELSE '女' END AS ...

    数据库原理及应用课件:第6章 数据操作语言.ppt

    1. **目标列名序列**:指定你希望在查询结果中看到的列,可以是特定列名或所有列(用星号(*)表示)。 2. **表名**:指明数据来自哪个表或视图。 3. **行选择条件**(WHERE子句):根据指定的条件过滤行,只返回满足...

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

    本文将详细探讨如何使用PL/SQL来实现获取数据库中所有表名及其列名,并存储到一个特定的表中。 ### 一、理解需求与设计思路 #### 1. 需求分析: 我们的目标是创建一个PL/SQL程序,该程序能够遍历当前用户拥有的...

    使用mysql进行单表查询

    1. **查询所有记录**: 要查询表中的所有读者信息,你可以使用`SELECT * FROM 表名`。例如,如果你的表名为`readers`,则查询语句为`SELECT * FROM readers`,这将返回表中所有列的所有数据。 2. **选择特定列**:...

    数据库原理与应用06表数据的选择操作.ppt

    1. **SELECT查询语句**:这是SQL中最基本的数据查询命令,用于从一个或多个表中提取数据。其基本语法包括选择(投影)、从哪个表中选取(FROM)、基于什么条件选取(WHERE)、如何分组(GROUP BY)、分组后如何过滤...

    seq2sql ppt

    4. **列选择**:基于问题表示和列表示,利用指针网络来预测哪个列名应该出现在SQL查询中。这一过程可以看作是从列名列表中选择一个元素的过程。 5. **聚合函数选择**:对于涉及到聚合操作(如MAX、MIN、COUNT、SUM...

    mysql查询语句汇总.docx

    **1. 选择所有列** - **语法**: `SELECT * FROM 表名;` - **解释**: 此命令用于选取表中的所有列。`*` 表示所有列,`FROM` 关键字后面跟着表名。 - **示例**: 如果我们有一个名为`employees`的表,可以使用以下命令...

    mssql盲注.txt

    **1. 版本检测** 首先,攻击者需要确定目标系统使用的MSSQL版本。可以通过构造特定的SQL语句来实现。例如: ``` http://www.example.com/test.aspx?id=1 and substring((select @@version), 22, 4)='2005' ``` 这...

Global site tag (gtag.js) - Google Analytics