集合操作有 并,交,差?。撤N運(yùn)算。
union :得到兩個(gè)查詢(xún)結(jié)果的并集,并且自動(dòng)去掉重復(fù)行。不會(huì)排序
union all:得到兩個(gè)查詢(xún)結(jié)果的并集,不會(huì)去掉重復(fù)行。也不會(huì)排序
intersect:得到兩個(gè)查詢(xún)結(jié)果的交集,并且按照結(jié)果集的第一個(gè)列進(jìn)行排序
minus:得到兩個(gè)查詢(xún)結(jié)果的減集,以第一列進(jìn)行排序
例子:
下面是兩個(gè)表:一個(gè)主修課程表,一個(gè)選修課程表。
這個(gè)是主修課程表:minors
create table minors(
minor_id number primary key,
minor_name varchar2(30) not null,
credit_hour number(2)
)
插入3條記錄:
insert into minors values(10101,'計(jì)算機(jī)原理',4)
insert into minors values(10201,'自動(dòng)控制原理',3)
insert into minors values(10301,'工程制圖原理',4)
下面創(chuàng)建選修課程表minors2
create table minors2(
minor_id number primary key,
minor_name varchar2(30) not null,
credit_hour number(2)
)
插入兩條記錄:
insert into minors2 values(10201,'自動(dòng)控制原理',3)
insert into minors2 values(10301,'工程制圖原理',4)
兩個(gè)表使用union all:得到如下結(jié)果
select minor_id,minor_name,credit_hour from minors union all
select minor_id,minor_name,credit_hour from minors2 order by credit_hour
結(jié)果:
MINOR_ID MINOR_NAME CREDIT_HOUR
---------- ------------------------------ -----------
10201 自動(dòng)控制原理 3
10201 自動(dòng)控制原理 3
10101 計(jì)算機(jī)原理 4
10301 工程制圖原理 4
10301 工程制圖原理 4
兩個(gè)表使用union :得到如下結(jié)果
select minor_id,minor_name,credit_hour from minors union
select minor_id,minor_name,credit_hour from minors2 order by credit_hour
結(jié)果:
MINOR_ID MINOR_NAME CREDIT_HOUR
---------- ------------------------------ -----------
10201 自動(dòng)控制原理 3
10101 計(jì)算機(jī)原理 4
10301 工程制圖原理 4
兩個(gè)表使用intersect :得到如下結(jié)果
select minor_id,minor_name,credit_hour from minors intersect
select minor_id,minor_name,credit_hour from minors2
結(jié)果:
MINOR_ID MINOR_NAME CREDIT_HOUR
---------- ------------------------------ -----------
10201 自動(dòng)控制原理 3
10301 工程制圖原理 4
兩個(gè)表使用minus :得到如下結(jié)果
select minor_id,minor_name,credit_hour from minors minus
select minor_id,minor_name,credit_hour from minors2
結(jié)果:
MINOR_ID MINOR_NAME CREDIT_HOUR
---------- ------------------------------ -----------
10101 計(jì)算機(jī)原理 4