다음 테이블에 상영번호 1 행이 이미 입력된 상태에서 ㉠~㉣을 차례로 … | [SQLD] SQL 개발자 기출유형 모의고사 9회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 9회
다음 테이블에 상영번호 1 행이 이미 입력된 상태에서 ㉠~㉣을 차례로 실행할 때, 제약조건 위반으로 실패하는 것은?
CREATE TABLE 상영관 (관번호 INT PRIMARY KEY, 좌석수 INT);
-- 상영관: (1, 100), (2, 80)

CREATE TABLE 상영 (
  상영번호 INT PRIMARY KEY,
  관번호   INT REFERENCES 상영관(관번호),
  시작시각 CHAR(5) NOT NULL,
  요금     INT DEFAULT 10000
           CHECK (요금 BETWEEN 5000 AND 20000),
  UNIQUE (관번호, 시작시각)
);
-- 상영: (1, 1, '10:00', 12000)

㉠ INSERT INTO 상영 VALUES (2, NULL, '10:00', 9000);
㉡ INSERT INTO 상영 (상영번호, 관번호, 시작시각)
   VALUES (3, 2, '10:00');
㉢ INSERT INTO 상영 VALUES (4, 1, '13:00', 20000);
㉣ INSERT INTO 상영 VALUES (5, 1, '10:00', 8000);
1
㉣
2
㉡
3
㉢
4
㉠
해설

㉣은 관번호 1·시작시각 '10:00' 조합이 기존 상영번호 1 행과 같아 복합 UNIQUE 제약 (관번호, 시작시각) 을 위반한다.

복합 UNIQUE 는 두 열 값이 모두 같을 때만 막으며, 한 열만 같거나 NULL 이 섞인 행은 허용한다.

  • ㉠은 FK 열이 NULL 이라 참조 검사를 하지 않고, UNIQUE 도 NULL 이 섞여 통과한다.
  • ㉡은 생략한 요금에 DEFAULT 10000 이 들어가 CHECK 를 만족한다.
  • ㉢의 20000 은 BETWEEN 의 끝값이라 포함되어 통과한다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 9회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기