3. 다음 중 아래와 같이 테이블을 생성했을 때 실행할 수 없는 SQL을 고르시오.
CREATE TABLE T1 (
C1 NUMBER UNIQUE,
C2 NUMBER(1) DEFAULT 0 NOT NULL
);
(1) INSERT INTO T1 ( C1 ) VALUES ( 1 );
(2) INSERT INTO T1 ( C1, C2 ) VALUES ( 1, NULL );
(3) INSERT INTO T1 ( C1, C2 ) VALUES ( 1, 1.5 );
(4) INSERT INTO T1 ( C2 ) VALUES ( 1 );
정답 : 2
(1) C2 컬럼은 DEFAULT
제약조건으로 인해 0이 입력된다.
(2) C2 컬럼은 VALUES
절에 NULL
값을 명시적으로 입력하여 DEFAULT
값이 사용되지 않고, C2 컬럼에 있는 또 다른 NOT NULL
제약 조건에 의해 오류가 발생한다.
(3) C2 컬럼은 NUMBER(1)
데이터 타입이므로 정수 1자리만 입력 가능하다. 보기와 같이 소수점이 있는 값을 입력하면 소수점 이하는 절사되어 정수 부분만 입력된다.
(4) C1 컬럼은 UNIQUE
제약조건이 생성되어 있고 INSERT
문에서 명시하지 않았으므로 NULL
값이 입력된다. UNIQUE
제약조건은 PRIMARY KEY
제약조건과 다르게 NULL
값 입력을 허용하므로 정상처리된다.