본문 바로가기
Language/MySQL

Delete, Truncate, Drop

by Mesut Özil 2024. 1. 9.

Delete, Truncate, Drop

SQL에서 DELETE, TRUNCATE, DROP은 각각 다른 목적과 동작을 가지고 있습니다.

아래는 각각에 대한 설명과 차이점입니다.

 

1. DELETE

  • 목적: 테이블에서 특정 행(레코드) 또는 조건을 만족하는 행삭제하는 명령입니다.
  • 동작: DELETE 문을 사용하면 테이블에서 삭제되지만, 테이블 구조 유지됩니다.
  • 주의사항: DELETE 문을 실행하면 롤백이 가능하며, 조건지정하지 않는 경우 테이블의 전체 행 삭제
# Employee 테이블
+----+-------------+--------+
| ID | Name        | Salary |
+----+-------------+--------+
| 1  | John Doe    | 50000  |
| 2  | Jane Smith  | 60000  |
| 3  | Bob Johnson | 75000  |
+----+-------------+--------+

# DELETE 문 실행
DELETE FROM Employee WHERE ID = 2;

# DELETE문 실행 결과
+----+-------------+--------+
| ID | Name        | Salary |
+----+-------------+--------+
| 1  | John Doe    | 50000  |
| 3  | Bob Johnson | 75000  |
+----+-------------+--------+

 

2. TRUNCATE

  • 목적: 테이블의 모든 행 한 번에 제거하여 테이블 비우는 명령입니다.
  • 동작: TRUNCATE 문을 사용하면 테이블에서 모든 행이 삭제되지만, 테이블 구조 그대로 유지됩니다.
  • 주의사항: TRUNCATE 문은 롤백할 수 없으며, 빠르게 테이블을 비우는 데 사용됩니다.
# Employee 테이블
+----+-------------+--------+
| ID | Name        | Salary |
+----+-------------+--------+
| 1  | John Doe    | 50000  |
| 2  | Jane Smith  | 60000  |
| 3  | Bob Johnson | 75000  |
+----+-------------+--------+

# TRUNCATE 문 실행
TRUNCATE TABLE Employee;

# TRUNCATE 문 실행 결과
+----+-------------+--------+
| ID | Name        | Salary |
+----+-------------+--------+

 

3. DROP

  • 목적: 데이터베이스 객체(테이블, 뷰, 인덱스 등) 자체삭제하는 명령입니다.
  • 동작: DROP 문을 사용하면 테이블 또는 객체가 완전히 제거되어 테이블 구조까지 사라집니다.
  • 주의사항: DROP 문을 실행하면 해당 객체 복구할 수 없습니다. 모든 데이터 구조 삭제됩니다.
# Employee 테이블
+----+-------------+--------+
| ID | Name        | Salary |
+----+-------------+--------+
| 1  | John Doe    | 50000  |
| 2  | Jane Smith  | 60000  |
| 3  | Bob Johnson | 75000  |
+----+-------------+--------+

# DROP 문 실행
DROP TABLE Employee;

# DROP 문 실행 후 데이터 확인 (실행 시 오류 발생)
SELECT * FROM Employee

# 오류 메세지
SELECT * FROM 회원테이블 LIMIT 0, 1000
Error Code: 1146. Table 'DB.회원테이블' doesn't exist	0.000 sec

 

 

요약하면,

  1. DELETE는 행을 삭제하고 테이블 구조를 유지하며 롤백 가능하며,
  2. TRUNCATE는 모든 행을 한 번에 삭제하고 테이블 구조를 유지하며 롤백 불가능하며,
  3. DROP은 테이블 자체를 삭제하여 데이터와 구조 모두 제거합니다.

 

 

본 게시글은 ChatGPT의 도움을 받아 작성하였습니다.

'Language > MySQL' 카테고리의 다른 글

SQL 숫자형 함수  (0) 2024.01.19
DML이란?  (0) 2024.01.11
SQL 기본 명령어  (0) 2024.01.08
가상 테이블 생성  (0) 2024.01.07
SQL 윈도우 함수  (0) 2024.01.06