zoukankan      html  css  js  c++  java
  • sql union和union all的用法及效率

    一:Union指令的目的是将两个sql语句的结果合并起来。

    假设我们有以下的两个表格: 
    Store_Information 表: store_name      Sales      Date 


                                  Los Angeles     $1500      Jan-05-1999 
                                  San Diego       $250       Jan-07-1999 
                                  Los Angeles     $300       Jan-08-1999 
                                   Boston          $700       Jan-08-1999 


    Internet Sales 表:    Date            Sales 


               Jan-07-1999     $250 
               Jan-10-1999     $535 
               Jan-11-1999     $320 
               Jan-12-1999     $750 

    如果我们要找出来所有有营业额 (sales) 的日子。要达到这个目的,我们用以下的 SQL 语句: 
    SELECT Date FROM Store_Information 
    UNION 
    SELECT Date FROM Internet_Sales 

    结果: 
      Date 
      Jan-05-1999 
      Jan-07-1999 
      Jan-08-1999 
      Jan-10-1999 
      Jan-11-1999 
      Jan-12-1999 

    UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。

     

    UNION ALL 这个指令的目的也是要将两个 SQL 语句的结果合并在一起。 UNION ALL 和 UNION 不同之处在于 UNION ALL 会将每一笔符合条件的资料都列出来,无论资料值有无重复。

    如果上述的例子我们只用UNION ALL的话,则结果会是:

        Date 
      Jan-05-1999 
      Jan-07-1999 
      Jan-08-1999 
      Jan-08-1999 
      Jan-07-1999 
      Jan-10-1999 
      Jan-11-1999 
      Jan-12-1999 

    总结:union是将具有相同结果的数据合并起来,同时会去掉所有重复的数据。

    二:JOIN与UNION区别

    join 是两张表做交连后里面条件相同的部分记录产生一个记录集

    union是产生的两个记录集(字段要一样的)并在一起,成为一个新的记录集。

  • 相关阅读:
    L1-050 倒数第N个字符串 (15分)
    Oracle存储过程的疑难问题
    Linux的细节
    Linux字符设备和块设备的区别
    Shell变量
    游标的常用属性
    Oracle中Execute Immediate用法
    Oracle中的sqlerrm和sqlcode
    Oracle把一个表的数据复制到另一个表中
    Oracle的差异增量和累积增量
  • 原文地址:https://www.cnblogs.com/zmztya/p/5332205.html
Copyright © 2011-2022 走看看