ki-sd 님의 블로그
[2026-04-16] 관계형 데이터의 완성, JOIN과 SubQuery 본문
정규화(Normalization) 원칙에 의해 여러 테이블로 쪼개져 있는 데이터를 다시 하나로 합쳐서 유의미한 정보로 만들어내는 SQL의 꽃, JOIN과 서브쿼리를 마스터했다.
1. JOIN의 메커니즘과 종류
- 오라클 vs ANSI 문법: 오라클 전용 조인 문법(WHERE 절에 조인 조건 명시)과 글로벌 표준인 ANSI 문법(JOIN ... ON)의 구조적 차이를 비교하고, 가독성이 뛰어난 ANSI 문법을 위주로 훈련했다.
- INNER JOIN: 두 테이블 간에 공통된(일치하는) 데이터만 연결하여 교집합을 추출한다.
- OUTER JOIN (LEFT/RIGHT): 부서가 배정되지 않은 신입사원처럼, 연결되는 값이 없더라도(NULL) 기준이 되는 테이블의 데이터를 누락 없이 모두 보존하여 출력해야 할 때 사용한다.
- SELF JOIN & NON-EQUI JOIN: 사원과 해당 사원의 매니저를 연결하는 계층형 데이터 조회(나 자신과 조인), 그리고 급여와 급여 등급표 사이의 범위(BETWEEN) 조인 등 다양한 실무적 결합 방식을 습득했다.
2. 쿼리 속의 쿼리, SubQuery와 최적화
- 메인 쿼리 내부에 괄호로 묶여 실행되는 서브쿼리의 위치에 따른 분류(SELECT 절의 스칼라, FROM 절의 인라인 뷰, WHERE 절의 중첩 쿼리)를 정립했다.
- IN vs EXISTS: 대량의 데이터를 조회할 때 서브쿼리의 결과를 모두 추출하여 비교하는 IN 연산자보다, 조건을 만족하는 데이터가 발견되는 즉시 검색을 멈추고 TRUE를 반환하는 EXISTS 연산자가 쿼리 최적화와 성능 향상에 훨씬 유리하다는 고급 튜닝 지식을 학습했다.
'OracleStudy' 카테고리의 다른 글
| [2026-04-20] 오라클 핵심 총정리 및 서브쿼리, 뷰(View), 시퀀스의 심화 (0) | 2026.04.20 |
|---|---|
| [2026-04-17] 테이블 설계(DDL)와 제약조건, 그리고 CRUD 실무 구현 (0) | 2026.04.18 |
| [2026-04-15] 내장 함수, 집계, 그리고 데이터 통계 분석 (0) | 2026.04.18 |
| [2026-04-14] 조건부 필터링(WHERE)과 데이터 정렬(ORDER BY) 심화 (0) | 2026.04.18 |
| [2026-04-13] RDBMS의 아키텍처와 관계형 모델의 핵심 요소 (0) | 2026.04.18 |
