2026 SQLD 필기 2과목 2장 1절 | 서브쿼리·EXISTS·스칼라 서브쿼리 — 객관식 10문제

데이터위자드 ·

2026 SQLD 필기 2과목 2장 1절 | 서브쿼리·EXISTS·스칼라 서브쿼리 — 객관식 10문제

필기 · 객관식 4지선다

풀이 방법

객관식 4지선다입니다. 정답과 해설은 각 문제 아래를 눌러 확인하세요.

문제 1

서브쿼리·EXISTS·스칼라 서브쿼리에서 단일행과 다중행에 대한 설명으로 옳은 것은?

  1. ① GROUP BY의 결과는 언제나 한 행이다.
  2. ② = 비교의 서브쿼리는 단일행 결과를 전제로 한다.
  3. ③ =는 여러 행을 자동으로 첫 행만 골라 비교한다.
  4. ④ IN은 한 값만 받을 수 있다.
정답과 해설 보기

정답 ②

단일행 서브쿼리를 = 같은 비교에 사용하려면 결과가 한 행이어야 합니다. 여러 행이 나올 수 있으면 IN·ANY·ALL처럼 다중행 연산자를 검토합니다. 최고 급여를 MAX로 구한 결과와 부서별 최고 급여를 GROUP BY로 구한 결과는 행 수가 다릅니다. 조회 조건이 지금은 한 행을 반환하더라도 데이터가 늘면 달라질 수 있습니다. 쿼리 구조나 유일 제약으로 한 행이 보장되는지 확인하세요.

기억할 핵심

= 비교의 서브쿼리는 단일행 결과를 전제로 한다.

문제 2

부서가 3개이고 SELECT MAX(salary) FROM emp GROUP BY dept가 3행을 반환한다. 이를 salary = (서브쿼리)에 쓰면?

  1. ① NULL이 자동으로 0이 된다.
  2. ② 다중행 결과로 단일행 비교 오류가 날 수 있다.
  3. ③ 항상 첫 부서만 자동 선택한다.
  4. ④ 항상 전체 직원이 선택된다.
정답과 해설 보기

정답 ②

그룹별 최대는 여러 행이므로 단일행 = 비교의 전제를 충족하지 않습니다.

기억할 핵심

= 비교의 서브쿼리는 단일행 결과를 전제로 한다.

문제 3

서브쿼리·EXISTS·스칼라 서브쿼리에서 상관 서브쿼리에 대한 설명으로 옳은 것은?

  1. ① 상관 서브쿼리는 바깥 컬럼을 참조할 수 없다.
  2. ② 회사 전체 평균과 부서 평균은 언제나 같다.
  3. ③ 서브쿼리의 논리 구조가 물리 실행 순서를 항상 확정한다.
  4. ④ 상관 서브쿼리는 바깥 쿼리의 컬럼을 참조한다.
정답과 해설 보기

정답 ④

상관 서브쿼리는 내부에서 바깥 쿼리의 컬럼을 참조합니다. 같은 부서 평균보다 급여가 높은 직원을 찾으려면 내부 평균의 부서 조건을 바깥 직원의 부서와 연결합니다. 전체 회사 평균과 부서 평균은 다른 기준입니다. 논리적으로 바깥 행별 조건이 달라지지만 실제 DBMS는 이를 조인이나 다른 실행계획으로 변환할 수 있습니다. 작성 형태만 보고 반드시 물리적으로 한 행씩 반복 실행된다고 단정하지 마세요.

기억할 핵심

상관 서브쿼리는 바깥 쿼리의 컬럼을 참조한다.

문제 4

e의 같은 부서 평균을 구하는 내부 조건은?

  1. ① e.salary = e.salary만
  2. ② 조건 없이 전체 평균
  3. ③ i.dept = i.dept만
  4. ④ i.dept = e.dept
정답과 해설 보기

정답 ④

내부 i의 부서를 바깥 e의 부서와 연결해야 해당 직원 부서 평균을 계산합니다.

기억할 핵심

상관 서브쿼리는 바깥 쿼리의 컬럼을 참조한다.

문제 5

서브쿼리·EXISTS·스칼라 서브쿼리에서 EXISTS와 행 존재에 대한 설명으로 옳은 것은?

  1. ① EXISTS는 SELECT값이 NULL이면 언제나 FALSE다.
  2. ② EXISTS는 서브쿼리 결과 행의 존재 여부를 검사한다.
  3. ③ 주문이 두 건이면 바깥 고객을 자동으로 두 번 반환한다.
  4. ④ EXISTS는 반드시 SELECT *만 허용한다.
정답과 해설 보기

정답 ②

EXISTS는 서브쿼리 결과에 행이 있는지 판단합니다. 내부 SELECT 목록의 값보다 조건에 맞는 행의 존재가 핵심입니다. 주문이 있는 고객을 찾을 때 주문과 고객을 연결한 EXISTS를 쓰면 주문 수만큼 고객 결과를 늘리지 않고 존재를 확인할 수 있습니다. EXISTS(SELECT NULL ...)도 행이 존재하면 참이 될 수 있습니다. NULL이라는 값과 결과 행이 없다는 상태를 구분하세요.

기억할 핵심

EXISTS는 서브쿼리 결과 행의 존재 여부를 검사한다.

문제 6

EXISTS(SELECT NULL FROM t)에서 t에 한 행이 있으면?

  1. ① FALSE
  2. ② TRUE
  3. ③ 반드시 오류
  4. ④ UNKNOWN
정답과 해설 보기

정답 ②

선택 값이 NULL이어도 결과 행이 존재하므로 EXISTS는 TRUE입니다.

기억할 핵심

EXISTS는 서브쿼리 결과 행의 존재 여부를 검사한다.

문제 7

서브쿼리·EXISTS·스칼라 서브쿼리에서 ANY와 ALL에 대한 설명으로 옳은 것은?

  1. ① >ANY는 반드시 모든 값보다 커야 한다.
  2. ② ANY와 ALL은 항상 같은 결과다.
  3. ③ NULL 없는 집합에서 >ALL은 모든 원소보다 큰 조건이다.
  4. ④ >ALL은 하나보다만 크면 된다.
정답과 해설 보기

정답 ③

x>ANY(목록)은 목록 중 하나보다 크면 참이고 x>ALL(목록)은 모든 값보다 커야 참입니다. NULL이 없는 10,20 목록에서 >ANY는 최솟값 10보다 큰 조건, >ALL은 최댓값 20보다 큰 조건과 연결됩니다. NULL이나 빈 집합이 있으면 단순 최솟값·최댓값 치환만으로 판단하면 안 됩니다. ANY의 빈 집합은 참인 비교가 없어 FALSE이고 ALL의 빈 집합은 위반 비교가 없어 TRUE가 되는 논리도 구분합니다.

기억할 핵심

NULL 없는 집합에서 >ALL은 모든 원소보다 큰 조건이다.

문제 8

15 > ANY(10,20)와 15 > ALL(10,20)의 결과는?

  1. ① FALSE, TRUE
  2. ② TRUE, FALSE
  3. ③ FALSE, FALSE
  4. ④ TRUE, TRUE
정답과 해설 보기

정답 ②

15는 10보다 크므로 ANY는 참이지만 20보다 크지 않아 ALL은 거짓입니다.

기억할 핵심

NULL 없는 집합에서 >ALL은 모든 원소보다 큰 조건이다.

문제 9

서브쿼리·EXISTS·스칼라 서브쿼리에서 스칼라 서브쿼리와 인라인 뷰에 대한 설명으로 옳은 것은?

  1. ① FROM 절의 서브쿼리는 인라인 뷰로 사용할 수 있다.
  2. ② 스칼라 서브쿼리는 여러 열·여러 행이어도 된다.
  3. ③ 인라인 뷰는 원본 테이블을 영구 복제한다.
  4. ④ 내부 정렬은 어떤 외부 연산 뒤에도 보장된다.
정답과 해설 보기

정답 ①

스칼라 서브쿼리는 한 행·한 열의 값으로 쓰며 결과가 없으면 NULL로 취급될 수 있습니다. 인라인 뷰는 FROM 안의 서브쿼리로 결과 집합을 테이블처럼 참조합니다. 여러 행을 반환하는 스칼라 서브쿼리는 오류가 될 수 있습니다. 컬럼 이름과 별칭을 명확히 지정하면 바깥 쿼리에서 참조하기 쉽습니다. 인라인 뷰의 내부 ORDER BY만으로 최종 결과 정렬까지 보장된다고 생각하지 마세요. 최종 ORDER BY는 바깥 결과에 명시합니다.

기억할 핵심

FROM 절의 서브쿼리는 인라인 뷰로 사용할 수 있다.

문제 10

SELECT (SELECT name FROM dept WHERE id=-1)에서 해당 부서가 없으면 스칼라 결과는?

  1. ① NULL
  2. ② 문자열 없음
  3. ③ 숫자 0으로 고정
  4. ④ 원본 첫 부서명
정답과 해설 보기

정답 ①

스칼라 서브쿼리가 0행을 반환하는 경우 NULL 값으로 평가됩니다.

기억할 핵심

FROM 절의 서브쿼리는 인라인 뷰로 사용할 수 있다.

범위 확인

2026년 학습 범위를 기준으로 구성했습니다. 시험 시행기관의 자격 안내·출제 기준에서 과목과 변경 공지를 확인할 수 있습니다.

관련 이론 다시 보기

이전 · INNER·OUTER·표준 조인

다음 · 집합 연산·ROLLUP·CUBE·GROUPING

SQLD 전체 목차

과목별 이론

단원별 객관식

실습

필기 모의고사

예상 모의문제입니다.

스터디클럽의 다른 강의 보기