📝 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 절을 함께 사용하여 조인 후 추가 필터링을 적용하는 방법을 연습해야 함.