오라클 SQL · 조인과 서브쿼리

서브쿼리 기본: 단일행 서브쿼리 읽는 법

서브쿼리는 하나의 질의 안에서 다른 질의를 이용하는 문법이다. 먼저 한 값을 구하고, 그 값을 바탕으로 바깥 질의를 실행하는 단일행 서브쿼리부터 이해하면 전체 구조가 쉬워진다.

서브쿼리 기본: 단일행 서브쿼리 읽는 법 대표 이미지

이 글에서 꼭 잡아야 할 것

서브쿼리는 하나의 질의 안에서 다른 질의를 이용하는 문법이다. 먼저 한 값을 구하고, 그 값을 바탕으로 바깥 질의를 실행하는 단일행 서브쿼리부터 이해하면 전체 구조가 쉬워진다.

서브쿼리는 복잡한 조건을 단계적으로 쪼개는 데 강력하다. 예를 들어 평균 급여보다 높은 직원을 찾는 문제는 먼저 평균 급여를 구한 뒤 그 결과와 각 직원 급여를 비교하면 훨씬 자연스럽게 읽힌다.

난이도 중급
모듈 조인과 서브쿼리
학습 시간 10분
핵심 키워드 Subquery, Single Row, Nested Query

개념 지도와 이해 포인트

안쪽 질의와 바깥 질의 서브쿼리는 보통 안쪽 질의가 먼저 실행되어 값을 만들고, 바깥 질의가 그 값을 받아 조건이나 결과 구성에 활용한다.
단일행 반환 단일행 서브쿼리는 결과가 정확히 한 행이어야 한다. 그래서 `=`, `>`, `<` 같은 단일값 비교 연산자와 잘 어울린다.
위치 다양성 서브쿼리는 WHERE 절뿐 아니라 FROM 절, SELECT 절에서도 쓸 수 있다. 다만 학습 초반에는 WHERE 절 단일행 패턴부터 익히는 편이 좋다.
서브쿼리 기본: 단일행 서브쿼리 읽는 법 개념 다이어그램

대표 문법 패턴

SELECT employee_id, last_name, salary
FROM employees
WHERE salary > (
  SELECT AVG(salary)
  FROM employees
);

문법 읽는 포인트

  • 단일행 서브쿼리는 결과가 하나여야 한다.
  • 안쪽 질의가 만드는 값의 타입도 바깥 비교와 맞아야 한다.
  • 복잡한 조건을 여러 단계로 나누어 읽을 수 있다는 점이 가장 큰 장점이다.

핵심 용어

  • Subquery
  • Single Row
  • Nested Query

평균 급여보다 높은 직원 찾기

평균, 최솟값, 특정 부서의 기준값처럼 먼저 한 값을 구한 뒤 전체와 비교하는 문제는 단일행 서브쿼리로 아주 자연스럽게 풀린다.

SELECT employee_id, last_name, salary
FROM employees
WHERE salary > (
  SELECT AVG(salary)
  FROM employees
)
ORDER BY salary DESC;

수험 체크포인트와 자주 하는 실수

시험 체크포인트

  • 단일행 연산자와 다중행 연산자를 구분하는 것이 서브쿼리 문제의 핵심이다.
  • 서브쿼리 결과가 여러 행이 되면 오류가 나므로 데이터 조건을 항상 확인하자.
  • 평균, 최대값, 특정 한 값 비교 유형은 단일행 서브쿼리의 대표 패턴이다.

자주 하는 실수

  • 여러 행을 반환할 수 있는 서브쿼리에 `=`를 사용하는 실수
  • 안쪽 질의와 바깥 질의의 비교 컬럼 타입을 맞추지 않는 실수
  • 서브쿼리 실행 순서를 반대로 이해하는 실수

연결 학습

단일행 서브쿼리를 읽을 수 있으면 다중행 서브쿼리도 훨씬 쉬워진다. 다음 챕터에서는 IN, ANY, ALL과 함께 확장한다.

댓글 0

작성자 이름과 댓글 내용을 입력하면 바로 등록됩니다. 답글은 한 단계까지 지원하고, 댓글은 최대 200자까지 작성할 수 있습니다.

일반 댓글 작성

댓글을 불러오는 중입니다.

같은 카테고리에서 이어서 읽기

지금 읽은 글과 가까운 흐름의 글 5개를 모아 두었습니다. 바로 앞뒤 문맥을 이어서 읽고 싶을 때 가장 편합니다.