문제
다음 상황에서 ALTER TABLE 명령이 실행될 때 가장 적절한 결과는?
SQLCREATE TABLE EMPLOYEE ( EMP_ID NUMBER PRIMARY KEY, NAME VARCHAR2(50), SALARY NUMBER DEFAULT 3000 ); INSERT INTO EMPLOYEE VALUES (1, 'KIM', NULL); INSERT INTO EMPLOYEE VALUES (2, 'LEE', 5000); ALTER TABLE EMPLOYEE MODIFY SALARY NUMBER DEFAULT 4000 NOT NULL;
① 성공적으로 실행된다 ② SALARY 컬럼에 NULL 값이 있어 실행 실패한다 ③ DEFAULT 값이 변경되어 기존 NULL이 4000으로 자동 변경된다 ④ PRIMARY KEY와 충돌하여 실행 실패한다
정답
2번
해설
SQLALTER TABLE로 NOT NULL 제약조건을 추가할 때, 해당 컬럼에 이미 NULL 값이 존재하면 실행이 실패합니다. EMP_ID=1인 행의 SALARY가 NULL이므로 NOT NULL 제약조건 추가가 불가능합니다. ① 기존 NULL 값 때문에 실행되지 않습니다. ③ DEFAULT 값 변경이 기존 데이터를 자동으로 변경하지는 않습니다. ④ PRIMARY KEY와는 관련이 없습니다.