Skip to Content
자격증SQLD28. SQLD 예상 모의고사 3회

이 모의고사는 실제 기출문제를 그대로 옮긴 것이 아닙니다. 공개된 회차의 출제 범위·문항 형식·오답 구성 방식을 분석해, 테이블·컬럼명·숫자를 모두 새로 바꿔 재구성한 문항입니다. 권장 풀이 시간은 90분입니다(실제 SQLD 시험 시간과 동일하게 맞췄습니다). 이 회차는 특히 윈도우 함수, GROUPING SETS/ROLLUP/CUBE, 계층형 질의(CONNECT BY) 비중을 실제 시험보다 높여, 이 세 주제에서 확실히 점수를 확보할 수 있는지 점검하는 데 목적을 둡니다.

실제 SQLD는 1과목 데이터 모델링 10문항(20점), 2과목 SQL 기본 및 활용 40문항(80점), 총 100점 만점이며 과목별 40퍼센트(40%) 미만이면 과락으로 처리되어 총점과 무관하게 불합격합니다. 이 회차도 같은 배점 구조를 그대로 따릅니다. 시간을 재고 끝까지 풀어본 뒤 채점하고, 마지막 절의 복습 동선표를 따라 약한 구간만 골라 다시 보는 것을 권장합니다.

문항 배분

영역문항 수문항 번호배점
데이터 모델링(엔터티·식별자·정규화·ERD)101–1020점
SQL 기본(DDL·제약조건·DML·TCL·WHERE·함수)1011–2020점
그룹 함수·HAVING·조인521–2510점
서브쿼리·집합 연산자526–3010점
윈도우 함수(RANK 계열·프레임·LAG/LEAD)1031–4020점
GROUPING SETS·ROLLUP·CUBE541–4510점
계층형 질의(CONNECT BY)546–5010점
합계501–50100점

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

문제 14지선다
다음 중 키 엔터티(기본 엔터티)에 해당하지 않는 것은?
문제 24지선다
제3정규형(3NF)에 대한 설명으로 가장 거리가 먼 것은?
문제 34지선다
데이터 모델링을 구성하는 세 가지 관점에 해당하지 않는 것은?
문제 44지선다
데이터 모델링의 유의점 중 비유연성(Inflexibility)에 대한 설명으로 가장 적절한 것은?
문제 54지선다
다음 [주문]과 [배송] 간의 ERD 관계에서, 배송 쪽 끝에 선택 참여를 나타내는 O 표시가 있다. 이 관계에 대한 해석으로 가장 적절한 것은?
문제 64지선다
비식별자 관계에 의해 속성을 생성하는 경우로 가장 적절하지 않은 것은?
문제 74지선다
다음 [주문] 테이블에서 주문번호가 기본키이고, 주문번호에서 담당자번호가 결정되며 담당자번호에서 다시 담당자명과 담당자부서가 결정된다.
문제 84지선다
트랜잭션이 가져야 할 특성(ACID)에 해당하지 않는 것은?
문제 94지선다
주식별자를 대표성·생성 방식에 따라 본질식별자와 인조식별자로 구분할 때, 설명으로 옳지 않은 것은?
문제 104지선다
ERD에서 관계를 표기할 때 다루는 요소가 아닌 것은?

SQL 기본: DDL·DML·TCL·WHERE·함수 (11–20번)

문제 114지선다
다음 중 기본키(PRIMARY KEY) 제약조건이 보장하는 특성으로 옳은 것은?
문제 124지선다
이미 데이터가 저장되어 있는 [도서] 테이블의 컬럼 정의는 가격 NUMBER(6,0), 제목 VARCHAR2(30), ISBN NUMBER(13)이다. 제목에는 최대 25자 문자열이, 가격에는 정수부 5자리 값이 실제로 들어 있다. 다음 ALTER 문 중 오류가 발생하지 않는 것은? (Oracle 기준)
문제 134지선다
SQL 명령어에 대한 설명으로 옳지 않은 것은?

다음 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.입고수량);
문제 144지선다
위 MERGE 문의 동작으로 가장 적절한 것은?
문제 154지선다
다음 순서로 트랜잭션을 실행했다. INSERT A 실행, SAVEPOINT sp1 지정, INSERT B 실행, SAVEPOINT sp2 지정, INSERT C 실행, 이후 ROLLBACK TO sp1을 실행했다. 이 시점에 남아 있는 데이터로 가장 적절한 것은?
문제 164지선다
다음 WHERE 절에서 카테고리가 소설이거나, 카테고리가 에세이이면서 가격이 이만원 이상인 행을 찾으려 한다. 카테고리가 소설과 같거나, 카테고리가 에세이와 같고 가격이 이만원 이상이라는 조건을 괄호 없이 OR와 AND로만 이어 썼을 때, 이 조건이 실제로 해석되는 방식으로 옳은 것은?
문제 174지선다
도서 테이블의 ISBN 칼럼 값이 9788956746425일 때, SELECT SUBSTR(ISBN, 1, 3) FROM 도서 의 실행 결과로 옳은 것은?
SELECT SUBSTR('9788956609959', 1, 3) AS 접두 FROM DUAL;
문제 184지선다
다음 SQL의 실행 결과로 옳은 것은?
SELECT ADD_MONTHS(TO_DATE('2024-01-15', 'YYYY-MM-DD'), 5) FROM DUAL;
문제 194지선다
다음 SQL의 실행 결과로 가장 적절한 것은?
SELECT TO_CHAR(1234567, 'FM999,999,999') AS 결과 FROM DUAL;
문제 204지선다
다음 중 실행 결과가 NULL이 되는 식은?

그룹 함수·HAVING·조인 (21–25번)

문제 214지선다
[주문] 테이블에서 카테고리별 총 금액이 오만원 이상인 카테고리만 조회하려 한다. 옳은 SQL은?

[회원] 테이블은 회원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;
문제 224지선다
위 LEFT JOIN SQL을 실행했을 때 반환되는 행의 개수는?
문제 234지선다
위와 같은 [회원], [주문] 테이블에 대해 LEFT JOIN 대신 INNER JOIN으로 바꿔 실행하면 반환되는 행의 개수는?
문제 244지선다
[도서] 테이블에 3개 행, [프로모션] 테이블에 2개 행이 있을 때, 두 테이블을 CROSS JOIN(카티전 곱)하면 반환되는 행의 개수는?
문제 254지선다
다음 SELF JOIN SQL이 조회하는 것으로 가장 적절한 것은? SELECT E.사원명 AS 사원, M.사원명 AS 관리자 FROM 사원 E JOIN 사원 M ON E.관리자번호 = M.사원번호

서브쿼리·집합 연산자 (26–30번)

문제 264지선다
비교 연산자 다음에 ANY를 붙이면, 서브쿼리가 반환하는 여러 값 중 최솟값보다만 크면 참이 되도록 만드는 연산자 조합으로 가장 적절한 것은?

[도서] 테이블은 도서ID 1, 2, 3, 4가 있다. [주문상세] 테이블에는 도서ID 2, 4에 대한 주문 기록만 있다.

SELECT 도서ID FROM 도서 A WHERE NOT EXISTS ( SELECT 1 FROM 주문상세 B WHERE B.도서ID = A.도서ID );
문제 274지선다
위 SQL을 실행한 결과로 옳은 것은?
문제 284지선다
집합 연산자를 사용할 때 지켜야 할 조건에 대한 설명으로 옳지 않은 것은?
문제 294지선다
두 집합 연산자 중, 첫 번째 SELECT 결과에서 두 번째 SELECT 결과와 공통되지 않는 행만 남기는 것은?

[A] 테이블의 수량 컬럼에는 10, 20, 30이 있다. [B] 테이블의 수량 컬럼에는 20, 20, 40이 있다.

SELECT 수량 FROM A UNION SELECT 수량 FROM B;
문제 304지선다
위 UNION SQL을 실행했을 때 결과로 나오는 값의 개수는?

윈도우 함수: 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 매출;
문제 314지선다
위 SQL을 실행했을 때 영업1팀 소속 E03(실적 300)의 순위 값은?
문제 324지선다
같은 [매출] 테이블에 RANK() 대신 DENSE_RANK()를 적용하면, 영업1팀 소속 E03(실적 300)의 순위 값은?
문제 334지선다
같은 [매출] 테이블에 ROW_NUMBER() OVER (PARTITION BY 부서 ORDER BY 실적 DESC)를 적용할 때, 영업1팀 내 E01과 E02(둘 다 실적 500)의 순번 관계로 옳은 것은?
문제 344지선다
같은 [매출] 테이블에서 PARTITION BY 없이 ORDER BY 실적 DESC만 사용해 RANK()를 매기면, 전체 5명 중 실적 700인 E04의 순위는?

[일별매출] 테이블은 다음과 같다.

일자매출
1일100
2일150
3일200
4일120
SELECT 일자, 매출, SUM(매출) OVER (ORDER BY 일자 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS 누적 FROM 일별매출;
문제 354지선다
위 SQL을 실행했을 때 3일자 행의 누적 값은?
문제 364지선다
같은 [일별매출] 테이블에 LAG(매출, 1) OVER (ORDER BY 일자)를 적용할 때, 4일자 행의 LAG 값은?
문제 374지선다
같은 [일별매출] 테이블에 LEAD(매출, 1) OVER (ORDER BY 일자)를 적용할 때, 마지막 행인 4일자의 LEAD 값은?
문제 384지선다
윈도우 함수에서 ORDER BY만 지정하고 프레임 절을 생략했을 때 기본으로 적용되는 프레임 범위로 옳은 것은?
문제 394지선다
윈도우 함수(분석 함수)에 대한 설명으로 옳지 않은 것은?
문제 404지선다
[매출] 테이블처럼 동점자가 있을 수 있는 데이터에서, 부서별로 실적이 가장 높은 행에만 정확히 한 번씩 1이 매겨지도록 순위를 매기고 싶을 때 가장 적절한 함수는?

GROUPING SETS·ROLLUP·CUBE (41–45번)

[매출2] 테이블은 다음과 같다.

카테고리지역금액
소설서울100
소설부산150
에세이서울200
SELECT 카테고리, SUM(금액) FROM 매출2 GROUP BY ROLLUP(카테고리);
문제 414지선다
위 SQL을 실행했을 때 반환되는 행의 총 개수는?
문제 424지선다
같은 [매출2] 테이블에 GROUP BY ROLLUP(카테고리, 지역)을 적용하면 반환되는 행의 총 개수는?
문제 434지선다
같은 [매출2] 테이블에 GROUP BY CUBE(카테고리, 지역)를 적용하면 반환되는 행의 총 개수는? (카테고리는 소설·에세이 2종류, 지역은 서울·부산 2종류가 존재한다)
문제 444지선다
다음 SQL이 생성하는 그룹 조합으로 옳은 것은? SELECT 카테고리, 지역, SUM(금액) FROM 매출2 GROUP BY GROUPING SETS((카테고리), (지역), ())
문제 454지선다
GROUPING() 함수의 용도로 가장 적절한 것은?

계층형 질의: CONNECT BY (46–50번)

[사원2] 테이블은 사원번호 100(관리자번호 없음, 이름 김대표), 101(관리자번호 100, 이름 이부장), 102(관리자번호 100, 이름 박부장), 103(관리자번호 101, 이름 최과장)으로 구성된다.

문제 464지선다
최상위 관리자부터 하위 사원 방향으로 조직 계층을 전개하려 한다. START WITH 관리자번호 IS NULL을 사용한다고 할 때, 올바른 CONNECT BY 절은?
문제 474지선다
계층형 질의에서 루트 행의 LEVEL 값과, 그 자식 행의 LEVEL 값 관계로 옳은 것은?
문제 484지선다
계층형 질의에서 특정 노드 이하의 하위 트리 전체를 결과에서 제외하려면, WHERE 절이 아니라 CONNECT BY 절에 조건을 추가해야 한다. 그 이유로 가장 적절한 것은?
문제 494지선다
[사원2] 테이블에서 START WITH 사원번호 = 101로 지정하고 CONNECT BY PRIOR 사원번호 = 관리자번호로 전개하면, 결과에 포함되는 사원 수는?
문제 504지선다
계층형 질의에서 SYS_CONNECT_BY_PATH(이름, 구분자)를 사용하면 얻을 수 있는 정보로 가장 적절한 것은?

채점 후 복습 동선

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

틀린 문항 범위다루는 개념복습할 편
1–10엔터티·속성·관계·식별자·정규화·ERD03–07편
11–20DDL·제약조건·DML·TCL·WHERE·함수09–14편
21–25그룹 함수·HAVING·조인15–16편
26–30서브쿼리·집합 연산자17–18편
31–40윈도우 함수(RANK 계열·프레임·LAG/LEAD)19–20편
41–45GROUPING SETS·ROLLUP·CUBE21편
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문항 미만을 맞혔다면 총점과 관계없이 위험 신호입니다. 위 복습 동선표를 따라 취약 구간부터 채우십시오.

참고 자료

Last updated on