English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQL 테이블 비우기 (TRUNCATE TABLE 문장)

이 튜토리얼에서는 SQL을 사용하여 테이블에서 모든 행을 빠르게 제거하는 방법을 배울 것입니다.

테이블 데이터 제거

TRUNCATE TABLE 문장은 DELETE와 비교해 테이블에서 모든 행을 제거하는 데 더 빠르게 작동합니다. 논리적으로 TRUNCATE TABLE은DELETE없음WHEREWHERE 절의 문장.

TRUNCATE TABLE 문장은 테이블에서 모든 행을 제거하지만 테이블 구조와 열, 제약 조건, 인덱스 등은 유지됩니다. 테이블과 데이터를 모두 제거하려면 다음과 같은 문장을 사용할 수 있습니다.DROP TABLE문장을 사용하되 주의해야 합니다.

문법

TRUNCATE TABLE의 기본 문법:

TRUNCATE TABLE table_name;

데이터베이스 테이블을 초기화 작업을 수행해 보겠습니다.

데이터베이스에 테이블이 있습니다.employee다음과 같은 기록을 포함한 테이블입니다:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 |    NULL |
+--------+--------------+------------+--------+---------+

다음 명령어는employees모든 행을 제거합니다:

TRUNCATE TABLE employees;

위 SQL 문장을 실행한 후, 다음과 같이 테이블에서employee기록 선택결과가 비어 있습니다.

TRUNCATE TABLE vs DELETE

DELETE와 TRUNCATE TABLE은 같은 효과를 보이지만 작동 방식이 다릅니다. 이 두 문장 사이의 주요 차이점은 다음과 같습니다:

  • TRUNCATE TABLE 문은 테이블을 지우고 다시 생성하며, 모든 자동 증가 값이 초기 값으로 재설정됩니다(보통 0입니다).1)。

  • DELETE는 선택적인 WHERE 절을 사용하여 지우려는 행을 필터링할 수 있지만, TRUNCATE TABLE은 WHERE 절을 지원하지 않으며 모든 행을 지웁니다.

  • TRUNCATE TABLE은 DELETE보다 빠르고 시스템 자원을 사용하는 데 더 적습니다. 왜냐하면 DELETE는 영향을 받는 행 수를 스캔하고, 각 행을 하나씩 지우며, 각 지운 행에 대해 데이터베이스 로그에 항목을 기록합니다. 반면에 TRUNCATE TABLE은 모든 행을 지우지만 추가 정보를 제공하지 않기 때문입니다.

푸시:모든 행을 지우고 전체 테이블을 다시 생성하려면 TRUNCATE TABLE을 사용하세요. 특정 조건에 따라 행의 수를 제한하거나 자동 증가 값을 재설정하지 않고 싶다면 DELETE를 사용하세요.