SQL DELETE, TRUNCATE, DROP정리 및 차이
Devel/DB_SQL2022. 1. 12. 16:50
반응형
SQL 테이블의 데이터를 삭제하는데 사용하는 명령어는
DELETE, TRUNCATE, DROP로 세개가 있다.
DELETE
DELETE FROM tablename
DELETE 는 테이블의 데이터는 지워지지만, 테이블의 용량은 줄어 들지 않는다.
따라서 where절을 이용하여 원하는 데이터만 삭제가 가능하다.
TRUNCATE와 다르게 DELTE 명령어는 삭제 후 잘못 삭제한 경우 되돌릴 수 있다.
그리고 작업 시간이 중요한 경우 AUTO_INCREMENT 값을 저장하고 테이블을 자르고 다음을 사용하여 값을 복원할 수 있다.
TRUNCATE
TRUNCATE TABLE tablename
TRUNCATE는 TRUNCATE를 실행하게 되면, DELETE와 다르게 용량이 줄어들고, 인덱스 등 모든 설정값이 삭제된다.
테이블은 보존이 되고, 그 안의 데이터가 삭제된다.
한번에 다 지워지기 때문에 DELETE와는 다르게 삭제 후 되돌릴 수 없다.
AUTO_INCREMENT 시퀀스의 현재 값을 보존해야 하는 경우가 아니면 선호되는 작업이다.
TRUNCATE와 DELETE의 큰 차이점은
TRUNCATE는 테이블을 비우고 기본 키를 재설정하고, DELETE도 테이블을 공백으로 만들지만 기본 키를 재설정하지는 않는다.
DROP
DROP은 테이블 전체를 삭제하게 된다.
공간, 객체 모두 삭제된다. DROP은 삭제 후 절대 되돌릴 수 없다.
'Devel > DB_SQL' 카테고리의 다른 글
SQL SELECT, DESC, Alisas 설정, Data-type 설명 및 예시 (0) | 2022.01.15 |
---|---|
SQL SCOTT계정 생성, 활성화 하는 방법 (0) | 2022.01.14 |
SQL JOIN 총정리 (inner/left/right/outer) (0) | 2022.01.12 |
MYSQl where =1 , where = 1= 1 의미, 사용 이유, 적용 예제 (0) | 2021.11.30 |
MYSQL DB 백업하기, 백업된 파일 덮어쓰기 (0) | 2021.11.20 |
댓글()