집합 연산자
※ 컬럼의 개수와 데이터 유형을 select문에서 같아야 한다.
(단, 컬럼명을 달라도 된다.)
※ union 과 union all 의 차이점은 ?
1) union은 중복 제거
2) uniion all은 중복 포함
※ union, union all, minus, intersect 연산자
1) UNION : 첫번째 쿼리와 두번째 쿼리의 정보를 합쳐서 보여준다.
(단, 두 쿼리의 데이터 중 중복 된 데이터은 제거 된다.)
2) UNION ALL : UNION과 같지만 중복된 터이터가 제거 되어서 보연준다.
(단, 단순 이어붙이기 기능이기 때문에 속도가 빠르다.)
3) INTERSCET : 첫번째 쿼리와 두번째 쿼리의 데이터에서 중복된 데이터만 보여줍니다.
4) MINUS : 첫번째 쿼리의 데이터에서 두번째 쿼리의 데이터를 뺀 내용을 보여준다.
1. tab_a 테이블 생성 / 입력
create table tab_a (
emp_id number(20) ,
emp_nm varchar2(20)
) ;
insert into tab_a values(1, 'a');
insert into tab_a values(2, 'b');
insert into tab_a values(3, 'c');
commit ;
select * from tab_a ; <데이터 확인>
2. tab_b 테이블 생성 / 입력
create table tab_b (
emp_id number(20),
emp_nm varchar2(20)
) ;
insert into tab_b values(1, 'a') ;
insert into tab_b values(2, 'd') ;
insert into tab_b values(3, 'e');
commit ;
select * from tab_b ; < 데이터 확인 >
3. union , union all, intersect, minus 연산자를 사용해서 결과를 확인해 보세요.
1) union
select emp_id, emp_nm
from tab_a
union
select emp_id, emp_nm
from tab_b ;
※ union 연산자는 중복 제거
2) union all
select emp_id, emp_nm
from tab_a
union all
select emp_id, emp_nm
from tab_b ;
※ union all 연산자는 중복 포함
3) intersect
select emp_id, emp_nm
from tab_a
intersect
select emp_id, emp_nm
from tab_b ;
※ intersect 연산자는 중복된 데이터만 보여준다.
4) minus
select emp_id, emp_nm
from tab_a
minus
select emp_id, emp_nm
from tab_b ;
※ minus 연산자는 첫번째 쿼리에서 두번째 쿼리를 뺀 데이터만 보여준다.
'SQL > ORACLE' 카테고리의 다른 글
TIMESTAMP 밀리세컨드 시간 계산하기 (0) | 2014.07.14 |
---|---|
03. [Oracle/오라클] SQL 문제 (0) | 2014.06.11 |
02. [Oracle/오라클] SQL 문제 (0) | 2014.06.11 |
01. [Oracle/오라클] Study_Day01 (0) | 2014.06.11 |
오라클 재설치 순서 (0) | 2014.06.11 |
Temp Table 생성 (0) | 2014.06.11 |
[본문스크랩] Oracle DB사전 (0) | 2014.06.11 |
ORACLE TABLE SPACE가 다른 DB IMPORT하기 (0) | 2014.06.11 |