이 모의고사는 실제 기출문제를 그대로 옮긴 것이 아닙니다. 공개된 회차의 출제 범위·문항 형식·오답 구성 방식을 분석해, 테이블·컬럼명·숫자를 모두 새로 바꿔 재구성한 문항입니다. 권장 풀이 시간은 90분입니다(실제 SQLD 시험 시간과 동일하게 맞췄습니다). 이 회차는 특히 윈도우 함수, GROUPING SETS/ROLLUP/CUBE, 계층형 질의(CONNECT BY) 비중을 실제 시험보다 높여, 이 세 주제에서 확실히 점수를 확보할 수 있는지 점검하는 데 목적을 둡니다.
실제 SQLD는 1과목 데이터 모델링 10문항(20점), 2과목 SQL 기본 및 활용 40문항(80점), 총 100점 만점이며 과목별 40퍼센트(40%) 미만이면 과락으로 처리되어 총점과 무관하게 불합격합니다. 이 회차도 같은 배점 구조를 그대로 따릅니다. 시간을 재고 끝까지 풀어본 뒤 채점하고, 마지막 절의 복습 동선표를 따라 약한 구간만 골라 다시 보는 것을 권장합니다.
문항 배분
| 영역 | 문항 수 | 문항 번호 | 배점 |
|---|---|---|---|
| 데이터 모델링(엔터티·식별자·정규화·ERD) | 10 | 1–10 | 20점 |
| SQL 기본(DDL·제약조건·DML·TCL·WHERE·함수) | 10 | 11–20 | 20점 |
| 그룹 함수·HAVING·조인 | 5 | 21–25 | 10점 |
| 서브쿼리·집합 연산자 | 5 | 26–30 | 10점 |
| 윈도우 함수(RANK 계열·프레임·LAG/LEAD) | 10 | 31–40 | 20점 |
| GROUPING SETS·ROLLUP·CUBE | 5 | 41–45 | 10점 |
| 계층형 질의(CONNECT BY) | 5 | 46–50 | 10점 |
| 합계 | 50 | 1–50 | 100점 |
데이터 모델링 (1–10번)
SQL 기본: DDL·DML·TCL·WHERE·함수 (11–20번)
다음 MERGE 문을 보고 물음에 답하시오.
MERGE INTO 재고 T
USING 입고 S
ON (T.도서ID = S.도서ID)
WHEN MATCHED THEN
UPDATE SET T.수량 = T.수량 + S.입고수량
WHEN NOT MATCHED THEN
INSERT (도서ID, 수량) VALUES (S.도서ID, S.입고수량);SELECT SUBSTR('9788956609959', 1, 3) AS 접두 FROM DUAL;SELECT ADD_MONTHS(TO_DATE('2024-01-15', 'YYYY-MM-DD'), 5) FROM DUAL;SELECT TO_CHAR(1234567, 'FM999,999,999') AS 결과 FROM DUAL;그룹 함수·HAVING·조인 (21–25번)
[회원] 테이블은 회원ID 1, 2, 3에 이름 김도영, 이수빈, 박하늘이 있다. [주문] 테이블은 주문ID 101(회원ID 1), 102(회원ID 1), 103(회원ID 3)이 있고 회원ID 2는 주문이 없다.
SELECT M.이름, O.주문ID
FROM 회원 M
LEFT JOIN 주문 O ON M.회원ID = O.회원ID;서브쿼리·집합 연산자 (26–30번)
[도서] 테이블은 도서ID 1, 2, 3, 4가 있다. [주문상세] 테이블에는 도서ID 2, 4에 대한 주문 기록만 있다.
SELECT 도서ID
FROM 도서 A
WHERE NOT EXISTS (
SELECT 1 FROM 주문상세 B WHERE B.도서ID = A.도서ID
);[A] 테이블의 수량 컬럼에는 10, 20, 30이 있다. [B] 테이블의 수량 컬럼에는 20, 20, 40이 있다.
SELECT 수량 FROM A
UNION
SELECT 수량 FROM B;윈도우 함수: RANK 계열·프레임·LAG/LEAD (31–40번)
[매출] 테이블은 다음과 같다.
| 사원 | 부서 | 실적 |
|---|---|---|
| E01 | 영업1팀 | 500 |
| E02 | 영업1팀 | 500 |
| E03 | 영업1팀 | 300 |
| E04 | 영업2팀 | 700 |
| E05 | 영업2팀 | 400 |
SELECT 사원, 부서, 실적,
RANK() OVER (PARTITION BY 부서 ORDER BY 실적 DESC) AS 순위
FROM 매출;[일별매출] 테이블은 다음과 같다.
| 일자 | 매출 |
|---|---|
| 1일 | 100 |
| 2일 | 150 |
| 3일 | 200 |
| 4일 | 120 |
SELECT 일자, 매출,
SUM(매출) OVER (ORDER BY 일자 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS 누적
FROM 일별매출;GROUPING SETS·ROLLUP·CUBE (41–45번)
[매출2] 테이블은 다음과 같다.
| 카테고리 | 지역 | 금액 |
|---|---|---|
| 소설 | 서울 | 100 |
| 소설 | 부산 | 150 |
| 에세이 | 서울 | 200 |
SELECT 카테고리, SUM(금액)
FROM 매출2
GROUP BY ROLLUP(카테고리);계층형 질의: CONNECT BY (46–50번)
[사원2] 테이블은 사원번호 100(관리자번호 없음, 이름 김대표), 101(관리자번호 100, 이름 이부장), 102(관리자번호 100, 이름 박부장), 103(관리자번호 101, 이름 최과장)으로 구성된다.
채점 후 복습 동선
50문항을 모두 푼 뒤 아래 표로 틀린 문항 번호대를 확인하고, 해당 범위에서 5문항 이상 틀렸다면 지정된 편으로 돌아가 개념부터 다시 확인하십시오.
| 틀린 문항 범위 | 다루는 개념 | 복습할 편 |
|---|---|---|
| 1–10 | 엔터티·속성·관계·식별자·정규화·ERD | 03–07편 |
| 11–20 | DDL·제약조건·DML·TCL·WHERE·함수 | 09–14편 |
| 21–25 | 그룹 함수·HAVING·조인 | 15–16편 |
| 26–30 | 서브쿼리·집합 연산자 | 17–18편 |
| 31–40 | 윈도우 함수(RANK 계열·프레임·LAG/LEAD) | 19–20편 |
| 41–45 | GROUPING SETS·ROLLUP·CUBE | 21편 |
| 46–50 | 계층형 질의(CONNECT BY) | 22편 |
합격 기준 안내
SQLD는 데이터 모델링 10문항(20점)과 SQL 기본 및 활용 40문항(80점), 총 100점 만점이며 두 조건을 동시에 만족해야 합격합니다.
- 과락 방지: 데이터 모델링에서 4문항(8점) 미만, SQL에서 16문항(32점) 미만으로 맞히면 과목별 40퍼센트(40%) 기준 미달로 과락 처리되어 총점과 무관하게 불합격합니다.
- 평균 합격선: 두 과목 점수를 합쳐 60점(전체 30문항) 이상이어야 합니다.
이 회차에서 데이터 모델링 1–10번 중 4문항 미만을 맞혔거나, SQL 11–50번 중 16문항 미만을 맞혔다면 총점과 관계없이 위험 신호입니다. 위 복습 동선표를 따라 취약 구간부터 채우십시오.