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

     

     

     

     

     

  • 相关阅读:
    mysql 统计数据库基本资源sql
    java ffmpeg (Linux)截取视频做封面
    shutil模块
    json模块与pickle模块
    hashlib模块
    sys模块
    os模块
    paramiko模块
    Python reduce() 函数
    瀑布流展示图片
  • 原文地址:https://www.cnblogs.com/NextAction/p/7366623.html
Copyright © 2011-2022 走看看