1)count(1)与count(*)比较:

1、如果你的数据表没有主键,那么count(1)比count(*)快
2、如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快
3、如果你的表只有一个字段的话那count(*)就是最快的啦
4、count(*) count(1) 两者比较。主要还是要count(1)所相对应的数据字段。
5、如果count(1)是聚索引,id,那肯定是count(1)快。但是差的很小的。  因为count(*),自动会优化指定到那一个字段。所以没必要去count(?),用count(*),sql会帮你完成优化的

2)count详解:

1、count(*)将返回表格中所有存在的行的总数包括值为null的行,然而count(列名)将返回表格中除去null以外的所有行的总数(有默认值的列也会被计入).
2、distinct 列名,得到的结果将是除去值为null和重复数据后的结果

3)举例演示如下:

 1 SQL> create table test
2 (
3 ename varchar2(10),
4 sal number(4)
5 );
6
7 表已创建。
8
9
10 SQL> insert into test values('fxe1',90);
11 已创建 1 行。
12
13 SQL> insert into test(ename) values('fxe2');
14 已创建 1 行。
15
16 SQL> insert into test(ename) values('fxe3');
17 已创建 1 行。
18
19 SQL> insert into test(ename) values('fxe4');
20 已创建 1 行。
21
22 SQL> insert into test values('fxe5',80);
23 已创建 1 行。
24
25 SQL> insert into test values('fxe6',80);
26 已创建 1 行。
27
28
29 SQL> select * from test;
30 ENAME SAL
31 ---------- ----------
32 fxe1 90
33 fxe2
34 fxe3
35 fxe4
36 fxe5 80
37 fxe6 80
38
39
40 SQL> select count(*) from test; -- count(*):包含NULL,一共6条记录
41 COUNT(*)
42 ----------
43 6
44
45 SQL> select count(1) from test; -- count(1):包含NULL,一共6条记录,和count(*)的结果一样
46 COUNT(1)
47 ----------
48 6
49
50 SQL> select count(sal) from test; -- count(列名):不包含NULL,但包含重复值项,一共3条记录
51 COUNT(SAL)
52 ----------
53 3
54
55 SQL> select count(distinct sal) from test; -- count(列名):不包含NULL,去重“count(distinct sal)”,一共2条记录
56 COUNT(DISTINCTSAL)
57 ------------------
58 2
59
60 SQL> select distinct sal from test;
61 SAL
62 ----------
63 80
64 90

本文转至:http://blog.csdn.net/szstephenzhou/article/details/8446481

【转载】Oracle 中count(1) 、count(*) 和count(列名) 函数的区别的更多相关文章

  1. Oracle 中count(1) 、count(*) 和count(列名) 函数的区别

    1)count(1)与count(*)比较: 1.如果你的数据表没有主键,那么count(1)比count(*)快2.如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快3. ...

  2. [转载]Oracle中TO_NUMBER()函数的用法

    1 用法简介TO_NUMBER函数()是Oracle中常用的类型转换函数之一,主要是将字符串转换为数值型的格式,与TO_CHAR()函数的作用正好相反. To_number函数的格式如下: To_nu ...

  3. [转载]Oracle中的NVL函数

    Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换函数等等,还有一类函数是通用函数.主要有:NVL,NVL2,NULLIF,COALESCE,这几个函数用在各个类型上都可以. 下面简 ...

  4. [转载]Oracle中动态SQL详解

    1.静态SQLSQL与动态SQL Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型:另外一 ...

  5. C++中构造函数,拷贝构造函数和赋值函数的区别和实现

    C++中一般创建对象,拷贝或赋值的方式有构造函数,拷贝构造函数,赋值函数这三种方法.下面就详细比较下三者之间的区别以及它们的具体实现 1.构造函数 构造函数是一种特殊的类成员函数,是当创建一个类的对象 ...

  6. 转载 ORACLE中实现表变量的方法

    源文地址:http://blog.itpub.net/750077/viewspace-2134222/ 经常看到SQLSERVER 中用表变量类型的方式就能做到缓存一个比较大的中间结果, 然后再对这 ...

  7. oracle中varchar、varchar2、char和nvarchar的区别

    1.char char的长度是固定的,比如说,你定义了char(20),即使你你插入abc,不足二十个字节,数据库也会在abc后面自动加上17个空格,以补足二十个字节: char是区分中英文的,中文在 ...

  8. Oracle中与日期时间有关的运算函数

    1            ADD_MONTHS 格式:ADD_MONTHS(D,N) 说明:返回日期时间D加N月后对应的日期时间.N为正时则表示D之后:N为负时则表示为D之前:N为小数则会自动先删除小 ...

  9. oracle中merge的用法,以及各版本的区别 Create

    Merge是一个非常有用的功能,类似于Mysql里的insert into on duplicate key. Oracle在9i引入了merge命令,通过这个merge你能够在一个SQL语句中对一个 ...

随机推荐

  1. jquery对复选框(checkbox)的操作(精华)

    @{ Layout = null;} <!DOCTYPE html> <html><head> <meta name="viewport" ...

  2. CSS组合选择符

    组合选择符说明了两个选择器直接的关系. 目录: 后代选取器(以空格分隔) 子元素选择器(以大于号分隔) 相邻兄弟选择器(以加号分隔) 普通兄弟选择器(以破折号分隔) 后代选取器 后代选取器匹配所有值得 ...

  3. AD域与外部网站域名相同处理办法

    环境 域控:Windows Server 2008 r2 AD域:example.cn 问题:DNS可以正常解析外部域名(如www.baidu.com),但是无法解析mail.example.cn 原 ...

  4. ArrayList 除重

    看到一段简洁的 ArrayList 除重代码: protected final <T> List<T> removeDuplicates(List<T> list) ...

  5. Analysis of FCN

    全卷积网络 FCN 详解   背景 CNN能够对图片进行分类,可是怎么样才能识别图片中特定部分的物体,在2015年之前还是一个世界难题.神经网络大神Jonathan Long发表了<Fully ...

  6. Nginx+keepalived 双机热备(主从模式)

    负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行.关于负载均衡介绍,可以参考:linux负载 ...

  7. oracle(2)

    create table aaa( id number, name varchar2(100) ); select decode((select max(id) from aaa),null,'x', ...

  8. 面向对象select方法

    <?php class Table{         protected $tablename;         protected $arrTable;        protected $w ...

  9. Python3 批量替换文本内容

    Python3 批量替换文本内容 示例: # coding:utf8 import os; def reset(): i = 0 path = r"H:\asDemo\workdemo\aw ...

  10. JavaScript Dom 事件

    JavaScript  Dom 事件 对于事件需要注意的要点: // this标签当前正在操作的标签. this // event封装了当前事件的内容. even 常用事件 // 鼠标单击.触发事件 ...