전체 글에 해당하는 글 157

  1. SQL DELETE, TRUNCATE, DROP정리 및 차이2022.01.12
반응형

SQL DELETE, TRUNCATE, DROP정리 및 차이

Devel/DB_SQL|2022. 1. 12. 16:50
반응형

SQL 테이블의 데이터를 삭제하는데 사용하는 명령어는

DELETE, TRUNCATE, DROP로 세개가 있다.

참고 이미지 출처 : 예제로 배우는 oracle 11g

 

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은 삭제 후 절대 되돌릴 수 없다.

 

 

댓글()
loading