대덕인재/Oracle

[Oracle D-13] 외부조인(Outer join)

꼬마버거 2025. 4. 17. 16:43

🔍 외부조인이란?

**외부조인(Outer Join)**은
한쪽 테이블에는 있고,
다른 쪽 테이블에는 없는 데이터도
결과에 포함시켜서 보여주는 조인 방식이에요.

외부조인(Outer join) 조건

  • 외부조인 연산자 '(+)'를 부족한 자료를 나타내는 쪽에 추가
  • 연산자 양쪽에 '(+)' 연산자를 사용할 수 없음
  • 복수개의 외부조인 조건이 요구되면 모든 조인조건에 외부조인 연산자를 추가해야 함
  • 하나의 테이블이 동시에 서로 다른 테이블과 외부조인될 수 없다. 즉, A,B,C 테이블이 조인에 참여한다면
  • A=B(+) AND C=B(+) 는 허용되지 않음(A=B(+) AND B=C(+)는 허용)
  • 일반조건과 외부조인조건을 동시에 적용하면 내부조인 결과로 변환됨 -> 해결책(ANSI OUTER JOIN, 서브쿼리)
  •  2개 이상이 동시에 존재하는 컬럼을 출력하는 경우 많은쪽 테이블의 컬럼을 출력해야하며,
  • COUNT 함수 사용시 '*' 대신 컬럼명(PK)를 사용해야함
     

2. 💛 외부조인 (OUTER JOIN, 특히 LEFT OUTER JOIN)

왼쪽(STUDENT) 테이블은 다 보여주고, 오른쪽(TEST)에 없으면 빈칸(null) 으로 보여줘요!

 

SELECT 이름, 점수
FROM STUDENT S
LEFT OUTER JOIN TEST T ON S.학생ID = T.학생ID;

 

📋 결과:

이름 점수
민수 90
지우 85
수아 (없음) → NULL

🎉 시험 안 본 "수아"도 결과에 나왔어!

 

🧠 핵심 요약

조인 종류 설명  예시
내부조인 두 테이블에 둘 다 있는 것만 보여줘요 시험 본 학생만 나옴
왼쪽 외부조인 왼쪽(STUDENT) 테이블은 전부, 오른쪽은 없으면 NULL 시험 안 본 학생도 나옴
오른쪽 외부조인 반대로 오른쪽 테이블을 기준으로 다 보여줌 자주 안 써, 잘 기억만 해둬!

🔔 정리 그림 (상상하기)

  • 🍎 사과 박스와 🍌 바나나 박스가 있어!
  • 내부조인: 🍎랑 🍌 둘 다 있는 것만 골라!
  • 외부조인: 🍎 기준으로 다 보여주고, 바나나 없으면 "비었어요~"

 

🔔 한 줄 요약

외부조인은 한쪽 테이블 기준으로 모든 데이터를 보여주면서,
다른 쪽에 없는 데이터도 NULL로 채워서 함께 보여주는 조인 방식이다.