본문 바로가기
DB/Oracle

[Oracle] 오라클 테이블 조회 3 - union, 집합 연산자

by hongdor 2020. 5. 30.
728x90

- 오라클 11g XE 버전입니다.

- 오라클 샘플 계정 HR에 접속한 후 진행했습니다. ( 아래 참고 )

https://hongdori2.tistory.com/4

 

 

0. 집합 연산자

 

집합연산자란 두개 이상의 출력을 합치는 것을 의미합니다.

단, 여기서 조건이 있는데 합치려는 출력의 컬럼이 같아야 합니다.

 

 

1. union

: 두개의 출력을 합칩니다. (중복은 하나로 합쳐짐)

 

예시)

> 부서 번호가 60번 이거나 급여가 5000이하일 때 사번과 급여, 부서번호 

 

- union 없이 표현

select employee_id, salary, department_id

from employees

where department_id = 60 or salary <= 5000;

 

-  union 을 이용

select employee_id, salary, department_id

from employees

where department_id = 60

union

select employee_id, salary, department_id

from employees

where salary <= 5000;

 

51개의 열이 출력됨

 

 

2. union all

: 두개의 출력을 합칩니다. (중복 있음)

 

select employee_id, salary, department_id

from employees

where department_id = 60

union all

select employee_id, salary, department_id

from employees

where salary <= 5000;

 

중복되는 행이 3개가 존재해 51개가 아닌 54개의 행이 출력됐습니다.

 

 

3. minus

: 두 열을 뺍니다.

 

예시)

> 부서 번호가 60번 이면서 5000이하가 아닌 사람들의 사번과 급여, 부서번호

 

select employee_id, salary, department_id
from employees
where department_id = 60
minus
select employee_id, salary, department_id
from employees
where salary <= 5000;

 

4. intersect

: 두 열의 공통적인 교집합을 출력

 

select employee_id, salary, department_id 
from employees 
where department_id = 60 
intersect
select employee_id, salary, department_id 
from employees 
where salary <= 5000;

 

3개의 중복 행

728x90

댓글