JOIN
JOIN은 두 개의 테이블을 하나로 병합하는 것
- 주로 PK, FK를 통해 성립하지만 연관성 없어도 JOIN은 가능하다
- O(N^2)의 시간 복잡도를 가지기 때문에 경량화를 위해 반 정규화를 진행
- 3 Table 이상의 JOIN도 진행할 수 있으며 N개의 테이블에 대해서 N-1 만큼의 JOIN이 발생
표준 조인
- 실행되는 DBMS에 따라 SQL 문법이 조금씩 달라짐
- 그래서 제작사 구분없이 통일 된 표준 문법을 만들고 그것을 ANSI SQL 이라고 부름
- 이 ANSI SQL의 문법에 따른 조인 쿼리를 표준 조인이라고 한다
문법
1. 기준 조건으로 WHERE 절이 아니라 ON 절을 사용
2. FROM 절에 JOIN의 종류를 적어줌
FROM 테이블 1 조인 테이블 2
ON 조건식 1
- 조인 (LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN, NATURAL JOIN, CROSS JOIN)
- 조건식 1 : 조인을 수행할 기준 키를 사용해서 조인 조건을 명시한다
JOIN의 종류
내 기준 제일 잘 정리된 블로그는 아래과 같다
[SQL] INNER JOIN, OUTER JOIN, NATURAL JOIN
Join이란? Join 연산은 서로 다른 2개의 테이블을 결합하는 연산이다. 이 때 결합하는 방식에 따라 Inner Join, Outer Join, Natural Join 등으로 나뉜다. Inner Join SELECT * FROM instructor JOIN teaches SELECT * FROM instruct
ju-hy.tistory.com
INNER JOIN (EQUI JOIN, Non EQUL JOIN)
- 일종의 교집합 개념
- EQUI JOIN : 조건이 등식(Equal)을 조건으로 사용할 때 발생하는 JOIN
- Non EQUL JOIN : 조건이 >, <, <=, >= 등을 사용하는 JOIN
ex)
SELECT A1.ACTOR ACT_NO1, A2.ACTOR_N2, A2.MOVIE_NO, A1.Name, A1.GENDER
FROM ACTOR A1 INNER JOIN APPR
ON A1.ACTOR_NO = A2.ACTOR_NO;

NATURAL JOIN
- SQL Server에서는 NATURAL JOIN을 지원하지 않음
- 두 테이블 간에 동일한 이름을 갖는 모든 칼럼들에 대해 EQUI(=) JOIN을 수행
- 두 테이블에서 같은 이름의 칼럼에 대해서는 동일한 칼럼값을 가지는 행만 병합
- NATURAL JOIN은 조인 조건을 내포하고 있어서 ON절과 Alias 사용 불가


OUTER JOIN
- 일종의 합집합 개념
- 기준이 되는 키에 따른 칼럼값이 존재하지 않더라도 모든 튜플을 병합하는 것
- LEFT OUTER JOIN
왼쪽의 모든 행을 포함시키면서 Join 수행
- 빈 값들은 Null 값으로 채운다

- RIGHT OUTER JOIN
오른쪽의 모든 행을 포함시키면서 Join 수행
- 빈 값들은 Null 값으로 채운다

- FULL OUTER JOIN
왼쪽과 오른쪽의 모든 행을 포함시키면서 Join 수행
- 빈 값들은 Null 값으로 채운다

CROSS JOIN
왼쪽 테이블의 각 행에 대한 오른쪽 테이블의 모든 행의 대응을 조합하여 결과를 출력
왼쪽이 M행이고 오른쪽이 N행이며 CROSS JOIN 의 결과는 카테시안 곱(Cartesian Product) M x N 이다

'IT Study > SQL' 카테고리의 다른 글
| [SQLD] 서브 쿼리(Subquery) 와 뷰(VIEW) (0) | 2026.03.03 |
|---|---|
| [SQLD] 기타 함수들 (DBMS제공 내장함수) (0) | 2026.02.26 |
| [SQLD] SQL 기본 및 활용 (관리 구문) (0) | 2025.11.11 |
| [SQLD] 데이터베이스 이상현상 및 정규화/반정규화 (0) | 2025.11.03 |
| [SQLD] 데이터 모델링의 이해 (모델링,주요요소 트랜젝션) (0) | 2025.10.16 |