문제
다음 SQL 실행 후 PRODUCTS 테이블에 남아 있는 행의 개수는? (Oracle 환경)
SQL-- PRODUCTS 테이블: PROD_ID(1,2,3,4,5,6) UPDATE PRODUCTS SET PRICE = PRICE * 1.1 WHERE ROWNUM <= 2; DELETE FROM PRODUCTS WHERE ROWNUM <= 3; SELECT COUNT(*) FROM PRODUCTS;
① 2 ② 3 ③ 4 ④ 6
정답
2번
해설
ROWNUM은 Oracle이 행을 선택한 순서대로 부여되므로 어떤 PROD_ID가 삭제되는지는 단정할 수 없습니다. 하지만 DELETE FROM PRODUCTS WHERE ROWNUM <= 3 은 현재 테이블에서 정확히 3행을 삭제하므로, 전체 6행 중 3행이 남습니다. 따라서 COUNT(*) 결과는 3입니다.