Oracle/Union + Hierarchical + Modeling
[Oracle-SQL Developer] Union
삐옥
2021. 12. 13. 22:55
Union 유니온
1. union : 두 테이블을 합쳤을 때 중복되는 행 자동 제거
2. union all : 두 테이블을 합쳤을 때 중복되는 행 무시
3. intersect : 두 테이블을 합쳤을 때 그 교집합
4. minus : 두 테이블을 합쳤을 때 그 차집합
UNION, 유니온
- 테이블을 합치는 기술
- UNION, UNION ALL, INTERSECT, MINUS
※주의
1. 컬럼의 개수가 일치해야 한다.
2. 컬럼의 타입이 일치해야 한다.
3. 컬럼의 도메인이 일치해야 한다. (성질)
1. 테이블 생성 + 데이터 삽입
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
create table UnionA (
name varchar2(15) not null
);
create table UnionB (
name varchar2(15) not null
);
insert into UnionA values ('오리너구리');
insert into UnionA values ('고양이'); --*
insert into UnionA values ('사자');
insert into UnionA values ('나무늘보'); --*
insert into UnionA values ('닭');
insert into UnionB values ('표범');
insert into UnionB values ('코알라');
insert into UnionB values ('고양이'); --*
insert into UnionB values ('펭귄');
insert into UnionB values ('나무늘보'); --*
|
cs |
2. UNION, UNION ALL, INTERSECT, MINUS
2-1. union
1
2
3
4
|
-- union > 두 테이블을 합쳤을 때 중복되는 행이 자동으로 제거
select * from UnionA
union
select * from UnionB;
|
cs |
2-2. union all
1
2
3
4
|
-- union all > 두 테이블을 합쳤을 때 중복되는 행이 그대로 보관
select * from UnionA
union all
select * from UnionB;
|
cs |

2-3. intersect
1
2
3
4
|
-- intersect > 교집합
select * from UnionA
intersect
select * from UnionB;
|
cs |
2-4. minus
1
2
3
4
|
--1)
select * from UnionA
minus
select * from UnionB;
|
cs |
1
2
3
4
5
|
--2)
select * from UnionB
minus
select * from UnionA;
|
cs |
1
2
3
4
5
6
7
|
(select * from UnionA
union all
select * from UnionB) --고양이x2, 나무늘보x2
minus
(select * from UnionA
intersect
select * from UnionB); ----고양이, 나무늘보
|
cs |