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

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

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

系統(tǒng) 2001 0

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

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

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

?

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

?

一、常用的集合運算符

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

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

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

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

???

二、集合運算的原則

??? 1. 所有選擇列表的表達(dá)式數(shù)目必須相同

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

??? 3. 各個查詢中對應(yīng)的結(jié)果集列出現(xiàn)的順序必須相同

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

?

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

???

??? -- 為集合運算生成環(huán)境,生成有相同結(jié)構(gòu)的 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 ? 過濾了重復(fù)記錄

?????? 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 并集,不去重復(fù)記錄

?????? 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 交集 , 返回兩個結(jié)果集中共有了部分

?????? 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 ? 補集 , 前一個結(jié)果集減后一個結(jié)果集后的結(jié)果

?????? 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 數(shù)據(jù)庫實例啟動關(guān)閉過程

?

Oracle 10g SGA 的自動化管理

?

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

?

Oracle 實例和 Oracle 數(shù)據(jù)庫 (Oracle 體系結(jié)構(gòu) )

?

SQL 基礎(chǔ) --> 常用函數(shù)

?

SQL 基礎(chǔ) --> 過濾和 排序

???

???

?

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


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 文昌市| 盐山县| 闽侯县| 三明市| 崇左市| 子长县| 麟游县| 富川| 墨玉县| 水富县| 湛江市| 金门县| 阿合奇县| 田阳县| 新干县| 延庆县| 中卫市| 新乡县| 罗城| 桓仁| 扎鲁特旗| 眉山市| 云南省| 澳门| 屏边| 双城市| 来安县| 永川市| 红安县| 石棉县| 凯里市| 云阳县| 宜城市| 蓬安县| 广饶县| 耿马| 岳阳县| 澎湖县| 牟定县| 烟台市| 景泰县|