조인 외에도 테이블 간의 데이터를 조회하는 방법이 있음.
집합 연산자는 SELECT 문을 여러개 연결하여 작성,
각 SELECT 문의 조회 결과를 하나로 합치거나 분리할 수 있음.
즉, 합집합, 교집합, 차집합과 같음.
| OPERATOR | DESC | KIND | 
|---|---|---|
| UNION | 조회 결과의 합집합. 중복행은 1번만 출력. | 합집합 | 
| UNION ALL | 조회 결과의 합집합. 중복되는 행도 출력. | 합집합 | 
| INTERSET | 조회 결과의 교집합. 중복되는 행만 출력. | 교집합 | 
| MINUS | 첫 번째 조회 결과에서 두 번째 조회 결과를 뺀다. | 차칩합 | 
SELECT        열 이름
FROM          테이블 이름
집합 연산자   <---  UNION, UNION ALL, INTERSET, MINUS
SELECT        열 이름
FROM          테이블 이름
[ORDER BY     열 이름 [ASC or DESC]]
- SELECT 문에서 기술한 열과 두 번째 SELECT 문에서 기술한 열은
왼쪽부터 순서대로 1 : 1로 대응함,
열 개수와 데이터 타입이 일치해야 함.
열의 순서가 다르거나 데이터 타입이 일치하지 않으면 에러남. - SELECT 문에 대한 연산은 위에서 아래로 수행됨.
 - ORDER BY 절은 SELECT 문의 맨 끝에 기술함.
 
UNION
SELECT COUNT(*)
FROM
  (
    SELECT  department_id
    FROM    employees
    UNION
    SELECT  department_id
    FROM    departments
    ORDER BY department_id
  );
UNION ALL
SELECT COUNT(*)
FROM
  (
    SELECT  department_id
    FROM    employees
    UNION ALL
    SELECT  department_id
    FROM    departments
    ORDER BY department_id
  );
INTERSECT
SELECT COUNT(*)
FROM
  (
    SELECT  department_id
    FROM    employees
    INTERXECT
    SELECT  department_id
    FROM    departments
    ORDER BY department_id
  );
MINUS
SELECT COUNT(*)
FROM
  (
    SELECT  department_id
    FROM    departments
    MINUS
    SELECT  department_id
    FROM    employees
    ORDER BY department_id;
  );728x90
    
    
  반응형
    
    
    
  'Database' 카테고리의 다른 글
| [PostgreSQL] sysdate 쓰는법 (0) | 2020.02.14 | 
|---|---|
| [PostgreSQL] Windows에서 Data Directory 변경하기 (0) | 2020.01.09 | 
| [SQL] JOIN (0) | 2019.12.27 | 
| [SQL] GROUP (0) | 2019.12.26 | 
| [SQL] 데이터를 가공하기 위한 DB 함수들 (0) | 2019.12.26 |