1) DELETE
- WHERE절을 사용하여 테이블에 있는 데이터를 하나하나 선택하여 제거하는 방식
- WHERE절을 사용하지않고 테이블의 모든 데이터를 삭제하더라도, 내부적으로는 한줄 한줄 일일히 제거하는 과정을 거침
- 처리속도가 늦고, 퍼포먼스에 좋지않은 영향을 줄 수 있음
- 원하는 데이터만 골라서 삭제할 때에는 DELETE 사용 / 전체 데이터 삭제할 때에는 TRUNCATE 사용
- 데이터를 삭제하더라도 데이터가 담겨있던 Storage는 Release 되지않는다.
- DELETE된 데이터는 COMMIT 명령어를 사용하기 전이라면, ROLLBACK 명령어를 통해 되돌릴 수 있음
DELETE FROM dbtable;
DELETE FROM dbtable WHERE {조건};
ROLLBACK;
COMMIT;
2) TRUNCATE
- 전체 데이터를 한번에 삭제하는 방식 ( <-> DELETE)
- 최초 생성되었을 당시의 Storage만 남기고, 데이터가 남겨있던 Storage는 Release 된다.
- TRUNCATE TABLE을 하면 CREATE TABLE을 한 직후의 상태와 같다.
- 자동 COMMIT이 되는 명령어이기 때문에, 이미 지운 데이터는 되돌릴 수 없다.
TRUNCATE TABLE dbtable;
3) DROP
- 테이블 자체를 완전히 날려버리는 방식 -> 처음부터 없었던 테이블처럼
- 테이블 자체가 모두 지워지며, 해당 테이블에 생성되어있던 모든 인덱스도 사라진다.
- 자동 COMMIT이 되는 명령어이기 때문에, 이미 지운 데이터는 되돌릴 수 없다.
- 오라클10g부터는 테이블이 삭제되는 것이 아니라 윈도우의 휴지통 개념처럼 잠시 삭제 -> 테이블 이름이 BIN$..로 변경됨
DROP TABLE dbtable;
DELETE | TRUNCATE | DROP | |
명령어 종류 | DML | DDL | DDL |
처리 속도 | 느림 | 빠름 | 빠름 |
COMMIT | 사용자가 직접 | 자동 | 자동 |
ROLLBACK 가능 여부 | commit 이전엔 가능 | 불가 | 불가 |
삭제 방식 | 데이터만 삭제 | 테이블을 create 상태로 되돌림 | 테이블까지 완전히 제거 |
'ForBeginner' 카테고리의 다른 글
4-7. RJ-45 랜케이블 크로스 케이블과 다이렉트 케이블 (0) | 2021.06.23 |
---|---|
5-2. Tag의 종류 (DI, AI, String) (0) | 2021.06.08 |
6-3. GCS 특화 기능 (0) | 2021.05.30 |
10-3. 웹리포팅 툴 비교. (0) | 2021.05.28 |
10-2. 국산 웹리포트 툴 비교조사.(Oz, UbiReport, 클립리포트, 유비스톰, FineReport) (0) | 2021.05.28 |