[TIL] 2025-02-10 - SQL 조인 및 연산자 정리

김대진·2025년 2월 10일

[TIL]

목록 보기
4/8

📝 SQLD 자격증 공부

1. WHERE vs ON 절 차이

WHERE 절

  • 조인이 끝난 후 결과에서 필터링할 때 사용.
  • OUTER JOIN에서 NULL이 있는 행이 제거될 수 있음.
  • INNER JOIN에서는 ON 절과 같은 결과가 됨.

ON 절

  • 조인 조건을 설정하는 데 사용됨.
  • OUTER JOIN에서는 NULL이 유지됨.
  • WHERE 절과 함께 사용하여 조인 후 추가 필터링 가능.

2. UNION vs UNION ALL

UNION

중복된 데이터를 제거함 (DISTINCT 자동 적용).
정렬 비용이 추가되므로 성능이 다소 느림.

UNION ALL

중복을 제거하지 않고 모든 데이터를 포함.
정렬 비용이 없으므로 성능이 더 빠름.


3. 다양한 JOIN 방식 정리

INNER JOIN

  • 공통된 데이터(교집합)만 반환.

LEFT OUTER JOIN

  • 왼쪽 테이블의 모든 데이터를 유지하고, 오른쪽 테이블에 없는 값은 NULL.

RIGHT OUTER JOIN

  • 오른쪽 테이블의 모든 데이터를 유지하고, 왼쪽 테이블에 없는 값은 NULL.

FULL OUTER JOIN

  • 두 테이블의 모든 데이터를 포함 (MySQL에서는 지원하지 않으며 UNION으로 구현).

CROSS JOIN

  • 두 테이블의 모든 행을 조합하여 반환 (데카르트 곱).

NATURAL JOIN

  • 공통된 컬럼을 자동으로 찾아서 조인 (테이블 별칭 사용 불가).

USING 절

  • 공통된 컬럼을 명시적으로 지정하여 조인 (조인 컬럼에 별칭 사용 불가).

4. USING 절과 ON 절 차이

USING 절

  • 같은 이름을 가진 컬럼을 기준으로 조인할 때 사용.
  • 조인 컬럼은 한 번만 표시됨.
  • 조인 컬럼에 별칭을 사용할 수 없음.

ON 절

  • 컬럼명이 달라도 조인 가능.
  • 테이블 별칭을 사용할 수 있음.

📌 결론

  • 조인 방식에 따른 NULL 처리 차이를 명확히 이해해야 함.
  • OUTER JOIN에서는 WHERE 절을 조심해서 사용해야 함 (NULL 제거 가능).
  • WHERE 절과 ON 절을 함께 사용하여 조인 후 추가 필터링을 적용하는 방법을 연습해야 함.

0개의 댓글