728x90
반응형
집합 연산자
- SELECT문 결과를 하나의 집합으로 간주하고, 집합에 대한 합집합, 교집합, 차집합을 연산
- SELECT문과 SELECT문 사이에 집합 연산자 정의
- 두 집합의 컬럼이 동일하게 구성
- 컬럼의 데이터 타입과 순서가 일치해야 함
- 전체 집합의 데이터 타입과 컬럼명은 첫번째 집합에 의해 결정
일반 집합 연산자를 SQL과 비교
- UNION 연산은 UNION 기능으로
- INTERSECTION 연산은 INTERSECTION 기능으로
- DIFFERENCE 연산은 EXCEPT(오라클은 MINUS) 기능으로
- PRODUCT 연산은 CROSS JOIN 기능으로 구현되었다.
집합 연산자 종류
합집합
- 두 집합의 총 합 (전체)을 출력
- UNION, UNION ALL 사용
1) UNION
- 중복된 데이터는 한 번만 출력
- 중복된 데이터를 제거하기 위해 내부적으로 정렬을 수행
- 중복된 데이터가 없는 경우 UNION 대신 UNION ALL 사용
- 불필요한 정렬 수행을 방지하기 위함
2) UNION ALL
- 중복된 데이터도 전체 출력
교집합
- 두 집합 사이에 INTERSECT 전달
- 두 집합의 교집합(공통으로 갖는 행) 출력
차집합
- 두 집합 사이에 MINUS 전달
- 두 집합의 차집합 (한 집합에만 존재하는 행) 출력
- A-B 와 B-A 의 결과는 다르므로 집합의 순서에 주의
집합 연산자 사용 시 주의사항
- 두 집합의 컬럼 수가 일치해야 한다.
- 두 집합의 컬럼 순서가 일치해야 한다.
- 두 집합의 각 컬럼의 데이터 타입이 일치해야 한다.
- 각 컬럼의 사이즈(Volume)는 달라도 된다.
반응형
'[DB]DataBase > [SQL]' 카테고리의 다른 글
[SQLD] 윈도우 함수 (0) | 2024.05.16 |
---|---|
[SQLD] 그룹 함수 (0) | 2024.05.09 |
[SQLD] 서브 쿼리 (0) | 2024.05.05 |
[SQLD] 표준 조인 (0) | 2024.05.05 |
[SQLD] 순수 관계 연산자 (0) | 2024.05.03 |