SQLD관리 구문제약조건난이도 4MCQ

SQLD 제약조건 기출문제 #3848

문제

아래 TABLE에 대한 SQL 수행 후 최종 SUM(COL1) 결과로 가장 적절한 것은?

  • COL1: PRIMARY KEY
  • COL2: CHECK (COL2 > 500)

SQL
INSERT INTO T VALUES (500, 600); UPDATE T SET COL2 = 400 WHERE COL1 = 500; INSERT INTO T VALUES (500, 700); INSERT INTO T VALUES (270, 800); SELECT SUM(COL1) FROM T;

① 770 ② 500 ③ 0 ④ 오류로 인해 모든 작업이 취소된다.

정답

1

해설

정답: 1. 첫 번째 INSERT는 정상 수행되어 COL1=500 행이 저장된다. UPDATE는 COL2를 400으로 바꾸려 하므로 CHECK(COL2 > 500)를 위반해 실패한다. 두 번째 INSERT는 COL1=500이 이미 존재하므로 PRIMARY KEY를 위반해 실패한다. 마지막 INSERT는 정상 수행되어 COL1=270 행이 추가된다. 따라서 최종 SUM(COL1)은 500 + 270 = 770이다.

오답 풀이

  • 1번: 정상 반영된 COL1 값 500과 270의 합이다.
  • 2번: 마지막 정상 INSERT를 누락한 값이다.
  • 3번: 정상 INSERT가 모두 취소되는 상황이 아니다.
  • 4번: 개별 DML 오류가 이전의 정상 수행 DML을 자동으로 모두 취소한다고 볼 수 없다.

보충 개념 제약조건을 위반한 DML은 실패하며 해당 변경은 반영되지 않는다. 이전에 정상 수행된 문장까지 자동으로 모두 취소되는 것은 아니다.

SQLD 시험 준비 가이드

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[SQLD] 제약조건 관리 구문 기출 #3848 | 문어CBT