当前位置:Gxlcms > 数据库问题 > Oracle 中count(1) 、count(*) 和count(列名) 函数的区别

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

时间:2021-07-01 10:21:17 帮助过:17人阅读

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

 

 

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

 

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

标签:演示   nbsp   str   number   主键   数据   ref   去重   tail   

人气教程排行