[DATABASE] 집합연산자란?
@욕심쟁이
·2020. 11. 11. 10:22
반응형
1. 합집합 / 여러 쿼리문의 결과를 모아서 보는 연산자
1-1. UNION :
- 출력 결과에서 중복값 제거, 결과를 정렬해서 출력 같은 컬럼에 출력될 값들은 같은 종류의 데이터타입어야 함
SELECT department_id, salary
FROM employees
WHERE salary > 10000
AND department_id = 90
UNION
SELECT department_id, salary
FROM employees
WHERE salary > 10000
AND department_id = 80;
1-2. UNION ALL
- 출력 결과에서 중복값 제거하지 않고 결과를 정렬없이 출력
SELECT department_id, salary
FROM employees
WHERE salary > 10000
AND department_id = 90
UNION ALL
SELECT department_id, salary
FROM employees
WHERE salary > 10000
AND department_id = 80;
1-3. null
- 합집합 연산할 쿼리구문의 컬럼수가 다르거나 서로 다른 데이터타입의 컬럼을 출력해야 할 때
NULL을 사용해서 출력 가능
SELECT department_id, salary, last_name, null
FROM employees
WHERE salary > 10000
AND department_id = 90
UNION ALL
SELECT salary, department_id, null, hire_date
FROM employees
WHERE salary > 10000
AND department_id = 80;
2. 공통으로 있는 데이터 찾기 / 교집합
2-1. INTERSECT
- 두 쿼리문의 교집합을 찾는 구문
- 출력 결과는 정렬된 상태로 출력된다.
SELECT salary
FROM employees
WHERE department_id >= 70
INTERSECT
SELECT salary
FROM employees
WHERE department_id < 70;
3. 특정 결과만 제외한 결과 출력 / 차집합
3-1. MINUS
- 위쪽의 집합에서 아래쪽 집합의 내용을 제외한 결과를 출력
- 결과는 정렬되어 출력
SELECT salary
FROM employees
MINUS
SELECT salary
FROM employees
WHERE department_id = 100;
반응형
'IT > DB' 카테고리의 다른 글
[DATABASE] 그룹함수I [ROLLUP/CUBE/GROUPING SETS/LISTAGG] (0) | 2020.11.18 |
---|---|
[DATABASE] CASE / DECODE / 조건 선택문 (0) | 2020.11.11 |
[DB] Mac에서 Mysql : mysql-u root -p가 안될때 (0) | 2020.09.26 |
[DB] Mac에서 Mysql 설치하기(DGM파일) (0) | 2020.09.26 |
[DB] MAC Mysql 초기비밀번호를 잊어버렸을때 (0) | 2020.09.25 |