SQLD(SQL 개발자) 기출 · DML
아래 SQL 실행 결과로 가장 적절한 것은?
본문)
CREATE TABLE TAB1(COL1 NUMBER, COL2 NUMBER);
INSERT INTO TAB1 VALUES(1,10);
INSERT INTO TAB1 VALUES(2,20);
INSERT INTO TAB1 VALUES(3,30);
COMMIT;
ALTER TABLE TAB1 ADD (COL3 NUMBER);
INSERT INTO TAB1 VALUES(4,40,100);
UPDATE TAB1 SET COL2 = 50 WHERE COL1 = 1;
DELETE TAB1 WHERE COL1 = 3;
ALTER TABLE TAB1 DROP COLUMN COL1;
ROLLBACK;
SELECT SUM(COL2 + COL3) FROM TAB1; 이 문제 풀어보기
정답 및 해설 보기
정답: 1번
처음 INSERT 3개의 문장은 COMMIT을 수행했으므로 영구 저장된다. 이후 COL3을 추가하면 이미 입력된 세 개의 행에 대해 NULL을 갖게 된다. 그 뒤 수행하는 INSERT, UPDATE, DELETE 문장은 이어서 실행하는 ALTER TABLE DROP COLUMN 문장으로 인해 자동 확정된다.(DDL AUTO COMMIT). 따라서 ROLLBACK을 수행해도 취소되지 않는다.