`
sjsky
  • 浏览: 921725 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

select count (*)、count(1)、count(column)的区别

阅读更多

   blog迁移至 :http://www.micmiu.com

 

select count (*)、count(1)、count(column)的区别如下:

 

  • count(1) 中的 1 并不是表示为第一个 column
  • count(*) 跟 count(1) 的结果一样,包括对NULL的统计
  • count(column) 是不包括对NULL的统计
  • 如果表沒有主键(Primary key), 那么count(1)比count(*)快
  • 如果表没有主键,只建了索引,那么count(*),count(1)是一样的,都是TABLE ACCESS FULL ,而count(索引)则是INDEX FULL SCAN
  • 如果有主键的話,那count(主键)最快,那么count(*),count(1),以及count(主键)是一样的,都是INDEX FULL SCAN
  • 如果你的表只有一个字段的话那count(*)就是最快的
亦可参考下官网上的有关问答:


本文连接:http://sjsky.iteye.com/blog/1209560

 

 

转载请注明来自:Michael's blog @ http://sjsky.iteye.com

----------------------------- 分 ------------------------------ 隔 ------------------------------ 线 ------------------------------

分享到:
评论

相关推荐

    MySQL中count(*)、count(1)和count(col)的区别汇总

    本篇文章将详细解释COUNT(*)、COUNT(1)以及COUNT(column)这三种不同用法的区别。 1. COUNT(*) COUNT(*)是最常见的用法,它会计算表中所有非NULL的行。这意味着,即使列中有NULL值,COUNT(*)也会将其计入总数。在...

    select count()和select count(1)的区别和执行方式讲解

    除了`COUNT()`,`SELECT 1`和`SELECT *`也是SQL中的常用操作。`SELECT 1`返回一个常量值1,对于每一行,结果都是1,通常用于`EXISTS`子句来检查是否存在满足条件的行。而`SELECT *`则返回所有列的所有数据,这在获取...

    sql中null值对count的影响

    SELECT COUNT(*), COUNT(pid), COUNT(ISNULL(pid, '')) FROM tbl_user WHERE pid IS NOT NULL; ``` 结果是`(2, 2, 2)`,因为只有两行的`pid`不是`NULL`,且这两行中的`pid`被成功计数。 2. **只考虑`NULL`值的...

    MySQL中distinct和count(*)的使用方法比较

    1. 计算不重复记录数量:`SELECT COUNT(DISTINCT id) FROM tablename;` 这个查询将返回 `tablename` 表中唯一 `id` 值的数量。 2. 返回不重复的字段值:`SELECT DISTINCT id FROM tablename;` 此查询将返回 `...

    SELECT IN SQL

    SELECT column1, COUNT(*) FROM table_name GROUP BY column1 HAVING COUNT(*) > 1; ``` 10. **ORDER BY子句** 使用`ORDER BY`对结果进行排序,可以指定升序`ASC`或降序`DESC`: ``` SELECT * FROM table_name...

    SQL语句基础教程.doc

    - **语法**: `SELECT AVG(column_name) AS 'Median' FROM (SELECT column_name FROM table_name ORDER BY column_name LIMIT 2 - (SELECT COUNT(*) FROM table_name) % 2 OFFSET (SELECT (COUNT(*) - 1) / 2 FROM ...

    sql精妙语句 学习手册

    - **语法**: `SELECT column1, column2 FROM table1 INTERSECT ALL SELECT column1, column2 FROM table2;` - **说明**: 返回同时存在于table1和table2中的所有记录,包括重复项。 - **示例**: `SELECT column1, ...

    渗透常用SQL注入语句大全.doc

    UNION Select TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS Where TABLE_NAME=logintable ``` - **利用联合查询(UNION SELECT)**:通过联合查询,可以在一次请求中获取多个查询结果,提高效率。 - **...

    Oracle中的select大全

    SELECT LOWER(column), UPPER(column), INITCAP(column), CONCAT(column1, column2), SUBSTR(column, start_position, length) FROM table_name; ``` - **示例**:获取员工姓名的首字母大写版本。 ```sql ...

    sql学习资料,总结的很好

    - **语法**:`SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name HAVING COUNT(*) > 1;` - **示例**:`SELECT store_name, COUNT(*) FROM Store_Information GROUP BY store_name HAVING COUNT...

    PowerBuilder中使用JDBC连接MYSQL无法使用COUNT(*)MAX()函数

    SELECT MAX(column_name) INTO :max_value FROM yk_cddz; ``` 通过上述步骤,应该可以解决在PowerBuilder通过JDBC连接MySQL时无法正常使用`COUNT(*)`和`MAX()`函数的问题。如果问题仍然存在,建议进一步排查MySQL...

    Oracle数据库SQL学习教程

    - 示例: `SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name HAVING COUNT(*) > 1;` **2.1.13 ALIAS** - 用于为表或列名创建别名。 - 示例: `SELECT column_name AS alias_name FROM table_name;...

    mysql查询语句汇总.rar

    - **HAVING**:在分组后筛选,`SELECT column1, COUNT(*) FROM table GROUP BY column1 HAVING COUNT(*) > N;` 6. **视图** - **CREATE VIEW**:创建虚拟表,方便重复查询,`CREATE VIEW view_name AS SELECT ...

    mysql技巧之select count的区别分析

    然而,根据选择的不同,`COUNT(*)`、`COUNT(1)` 和 `COUNT(column_name)` 之间存在微妙的差异,这些差异在特定情况下可能会对查询性能产生影响。下面将详细分析这些不同选择的区别。 首先,`SELECT COUNT(*)` 是最...

    select 回选

    SELECT column1, COUNT(*) FROM table_name GROUP BY column1 HAVING COUNT(*) > 1; ``` 这个查询会返回在`column1`中有多个不同值的行。 5. **聚合函数**:如COUNT(), SUM(), AVG()等,它们可以用来计算选定...

    SQL语句教程

    - **语法**:`SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name HAVING COUNT(*) > 1;` - **示例**:`SELECT store_name, COUNT(*) FROM Store_Information GROUP BY store_name HAVING COUNT...

    10种mysql 查询语句大全及用法介绍.zip

    SELECT column1, COUNT(*) FROM table_name GROUP BY column1 HAVING COUNT(*) > 10; ``` 6. **JOIN操作**:用于合并两个或多个表的数据。例如,INNER JOIN返回两个表中匹配的行: ```sql SELECT * FROM table1...

    25.1 MySQL SELECT语句

    SELECT column1, column2, ... FROM table_name; ``` 这里,`column1, column2, ...`是你想要从表中选择的列名,`table_name`是你要查询的表的名称。 ### 二、选择所有列 如果你想要选择表中的所有列,可以使用...

    SQL学习教程

    - **语法**: `SELECT COUNT(column_name) FROM table_name;` - **示例**: 计算`Store_Information`表中有多少条记录。 - **命令**: `SELECT COUNT(*) FROM Store_Information;` **2. GROUP BY** - **功能**: 将...

Global site tag (gtag.js) - Google Analytics