CS/SQL
[MYSQL] 데이터 삭제 DELETE, DROP, TRUNCATE
seulll
2024. 11. 19. 18:36
DELETE, DROP, TRUNCATE는 모두 데이터베이스에서 데이터를 삭제하는 명령어지만, 각각의 목적과 동작 방식이 다르다.
DELETE, DROP, TRUNCATE 특징
1. DELETE
- 테이블에서 특정 조건에 맞는 데이터를 삭제하는 데 사용된다.
- 삭제한 데이터는 트랜잭션 로그에 기록되므로 롤백이 가능하다.
- WHERE 절을 사용하여 특정 조건에 맞는 데이터만 삭제할 수 있다.
- 테이블 구조나 데이터 정의는 영향을 받지 않는다.
- 삭제 후에도 테이블에 데이터가 남아 있을 수 있다.
2. DROP
- 테이블, 데이터베이스, 또는 다른 객체를 삭제하는 명령어다.
- 이 명령어를 실행하면 해당 테이블이나 객체 자체가 삭제되고, 복구할 수 없다.
- 테이블의 모든 데이터와 구조가 완전히 삭제되며, 관련된 모든 인덱스와 제약 조건도 함께 삭제된다.
3. TRUNCATE
- 테이블의 모든 데이터를 삭제하는 명령어로, DELETE와 유사하지만 더 빠르다.
- 데이터를 하나씩 삭제하지 않고, 테이블을 초기화하는 방식으로 동작한다.
- 트랜잭션 로그에 적게 기록되므로 성능이 더 좋지만, 롤백이 불가능하며, 삭제된 데이터를 복구할 수 없다.
- 테이블의 구조는 그대로 유지된다.
DELETE 기본 형식 (DELETE 사용 시 조건이 없으면 모든 행이 삭제됨)
DELETE FROM 테이블_이름 WHERE 조건;
DROP 기본 형식 (테이블 자체가 삭제됨)
DROP TABLE 테이블_이름;
TRUNCATE 기본 형식 (테이블은 남기고 모든 데이터 삭제)
TRUNCATE TABLE 테이블_이름;