Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 자료구조
- AWS
- S3
- http
- 컴퓨터 네트워크
- 정리
- TCP
- 가상환경
- Go
- airflow
- redshift
- dockerfile
- TIL
- 데이터베이스
- linux
- 데브코스
- airflow.cfg
- 컴퓨터네트워크
- 종류
- Django
- 데이터엔지니어링
- sql
- PYTHON
- 운영체제
- 데이터 엔지니어링
- Docker
- HADOOP
- 데이터 파이프라인
- 데이터 웨어하우스
- 파이썬
Archives
- Today
- Total
홍카나의 공부방
[데이터베이스] 삭제 : DELETE vs DROP vs TRUNCATE 본문
데이터베이스 삭제 명령어
DELETE, DROP, TRUNCATE 모두 DB에서 객체를 삭제하는 데 사용하는 명령어다.
하지만 각각의 명령어는 세세한 차이점을 가지고 있다.
DELETE
DELETE 문은 테이블에서 특정 레코드를 삭제하는 데 사용하는 구문이다.
WHERE 절을 사용하여 특정 조건의 레코드를 삭제할 수도 있고, 모든 레코드를 삭제할 수도 있다.
DELETE된 데이터는 COMMIT(END) 명령어를 실행하기 이전에 ROLLBACK 명령어를 이용하여 복구할 수 있다.
위 사진에서 보는 것처럼, DELETE 이후 테이블 구조(필드의 정의, 도메인, 제약 조건 등)는 그대로 유지된다.
처리 속도는 TRUNCATE나 DROP문 보다 느리다.
DELETE FROM ex_table;
DELETE FROM ex_table WHERE {조건};
ROLLBACK;
TRUNCATE
테이블의 모든 레코드를 삭제하는 데 사용하는 구문이다.
TRUNCATE 문을 실행하면 테이블의 모든 레코드가 삭제되며, 자동 COMMIT이 되는 명령어라서 복구할 수 없다.
DROP 문과 차이점은 TRUNCATE는 Table의 레코드들만 모두 날리는 것이기 때문에 테이블 구조는 남아있다.
TRUNCATE TABLE ex_table;
DROP
데이터베이스에서 객체(테이블, 뷰, 인덱스 등)를 완전히 삭제할 때 사용하는 명령어다.
DROP TABLE ex_table;
DROP INDEX ix_index;
DROP VIEW ex_view;
삭제된 객체는 롤백이나 복구할 수 없으며, 삭제하기 전에 꼭 확인 절차를 거치는 것이 좋다.
DROP TABLE로 테이블 날려놓고 왜 INSERT INTO가 안되지..? 이러면 안 된다.
반응형
'Data Engineering > Database' 카테고리의 다른 글
[데이터베이스] 트랜잭션 - ACID, 연산, State (0) | 2023.05.25 |
---|---|
[데이터베이스] 트리거(Trigger)에 대하여 - AWS RDS (0) | 2023.05.20 |
[데이터베이스] 저장 구조 - 해싱 방법, 저장 구조의 비교 (0) | 2023.05.18 |
[데이터베이스] B+Tree, 인덱스의 종류 (1) | 2023.05.18 |
[데이터베이스] 저장 구조 - 순차 방법(힙), B-Tree (0) | 2023.05.18 |