集合運算(UNION與UNIONALL)--=============================================集合運算操作符可以將兩個或多個查詢返回的行組合起來,即集合屬于縱向連接運算一、常用的集合運算符UNIONALL返回各個查詢檢索出的所有的行,不過濾掉重復記錄UNION返回各個查詢檢索出的過濾掉重復記錄的所有行,即" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

SQL 基礎--> 集合運算(UNION 與UNION ALL)

系統 1717 0

--=============================================

-- SQL 基礎 --> 集合運算 (UNION UNION ALL)

--=============================================

?

??? 集合運算操作符可以將兩個或多個查詢返回的行組合起來,即集合屬于縱向連接運算

?

一、常用的集合運算符

??? UNION ALL 返回各個查詢檢索出的所有的行,不過濾掉重復記錄

??? UNION ???? 返回各個查詢檢索出的過濾掉重復記錄的所有行,即并集

??? INTERSECT 返回兩個查詢檢索出的共有行,即交集

??? MINUS ???? 返回將第二個查詢檢索出的行從第一個查詢檢索出的行中減去之后剩余的行,即差集

???

二、集合運算的原則

??? 1. 所有選擇列表的表達式數目必須相同

??? 2. 對于結果集中各列,或個別子查詢中的任意列的子集必須具有相同的數據類型,或是可以隱式轉化為相同的數據類型,否則需顯示轉換

??? 3. 各個查詢中對應的結果集列出現的順序必須相同

??? 4. 生成的結果集中的列名來自 UNION 語句中第一個單獨的查詢

?

三、演示各個集合運算符 ??

???

??? -- 為集合運算生成環境,生成有相同結構的 emp 表,且命名為 emp2

??? SQL > conn scott / tiger ;

??? Connected .

??? SQL > select * from emp ;

?

?????? ? EMPNO ENAME ????? JOB ????????????? MGR HIREDATE ???????? SAL ?????? COMM ???? DEPTNO

??? ---------- ---------- --------- ---------- --------- ---------- ---------- ----------

?????? ? 7369 SMITH ????? CLERK ?????????? 7902 17 - DEC - 80 ??????? 800 ??????????????????? 20

?????? ? 7499 ALLEN ????? SALESMAN ??????? 7698 20 - FEB - 81 ?????? 1600 ??????? 300 ???????? 30

?????? ? 7521 WARD ?????? SALESMAN ??????? 7698 22 - FEB - 81 ?????? 1250 ??????? 500 ???????? 30

?????? ? 7566 JONES ????? MANAGER ???????? 7839 02 - APR - 81 ?????? 2975 ??????????????????? 20

?????? ? 7654 MARTIN ???? SALESMAN ??????? 7698 28 - SEP - 81 ?????? 1250 ?????? 1400 ???????? 30

?????? ? 7698 BLAKE ????? MANAGER ???????? 7839 01 - MAY - 81 ?????? 2850 ??????????????????? 30

?????? ? 7782 CLARK ????? MANAGER ???????? 7839 09 - JUN - 81 ? ????? 2450 ??????????????????? 10

?????? ? 7788 SCOTT ????? ANALYST ???????? 7566 19 - APR - 87 ?????? 3000 ??????????????????? 20

?????? ? 7839 KING ?????? PRESIDENT ??????????? 17 - NOV - 81 ?????? 5000 ??????????????????? 10

?????? ? 7844 TURNER ???? SALESMAN ??????? 7698 08 - SEP - 81 ????? ? 1500 ????????? 0 ???????? 30

?????? ? 7876 ADAMS ????? CLERK ?????????? 7788 23 - MAY - 87 ?????? 1100 ??????????????????? 20

?

?????? ? EMPNO ENAME ????? JOB ????????????? MGR HIREDATE ???????? SAL ?????? COMM ???? DEPTNO

??? ---------- ---------- --------- ---------- --------- ---------- ---------- ----------

?????? ? 7900 JAMES ????? CLERK ?????????? 7698 03 - DEC - 81 ??????? 950 ??????????????????? 30

?????? ? 7902 FORD ?????? ANALYST ???????? 7566 03 - DEC - 81 ?????? 3000 ??????????????????? 20

?????? ? 7934 MILLER ???? CLERK ?????????? 7782 23 - JAN - 82 ?????? 1300 ??????????????????? 10

?

??? 14 rows selected .

?

??? SQL > create table emp2 tablespace tbs1 as select * from emp where empno in ( 7369 , 7654 , 7839 , 7876 );

?

??? Table created .

???

??? SQL > insert into emp2 ( empno , ename , sal ) select 8001 , 'ROBINSON' , 3500 from dual ;

?

??? 1 row created .

?

??? SQL > insert into emp2 ( empno , ename , sal ) select 8002 , 'HENRY' , 3700 from dual ;

?

??? 1 row created .

?

??? SQL > insert into emp2 ( empno , ename , sal ) select 8004 , 'JOHNSON' , 4000 from dual ;

?

??? 1 row created .

???

??? SQL > select * from emp2 ;

?

?????? ? EMPNO ENAME ????? JOB ????????????? MGR HIREDATE ???????? SAL ?????? COMM ???? DEPTNO

??? ---------- ---------- --------- ---------- --------- ---------- ---------- ----------

?????? ? 7369 SMITH ????? CLERK ?????????? 7902 17 - DEC - 80 ??????? 800 ??????????????????? 20

?????? ? ? 7654 MARTIN ???? SALESMAN ??????? 7698 28 - SEP - 81 ?????? 1250 ?????? 1400 ???????? 30

?????? ? 7839 KING ?????? PRESIDENT ??????????? 17 - NOV - 81 ?????? 5000 ??????????????????? 10

?????? ? 7876 ADAMS ????? CLERK ?????????? 7788 23 - MAY - 87 ?????? 1100 ??????????????????? 20

?????? ? 8001 ROBINSON ??????????????????????????????????????? 3500

?????? ? 8002 HENRY ?????????????????????????????????????????? 3700

?????? ? 8004 JOHNSON ???????????????????????????????????????? 4000

?

??? --1.UNION ? 過濾了重復記錄

?????? SQL > select empno , ename , job , hiredate , sal from emp

?????? ? 2 ? union ???

?????? ? 3 ? select empno , ename , job , hiredate , sal from emp2 ;

?

?????????? ? EMPNO ENAME ????? JOB ?????? HIREDATE ???????? SAL

?????? ---------- ---------- --------- --------- ----------

?????????? ? 7369 SMITH ????? CLERK ???? 17 - DEC - 80 ??????? 800

?????????? ? 7499 ALLEN ????? SALESMAN ? 20 - FEB - 81 ?????? 1600

?????????? ? 7521 WARD ?????? SALESMAN ? 22 - FEB - 81 ?????? 1250

?????????? ? 7566 JONES ????? MANAGER ?? 02 - APR - 81 ?????? 2975

?????????? ? 7654 MARTIN ???? SALESMAN ? 28 - SEP - 81 ?????? 1250

?????????? ? 7698 BLAKE ????? MANAGER ?? 01 - MAY - 81 ?????? 2850

?????????? ? 7782 CLARK ????? MANAGER ?? 09 - JUN - 81 ?????? 2450

?????????? ? 7788 SCOTT ????? ANALYST ?? 19 - APR - 87 ?????? 3000

?????????? ? 7839 KING ?????? PRESIDENT 17 - NOV - 81 ?????? 5000

?????????? ? 7844 TURNER ???? SALESMAN ? 08 - SEP - 81 ?????? 1500

?????????? ? 7876 ADAMS ????? CLERK ???? 23 - MAY - 87 ?????? 1100

?

?????????? ? EMPNO ENAME ????? JOB ?????? HIREDATE ???????? SAL

?????? ---------- ---------- --------- --------- ----------

?????????? ? 7900 JAMES ????? CLERK ???? 03 - DEC - 81 ??????? 950

?????????? ? 7902 FORD ?????? ANALYST ?? 03 - DEC - 81 ?????? 3000

?????????? ? 7934 MILLER ???? CLERK ???? 23 - JAN - 82 ?? ???? 1300

?????????? ? 8001 ROBINSON ???????????????????????????? 3500

?????????? ? 8002 HENRY ??????????????????????????????? 3700

?????????? ? 8004 JOHNSON ????????????????????????????? 4000

?????? 17 rows selected .

???

??? --2.UNION ALL 并集,不去重復記錄

?????? SQL > select empno , ename , job , hiredate , sal from emp

?????? ? 2 ? union all

?????? ? 3 ? select empno , ename , job , hiredate , sal from emp2 ;

?

?????????? ? EMPNO ENAME ????? JOB ?????? HIREDATE ???????? SAL

?????? ---------- ---------- --------- --------- ----------

?????????? ? 7369 SMITH ????? CLERK ???? 17 - DEC - 80 ??????? 800

?????????? ? 7499 ALLEN ????? SALESMAN ? 20 - FEB - 81 ?????? 1600

?????????? ? 7521 WARD ?????? SALESMAN ? 22 - FEB - 81 ?????? 1250

?????????? ? 7566 JONES ????? MANAGER ?? 02 - APR - 81 ?????? 2975

?????????? ? 7654 MARTIN ???? SALESMAN ? 28 - SEP - 81 ?????? 1250

?????????? ? 7698 BLAKE ????? MANAGER ?? 01 - MAY - 81 ?????? 2850

?????????? ? 7782 CLARK ????? MANAGER ?? 09 - JUN - 81 ?????? 2450

?????????? ? 7788 SCOTT ????? ANALYST ?? 19 - APR - 87 ?????? 3000

?????????? ? 7839 KING ?????? PRESIDENT 17 - NOV - 81 ?????? 5000

?????????? ? 7844 TURNER ???? SALESMAN ? 08 - SEP - 81 ?????? 1500

?????????? ? 7876 ADAMS ????? CLERK ???? 23 - MAY - 87 ?????? 1100

?

?????????? ? EMPNO ENAME ????? JOB ?????? HIREDATE ???????? SAL

?????? ---------- ---------- --------- --------- ----------

?????????? ? 7900 JAMES ????? CLERK ???? 03 - DEC - 81 ??????? 950

?????????? ? 7902 FORD ?????? ANALYST ?? 03 - DEC - 81 ?????? 3000

?????????? ? 7934 MILLER ???? CLERK ??? ? 23 - JAN - 82 ?????? 1300

?????????? ? 7369 SMITH ????? CLERK ???? 17 - DEC - 80 ??????? 800

?????????? ? 7654 MARTIN ???? SALESMAN ? 28 - SEP - 81 ?????? 1250

?????????? ? 7839 KING ?????? PRESIDENT 17 - NOV - 81 ?????? 5000

?????????? ? 7876 ADAMS ????? CLERK ???? 23 - MAY - 87 ?????? 1100

?????????? ? 8001 ROBINSON ???????????????????????????? 3500

?????????? ? 8002 HENRY ??????????????????????????????? 3700

?????????? ? 8004 JOHNSON ????????????????????????????? 4000

?

?????? 21 rows selected .

?

??? --3.INTERSECT 交集 , 返回兩個結果集中共有了部分

?????? SQL > select empno , ename , job , hiredate , sal from emp

?????? ? 2 ? intersect

?????? ? 3 ? select empno , ename , job , hiredate , sal from emp2 ;

?

?????????? ? EMPNO ENAME ????? JOB ?????? HIREDATE ???????? SAL

?????? ---------- ---------- --------- --------- ----------

?????????? ? 7369 SMITH ????? CLERK ???? 17 - DEC - 80 ??????? 800

?????????? ? 7654 MARTIN ???? SALESMAN ? 28 - SEP - 81 ?????? 1250

?????????? ? 7839 KING ?????? PRESIDENT 17 - NOV - 81 ?????? 5000

?????????? ? 7876 ADAMS ????? CLERK ???? 23 - MAY - 87 ?????? 1100

?????????????

??? --4.MINUS ? 補集 , 前一個結果集減后一個結果集后的結果

?????? SQL > select empno as "EmployeeNo" , ename ? "EmployeeName" , job ? "Job" , hiredate as "HireDate" , sal "Sal" from emp

?????? ? 2 ? minus

?????? ? 3 ? select empno , ename , job , hiredate , sal from emp2

?????? ? 4 ? order by "Sal" ;

?

?????? EmployeeNo EmployeeNa Job ?????? HireDate ???????? Sal

?????? ---------- ---------- --------- --------- ----------

?????????? ? 7900 JAMES ????? CLERK ???? 03 - DEC - 81 ??????? 950

?????????? ? 7521 WARD ?????? SALESMAN ? 22 - FEB - 81 ?????? 1250

?????????? ? 7934 MILLER ???? CLERK ???? 23 - JAN - 82 ?????? 1300

?????????? ? 7844 TURNER ???? SALESMAN ? 08 - SEP - 81 ?????? 1500

?????????? ? 7499 ALLEN ????? SALESMAN ? 20 - FEB - 81 ?????? 1600

?????????? ? 7782 CLARK ????? MANAGER ?? 09 - JUN - 81 ?????? 2450

?????????? ? 7698 BLAKE ????? MANAGER ?? 01 - MAY - 81 ?????? 2850

?????????? ? 7566 JONES ????? MANAGER ?? 02 - APR - 81 ?????? 2975

?????????? ? 7788 SCOTT ????? ANALYST ?? 19 - APR - 87 ?????? 3000

?????????? ? 7902 FORD ?????? ANALYST ?? 03 - DEC - 81 ?????? 3000

?

?????? 10 rows selected .

?

四、更多

?

Oracle 數據庫實例啟動關閉過程

?

Oracle 10g SGA 的自動化管理

?

使用 OEM,SQL*Plus,iSQL*Plus 管理 Oracle 實例

?

Oracle 實例和 Oracle 數據庫 (Oracle 體系結構 )

?

SQL 基礎 --> 常用函數

?

SQL 基礎 --> 過濾和 排序

???

???

?

SQL 基礎--> 集合運算(UNION 與UNION ALL)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 毛片片| 福利姬在线播放 | 国产一区免费视频 | 亚洲欧洲第一页 | 在线观看黄色网 | 日韩一区二区免费看 | 蕾丝视频在线看片国产 | 婷婷综合 在线 | www激情五月| 久久综合九色综合97婷婷群聊 | 欧美成人免费视频a | 中文字幕在线免费视频 | 手机看片福利日韩欧美看片 | 免费一级毛片不卡在线播放 | 嫩草成人国产精品 | 午夜私人影院粉色视频我要 | 国产成人免费全部网站 | 综合图片亚洲 | 五月激情丁香婷婷综合第九 | 精彩视频一区二区 | 日本精品视频 | 精品一区二区久久久久久久网站 | 国产伦精品一区二区三区免费迷 | 亚洲成人在线视频观看 | 久久久久久天天夜夜天天 | 久久国产精品免费一区二区三区 | 色综合一本到久久亚洲91 | 性欧美视频a毛片在线播放 性欧美视频在线观看 | 日韩一区二区免费看 | 国产日韩亚洲欧洲一区二区三区 | 亚洲玖玖 | 国产精品久久久久免费 | 久久精品国产99久久6动漫欧 | 97久久久久国产精品嫩草影院 | 免费国产一级特黄aa大片在线 | 日本高清在线精品一区二区三区 | 天天搞天天搞 | 久久国产中文字幕 | 免费久草| 亚洲欧美久久 | c看欧美激情毛片 |