본문 바로가기
SQL/개념

04. 조인

by Merware 2023. 5. 3.

1. 등가 조인 (Equi Join)

  • 조건식에서 =를 사용해 동일한 값을 가진 열끼리 조인하는 방식입니다.
SELECT E.EMPNO, E.ENAME, D.DEPTNO, D.DNAME, D.LOC
  FROM EMP E, DEPT D
 WHERE E.DEPTNO = D.DEPTNO;

2. 내장 조인 (Inner Join)

  • 두 테이블에서 일치하는 데이터를 가져옵니다. 기본 조인 방식이며, 등가 조인도 여기에 포함됩니다.
SELECT E.EMPNO, E.ENAME, D.DEPTNO, D.DNAME, D.LOC
  FROM EMP E INNER JOIN DEPT D
    ON E.DEPTNO = D.DEPTNO;

3. 외부 조인 (Outer Join)

  • 일치하지 않는 데이터도 포함해 출력하는 방식입니다. 외부 조인은 세 가지로 나눌 수 있습니다.

1) 왼쪽 외부 조인 (Left Outer Join)

  • 왼쪽 테이블의 모든 행을 포함하고, 일치하는 데이터가 없는 경우에도 출력합니다.
SELECT E.EMPNO, E.ENAME, D.DEPTNO, D.DNAME, D.LOC
  FROM EMP E LEFT OUTER JOIN DEPT D
    ON E.DEPTNO = D.DEPTNO;

2) 오른쪽 외부 조인 (Right Outer Join)

  • 오른쪽 테이블의 모든 행을 포함하고, 일치하지 않는 왼쪽 테이블의 행은 NULL로 출력합니다.
SELECT E.EMPNO, E.ENAME, D.DEPTNO, D.DNAME, D.LOC
  FROM EMP E RIGHT OUTER JOIN DEPT D
    ON E.DEPTNO = D.DEPTNO;

3) 전체 외부 조인 (Full Outer Join)

  • 두 테이블의 모든 행을 포함하여 일치하지 않는 부분은 NULL로 표시합니다.
SELECT E.EMPNO, E.ENAME, D.DEPTNO, D.DNAME, D.LOC
  FROM EMP E FULL OUTER JOIN DEPT D
    ON E.DEPTNO = D.DEPTNO;

4. 비등가 조인 (Non-Equi Join)

  • = 외의 조건을 사용하여 조인하는 방식입니다. 주로 범위를 지정할 때 사용합니다.
SELECT E.EMPNO, E.ENAME, S.GRADE
  FROM EMP E, SALGRADE S
 WHERE E.SAL BETWEEN S.LOSAL AND S.HISAL;

5. 자체 조인 (Self Join)

  • 동일한 테이블을 여러 번 사용하여 서로 다른 행을 조인하는 방식입니다. 보통 자기 참조 데이터에서 사용됩니다.
SELECT E1.EMPNO, E1.ENAME, E2.ENAME AS MANAGER
  FROM EMP E1, EMP E2
 WHERE E1.MGR = E2.EMPNO;

6. NATURAL JOIN

  • 동일한 이름을 가진 열을 기준으로 자동으로 조인합니다. 그러나 동일한 열 이름이 여러 개 있을 경우 주의가 필요합니다.
SELECT E.EMPNO, E.ENAME, D.DNAME
  FROM EMP E NATURAL JOIN DEPT D;

7. JOIN USING

  • 특정 열을 기준으로 조인할 때 사용하며, 조인에 사용할 열을 명시합니다. 조인 대상 테이블에 같은 이름의 열이 있을 때 사용합니다.
sql
코드 복사
SELECT E.EMPNO, E.ENAME, D.DNAME
  FROM EMP E JOIN DEPT D USING (DEPTNO);

8. JOIN ON

  • 조인 조건을 명확히 명시할 때 사용합니다. INNER JOIN, LEFT OUTER JOIN 등에서 조인 조건을 정의하는 방식입니다.
SELECT E.EMPNO, E.ENAME, D.DNAME
  FROM EMP E JOIN DEPT D ON E.DEPTNO = D.DEPTNO;

조인 유형 비교 요약

조인 유형 설명 일치하지 않는 데이터 처리

등가 조인 동일한 값을 가진 열끼리 비교 일치하지 않는 데이터는 제외
내장 조인 두 테이블에서 일치하는 데이터를 가져옴 일치하지 않는 데이터는 제외
외부 조인 일치하지 않는 데이터도 포함 NULL로 처리
비등가 조인 등가 외의 조건으로 조인 일치하지 않는 데이터는 제외
자체 조인 동일한 테이블의 행을 여러 번 사용하여 조인 사용 불가능
NATURAL JOIN 두 테이블의 동일한 이름을 가진 열을 기준으로 자동 조인 일치하지 않는 데이터는 제외
JOIN USING 명시한 열을 기준으로 조인 일치하지 않는 데이터는 제외
JOIN ON 조인 조건을 명시하여 조인 조건에 맞지 않으면 제외

이제 모든 주요 조인 방식과 각 특징을 정리해보았습니다. 중복된 내용은 제거하고, 중요한 조인 예시와 차이점을 명확히 하였습니다.

'SQL > 개념' 카테고리의 다른 글

06. 데이터 조작어(DML)  (0) 2023.05.08
05. 서브쿼리  (0) 2023.05.03
03. 다중행 함수와 데이터 그룹화  (0) 2023.05.03
02. 오라클 함수  (0) 2023.05.03
01. SQL 개념과 기초  (1) 2023.05.02