티스토리 뷰

DB

6. 집합 연산자

prprme 2020. 11. 18. 01:13

집합 연산자

- SELECT문 결과 집합을 피연산자로 하는 집한 연산

- 피연산자들 끼리의 열이 서로 대응하고 데이터 타입이 일치해야 함

- 위에서 아래로 수행되고 ORDER BY는 SELECT문의 맨 끝에 기술

 

합집합 | UNION

SELECT department_id
  FROM employees
 UNION
SELECT department_id
  FROM department; 

- 중복되는 행은 한번만 출력

 

중복 허용 합집합 | UNION ALL

SELECT department_id
  FROM employees
 UNION ALL
SELECT department_id
  FROM department;

- 중복되는 행 모두 출력

 

교집합 | INTERSECT

SELECT DISTINCT A.department_id
  FROM employees A
  JOIN department B
    ON A.department_id = B.department_id;
SELECT DISTINCT A.department_id
  FROM employees A
  JOIN department B
    ON A.department_id = B.department_id;

- OracleDB에서는 INTERSECT 연산자를 제공하지만

- MySQL은 따로 제공하지 않기 때문에 JOIN 또는 서브쿼리를 이용해서 구현해줘야 한다.

 

차집합 | MINUS

SELECT DISTINCT A.department_id
  FROM department A
  LEFT JOIN job_history B 
 USING (department_id)
 WHERE B.department_id IS NULL;
SELECT DISTINCT A.department_id
  FROM department A
 WHERE A.department_id NOT IN (SELECT B.department_id FROM job_history B);

- 마찬가지로 OracleDB에서는 제공하지만 MySQL에서는 제공하지 않기 때문에 JOIN 또는 서브쿼리를 이용해서 구현해줘야 한다.

 

'DB' 카테고리의 다른 글

8. DML (Data Manipulation Language)  (0) 2020.11.23
7. 서브 쿼리  (0) 2020.11.18
5. JOIN  (0) 2020.11.18
4. 함수(2)  (0) 2020.11.17
3. 함수(1)  (0) 2020.11.16
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함