时间: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)举例演示如下:
- <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
- </span><span style="color: #008080"> 2</span> <span style="color: #000000">(
- </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">),
- </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">)
- </span><span style="color: #008080"> 5</span> <span style="color: #000000"> );
- </span><span style="color: #008080"> 6</span>
- <span style="color: #008080"> 7</span> <span style="color: #000000">表已创建。
- </span><span style="color: #008080"> 8</span>
- <span style="color: #008080"> 9</span>
- <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">);
- </span><span style="color: #008080">11</span> 已创建 <span style="color: #800000; font-weight: bold">1</span><span style="color: #000000"> 行。
- </span><span style="color: #008080">12</span>
- <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">);
- </span><span style="color: #008080">14</span> 已创建 <span style="color: #800000; font-weight: bold">1</span><span style="color: #000000"> 行。
- </span><span style="color: #008080">15</span>
- <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">);
- </span><span style="color: #008080">17</span> 已创建 <span style="color: #800000; font-weight: bold">1</span><span style="color: #000000"> 行。
- </span><span style="color: #008080">18</span>
- <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">);
- </span><span style="color: #008080">20</span> 已创建 <span style="color: #800000; font-weight: bold">1</span><span style="color: #000000"> 行。
- </span><span style="color: #008080">21</span>
- <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">);
- </span><span style="color: #008080">23</span> 已创建 <span style="color: #800000; font-weight: bold">1</span><span style="color: #000000"> 行。
- </span><span style="color: #008080">24</span>
- <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">);
- </span><span style="color: #008080">26</span> 已创建 <span style="color: #800000; font-weight: bold">1</span><span style="color: #000000"> 行。
- </span><span style="color: #008080">27</span>
- <span style="color: #008080">28</span>
- <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;
- </span><span style="color: #008080">30</span> <span style="color: #000000">ENAME SAL
- </span><span style="color: #008080">31</span> <span style="color: #008080">--</span><span style="color: #008080">-------- ----------</span>
- <span style="color: #008080">32</span> fxe1 <span style="color: #800000; font-weight: bold">90</span>
- <span style="color: #008080">33</span> <span style="color: #000000">fxe2
- </span><span style="color: #008080">34</span> <span style="color: #000000">fxe3
- </span><span style="color: #008080">35</span> <span style="color: #000000">fxe4
- </span><span style="color: #008080">36</span> fxe5 <span style="color: #800000; font-weight: bold">80</span>
- <span style="color: #008080">37</span> fxe6 <span style="color: #800000; font-weight: bold">80</span>
- <span style="color: #008080">38</span>
- <span style="color: #008080">39</span>
- <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>
- <span style="color: #008080">41</span> <span style="color: #ff00ff">COUNT</span>(<span style="color: #808080">*</span><span style="color: #000000">)
- </span><span style="color: #008080">42</span> <span style="color: #008080">--</span><span style="color: #008080">--------</span>
- <span style="color: #008080">43</span> <span style="color: #800000; font-weight: bold">6</span>
- <span style="color: #008080">44</span>
- <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>
- <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">)
- </span><span style="color: #008080">47</span> <span style="color: #008080">--</span><span style="color: #008080">--------</span>
- <span style="color: #008080">48</span> <span style="color: #800000; font-weight: bold">6</span>
- <span style="color: #008080">49</span>
- <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>
- <span style="color: #008080">51</span> <span style="color: #ff00ff">COUNT</span><span style="color: #000000">(SAL)
- </span><span style="color: #008080">52</span> <span style="color: #008080">--</span><span style="color: #008080">--------</span>
- <span style="color: #008080">53</span> <span style="color: #800000; font-weight: bold">3</span>
- <span style="color: #008080">54</span>
- <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>
- <span style="color: #008080">56</span> <span style="color: #ff00ff">COUNT</span><span style="color: #000000">(DISTINCTSAL)
- </span><span style="color: #008080">57</span> <span style="color: #008080">--</span><span style="color: #008080">----------------</span>
- <span style="color: #008080">58</span> <span style="color: #800000; font-weight: bold">2</span>
- <span style="color: #008080">59</span>
- <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;
- </span><span style="color: #008080">61</span> <span style="color: #000000">SAL
- </span><span style="color: #008080">62</span> <span style="color: #008080">--</span><span style="color: #008080">--------</span>
- <span style="color: #008080">63</span> <span style="color: #800000; font-weight: bold">80</span>
- <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