일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- sqld시험
- 자격증공부
- 온라인마케팅
- 마케터실무
- 카카오모먼트
- 카카오
- 카카오키워드
- 네이버검색광고
- 마케터
- 마케팅
- 네이버광고
- 온라인광고
- 네이버
- 네이버파워링크
- 네이버마케팅
- 마케터자격증
- GA4
- 비전공자SQLD
- 온라인마케터
- 마케팅이슈
- DA광고
- SQLD
- da매체
- 마케터공부
- SQL자격증
- 마케터용어
- 디스플래이광고
- 비전공자마케터
- 마케팅자격증
- 네이버이슈
- Today
- Total
주케터의 메모장
[SQLD] 명령어 DROP/TRUNCATE/DELETE의 차이점에 대해 쉽게 알아보자! 본문
안녕하세요
주케터입니다 :)

오늘은 오랜만에 SQLD 내용을 다뤄보려고 합니다.
공부 중 많이 헷갈리는 부분이 있어 함께 공유하고
알아가보면 어떨까 싶어서 가져오게 되었어요!
아래의 명령어 세개는 모두 삭제와 관련된 명령어인데요
이 명령어들은, 차이점이 조금씩 존재한답니다!
DROP, TRUNCATE, DELETE의 차이점을 한눈에!
DROP | TRUNCATE | DELETE |
DDL | DDL(일부 DML) | DML |
롤백 불가 | 롤백 불가 | COMMIT 이전 롤백 가능 |
Auto Commit | Auto Commit | 사용자 Commit(수동) |
테이블이 사용했던 저장공간내 모두 삭제 |
테이블이 사용했던 저장 공간중 최초 테이블 생성시 할당된 저장공간 남기고 다 삭제 |
데이터를 모두 삭제해도 사용했던 공간은 유지 |
테이블의 정의 자체를 완전히 삭제 | 테이블 최초 생성된 초기 상태로 만듬 (초기화) |
데이터만! 삭제 |
조금 더 말을 붙이자면, DROP과 TRUNCATE는 자동 COMMIT이 있어서
롤백 자체가 불가능 한 것으로 보이고, DELETE는 수동이어서 COMMIT이 없으면 롤백이 가능합니다.
확실히 DROP > TRUNCATE > DELETE 순으로 삭제 범위가 넓은 것 같아요!
(맨 앞이 제일 강력)
해당 내용을 활용한 간단한 문제를 풀어볼까요?
문제 예시
Q. 다음 중 DELETE와 TRUNCATE,DROP 명령어에 대해 비교한 설명으로 가장
부적절한 것을 고르시오.
1) 특정 테이블에 대하여 WHERE 조건절이 없는 DELETE 명령어를 수행하면
DROP TABLE 명령을 수행했을 때와 똑같은 결과를 얻을 수 있다.
2) DROP 명령어는 테이블 정의 자체를 삭제하고, TRUNCATE 명령어는
테이블을 초기 상태로 만든다.
3) TRUNCATE 명령어는 UNDO를 위한 데이터를 생성하지 않기 때문에
동일 데이터량 삭제시 DELETE보다 빠르다.
4) DROP과 TRUNCATE는 Auto Commit이고 DELETE는 사용자 Commit이다.
정답은? (더보기를 클릭하세요)
1번! 입니다.
조건절이 없다는 DELETE라도 데이터는 지우고
사용공간은 그대로 남겨두는 DELETE와
제일 강력하게 모든걸 지워버리는 DROP의 결과는 매우 다르겠죠...
3)번은 UNDO라는게 원상복귀하다는 말입니다.
TRUNCATE는 뒷일은 생각안하고 초기화 하기때문에
데이터 삭제시 롤백이 가능한 데이터를
남겨두는 DELETE보다 빠릅니다!
이해가 되셨을까요~?
저도 정리를 하면서 함께 이해하니
제대로 이해가 되는 것 같아 좋네요 :)
다음에 또 다른 글로 찾아오겠습니다.
그럼 안녕!

'TEST > SQLD' 카테고리의 다른 글
[SQLD] Nested Loop Join / Hash Join / Sort Merge Join 에 대해서 알아보자! (0) | 2023.09.11 |
---|---|
[SQLD] 그룹 함수 ROLLUP,CUBE,GROUPING SETS 에 대해 알아보자! (0) | 2023.09.04 |
[SQLD] 비전공자의 SQLD 공부 서브쿼리란 무엇일까?(스칼라,인라인,중첩) 참고 인강 有 (0) | 2023.08.17 |
[SQLD] 비전공자의 SQLD 공부 : 반정규화(De-Normalization)에 대해 알아보자! (0) | 2023.08.10 |
[SQLD] 비전공자의 SQLD 공부 : STANDARD JOIN중 INNER JOIN에 대해 알아보자! 개념, 예제 풀어보기 (0) | 2023.07.27 |