Skip to Content
자격증SQLD30. SQLD 예상 모의고사 5회

이 모의고사는 실제 기출문제를 그대로 옮긴 것이 아닙니다. 공개된 회차의 출제 범위·문항 형식·오답 구성 방식을 분석해, 테이블·컬럼명·숫자를 모두 새로 바꿔 재구성한 문항입니다. 권장 풀이 시간은 90분입니다(실제 SQLD 시험 시간과 동일하게 맞췄습니다). 이 회차는 특정 주제에 치우치지 않고 데이터 모델링부터 DBMS 문법 차이까지 전 범위를 표준 시험 비중대로 균형 있게 배분했습니다. 시험 직전 마지막 실력 점검용으로 활용하십시오.

실제 SQLD는 1과목 데이터 모델링 10문항(20점), 2과목 SQL 기본 및 활용 40문항(80점), 총 100점 만점이며 과목별 40퍼센트(40%) 미만이면 과락으로 총점과 무관하게 불합격합니다. 이 회차는 영화관 예매 시스템(영화·상영관·좌석·회원·예매·결제)을 소재로 삼아 전 단원을 고르게 담았습니다. 실전처럼 시간을 재고 끝까지 푼 뒤 채점하고, 마지막 절의 합격 기준과 비교해 지금 상태를 냉정하게 점검하십시오.

문항 배분

영역문항 수문항 번호배점
데이터 모델링(엔터티·식별자·정규화·트랜잭션·DCL)101–1020점
DDL·DML·TCL·WHERE·함수1011–2020점
조인·서브쿼리·집합연산자1021–3020점
윈도우 함수·GROUP 확장 함수·계층형 질의1031–4020점
PIVOT·CASE·정규표현식·절차형 SQL·DBMS 차이·종합 실행 결과 예측1041–5020점
합계501–50100점

데이터 모델링 (1–10번)

문제 14지선다
다음 중 행위 엔터티(트랜잭션 엔터티)에 해당하는 것은?
문제 24지선다
예매 엔터티는 좌석단가, 예매수량, 총결제금액을 가지며 총결제금액은 좌석단가와 예매수량을 곱해 산출된다. 이 상황에 대한 설명으로 옳지 않은 것은?
문제 34지선다
다음 중 후보키(Candidate Key)의 조건으로 옳지 않은 것은?
문제 44지선다
한 회원은 여러 번 예매할 수 있고, 하나의 예매는 반드시 한 명의 회원에게만 속한다. 회원과 예매 사이 관계의 카디널리티로 옳은 것은?
문제 54지선다
[좌석] 엔터티의 기본키가 (상영관번호, 좌석번호) 복합키로 구성되고 상영관번호는 [상영관] 엔터티의 기본키를 그대로 물려받았다. 이 관계에 대한 설명으로 가장 적절한 것은?
문제 64지선다
[예매] 테이블에 동반관람인이라는 컬럼이 있고, 한 행에 여러 명의 동반관람인 이름이 하나의 값으로 함께 저장되어 있다. 이 상태를 해결하기 위해 수행해야 하는 정규화 단계는?
문제 74지선다
[예매] 테이블에서 예매번호(기본키)가 회원번호를 결정하고, 회원번호가 다시 회원등급을 결정한다. 이 이행적 종속을 제거하려면 수행해야 하는 정규화 단계는?
문제 84지선다
다음 중 트랜잭션의 고립성(Isolation)에 대한 설명으로 가장 적절한 것은?
문제 94지선다
[예매] 테이블의 취소일자 컬럼이 NULL인 행에 대한 설명으로 가장 적절한 것은?
문제 104지선다
다음 중 ROLE에 대한 설명으로 가장 적절한 것은?

DDL·DML·TCL·WHERE·함수 (11–20번)

문제 114지선다
다음 중 외래키(FOREIGN KEY) 제약조건에 대한 설명으로 옳은 것은?

[회원] 테이블에는 회원ID 1(등급 일반), 2(등급 VIP)가 있다.

UPDATE 예매 E SET 할인율 = 0.1 WHERE E.회원ID IN (SELECT 회원ID FROM 회원 WHERE 등급 = 'VIP');
문제 124지선다
위 UPDATE 문의 동작으로 가장 적절한 것은?
문제 134지선다
SAVEPOINT에 대한 설명으로 옳지 않은 것은?
SELECT 영화ID FROM 영화 WHERE 관람등급 IN ('12세', '15세');
문제 144지선다
[영화] 테이블에 영화ID 1(전체), 2(12세), 3(15세), 4(청불)이 있을 때, 위 SQL의 실행 결과로 옳은 것은?
SELECT ROUND(15750, -3) AS 결과 FROM DUAL;
문제 154지선다
위 SQL의 실행 결과로 옳은 것은?
SELECT TO_NUMBER('1,250', '9,999') + 100 AS 결과 FROM DUAL;
문제 164지선다
위 SQL의 실행 결과로 옳은 것은?

[결제] 테이블의 금액 컬럼에는 1000, NULL, 3000이 있다.

SELECT MAX(금액), MIN(금액) FROM 결제;
문제 174지선다
위 SQL의 실행 결과로 옳은 것은?

[예매] 테이블은 (영화ID 1, 결제방법 카드, 수량 2), (영화ID 1, 결제방법 현금, 수량 1), (영화ID 2, 결제방법 카드, 수량 3)으로 구성된다.

SELECT 영화ID, 결제방법, SUM(수량) FROM 예매 GROUP BY 영화ID, 결제방법;
문제 184지선다
위 SQL을 실행했을 때 반환되는 행의 개수는?
문제 194지선다
GROUP BY 뒤에 오는 HAVING 절에 대한 설명으로 옳지 않은 것은?

[예매] 테이블은 (영화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;
문제 204지선다
위 SQL을 실행했을 때 반환되는 결과로 옳은 것은?

조인·서브쿼리·집합연산자 (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;
문제 214지선다
위 SQL을 실행했을 때 영화3의 예매건수 값은?
문제 224지선다
같은 [영화], [예매] 테이블에 대해 LEFT JOIN 대신 INNER JOIN으로 그룹화하면, 결과에 포함되는 영화 수는?
문제 234지선다
[좌석] 4개 행과 [상영시간] 3개 행을 CROSS JOIN하면 반환되는 행의 개수는?
문제 244지선다
[영화] 테이블에 영화ID, 제목, 전편ID 컬럼이 있고 전편ID는 그 영화의 전편에 해당하는 영화ID를 가리킨다. 다음 SELF JOIN SQL이 조회하는 것으로 가장 적절한 것은? SELECT A.제목 AS 현재작, B.제목 AS 전편 FROM 영화 A JOIN 영화 B ON A.전편ID = B.영화ID
문제 254지선다
INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN에 대한 설명으로 옳지 않은 것은?
문제 264지선다
다음 중 다중행 서브쿼리에 사용할 수 없는 연산자는?

[영화] 테이블에는 영화ID 1, 2, 3이 있다. [예매] 테이블에는 영화ID 1, 1, 3에 대한 예매 기록이 있다.

SELECT 영화ID FROM 영화 A WHERE EXISTS (SELECT 1 FROM 예매 B WHERE B.영화ID = A.영화ID);
문제 274지선다
위 SQL을 실행했을 때 결과로 옳은 것은?

[A] 테이블의 영화ID 컬럼에는 1, 2, 3이 있다. [B] 테이블의 영화ID 컬럼에는 2, 3, 4가 있다.

SELECT 영화ID FROM A INTERSECT SELECT 영화ID FROM B;
문제 284지선다
위 INTERSECT SQL을 실행했을 때 결과로 옳은 것은?

[A] 테이블의 좌석번호 컬럼에는 1, 1, 2가 있다. [B] 테이블의 좌석번호 컬럼에는 1, 3이 있다.

SELECT 좌석번호 FROM A UNION SELECT 좌석번호 FROM B;
문제 294지선다
위 UNION SQL을 실행했을 때 결과로 나오는 값의 개수는?
문제 304지선다
같은 [A], [B] 테이블에 UNION 대신 UNION ALL을 사용하면 반환되는 행의 개수는?

윈도우 함수·GROUP 확장 함수·계층형 질의 (31–40번)

[매출4] 테이블은 영화1(매출 1000), 영화2(매출 3000), 영화3(매출 2000)으로 구성된다.

SELECT 영화ID, 매출, RANK() OVER (ORDER BY 매출 DESC) AS 순위 FROM 매출4;
문제 314지선다
위 SQL을 실행했을 때 영화2(매출 3000)의 순위 값은?

[월매출] 테이블은 1월 100, 2월 150, 3월 130으로 구성된다.

SELECT 월, 매출, LAG(매출) OVER (ORDER BY 월) AS 전월매출 FROM 월매출;
문제 324지선다
위 SQL을 실행했을 때 3월 행의 전월매출 값은?
SELECT 월, SUM(매출) OVER (ORDER BYROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS 누적 FROM 월매출;
문제 334지선다
같은 [월매출] 테이블에 위 SQL을 실행했을 때 3월 행의 누적 값은?

[지점매출] 테이블은 (강남, 1분기, 500), (강남, 2분기, 700), (홍대, 1분기, 300)으로 구성된다.

SELECT 지점, 분기, SUM(매출) OVER (PARTITION BY 지점) AS 지점합계 FROM 지점매출;
문제 344지선다
위 SQL을 실행했을 때 강남 2분기 행의 지점합계 값은?
SELECT * FROM ( SELECT 영화ID, 매출, ROW_NUMBER() OVER (ORDER BY 매출 DESC) AS RN FROM 매출4 ) WHERE RN <= 1;
문제 354지선다
위 서브쿼리 기반 SQL이 하는 일로 가장 적절한 것은? ([매출4]는 영화1 1000, 영화2 3000, 영화3 2000이다)

[매출5] 테이블은 강남 500, 홍대 300으로 구성된다.

SELECT 지점, SUM(매출) FROM 매출5 GROUP BY ROLLUP(지점);
문제 364지선다
위 SQL을 실행했을 때 반환되는 행의 개수는?
문제 374지선다
ROLLUP과 CUBE의 차이에 대한 설명으로 가장 적절한 것은?

[매출5확장] 테이블은 (강남, 1분기, 500), (강남, 2분기, 300), (홍대, 1분기, 200)으로 구성된다.

SELECT 지점, 분기, SUM(매출) FROM 매출5확장 GROUP BY GROUPING SETS((지점, 분기), ());
문제 384지선다
위 SQL을 실행했을 때 반환되는 행의 개수는?

[장르] 테이블은 장르ID 1(상위장르ID 없음, 드라마), 2(상위장르ID 1, 멜로), 3(상위장르ID 1, 가족), 4(상위장르ID 2, 로맨틱코미디)로 구성된다.

문제 394지선다
최상위 장르부터 하위 장르 방향으로 전개하는 계층 질의에서 START WITH 상위장르ID IS NULL을 사용할 때, 옳은 CONNECT BY 절은?
문제 404지선다
위 [장르] 테이블 계층 질의에서 로맨틱코미디(장르ID 4)의 LEVEL 값은?

PIVOT·CASE·정규표현식·절차형 SQL·DBMS 차이·종합 (41–50번)

문제 414지선다
[예매] 테이블의 결제방법별 매출을 카드, 현금 두 컬럼으로 펼쳐 보여주려 할 때 사용할 구문으로 가장 적절한 것은?

[예매] 테이블은 예매ID 1(수량 1), 2(수량 5), 3(수량 10)으로 구성된다.

SELECT 예매ID, CASE WHEN 수량 >= 10 THEN '대량' WHEN 수량 >= 5 THEN '보통' ELSE '소량' END AS 구분 FROM 예매;
문제 424지선다
위 SQL을 실행했을 때 예매ID 2(수량 5)의 구분 값은?
문제 434지선다
REGEXP_LIKE(이메일, 골뱅이 기호를 포함하고 그 뒤에 도메인이 이어지는 일반적인 이메일 형식 패턴)에 매칭되지 않는 값으로 가장 적절한 것은?
문제 444지선다
프로시저에 대한 설명으로 옳지 않은 것은?
문제 454지선다
다음 중 기본키 자동 채번 방식에 대한 설명으로 옳은 것은?
문제 464지선다
Oracle의 DUAL 테이블에 대한 설명으로 옳은 것은?

[예매] 테이블은 예매ID 1(회원ID 1), 2(회원ID 9, 회원 테이블에 없는 값)로 구성된다. [회원] 테이블에는 회원ID 1, 2가 있다.

SELECT E.예매ID, M.회원ID FROM 예매 E, 회원 M WHERE E.회원ID = M.회원ID;
문제 474지선다
위 SQL(Oracle 전통 콤마 조인)을 실행했을 때 반환되는 행의 개수는?

[회원] 테이블은 회원ID 1(가입일 2024년 1월 10일), 2(가입일 2024년 6월 15일)로 구성된다.

SELECT 회원ID, EXTRACT(MONTH FROM 가입일) AS 가입월 FROM 회원 WHERE EXTRACT(MONTH FROM 가입일) <= 3;
문제 484지선다
위 SQL을 실행했을 때 결과로 옳은 것은?

[A] 테이블의 값 컬럼에는 1, NULL, 3이 있다. [B] 테이블의 값 컬럼에는 3, 4가 있다.

SELECTFROM A MINUS SELECTFROM B;
문제 494지선다
위 MINUS SQL을 실행했을 때 결과로 옳은 것은?

[매출4] 테이블은 영화1(매출 1000), 영화2(매출 3000), 영화3(매출 2000)으로 구성된다.

SELECT * FROM ( SELECT 영화ID, 매출, RANK() OVER (ORDER BY 매출 DESC) AS 순위 FROM 매출4 ) WHERE 순위 <= 2;
문제 504지선다
위 SQL을 실행했을 때 결과에 포함되는 영화로 옳은 것은?

채점 후 복습 동선

50문항을 모두 푼 뒤 아래 표로 틀린 문항 번호대를 확인하고, 해당 범위에서 5문항 이상 틀렸다면 지정된 편으로 돌아가 개념부터 다시 확인하십시오.

틀린 문항 범위다루는 개념복습할 편
1–10엔터티·속성·식별자·정규화·트랜잭션·DCL03–09편
11–20DDL·DML·TCL·WHERE·함수·HAVING과 WHERE 차이10–15편
21–30조인 종류·서브쿼리·집합연산자16–18편
31–40윈도우 함수·GROUPING SETS·ROLLUP·CUBE·계층형 질의19–22편
41–50PIVOT·CASE WHEN·정규표현식·절차형 SQL·DBMS 문법 차이23–25편

합격 기준 안내

SQLD는 데이터 모델링 10문항(20점)과 SQL 기본 및 활용 40문항(80점), 총 100점 만점이며 두 조건을 동시에 만족해야 합격합니다.

  • 과락 방지: 데이터 모델링에서 4문항(8점) 미만, SQL에서 16문항(32점) 미만으로 맞히면 과목별 40퍼센트(40%) 기준 미달로 과락 처리되어 총점과 무관하게 불합격합니다.
  • 평균 합격선: 두 과목 점수를 합쳐 60점(전체 30문항) 이상이어야 합니다.

이 회차는 전 범위를 균형 있게 배분한 마지막 점검용입니다. 특정 영역에서만 틀렸다면 그 영역이 실제 시험에서도 취약 지점일 가능성이 높으므로, 위 복습 동선표를 따라 시험 직전까지 해당 편을 다시 훑으십시오. 전 영역에서 고르게 틀렸다면 시간 배분 문제일 수 있으니, 90분 동안 자신 있는 영역부터 먼저 풀고 계산이 오래 걸리는 문항은 표시만 해두고 넘어가는 순서 전략을 다시 점검하십시오.

참고 자료

Last updated on