개발합니다
[Oracle] DELETE, TRUNCATE 차이 본문
DELETE FROM user_table
TRUNCATE TABLE user_table
[DELETE]
DML(Data Manipulation Language) 종류 중 하나이다.
delete문은 where절 사용이 가능하고, 테이블에 있는 데이터를 하나하나 선택하여 제거하는 방식.
where절을 쓰지 않고 테이블 내에 모든 데이터를 삭제하더라도, 내부적으로는 한줄한줄 일일히 제거하는 과정을 거친다.
-> 쿼리문 처리 속도가 길다.
따라서 원하는 데이터만 골라서 삭제할 때는 delete를 사용하고,
테이블의 전체 데이터를 삭제하고자 할 때는 truncate를 사용하는 것이 좋다.
delete를 사용해서 삭제한 데이터는 commit 전에는 rollback을 통해 되돌릴 수 있다.
[TRUNCATE]
DDL(Data Definition Language) 종류 중 하나이다.
truncate문은 테이블에 있는 데이터를 한번에 제거하며, 테이블이 최초 생성되었을 당시의 저장공간만 남긴다.
(create table을 한 직후의 상태로 만듦.)
truncate문은 자동 commit이 되므로 rollback이 불가능하니 주의해야한다.
'Web > DB' 카테고리의 다른 글
[Oracle] 테이블 컬럼 추가, 수정, 삭제, 이름 변경 (0) | 2022.03.29 |
---|---|
[Oracle] ROWNUM 사용법 (0) | 2022.03.25 |
[Oracle] Sequence 사용법 (0) | 2022.03.25 |
[Oracle] SQL 함수 정리 (0) | 2022.03.23 |
[Oracle] 프로시저(Procedure), 커서(Cursor) (0) | 2022.03.23 |