문제
다음 테이블 생성 구문에서 오류가 발생하는 이유로 가장 적절한 것은?
SQLCREATE TABLE STUDENT ( STUDENT_ID NUMBER(10) PRIMARY KEY, NAME VARCHAR2(50) NOT NULL, AGE NUMBER(3) CHECK(AGE > 0), GRADE CHAR(1) DEFAULT 'A' CHECK(GRADE IN ('A','B','C')), STUDENT_ID VARCHAR2(20) );
① PRIMARY KEY와 NOT NULL을 동시에 사용할 수 없다 ② CHECK 제약조건의 문법이 잘못되었다 ③ 동일한 컬럼명이 중복으로 정의되었다 ④ DEFAULT와 CHECK 제약조건을 함께 사용할 수 없다
정답
3번
해설
STUDENT_ID 컬럼이 두 번 정의되어 오류가 발생합니다. ① PRIMARY KEY는 자동으로 NOT NULL이므로 동시 사용 가능, ② CHECK 제약조건 문법은 올바름, ④ DEFAULT와 CHECK는 함께 사용 가능합니다. 테이블에서 동일한 컬럼명은 중복 정의할 수 없습니다.