이 모의고사는 실제 기출문제를 그대로 옮긴 것이 아닙니다. 공개된 회차의 출제 범위·문항 형식·오답 구성 방식을 분석해, 테이블·컬럼명·숫자를 모두 새로 바꿔 재구성한 문항입니다. 권장 풀이 시간은 90분입니다(실제 SQLD 시험 시간과 동일하게 맞췄습니다). 이 회차는 특정 주제에 치우치지 않고 데이터 모델링부터 DBMS 문법 차이까지 전 범위를 표준 시험 비중대로 균형 있게 배분했습니다. 시험 직전 마지막 실력 점검용으로 활용하십시오.
실제 SQLD는 1과목 데이터 모델링 10문항(20점), 2과목 SQL 기본 및 활용 40문항(80점), 총 100점 만점이며 과목별 40퍼센트(40%) 미만이면 과락으로 총점과 무관하게 불합격합니다. 이 회차는 영화관 예매 시스템(영화·상영관·좌석·회원·예매·결제)을 소재로 삼아 전 단원을 고르게 담았습니다. 실전처럼 시간을 재고 끝까지 푼 뒤 채점하고, 마지막 절의 합격 기준과 비교해 지금 상태를 냉정하게 점검하십시오.
문항 배분
| 영역 | 문항 수 | 문항 번호 | 배점 |
|---|---|---|---|
| 데이터 모델링(엔터티·식별자·정규화·트랜잭션·DCL) | 10 | 1–10 | 20점 |
| DDL·DML·TCL·WHERE·함수 | 10 | 11–20 | 20점 |
| 조인·서브쿼리·집합연산자 | 10 | 21–30 | 20점 |
| 윈도우 함수·GROUP 확장 함수·계층형 질의 | 10 | 31–40 | 20점 |
| PIVOT·CASE·정규표현식·절차형 SQL·DBMS 차이·종합 실행 결과 예측 | 10 | 41–50 | 20점 |
| 합계 | 50 | 1–50 | 100점 |
데이터 모델링 (1–10번)
DDL·DML·TCL·WHERE·함수 (11–20번)
[회원] 테이블에는 회원ID 1(등급 일반), 2(등급 VIP)가 있다.
UPDATE 예매 E
SET 할인율 = 0.1
WHERE E.회원ID IN (SELECT 회원ID FROM 회원 WHERE 등급 = 'VIP');SELECT 영화ID FROM 영화 WHERE 관람등급 IN ('12세', '15세');SELECT ROUND(15750, -3) AS 결과 FROM DUAL;SELECT TO_NUMBER('1,250', '9,999') + 100 AS 결과 FROM DUAL;[결제] 테이블의 금액 컬럼에는 1000, NULL, 3000이 있다.
SELECT MAX(금액), MIN(금액) FROM 결제;[예매] 테이블은 (영화ID 1, 결제방법 카드, 수량 2), (영화ID 1, 결제방법 현금, 수량 1), (영화ID 2, 결제방법 카드, 수량 3)으로 구성된다.
SELECT 영화ID, 결제방법, SUM(수량)
FROM 예매
GROUP BY 영화ID, 결제방법;[예매] 테이블은 (영화ID 1, 수량 5), (영화ID 1, 수량 3), (영화ID 2, 수량 10), (영화ID 2, 수량 1), (영화ID 3, 수량 2)로 구성된다.
SELECT 영화ID, SUM(수량) AS 총수량
FROM 예매
WHERE 수량 >= 3
GROUP BY 영화ID
HAVING SUM(수량) >= 8;조인·서브쿼리·집합연산자 (21–30번)
[영화] 테이블에는 영화ID 1, 2, 3이 있다. [예매] 테이블에는 영화ID 1, 1, 2에 대한 예매 기록이 있고 영화3은 예매가 없다.
SELECT M.영화ID, COUNT(E.예매ID) AS 예매건수
FROM 영화 M
LEFT JOIN 예매 E ON M.영화ID = E.영화ID
GROUP BY M.영화ID;[영화] 테이블에는 영화ID 1, 2, 3이 있다. [예매] 테이블에는 영화ID 1, 1, 3에 대한 예매 기록이 있다.
SELECT 영화ID FROM 영화 A
WHERE EXISTS (SELECT 1 FROM 예매 B WHERE B.영화ID = A.영화ID);[A] 테이블의 영화ID 컬럼에는 1, 2, 3이 있다. [B] 테이블의 영화ID 컬럼에는 2, 3, 4가 있다.
SELECT 영화ID FROM A
INTERSECT
SELECT 영화ID FROM B;[A] 테이블의 좌석번호 컬럼에는 1, 1, 2가 있다. [B] 테이블의 좌석번호 컬럼에는 1, 3이 있다.
SELECT 좌석번호 FROM A
UNION
SELECT 좌석번호 FROM B;윈도우 함수·GROUP 확장 함수·계층형 질의 (31–40번)
[매출4] 테이블은 영화1(매출 1000), 영화2(매출 3000), 영화3(매출 2000)으로 구성된다.
SELECT 영화ID, 매출, RANK() OVER (ORDER BY 매출 DESC) AS 순위 FROM 매출4;[월매출] 테이블은 1월 100, 2월 150, 3월 130으로 구성된다.
SELECT 월, 매출, LAG(매출) OVER (ORDER BY 월) AS 전월매출 FROM 월매출;SELECT 월, SUM(매출) OVER (ORDER BY 월 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS 누적 FROM 월매출;[지점매출] 테이블은 (강남, 1분기, 500), (강남, 2분기, 700), (홍대, 1분기, 300)으로 구성된다.
SELECT 지점, 분기, SUM(매출) OVER (PARTITION BY 지점) AS 지점합계 FROM 지점매출;SELECT * FROM (
SELECT 영화ID, 매출, ROW_NUMBER() OVER (ORDER BY 매출 DESC) AS RN
FROM 매출4
) WHERE RN <= 1;[매출5] 테이블은 강남 500, 홍대 300으로 구성된다.
SELECT 지점, SUM(매출) FROM 매출5 GROUP BY ROLLUP(지점);[매출5확장] 테이블은 (강남, 1분기, 500), (강남, 2분기, 300), (홍대, 1분기, 200)으로 구성된다.
SELECT 지점, 분기, SUM(매출) FROM 매출5확장 GROUP BY GROUPING SETS((지점, 분기), ());[장르] 테이블은 장르ID 1(상위장르ID 없음, 드라마), 2(상위장르ID 1, 멜로), 3(상위장르ID 1, 가족), 4(상위장르ID 2, 로맨틱코미디)로 구성된다.
PIVOT·CASE·정규표현식·절차형 SQL·DBMS 차이·종합 (41–50번)
[예매] 테이블은 예매ID 1(수량 1), 2(수량 5), 3(수량 10)으로 구성된다.
SELECT 예매ID,
CASE WHEN 수량 >= 10 THEN '대량'
WHEN 수량 >= 5 THEN '보통'
ELSE '소량'
END AS 구분
FROM 예매;[예매] 테이블은 예매ID 1(회원ID 1), 2(회원ID 9, 회원 테이블에 없는 값)로 구성된다. [회원] 테이블에는 회원ID 1, 2가 있다.
SELECT E.예매ID, M.회원ID
FROM 예매 E, 회원 M
WHERE E.회원ID = M.회원ID;[회원] 테이블은 회원ID 1(가입일 2024년 1월 10일), 2(가입일 2024년 6월 15일)로 구성된다.
SELECT 회원ID, EXTRACT(MONTH FROM 가입일) AS 가입월
FROM 회원
WHERE EXTRACT(MONTH FROM 가입일) <= 3;[A] 테이블의 값 컬럼에는 1, NULL, 3이 있다. [B] 테이블의 값 컬럼에는 3, 4가 있다.
SELECT 값 FROM A
MINUS
SELECT 값 FROM B;[매출4] 테이블은 영화1(매출 1000), 영화2(매출 3000), 영화3(매출 2000)으로 구성된다.
SELECT * FROM (
SELECT 영화ID, 매출, RANK() OVER (ORDER BY 매출 DESC) AS 순위
FROM 매출4
) WHERE 순위 <= 2;채점 후 복습 동선
50문항을 모두 푼 뒤 아래 표로 틀린 문항 번호대를 확인하고, 해당 범위에서 5문항 이상 틀렸다면 지정된 편으로 돌아가 개념부터 다시 확인하십시오.
| 틀린 문항 범위 | 다루는 개념 | 복습할 편 |
|---|---|---|
| 1–10 | 엔터티·속성·식별자·정규화·트랜잭션·DCL | 03–09편 |
| 11–20 | DDL·DML·TCL·WHERE·함수·HAVING과 WHERE 차이 | 10–15편 |
| 21–30 | 조인 종류·서브쿼리·집합연산자 | 16–18편 |
| 31–40 | 윈도우 함수·GROUPING SETS·ROLLUP·CUBE·계층형 질의 | 19–22편 |
| 41–50 | PIVOT·CASE WHEN·정규표현식·절차형 SQL·DBMS 문법 차이 | 23–25편 |
합격 기준 안내
SQLD는 데이터 모델링 10문항(20점)과 SQL 기본 및 활용 40문항(80점), 총 100점 만점이며 두 조건을 동시에 만족해야 합격합니다.
- 과락 방지: 데이터 모델링에서 4문항(8점) 미만, SQL에서 16문항(32점) 미만으로 맞히면 과목별 40퍼센트(40%) 기준 미달로 과락 처리되어 총점과 무관하게 불합격합니다.
- 평균 합격선: 두 과목 점수를 합쳐 60점(전체 30문항) 이상이어야 합니다.
이 회차는 전 범위를 균형 있게 배분한 마지막 점검용입니다. 특정 영역에서만 틀렸다면 그 영역이 실제 시험에서도 취약 지점일 가능성이 높으므로, 위 복습 동선표를 따라 시험 직전까지 해당 편을 다시 훑으십시오. 전 영역에서 고르게 틀렸다면 시간 배분 문제일 수 있으니, 90분 동안 자신 있는 영역부터 먼저 풀고 계산이 오래 걸리는 문항은 표시만 해두고 넘어가는 순서 전략을 다시 점검하십시오.