SQL 기초4- 집합연산
이번 SQL 기초4에서는 표준 SQL에 대하여 다루어 보도록 하겠다.
관계형 데이터베이스에서 원하는 정보를 유도하기 위한 기본 연산 집합에는 일반 집합 연산 & 순수 관계 연산이 있다.
<일반 집합 연산>
일반 집합 연산에는 UNION, UNION ALL, INTERSECT, EXCEPT 가 있다.
(SELECT ~ FROM~) 일반 집합 연산 (SELECT ~ FROM~) ;
1. UNION
- 두 개의 테이블을 하나로 만드는 연산
- UNION에 사용할 컬럼의 수와 데이터 형식이 일치해야하며, 합친 후 테이블에서 중복된 데이터는 제거된다.
=> 중복된 데이터 제거를 위해 UNION 연산시 정렬과정이 발생된다
(BUT, 최종 결과에 대해 올바른 정렬을 위해서는 ORDERT BY 구문을 마지막에 작성해주어야 한다.)
select~from~
UNION
select~from~
형태
2. UNION ALL
- UNION과 거의 같은 기능을 수행
- 다만, UNION과 달리 중복제거를 하지 않는다.
- 중복 제거를 하지 않으므로, 자연스럽게 정렬 또한 하지 않는다.
3. INTERSECT
- 두 개의 테이블에 대해 겹치는 부분을 추출하는 연산 (교집합)
- 중복된 데이터 제거
4. MINUS
- 두 개의 테이블에서 겹치는 부분을 앞의 테이블에서 제외하여 추출하는 연산 (차집합)
- 중복된 데이터 제거
- 오라클에서는 MINUS, 마리아에서는 EXCEPT
<계층형 질의>
계층형 데이터: 동일 테이블에 계층적으로 상위와 하위 데이터가 포함되어 있는 데이터
계층형 질의: 데이터에 계층형 데이터가 존재하는 경우, 데이터를 조회하기 위해 사용하는 것