Skip to Content
자격증SQLD27. SQLD 예상 모의고사 2회

이 모의고사는 실제 기출 문제가 아니라, 최근 회차(56~60회) 기출·복원 문제의 출제 유형과 함정 구성 방식을 분석해 새 테이블·데이터·상황으로 재구성한 연습 문제입니다. 26편(1회)과 문항이 겹치지 않도록 전부 새로 작성했으며, 이번 회차는 조인·서브쿼리·집합 연산자 비중을 특히 높였습니다. 권장 풀이 시간은 90분입니다. 시간을 재고 한 번에 풀어본 뒤 채점하세요.

이 회차의 배점표

영역문항 번호문항 수배점(1문항)
1과목 – 데이터 모델링의 이해1–1010문항10점
2과목 – SQL 기본 및 활용11–5040문항2.5점

2과목 40문항 중 조인·서브쿼리·집합 연산자 관련 문항이 약 24문항으로 절반 이상을 차지합니다. 조인 유형별 결과 건수 계산, NULL이 섞인 서브쿼리의 함정, 집합 연산자의 중복 제거 여부를 특히 집중적으로 점검하세요.

1과목 — 데이터 모델링의 이해 (1~10번)

문제 14지선다
데이터 모델링을 구성하는 세 가지 관점에 대한 설명으로 옳지 않은 것은?
문제 24지선다
엔터티(Entity)의 특징에 대한 설명으로 옳지 않은 것은?
문제 34지선다
각 속성이 가질 수 있는 값의 데이터 타입, 길이, 허용되는 값의 범위를 정의한 것을 무엇이라 하는가?
문제 44지선다
주식별자를 대표성 유무와 생성 방식에 따라 본질식별자와 인조식별자로 나눌 때의 설명으로 옳지 않은 것은?
문제 54지선다
ERD에서 관계를 표기할 때 사용하는 표기 요소로 옳지 않은 것은?
문제 64지선다
택배사의 배송과 주문 엔터티가 한 건의 주문은 0건 이상의 배송을 가질 수 있고, 모든 배송은 반드시 하나의 주문에 속한다는 규칙으로 연결되어 있다. 이 관계에 대한 설명으로 옳은 것은?

수강료납부 테이블(정규화 이전 상태)

납부번호(PK)학번강좌코드강좌명강좌료
9001S10L01웹개발입문150000
9002S11L01웹개발입문150000
9003S10L02데이터분석200000

납부번호(기본키)가 강좌코드를 정하고, 강좌코드가 다시 강좌명과 강좌료를 정하는 함수 종속이 있다.

문제 74지선다
위 수강료납부 테이블에서 기본키를 거치지 않고 강좌코드가 강좌명, 강좌료를 직접 결정하는 이행적 함수 종속을 제거하려면 어느 정규화 단계가 필요한가?
문제 84지선다
정규화와 반정규화의 관계에 대한 설명으로 옳지 않은 것은?
문제 94지선다
식별자 관계와 비식별자 관계의 생명주기 차이에 대한 설명으로 옳지 않은 것은?
문제 104지선다
트랜잭션의 특성(ACID) 중 고립성(Isolation)에 대한 설명으로 가장 적절한 것은?

2과목 — SQL 기본 및 활용 (11~50번)

문제 114지선다
UNIQUE 제약조건과 PRIMARY KEY 제약조건의 차이에 대한 설명으로 옳은 것은?
문제 124지선다
다음 UPDATE 문의 동작에 대한 설명으로 가장 적절한 것은? 쿼리: UPDATE 사원 A SET 연봉 = (SELECT MAX(B.연봉) FROM 사원 B WHERE B.부서 = A.부서 AND B.직급 = 대리) WHERE A.직급 = 대리;

빈 결제 테이블(결제번호 NUMBER, 승인상태 VARCHAR2, 금액 NUMBER)에 대해 다음을 순서대로 실행한다.

INSERT INTO 결제 VALUES (1, 대기, 1000); INSERT INTO 결제 VALUES (2, 대기, 2000); SAVEPOINT SP_A; UPDATE 결제 SET 승인상태 = 완료 WHERE 결제번호 = 1; SAVEPOINT SP_B; INSERT INTO 결제 VALUES (3, 완료, 3000); ROLLBACK TO SP_A; UPDATE 결제 SET 승인상태 = 완료 WHERE 결제번호 = 2; COMMIT; SELECT COUNT(*) FROM 결제 WHERE 승인상태 = 완료;
문제 134지선다
위 명령을 모두 실행한 뒤 마지막 SELECT 문의 결과(COUNT)로 옳은 것은?
문제 144지선다
조건 NOT (급여가 3000보다 작음 OR 급여가 5000보다 큼)과 논리적으로 동일한 조건은?
문제 154지선다
문자열 abcdefgh에 대해 SUBSTR(문자열, -3)을 실행하면 어떤 값이 반환되는가?
문제 164지선다
정규표현식 캐럿(^)과 대괄호 안의 캐럿의 의미 차이에 대한 설명으로 옳은 것은?

수강 테이블에서 학점이 2.0 이상인 학생만 대상으로 학과별 평균 학점을 큰 순서로 정렬하려 한다.

수강 테이블

학번학과학점
S1컴공3.5
S2컴공1.5
S3전자4.0
S4전자2.5
S5국문3.0
SELECT 학과, AVG(학점) -- (가) FROM 수강 -- (나) WHERE 학점 >= 2.0 -- (다) GROUP BY 학과 -- (라) HAVING AVG(학점) >= 2.0 -- (마) ORDER BY AVG(학점);
문제 174지선다
위 쿼리로 원하는 결과(전자 3.25, 국문 3.0)를 얻으려면 어느 부분을 고쳐야 하는가?

주문상세 테이블

주문번호상품코드
1001P1
1001P1
1001P2
1002P1
문제 184지선다
위 주문상세 테이블에 대해 SELECT COUNT(DISTINCT 상품코드) FROM 주문상세 WHERE 주문번호 = 1001; 을 실행한 결과는?

학생 테이블(4행)

학번
S1
S2
S3
S4

수강신청 테이블(학번은 외래키, 6행)

신청번호학번
1S1
2S1
3S2
4S3
5S3
6S3
문제 194지선다
학생과 수강신청을 학번으로 INNER JOIN했을 때 결과 행 수는?

부서 테이블(3행)

부서ID
D1
D2
D3

사원 테이블(부서ID는 외래키, D3에 소속된 사원 없음)

사원ID부서ID
E1D1
E2D1
E3D2
문제 204지선다
부서를 기준으로 LEFT OUTER JOIN 사원을 부서ID로 실행했을 때, D3에 대응하는 결과 행의 사원ID 값과 전체 결과 행 수로 옳은 것은?
문제 214지선다
RIGHT OUTER JOIN에 대한 설명으로 가장 적절한 것은?

A 테이블

100
250
400

구간 테이블

등급하한상한
300500
100299
099
문제 224지선다
A와 구간 테이블에 대해 다음 세 쿼리를 실행한 결과 행 수의 총합은? (ㄱ) A CROSS JOIN 구간, (ㄴ) A INNER JOIN 구간 ON A.값이 하한과 상한 사이, (ㄷ) A FULL OUTER JOIN 구간 ON A.값이 하한과 상한 사이
문제 234지선다
NATURAL JOIN과 USING 절에 대한 설명으로 옳지 않은 것은?
문제 244지선다
사원 테이블은 사번과 상사사번을 가진다. 어떤 사원의 이름과 그 상사, 그리고 그 상사의 상사(차상위 관리자)까지 세 단계를 한 행에 출력하려고 한다. 별칭을 E(사원), M(상사), G(차상위 관리자)로 둘 때 옳은 조인 조건은?
문제 254지선다
테이블 색상(4행)과 사이즈(3행)에 대해 CROSS JOIN을 실행하면 몇 개의 조합이 만들어지는가?
문제 264지선다
다음 오라클 전용 표기(+)로 작성된 조인과 동일한 결과를 내는 ANSI 표준 조인은? 쿼리: SELECT * FROM 사원 E, 부서 D WHERE E.부서번호(+) = D.부서번호;
문제 274지선다
단일행 서브쿼리와 다중행 서브쿼리에 대한 설명으로 옳지 않은 것은?
문제 284지선다
서브쿼리의 결과로 여러 개의 컬럼이 함께 반환되고, 이 값들이 메인쿼리의 조건절에서 동시에 짝을 이루어 비교되는 서브쿼리의 유형은 무엇인가?

회원 테이블

회원ID등급
M1VIP
M2일반
M3VIP

주문 테이블(회원ID는 외래키)

주문번호회원ID
O1M1
O2M1
O3M3
문제 294지선다
위 두 테이블에 대해 다음 SQL을 실행했을 때 결과로 옳은 것은? 쿼리: SELECT 회원ID FROM 회원 A WHERE EXISTS (SELECT 1 FROM 주문 B WHERE B.회원ID = A.회원ID);

사원 테이블

사번부서
1개발
2NULL

휴직 테이블(휴직 중인 사번 목록)

사번
2
NULL
문제 304지선다
위 두 테이블에 대해 SELECT 사번 FROM 사원 WHERE 사번 NOT IN (SELECT 사번 FROM 휴직); 을 실행한 결과로 옳은 것은?

사원 테이블

사번부서급여
1영업3000
2영업5000
3개발4500
4개발4000
문제 314지선다
다음 SQL을 실행했을 때 결과로 옳은 것은? 쿼리: SELECT Y.사번, Y.부서, Y.급여 FROM (SELECT 사번, MAX(급여) OVER(PARTITION BY 부서) AS 최고급여 FROM 사원) X, 사원 Y WHERE X.사번 = Y.사번 AND X.최고급여 = Y.급여;
문제 324지선다
스칼라 서브쿼리의 반환 건수와 관련된 설명으로 옳은 것은?

A 테이블

1
1
2
3

B 테이블

2
3
3
4
문제 334지선다
A와 B 테이블에 대해 다음 SQL의 결과 행 수를 순서대로 나열한 것은? (ㄱ) SELECT 값 FROM A UNION SELECT 값 FROM B, (ㄴ) SELECT 값 FROM A UNION ALL SELECT 값 FROM B

재고보유 테이블

상품코드
P1
P2
P3

주문이력 테이블

상품코드
P2
P3
P4
문제 344지선다
재고보유와 주문이력 테이블에 대해 SELECT 상품코드 FROM 재고보유 INTERSECT SELECT 상품코드 FROM 주문이력; 을 실행한 결과로 옳은 것은?
문제 354지선다
같은 재고보유와 주문이력 테이블에 대해 SELECT 상품코드 FROM 재고보유 MINUS SELECT 상품코드 FROM 주문이력; 을 실행한 결과로 옳은 것은?
문제 364지선다
집합 연산자 사용 조건에 대한 설명으로 옳지 않은 것은?

A 테이블(3행)

1
2
3

B 테이블(2행)

2
4

C 테이블(2행)

2
5
문제 374지선다
다음 SQL의 실행 결과 행 수는? 쿼리: SELECT 값 FROM A MINUS SELECT 값 FROM B UNION ALL SELECT 값 FROM C;

시험 테이블

이름점수
가영95
나영95
다영88
문제 384지선다
점수를 내림차순 정렬해 RANK와 ROW_NUMBER를 각각 계산할 때, 두 번째로 정렬된 행(나영)의 RANK 값과 ROW_NUMBER 값을 순서대로 나열한 것은?

주문 테이블(주문일자 오름차순 정렬됨)

주문일자부서금액
1월 3일영업1000
1월 8일영업3000
1월 15일개발2000
문제 394지선다
PARTITION BY 부서 ORDER BY 주문일자로 LEAD(금액)을 계산할 때, 영업 부서의 1월 3일 행에서 LEAD(금액) 값은?
문제 404지선다
지역이 3개이고 각 지역마다 상품군이 2개씩 있어 (지역, 상품군) 조합이 총 6가지일 때, CUBE(지역, 상품군)를 적용한 결과의 총 행 수는?
문제 414지선다
FETCH FIRST n ROWS ONLY 구문에 대한 설명으로 옳은 것은?
문제 424지선다
사원 테이블(사번, 관리자사번)에서 관리자사번이 없는 사람을 최상위로 하여 하위 방향으로 조직도를 전개하려고 한다. 빈칸에 들어갈 조건으로 옳은 것은? 쿼리: START WITH 관리자사번 IS NULL CONNECT BY 빈칸
문제 434지선다
PIVOT 구문에 대한 설명으로 옳지 않은 것은?
문제 444지선다
다음 GRANT, REVOKE 명령이 순서대로 실행되었다. 순서: 1. DBA가 R1에게 테이블 T에 대한 SELECT 권한을 재위임 가능하도록 부여, 2. R1이 R2에게 SELECT 권한을 부여, 3. R2가 R3에게 SELECT 권한을 부여, 4. DBA가 R1의 SELECT 권한을 회수. 이후 테이블 T에 대해 SELECT 권한을 가진 사용자로 가장 적절한 것은? (참고: 오라클에서 REVOKE는 그 사용자가 재위임한 권한까지 연쇄적으로 회수한다.)

주문 테이블

주문번호고객ID
1C1
2C2
3C3

배송완료 테이블

고객ID
C1
C3
문제 454지선다
다음 두 방식이 항상 같은 결과를 내는지에 대한 설명으로 가장 적절한 것은? 방식1: SELECT 고객ID FROM 주문 A WHERE EXISTS (SELECT 1 FROM 배송완료 B WHERE B.고객ID = A.고객ID). 방식2: SELECT A.고객ID FROM 주문 A INNER JOIN 배송완료 B ON A.고객ID = B.고객ID.
문제 464지선다
NOT IN을 NOT EXISTS로 안전하게 대체할 수 있는 조건으로 가장 적절한 것은?

사원 테이블(3행)

사번부서ID
110
220
320

부서 테이블(2행)

부서ID
10
20
문제 474지선다
다음 SQL의 실행 결과 행 수는? 쿼리: SELECT * FROM 사원, 부서 WHERE 사원.부서ID = 부서.부서ID OR 1=1;

사원 테이블

사번급여
13000
24500
35000
문제 484지선다
다음 두 조건의 실행 결과 행 수를 순서대로 나열한 것은? (ㄱ) 급여가 ANY(사번이 1 또는 2인 사원의 급여 집합)보다 크다, 즉 급여가 3000 또는 4500 중 하나보다 크면 참이다. (ㄴ) 급여가 ALL(사번이 1 또는 2인 사원의 급여 집합)보다 크다, 즉 급여가 3000과 4500 모두보다 커야 참이다.
문제 494지선다
집합 연산자의 성능 특징에 대한 설명으로 옳지 않은 것은?

A 테이블

1
2

B 테이블

A값B값
110
120
230
문제 504지선다
다음 SQL의 실행 결과 행 수는? 쿼리: SELECT * FROM A INNER JOIN B ON A.값 = B.A값 WHERE B.B값이 (SELECT AVG(B값) FROM B) 보다 크다;

채점 후 복습 동선

이번 회차는 조인·서브쿼리·집합 연산자에 집중되어 있으므로, 이 세 영역에서 틀린 문항이 많다면 반드시 해당 편을 다시 읽고 데이터를 직접 손으로 따라가며 결과를 재구성해 보세요.

틀린 문항 번호대취약 영역돌아갈 편
1–3데이터 모델링 관점, 엔터티, 도메인01편, 03편
4–5식별자, 관계 표기04편, 05편
6ERD 해석05편, 08편
7–8정규화, 반정규화06편, 07편
9–10식별자 관계, 트랜잭션 ACID08편, 09편
11–13제약조건, DML, TCL10편, 11편, 12편
14–16WHERE, 단일행 함수13편, 14편
17–18그룹 함수, HAVING15편
19–26조인 전 유형16편, 08편
27–32서브쿼리 전 유형17편
33–37집합 연산자18편
38–39윈도우 함수 기본19편, 20편
40GROUPING SETS, ROLLUP, CUBE21편
41–42Top N, 계층형 질의22편
43PIVOT23편
44DCL24편
45–48서브쿼리·조인 심화17편, 16편
49–50집합 연산자 성능, 조인·서브쿼리 복합18편, 17편

합격 기준 안내

SQLD는 두 과목 합산 100점 만점에 60점 이상이면서, 각 과목에서 40점(과목별 40퍼센트) 미만이 없어야 합격입니다. 이번 모의고사 기준으로는 1과목(110번)에서 4문항 이상, 2과목(1150번)에서 16문항 이상을 맞혀야 각 과목의 과락을 면하고, 전체 50문항 중 30문항(60퍼센트) 이상을 맞혀야 합니다. 특히 이번 회차에서 조인·서브쿼리·집합 연산자(1937, 4550번)의 정답률이 낮다면, 26편(1회)으로 돌아가 같은 영역을 다시 점검한 뒤 이 회차를 재도전하는 것을 권장합니다.

참고 자료

Last updated on