[SQLD] SQL 개발자 실전문제 3번

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 값 입력을 허용하므로 정상처리된다.

Scroll to Top