SQL 조인 총 정리

반응형

- 2개 이상의 테이블을 연결하여 데이터를 출력 (즉 필요한 경우 3개, 4개,.... 가능하다는 말)
  어떤 기준으로 연결할 지 모르기 때문에 사용자가 지정

- 필요한 이유 : 정규화된 모델은 데이터를 여러개 테이블로 나눔

 

1. INNER 조인

- 실무에서 가장 많이 쓰이는 형태. 조인 조건에 대해서 동일한 값이 있는 행만 리턴

- 단순하게 where A 테이블 칼럼 = B 테이블 칼럼 이런식으로 쓸 수 있어 직관적임

 

2. 자연조인

- 두 테이블 간 동일한 이름을 갖는 칼럼에 대해 이너조인 수행. 조인 조건을 자기 스스로 찾아주니까 편할 것 같아 보이지만 나에게는 명시가 되어있지 않다는 점이 오히려 불편한 듯. 의미만 알고 넘어가자.

- 조인 대상 칼럼에는 앨리어스 사용 불가

내츄럴 조인 예시
내츄럴 조인

 

3. USING 조건절

- 이너조인과 동일 결과. 자연조인과 다른 점은 같은 이름을 가진 칼럼들 중 내가 원하는 칼럼 지정 가능. 이거도 위에 내츄럴 조인처럼 의미만 알고 넘어가면 될 거 같다.

- 조인 대상 칼럼에는 앨리어스 사용 불가

using 조건절 예시
using 조건절

 

4. ON 조건절

- 실무에서 많이 사용되는 조건절로 조인하기 전에 실행됨. 즉 from -> on -> join -> where 순서. 이너조인에서는 차이가 없지만 outer조인에서는 차이가 발생한다. on절을 사용하게 되면 null 행이 살아있는 반면, where 조건을 사용하게 되면 null 값을 함께 포함시켜 연산. 

on 조건절 예시
이 문장에서는 and 이하 절을 where절로 바꿔도 무방하지만 outer 조인에서는 주의.

 

5. 크로스 조인

- 카티시안 곱이라고도 함. 조인 조건을 부여하지 않으면 발생하며 M * N개 데이터 출력됨

- 데이터 복제할 때 사용됨. 일종의 가상데이터를 생성해서 TEST set을 만든다고 보면 될 듯.

크로스 조인 예시
크로스 조인

 

6-1. 레프트 OUTER 조인

- 왼쪽에 쓴 테이블의 모든행 검색. 오른쪽 테이블에 대응되는 값은 null 표시

left outer 조인 예시
레프트 아우터 조인

 

6-2. 라이트 OUTER 조인

- 오른쪽에 쓴 테이블의 모든행 검색. 왼쪽 테이블에 대응되는 값은 null 표시

right outer 조인 예시
라이트 아우터 조인

 

6-3. 풀 OUTER 조인

- 대응되는 행이 없어도 서로 모든 행 검색

full outer 조인 예시
풀 아우터 조인

 

7. SELF 조인

- 회사 임직원 테이블에는 사원급, 대리급, 부장급 등 계급이 있고 각 임직원마다 그들의 매니저가 있을 수 있다. 임직원들의 각 매니저를 출력하기 위해서 자기 스스로를 조인. (멀티 디스플레이에 똑같은 정보를 보면서 작업한다고 생각하면 될 것 같다.)

셀프조인 예시
셀프조인

 

8. Non equi join

- 위에서 다뤘던 조인들과 다르게 동일칼럼이 없는 애들을 조인하고 싶은 경우 사용. 이럴 때 조건의 범위를 설정해서 조회할 수 있다고 한다.

- 등급을 부여하거나 측정치 같은 연속값을 카테고릭 밸류로 코딩할 때 유용하게 쓸 수 있을 것 같다. 

비등가 조인 예시
비등가조인