문제
다음과 같은 상황에서 ALTER TABLE 구문의 실행 결과로 가장 적절한 것은?
-- 기존 테이블
SQLCREATE TABLE EMP ( EMP_ID NUMBER(5), NAME VARCHAR2(20), SALARY NUMBER(10,2) );
-- 데이터 삽입
SQLINSERT INTO EMP VALUES (1, 'KIM', 3000.50); INSERT INTO EMP VALUES (2, 'LEE', NULL);
COMMIT;
-- ALTER 구문 실행
SQLALTER TABLE EMP MODIFY (SALARY NUMBER(10,2) NOT NULL);
① 정상적으로 실행된다 ② NULL 값이 존재하여 오류가 발생한다 ③ 데이터 타입 변경으로 인해 오류가 발생한다 ④ 컬럼 크기 축소로 인해 오류가 발생한다
정답
2번
해설
기존 데이터 중 SALARY 컬럼에 NULL 값이 존재하므로 NOT NULL 제약조건을 추가할 수 없어 오류가 발생합니다. ① NULL 데이터가 있으므로 실행 불가, ③ 데이터 타입은 동일하게 NUMBER(10,2), ④ 컬럼 크기는 변경되지 않았습니다. NOT NULL 제약조건 추가 시 기존 데이터에 NULL이 없어야 합니다.