count(1)与count(*)比较:   如果你的数据表没有主键,那么count(1)比count(*)快   如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快   如果你的表只有一个字段的话那count(*)就是最快的啦   count(*) count(1) 两者比较。主要还是要count(1)所相对应的数据字段。   如果count(1)是聚索引,id,那肯定是count(1)快。但是差的很小的。   因为count(*),自动会优化指定到那一个字段。所以没必要去count(?),用count(*),sql会帮你完成优化的  count详解:  count(*)将返回表格中所有存在的行的总数包括值为null的行,然而count(列名)将返回表格中除去null以外的所有行的总数(有默认值的列也会被计入).  distinct 列名,得到的结果将是除去值为null和重复数据后的结果  ----------------------------------------------------------------------------------------------------------------  举例演示如下:  SQL> create table test  2 (  3 ename varchar2(10),  4 sal number(4)  5 );  表已创建。  SQL> insert into test values('fxe1',90);  已创建 1 行。  SQL> insert into test(ename) values('fxe2');  已创建 1 行。  SQL> insert into test(ename) values('fxe3');  已创建 1 行。  SQL> insert into test(ename) values('fxe4');  已创建 1 行。  SQL> insert into test values('fxe5',80);  已创建 1 行。  SQL> insert into test values('fxe6',80);  已创建 1 行。  SQL> select * from test;  ENAME SAL  ---------- ----------  fxe1 90  fxe2  fxe3  fxe4  fxe5 80  fxe6 80  SQL> select count(*) from test;  COUNT(*)  ----------  6  SQL> select count(sal) from test;  COUNT(SAL)  ----------  3  SQL> select count(distinct sal) from test;  COUNT(DISTINCTSAL)  ------------------  2  SQL> select distinct sal from test;  SAL  ----------  80  90  

  1. count(1)与count(*)比较:
  2. 如果你的数据表没有主键,那么count(1)比count(*)快
  3. 如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快
  4. 如果你的表只有一个字段的话那count(*)就是最快的啦
  5. count(*) count(1) 两者比较。主要还是要count(1)所相对应的数据字段。
  6. 如果count(1)是聚索引,id,那肯定是count(1)快。但是差的很小的。
  7. 因为count(*),自动会优化指定到那一个字段。所以没必要去count(?),用count(*),sql会帮你完成优化的
  8. count详解:
  9. count(*)将返回表格中所有存在的行的总数包括值为null的行,然而count(列名)将返回表格中除去null以外的所有行的总数(有默认值的列也会被计入).
  10. distinct 列名,得到的结果将是除去值为null和重复数据后的结果
  11. ----------------------------------------------------------------------------------------------------------------
  12. 举例演示如下:
  13. SQL> create table test
  14. 2 (
  15. 3 ename varchar2(10),
  16. 4 sal number(4)
  17. 5 );
  18. 表已创建。
  19. SQL> insert into test values('fxe1',90);
  20. 已创建 1 行。
  21. SQL> insert into test(ename) values('fxe2');
  22. 已创建 1 行。
  23. SQL> insert into test(ename) values('fxe3');
  24. 已创建 1 行。
  25. SQL> insert into test(ename) values('fxe4');
  26. 已创建 1 行。
  27. SQL> insert into test values('fxe5',80);
  28. 已创建 1 行。
  29. SQL> insert into test values('fxe6',80);
  30. 已创建 1 行。
  31. SQL> select * from test;
  32. ENAME SAL
  33. ---------- ----------
  34. fxe1 90
  35. fxe2
  36. fxe3
  37. fxe4
  38. fxe5 80
  39. fxe6 80
  40. SQL> select count(*) from test;
  41. COUNT(*)
  42. ----------
  43. 6
  44. SQL> select count(sal) from test;
  45. COUNT(SAL)
  46. ----------
  47. 3
  48. SQL> select count(distinct sal) from test;
  49. COUNT(DISTINCTSAL)
  50. ------------------
  51. 2
  52. SQL> select distinct sal from test;
  53. SAL
  54. ----------
  55. 80
  56. 90

Oracle 中count(1) 和count(*) 的区别相关推荐

  1. Oracle中Null与空字符串''的区别

    http://read.newbooks.com.cn/info/172049.html Oracle中Null与空字符串''的区别 来源:CSDN   作者:jsjzzh   发布时间:2007-1 ...

  2. Oracle中rank() over, dense_rank(), row_number() 的区别

    Oracle中rank() over, dense_rank(), row_number() 的区别 假设现在有一张学生表student,学生表中有姓名.分数.课程编号,现在我需要按照课程对学生的成绩 ...

  3. Oracle中用户和架构之间的区别?

    本文翻译自:Difference between a user and a schema in Oracle? Oracle中的用户和架构有什么区别? #1楼 参考:https://stackoom. ...

  4. Oracle中sys和system用户的区别

    Oracle中sys和system用户的区别 1.数据库的启动需要以SYSDBA/SYSOPER身份登录. 2.如果在同一主机上使用IPC连接到数据库使用操作系统授权,登录任何一个用户都可以拥有as ...

  5. oracle数据库rank over用法,Oracle中rank() over, dense_rank(), row_number() 的区别

    Oracle中rank() over, dense_rank(), row_number() 的区别 假设现在有一张学生表student,学生表中有姓名.分数.课程编号,现在我需要按照课程对学生的成绩 ...

  6. oracle的int范围,oracle中int类型和number类型区别

    oracle中int类型和number类型区别 INT类型是NUMBER类型的子类型. 下面简要说明: (1)NUMBER(P,S) 该数据类型用于定义数字类型的数据,其中P表示数字的总位数(最大字节 ...

  7. Oracle中Null与空字符串' '的区别

    含义解释: 问:什么是NULL? 答:在我们不知道具体有什么数据的时候,也即未知,可以用NULL,我们称它为空,ORACLE中,含有空值的表列长度为零. ORACLE允许任何一种数据类型的字段为空,除 ...

  8. oracle中存储过程和函数有什么区别,Oracle中存储过程和函数的区别

    Oracle中存储过程和函数的区别 存储过程和函数:  www.2cto.com 例子: [sql] //创建过程 create or replace procedure add_emailinfo( ...

  9. Oracle中varchar,varchar2,nvarchar,nvarchar2的区别

    -varchar,varchar2 联系: 1.varchar/varchar2用于存储可变长度的字符串 比如varchar(20),存入字符串'abc',则数据库中该字段只占3个字节,而不是20个字 ...

  10. oracle执行存储过程06576,Oracle中执行存储过程call和exec区别

    在sqlplus中这两种方法都可以使用: exec pro_name(参数1..); call pro_name(参数1..); 区别: 1. 但是exec是sqlplus命令,只能在sqlplus中 ...

最新文章

  1. freecodecamp_常见技术支持问题– freeCodeCamp常见问题解答
  2. hibernate之Configuration对象
  3. 代码示例:使用redis计数来控制单位时间内对某接口的访问量
  4. Gartner预测:SD-WAN将取代路由
  5. 余敖的实验整理(还没完成)
  6. 数据科学家是个性感的工作?我信你个鬼!
  7. xpath helper小工具的安装
  8. java String类常用的方法
  9. 使用resnet, inception3进行fine-tune出现训练集准确率很高但验证集很低的问题
  10. xshell密码保存位置_一键安装宝塔面板后哪里找账号密码?
  11. lbe android,LBE安全大师极速版
  12. Java中字符串比较的注意点
  13. pycharm关闭pytest模式
  14. vscode代码对比差异视图窗口切换方法(左右文件位置切换)
  15. Win系统 - 如何清除冰点还原精灵 Deep Freeze 密码?
  16. 深度学习已入末路,AI未来是图网络
  17. 本地服务启动慢问题及dubbo测试方法记录
  18. java 多媒体处理_Java 多媒体处理包 JAVE
  19. 用html作小米官网首页效果,html+css实现小米商城首页静态页面
  20. 量化投资分析:定量分析项目和交易分析指标

热门文章

  1. F#中的异步和并行设计模式(三):代理
  2. 矩阵对抗与系统补丁200911(第2期)下载
  3. 我的CCIE实验考试
  4. Java-ORM数据库框架CDM介绍
  5. Linux 第60,61天 ansible的playbook
  6. 知识科普:布线系统的施工顺序是什么
  7. 查看linux系统性能
  8. 【Android】SlidingMenu属性详解
  9. 常用代码之三:jQuery为按钮绑定事件的代码
  10. OpenBSD 5.2 发布