다음 SQL(Structured Query Language)문으로 생성한 테이블에 내용을 삽입할 때 올바르게 동작하지 않는 SQL 문장은?
CREATE TABLE Book (
ISBN CHAR(17) PRIMARY KEY,
TITLE VARCHAR(30) NOT NULL,
PRICE INT NOT NULL,
PUBDATE DATE,
AUTHOR VARCHAR(30)
);
1
INSERT INTO Book (ISBN, TITLE, PRICE, AUTHOR) VALUES ('978-89-8914-892-1', '데이터베이스 개론', 20000, '홍길동');
오답 이유ISBN·TITLE·PRICE 필수 열을 모두 제공하고 생략한 PUBDATE·AUTHOR 중 PUBDATE만 NULL이 되어 실행 가능하다.
2
INSERT INTO Book VALUES ('978-89-8914-892-2', '데이터베이스 개론', 20000, '2022-06-18', '홍길동');
오답 이유열 목록을 생략했지만 테이블 정의 순서대로 다섯 값을 모두 제공해 각 열과 대응한다.
3
INSERT INTO Book (ISBN, TITLE, PRICE) VALUES ('978-89-8914-892-3', '데이터베이스 개론', 20000);
오답 이유ISBN·TITLE·PRICE를 제공했고 NULL 허용 열 PUBDATE·AUTHOR만 생략했으므로 실행 가능하다.
4
INSERT INTO Book (ISBN, TITLE, AUTHOR) VALUES ('978-89-8914-892-4', '데이터베이스 개론', '홍길동');
정답 근거NOT NULL인 PRICE 값을 생략하고 기본값도 없으므로 제약 위반으로 실행되지 않아 정답이다.
정답·상세해설
정답 4번
제시된 SQL 문 CREATE TABLE Book (ISBN CHAR(17) PRIMARY KEY, TITLE VARCHAR(30) NOT NULL, PRICE INT NOT NULL, PUBDATE DATE, AUTHOR VARCHAR(30)); 분석 결과, TITLE과 PRICE 컬럼은 NOT NULL 제약 조건이 설정되어 있어 반드시 값이 입력되어야 합니다. INSERT INTO Book (ISBN, TITLE, AUTHOR) VALUES ('978-89-8914-892-4', '데이터베이스 개론', '홍길동') 문장은 NOT NULL 조건인 PRICE 값을 누락했으므로 실행 시 오류가 발생합니다.