Notice
Recent Posts
Recent Comments
Link
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

ki-sd 님의 블로그

[2026-04-16] 관계형 데이터의 완성, JOIN과 SubQuery 본문

OracleStudy

[2026-04-16] 관계형 데이터의 완성, JOIN과 SubQuery

ki-sd 2026. 4. 18. 01:11

정규화(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 연산자가 쿼리 최적화와 성능 향상에 훨씬 유리하다는 고급 튜닝 지식을 학습했다.