목차
3. 관계형 데이터베이스
3-6. 조인
3-6-1. JOIN
3-6-2. EQUI JOIN
3-6-3. Non EQUI JOIN
3-6-4. INNER JOIN
3-6-5. OUTER JOIN
3-6-6. NATURAL JOIN
3-6-7. CROSS JOIN
3. 관계형 데이터베이스
3-6. 조인
1️⃣ JOIN
JOIN은 둘 이상의 테이블을 공통된 컬럼을 기준으로 하나의 결과로 조회하는 연산입니다.
관계형 데이터베이스에서는 데이터의 중복을 줄이기 위해 정보를 여러 테이블에 나누어 저장하므로, 필요한 데이터를 조회할 때 JOIN을 자주 사용합니다.
✔️ JOIN의 특징
- 두 개 이상의 테이블을 하나의 결과로 조회한다.
- 공통된 컬럼을 기준으로 데이터를 연결한다.
- 관계형 데이터베이스에서 가장 많이 사용하는 연산 중 하나이다.
2️⃣ EQUI JOIN
EQUI JOIN은 두 테이블의 컬럼 값이 서로 같은 경우에만 데이터를 연결하는 조인입니다.
가장 많이 사용하는 JOIN 방식이며, 등호( = ) 를 조건으로 사용합니다.
✔️ EQUI JOIN의 특징
- = (등호)를 이용하여 조인한다.
- 컬럼 값이 서로 같은 데이터만 조회한다.
- 가장 일반적으로 사용하는 JOIN 방식이다.
3️⃣ Non EQUI JOIN
Non EQUI JOIN은 등호( = )가 아닌 비교 연산자를 사용하여 데이터를 연결하는 조인입니다.
주로 범위 조건을 이용하여 데이터를 조회할 때 사용합니다.
✔️ EQUI JOIN의 특징
- <, >, <=, >-, BETWEEN 등을 사용한다.
- 범위를 기준으로 데이터를 연결한다.
- 값이 정확히 같은 경우가 아닌 조건에서도 조인이 가능하다.
4️⃣ INNER JOIN
INNER JOIN은 두 테이블에서 조인 조건을 만족하는 데이터만 조회하는 조인입니다.
집합으로 표현하면 교집합 (∩)과 같은 개념입니다.
✔️ INNER JOIN의 특징
- 조건을 만족하는 데이터만 조회한다.
- 두 테이블에 모두 존재하는 데이터만 반환한다.
- 가장 많이 사용하는 JOIN 방식이다.
✔️ 기본 사용법
SELECT A.컬럼명, B.컬럼명
FROM 테이블명1 A
INNER JOIN 테이블명2 B
ON A컬럼명 = B.컬럼명;
🔹 예시

SELECT A1.ACTOR_NO ACT_NO1
,A2.ACTOR_NO ACT_NO2
,A2.MOVIE_NO
,A1.NAME
,A1.GENDER
FROM ACTOR A1
INNER JOIN APPR A2
ON A1.ACTOR_NO = A2.ACTOR_NO;
➜ 실행결과

5️⃣ OUTER JOIN
OUTER JOIN은 조인 조건을 만족하지 않는 데이터도 함께 조회하는 조인입니다.
집합으로 표현하면 합집합 (U) 과 같은 개념입니다.
- 합집합의 개념으로 기준이 되는 키에 따른 컬럼값이 존재하지 않더라도 모든 튜플을 병합
- LEFT OUTER JOIN : 왼쪽 테이블의 모든 행을 포함시키면서 조인
- RIGHT OUTER JOIN : 오른쪽 테이블의 모든 행을 포함시키면서 조인
- FULL OUTER JOIN : 양쪽 테이블의 모든 행을 포함시키면서 조인
- 비어 있는 값은 NULL로 표현됨
✔️ OUTER JOIN의 특징
- LEFT OUTER JOIN : 왼쪽 테이블의 모든 행을 조회한다.
- RIGHT OUTER JOIN : 오른쪽 테이블의 모든 행을 조회한다.
- FULL OUTER JOIN : 양쪽 테이블의 모든 행을 조회한다.
- 조인되지 않은 컬럼은 NULL 로 표시된다.
📌 LEFT / RIGHT / FULL 의 차이를 자주 물으니 반드시 알아두어야 합니다.
✔️ 기본 사용법
SELECT A1.컬럼명
,A2.컬럼명
FROM 테이블 A1
LEFT OUTER JOIN 테이블 A2
ON A1.컬럼명 = A2.컬럼명;
🔹 예시

SELECT A1.ACTOR_NO ACT_NO1
,A2.ACTOR_NO ACT_NO2
,A2.MOVIE_NO
,A1.NAME
,A1.GENDER
FROM ACTOR A1
LEFT OUTER JOIN APPR A2
ON A1.ACTOR_NO = A2.ACTOR_NO;
➜ 실행결과

6️⃣ NATURAL JOIN
NATURAL JOIN은 이름이 같은 컬럼을 자동으로 찾아 조인하는 방식입니다.
동일한 이름의 컬럼을 기준으로 자동으로 조인이 수행되므로 ON 절을 작성하지 않습니다.
✔️ NATURAL JOIN의 특징
- 동일한 이름의 컬럼을 기준으로 자동 조인한다.
- ON 절을 사용할 수 없다.
- 동일한 컬럼은 한 번만 출력된다.
✔️ 기본 사용법
SELECT *
FROM 테이블명
NATURAL JOIN APPR;
🔹 예시

SELECT *
FROM ACTOR
NATURAL JOIN APPR;
➜ 실행결과

7️⃣ CROSS JOIN
CROSS JOIN은 두 테이블의 모든 행을 서로 조합하여 결과를 반환하는 조인입니다.
이를 카테시안 곱(Cartesian Product) 이라고도 합니다.
✔️ CROSS JOIN의 특징
- 모든 행을 서로 조합한다.
- 조인 조건이 필요하지 않다.
- 왼쪽 테이블이 M행, 오른쪽 테이블이 N행이면 결과는 M * N 행이 된다.
✔️ 기본 사용법
SELECT A1.컬럼명, A2.컬럼명
FROM 테이블명 A1, 테이블명 A2
SELECT A1.컬럼명, A2.컬럼명
FROM 테이블명 A1 CROSS JOIN 테이블명 A2
🔹 예시

SELECT S1.NAME, C1.NAME
FROM STUDENT S1, CLUB C1;
SELECT S1.NAME, C1.NAME
FROM STUDENT S1 CROSS JOIN CLUB C1;
➜ 실행결과

📌 요약정리
- EQUI JOIN은 = 조건을 사용한다.
- Non EQUI JOIN은 <. >, BETWEEN 등을 사용한다./
- INNER JOIN은 교집합니다.
- OUTER JOIN은 조건을 만족하지 않는 데이터도 조회할 수 있다.
- NATURAL JOIN은 ON절을 사용하지 않는다.
- CROSS JOIN의 결과 건수는 M * N 이다.