Oracle 기준으로, 다음 제약조건이 걸린 재고 테이블에 ㉠~㉣을 차… | [SQLD] SQL 개발자 기출유형 모의고사 8회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 8회
Oracle 기준으로, 다음 제약조건이 걸린 재고 테이블에 ㉠~㉣을 차례로 실행할 때 성공하는 INSERT 만 모두 고른 것은?
CREATE TABLE 재고 (
  품번   CHAR(3) PRIMARY KEY,
  창고   CHAR(2) NOT NULL
         REFERENCES 창고(창고코드),
  수량   INT CHECK (수량 >= 0),
  바코드 VARCHAR(13) UNIQUE
);
-- 창고 테이블의 창고코드: 'W1', 'W2'
-- 기존 행: ('P01', 'W1', 10, '880001')

㉠ INSERT INTO 재고 VALUES ('P02', 'W3', 5, '880002');
㉡ INSERT INTO 재고 VALUES ('P03', 'W2', 0, NULL);
㉢ INSERT INTO 재고 VALUES ('P05', 'W1', -1, '880003');
㉣ INSERT INTO 재고 VALUES ('P04', 'W1', 8, NULL);
1
㉡, ㉢, ㉣
2
㉡
3
㉠, ㉡, ㉣
4
㉡, ㉣
해설

㉡과 ㉣은 새 품번, 존재하는 창고, CHECK (수량 >= 0) 을 만족하는 수량이고, 바코드가 NULL 이라 UNIQUE 제약에서 중복으로 보지 않아 둘 다 성공한다.

UNIQUE 는 NULL 끼리 같은 값으로 비교하지 않으므로 ㉡ 뒤에 NULL 바코드를 다시 넣는 ㉣도 허용된다.

  • ㉠은 창고 W3 가 창고 테이블에 없어 FK 위반으로 거부된다.
  • ㉢은 수량 -1 이 0 이상이라는 CHECK 조건을 어겨 거부된다.
  • ㉡만 고르면 UNIQUE 열에 NULL 이 한 번만 들어간다고 본 것이다.

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

이어서 풀어보기

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