zoukankan      html  css  js  c++  java
  • 【SQL】联合语句

    一、UNION操作符

    UNION 操作符用于合并两个结果集,在合并的同时去掉重复行,并按合并后结果的第一列升序排列。合并后结果集的列名由第一个结果集的列名确定。

    UINON连接的两个结果集必须具有相同的列数,并且各列具有相同的数据类型。注意这里说的是相同的数据类型,而不是相同的列名!

    示例:两个表的列名不同,但具有相同的数据类型,同样可以进行UNION合并,并进行去重、排序处理。

    (1)表T1、T2的表结构

    SQL> desc t1;

     Name                                       Null?   Type

     ----------------------------------------- -------- ----------------------------

     ID                                                 NUMBER(2)

     NAME                                               VARCHAR2(10)

     AGE                                                NUMBER(3)

     

    SQL> desc t2;

     Name                                      Null?    Type

     ----------------------------------------- -------- ----------------------------

     ID                                                 NUMBER(2)

     ENAME                                              VARCHAR2(10)

     AGE                                                NUMBER(3)

    (2)表T1、T2中的数据

    SQL> select * from t1;

     

    ID          NAME      AGE

    ---------- ---------- ----------

     1        wanglili       22

     2         maling       22

     3         mateng       22

     4     yinguopeng       22

     

    SQL> select * from t2;

     

    ID          ENAME      AGE

    ---------- ---------- ----------

     2       zhangfang       22

     1         wanglili       22

     3           mateng       22

     4         zhanghui       22

    (3)UNION合并后,去重排序,按第一个结果集的列名返回合并后的列名

    SQL> select * from t1

      2  union

      3  select * from t2;

     

    ID       NAME       AGE

    ---------- ---------- ----------

     1       wanglili       22

     2       maling       22

     2       zhangfang   22

     3       mateng       22

     4    yinguopeng       22

     4     zhanghui       22

     

    6 rows selected.

     

    二、UNION ALL 操作符

    UNION ALL 同样可以合并两个结果集除了不去重、不排序以外和UNION完全相同。因为不去重、不排序的原因,UNION ALL比UNION效率高很多,所以,当对结果集要求不高的时候尽量使用UNION ALL。

    SQL> select * from t1

      2  union all

      3  select * from t2;

     

    ID        NAME      AGE

    ---------- ---------- ----------

     1     wanglili       22

     2        maling       22

     3       mateng       22

     4    yinguopeng       22

     2   zhangfang       22

     1     wanglili       22

     3       mateng       22

     4     zhanghui       22

     

    8 rows selected.

     

    三、INTERSECT操作符

    INTERSECT用于返回两个结果集的交集,去掉重复值,并且会以第一列的升序排列。

    示例:查询两个表中同时存在的人员信息。

    SQL> select * from t1

      2  intersect

      3  select * from t2;

     

    ID NAME      AGE

    ---------- ---------- ----------

     1 wanglili       22

     3 mateng       22

     

    四、MINUS操作符

    MINUS用于返回在第一个结果集中存在,而在第二个结果集中不存在的数据,并且会以第一列升序排列。

    示例:查询T1中存在,而T2中不存在的数据。

    SQL> select * from t1

      2  minus

      3  select * from t2;

     

    ID NAME      AGE

    ---------- ---------- ----------

     2 maling       22

     4 yinguopeng       22

     

     

     

     

     

  • 相关阅读:
    Eclipse安装Hadoop插件
    (转)Ubuntu14.0.4中hadoop2.4.0伪分布模式配置
    Hadoop--DataNode无法启动
    启动与关闭hadoop
    hadoop中执行命令时发生错误
    strings命令
    Deriving data from ElasticSearch Engine
    elasticsearch data importing
    reading words in your computer and changing to female voice, linux festival text2wave saving wav files
    DDNS client on a Linux machine
  • 原文地址:https://www.cnblogs.com/NextAction/p/7366623.html
Copyright © 2011-2022 走看看