SQL기초

SQL 기초4- 집합연산

토리쟁이 2022. 7. 7. 00:21

이번 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

 

<계층형 질의>

계층형 데이터: 동일 테이블에 계층적으로 상위와 하위 데이터가 포함되어 있는 데이터

계층형 질의: 데이터에 계층형 데이터가 존재하는 경우, 데이터를 조회하기 위해 사용하는 것

 

계층형 질의 얘시
LPAD를 사용하여 테이블에 시각적으로 계층을 표현

 

계층형 질의 구현 코드