2.22 DROP, TRUNCATE, DELETE
🔸 1. DELETE – “조건 걸어서 지우기”
- 무엇을 하냐?
→ 테이블 안에 있는 데이터만 삭제
→ "조건" 걸 수 있어서 필요한 것만 삭제 가능 - 예시
DELETE FROM 주문 WHERE 고객번호 = 3;
➤ 고객번호가 3인 주문만 지움 - 특징
- 테이블 구조(형태)는 유지
- 롤백(되돌리기) 가능!
- 트랜잭션 필요 (커밋해야 적용됨)
- 느릴 수 있음 (조건 확인 필요하니까)
🔸 2. TRUNCATE – “싹 지우기 (형태만 남기고)”
- 무엇을 하냐?
→ 테이블 안 전체 데이터 삭제
→ 구조(테이블 뼈대)는 유지 - 예시
TRUNCATE TABLE 주문;
➤ 주문 테이블의 모든 데이터 삭제 - 특징
- 매우 빠름
- 조건 지정 불가능 (전부 삭제만 가능)
- 롤백 ❌ (복구 안 됨, 실수 조심!)
- 디스크 공간도 정리됨 (깔끔하게 비움)
- 자동 커밋됨 (되돌릴 수 없음)
🔸 3. DROP – “테이블 자체를 없애버리기”
- 무엇을 하냐?
→ 테이블 + 안에 있는 데이터 전부 삭제
→ 즉, 그 테이블 자체가 사라짐 - 예시
DROP TABLE 주문;
➤ ‘주문’이라는 테이블 자체가 없어짐 - 특징
- 스키마(형태)까지 사라짐
- 롤백 ❌ (되돌릴 수 없음)
- 디스크 공간도 회수됨
- 아주 빠르고 완전한 삭제

💡 시험에 자주 나오는 핵심 포인트
- ❓ TRUNCATE와 DELETE의 가장 큰 차이?
➤ 롤백 가능 여부 (TRUNCATE는 복구 불가!) - ❓ DROP 하면 뭐가 사라짐?
➤ 데이터 + 테이블 구조 전부 사라짐 - ❓ 조건 걸 수 있는 건?
➤ 오직 DELETE만 가능 - ❓ 속도 빠른 순?
➤ DROP > TRUNCATE > DELETE
✅ 기억 꿀팁
“DEL은 조심해서 골라서 삭제!
TRUNC은 전부 다 지우지만 **틀(스키마)**은 남겨!
DROP은 아예 박살, 다시 못 써!”
'SQLD > 2과목 : SQL 기본 및 활용' 카테고리의 다른 글
2.21 참조 무결성 제약조건 (0) | 2025.07.07 |
---|---|
2.20 트랜잭션 (0) | 2025.07.07 |
2.19 복합 쿼리 예제 4 (0) | 2025.07.04 |
2.18 복합 쿼리 예제 3 (0) | 2025.07.04 |
2.17 정규 표현식 (0) | 2025.07.04 |