데이터베이스 기초
SQL에서 DELETE FROM 사원을 WHERE 절 없이 실행했을 때의 결과로 올바른 것은?
- A사원 표의 모든 행이 삭제되고 빈 표가 남는다
- B표 자체가 삭제되어 표의 정의도 없어진다
- CWHERE 절이 없으므로 오류가 되어 아무것도 삭제되지 않는다
정답과 해설 보기
정답: A. 사원 표의 모든 행이 삭제되고 빈 표가 남는다
DELETE는 표에서 행을 삭제하는 DML 문입니다. WHERE 절로 조건을 붙이면 그 조건에 맞는 행만 삭제되지만, WHERE 절을 생략하면 모든 행이 삭제 대상이 됩니다. DELETE로 행이 없어져도 표의 정의(열 이름이나 형, 제약)는 남으므로 그 후에도 INSERT로 행을 추가할 수 있습니다. 표 자체를 정의째 삭제하는 것은 DDL인 DROP TABLE 사원입니다. UPDATE도 마찬가지로, WHERE 절을 깜빡 빠뜨리면 모든 행이 바뀌므로 실행하기 전에 조건을 확인하는 것이 중요합니다. 트랜잭션 안이라면 COMMIT하기 전에 ROLLBACK으로 취소할 수 있습니다.