SQL 기본 및 활용
🗄️ SQL관리 구문★★★★★거의 매회

DELETE·TRUNCATE·DROP — 지우는 깊이가 다르다

DELETE 는 행만 지우고 되돌릴 수 있으며, TRUNCATE 는 전부 비우되 표는 남기고 되돌릴 수 없으며, DROP 은 표 자체를 없앤다.

DELETETRUNCATEDROP자동 커밋

왜 그런지까지

DELETE 는 DML 이라 로그를 남기고 COMMIT 전에는 ROLLBACK 으로 되돌릴 수 있다. 조건을 걸어 일부만 지울 수도 있다.

TRUNCATE 는 DDL 이라 자동 커밋되고, 조건을 걸 수 없으며 저장 공간까지 처음 상태로 되돌린다. DROP 은 표의 구조와 데이터, 인덱스까지 함께 없앤다. 셋 다 되돌릴 수 있는지, 표가 남는지, 조건을 걸 수 있는지로 갈린다.

세 가지 지우기

명령갈래표가 남는가되돌릴 수 있는가조건을 걸 수 있는가
DELETEDML남는다된다된다
TRUNCATEDDL남는다안 된다안 된다
DROPDDL없어진다안 된다안 된다

헷갈리는 것

DELETE vs TRUNCATE

DELETE 는 DML 이라 조건을 걸 수 있고 ROLLBACK 으로 되돌릴 수 있지만, TRUNCATE 는 DDL 이라 전부 비우고 자동 커밋되어 되돌릴 수 없다.

TRUNCATE vs DROP

TRUNCATE 는 표의 구조를 남기고 내용만 비우지만, DROP 은 표 자체를 없앤다.

확인 문제

넣어 두면 오늘 · 1일 · 3일 · 7일 · 14일 · 30일 간격으로 다시 물어봅니다