2026 SQLD 필기 2과목 2장 6~8절 | 계층형 질의·셀프 조인·PIVOT·정규표현식 — 객관식 10문제
데이터위자드 ·
필기 · 객관식 4지선다
객관식 4지선다입니다. 정답과 해설은 각 문제 아래를 눌러 확인하세요.
문제 1
계층형 질의·셀프 조인·PIVOT·정규표현식에서 셀프 조인에 대한 설명으로 옳은 것은?
- ① 셀프 조인은 원본을 반드시 물리 복제한다.
- ② 관리자 없는 직원은 INNER JOIN에서 항상 남는다.
- ③ 같은 테이블에는 별칭을 두 개 쓸 수 없다.
- ④ 셀프 조인은 같은 테이블을 역할별 별칭으로 구분하여 연결한다.
정답과 해설 보기
정답 ④
셀프 조인은 같은 테이블을 서로 다른 별칭으로 참조해 연결합니다. 직원 e와 관리자 m을 e.manager_id=m.id로 연결하면 한 행에 직원명과 관리자명을 함께 표시할 수 있습니다. 실제 테이블을 복제하거나 관리자 컬럼을 영구 추가하는 것은 아닙니다. 최상위 직원은 관리자 ID가 NULL일 수 있으므로 모두 보려면 직원 기준 LEFT JOIN을 검토합니다. 역할별 컬럼을 한정하지 않으면 이름이 모호해질 수 있습니다.
셀프 조인은 같은 테이블을 역할별 별칭으로 구분하여 연결한다.
문제 2
모든 직원과 관리자명을 표시하되 대표이사도 남긴다. 적절한 조인은?
- ① 직원 e INNER JOIN 직원 m ON e.id=m.id만
- ② 관리자명 컬럼을 삭제
- ③ CROSS JOIN만 사용
- ④ 직원 e LEFT JOIN 직원 m ON e.manager_id=m.id
정답과 해설 보기
정답 ④
관리자가 없는 직원도 왼쪽 기준으로 보존해야 하므로 LEFT JOIN이 적절합니다.
셀프 조인은 같은 테이블을 역할별 별칭으로 구분하여 연결한다.
문제 3
계층형 질의·셀프 조인·PIVOT·정규표현식에서 Oracle 계층형 질의에 대한 설명으로 옳은 것은?
- ① LEVEL은 루트에서 0으로 고정된다.
- ② ORDER SIBLINGS BY는 모든 계층 관계를 삭제한다.
- ③ PRIOR 위치는 탐색 방향과 무관하다.
- ④ START WITH는 루트를 선택하고 CONNECT BY는 계층 연결 조건을 정한다.
정답과 해설 보기
정답 ④
START WITH는 시작 행, CONNECT BY는 부모·자식 연결 규칙을 정합니다. 부모에서 자식으로 내려갈 때 PRIOR id=parent_id처럼 부모 쪽 값을 PRIOR로 표시할 수 있습니다. LEVEL은 루트에서 1부터 시작하는 깊이입니다. PRIOR가 어느 컬럼 앞에 있는지에 따라 탐색 방향이 달라집니다. ORDER SIBLINGS BY는 형제 간 순서를 지정하면서 계층 구조를 유지할 때 씁니다. 순환 관계가 있으면 NOCYCLE 등 지원 기능과 데이터 규칙을 함께 확인합니다.
START WITH는 루트를 선택하고 CONNECT BY는 계층 연결 조건을 정한다.
문제 4
Oracle 계층 질의에서 루트의 LEVEL 값은?
- ① 0
- ② 항상NULL
- ③ 1
- ④ -1
정답과 해설 보기
정답 ③
루트는LEVEL1이고 자식으로 내려갈 때 깊이가 증가합니다.
START WITH는 루트를 선택하고 CONNECT BY는 계층 연결 조건을 정한다.
문제 5
계층형 질의·셀프 조인·PIVOT·정규표현식에서 PIVOT과 집계에 대한 설명으로 옳은 것은?
- ① PIVOT은 문자열을 정규식으로 검사한다.
- ② PIVOT은 어떤 경우에도 집계하지 않는다.
- ③ PIVOT은 값의 범주를 열로 펼치며 집계를 수행할 수 있다.
- ④ PIVOT은 부모·자식 탐색 함수다.
정답과 해설 보기
정답 ③
PIVOT은 특정 열의 값들을 결과 열로 펼치면서 집계합니다. 월·지역·금액 자료에서 월 값을 열로 바꾸면 지역별 1월·2월 금액을 나란히 볼 수 있습니다. 펼칠 컬럼과 집계값, 남는 그룹 컬럼을 구분해야 합니다. 같은 지역·월에 여러 행이 있다면 SUM 같은 집계 기준이 필요합니다. 단순히 행과 열의 표시만 바꾸는 것이 아니라 중간 집계가 포함될 수 있다는 점이 중요합니다. 제품별 PIVOT 문법은 다릅니다.
PIVOT은 값의 범주를 열로 펼치며 집계를 수행할 수 있다.
문제 6
서울 1월 10·20,서울 2월 5를 월별SUM PIVOT하면?
- ① 전체합 35 한 컬럼만
- ② 원본 3행을 그대로 유지
- ③ 서울의 1월 10,2월 20
- ④ 서울의 1월 30,2월 5
정답과 해설 보기
정답 ④
같은 지역·월의 값을 합산해 1월 30과 2월 5를 가로로 표시합니다.
PIVOT은 값의 범주를 열로 펼치며 집계를 수행할 수 있다.
문제 7
계층형 질의·셀프 조인·PIVOT·정규표현식에서 UNPIVOT의 방향에 대한 설명으로 옳은 것은?
- ① UNPIVOT은 SQL 문장을 취소한다.
- ② UNPIVOT은 기본키를 자동 생성한다.
- ③ UNPIVOT은 여러 열을 범주·값 형태의 행으로 펼친다.
- ④ UNPIVOT은 집계 전 상세 행을 항상 완벽 복원한다.
정답과 해설 보기
정답 ③
UNPIVOT은 여러 열의 값을 범주·값 형태의 행으로 풀어냅니다. 1월·2월 열을 월·금액 행으로 바꿀 수 있습니다. 이미 집계되어 사라진 원본 상세 행까지 되살리는 역연산은 아닙니다. NULL을 포함할지 제외할지는 제품별 옵션을 확인합니다. PIVOT 뒤 UNPIVOT을 했다고 최초 상세 거래 수가 복구된다고 보지 마세요. 합계 30에서 원본 10과 20의 구성을 알 수 없기 때문입니다.
UNPIVOT은 여러 열을 범주·값 형태의 행으로 펼친다.
문제 8
PIVOT 합계 30을 UNPIVOT하면 원본 10과 20의 두 거래가 자동 복원되는가?
- ① 언제나 30개 행으로 복원된다.
- ② 합계가 0으로 바뀐다.
- ③ 아니다. 집계로 잃은 상세는 복원되지 않는다.
- ④ 항상 두 행 10·20으로 복원된다.
정답과 해설 보기
정답 ③
UNPIVOT은 형태를 세로로 바꿀 뿐 합계를 구성한 개별 상세 값을 알 수 없습니다.
UNPIVOT은 여러 열을 범주·값 형태의 행으로 펼친다.
문제 9
계층형 질의·셀프 조인·PIVOT·정규표현식에서 정규표현식 기호에 대한 설명으로 옳은 것은?
- ① ^는 언제나 문자열 끝이다.
- ② ^[0-9]+$는 전체가 한 자리 이상 숫자인 문자열을 뜻한다.
- ③ LIKE의%와 정규식의+는 모든 문맥에서 같다.
- ④ +는 0번 반복만 뜻한다.
정답과 해설 보기
정답 ②
정규표현식의 ^와 $는 시작·끝 경계, [0-9]는 숫자 한 글자, +는 한 번 이상 반복을 나타냅니다. ^[0-9]+$는 전체가 한 자리 이상 숫자인 문자열을 검사하는 패턴입니다. LIKE의 %·_와 섞지 마세요. Oracle은 REGEXP_LIKE 등 함수를 제공하고 PostgreSQL 등은 다른 연산자·함수를 사용할 수 있습니다. 대소문자·개행·이스케이프 규칙도 제품별로 확인합니다. 패턴은 먼저 짧은 반례로 검증하면 이해가 쉽습니다.
^[0-9]+$는 전체가 한 자리 이상 숫자인 문자열을 뜻한다.
문제 10
패턴 ^[0-9]+$와 일치하는 문자열은?
- ① 123
- ② 12A
- ③ 빈 문자열
- ④ A123
정답과 해설 보기
정답 ①
시작부터 끝까지 숫자가 하나 이상 있어야 하므로 123만 일치합니다.
^[0-9]+$는 전체가 한 자리 이상 숫자인 문자열을 뜻한다.
범위 확인
2026년 학습 범위를 기준으로 구성했습니다. 시험 시행기관의 자격 안내·출제 기준에서 과목과 변경 공지를 확인할 수 있습니다.
SQLD 전체 목차
과목별 이론
- 1과목 · 1장 1~3절 · 데이터 모델·엔터티·속성
- 1과목 · 1장 4~5절 · 관계·식별자와 카디널리티
- 1과목 · 2장 1~3절 · 정규화·조인·트랜잭션 모델
- 1과목 · 2장 4~5절 · NULL·본질식별자·인조식별자
- 2과목 · 1장 1~2절 · 관계형 DB와 SELECT·DISTINCT
- 2과목 · 1장 3절 · 문자·숫자 함수와 CASE
- 2과목 · 1장 4절 · WHERE·날짜 범위·연산자 우선순위
- 2과목 · 1장 5~6절 · 집계·GROUP BY·HAVING·ORDER BY
- 2과목 · 1장 7~8절 · INNER·OUTER·표준 조인
- 2과목 · 2장 1절 · 서브쿼리·EXISTS·스칼라 서브쿼리
- 2과목 · 2장 2~3절 · 집합 연산·ROLLUP·CUBE·GROUPING
- 2과목 · 2장 4~5절 · 윈도우 함수·순위·Top N
- 2과목 · 2장 6~8절 · 계층형 질의·셀프 조인·PIVOT·정규표현식
- 2과목 · 3장 1~2절 · DML·TCL과 트랜잭션
- 2과목 · 3장 3~4절 · DDL·DCL·제약조건·권한
단원별 객관식
- 1과목 · 1장 1~3절 · 데이터 모델·엔터티·속성
- 1과목 · 1장 4~5절 · 관계·식별자와 카디널리티
- 1과목 · 2장 1~3절 · 정규화·조인·트랜잭션 모델
- 1과목 · 2장 4~5절 · NULL·본질식별자·인조식별자
- 2과목 · 1장 1~2절 · 관계형 DB와 SELECT·DISTINCT
- 2과목 · 1장 3절 · 문자·숫자 함수와 CASE
- 2과목 · 1장 4절 · WHERE·날짜 범위·연산자 우선순위
- 2과목 · 1장 5~6절 · 집계·GROUP BY·HAVING·ORDER BY
- 2과목 · 1장 7~8절 · INNER·OUTER·표준 조인
- 2과목 · 2장 1절 · 서브쿼리·EXISTS·스칼라 서브쿼리
- 2과목 · 2장 2~3절 · 집합 연산·ROLLUP·CUBE·GROUPING
- 2과목 · 2장 4~5절 · 윈도우 함수·순위·Top N
- 2과목 · 2장 6~8절 · 계층형 질의·셀프 조인·PIVOT·정규표현식
- 2과목 · 3장 1~2절 · DML·TCL과 트랜잭션
- 2과목 · 3장 3~4절 · DDL·DCL·제약조건·권한
실습
- SQL 학습 실습 1 · 6작업 · SELECT·조건·정렬
- SQL 학습 실습 2 · 6작업 · NULL·COUNT·평균
- SQL 학습 실습 3 · 6작업 · 날짜 범위·문자 조건
- SQL 학습 실습 4 · 6작업 · GROUP BY·HAVING·조건부 합계
- SQL 학습 실습 5 · 6작업 · 조인·행 수·미주문 고객
- SQL 학습 실습 6 · 6작업 · 서브쿼리·EXISTS·NOT EXISTS
- SQL 학습 실습 7 · 6작업 · 순위·동률·고객별 Top N
- SQL 학습 실습 8 · 6작업 · 집합 연산·조건부 피벗·전체 검산
필기 모의고사
예상 모의문제입니다.