English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 튜토리얼에서는 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표기록 선택결과가 비어 있습니다.
DELETE와 TRUNCATE TABLE은 같은 효과를 보이지만 작동 방식이 다릅니다. 이 두 문장 사이의 주요 차이점은 다음과 같습니다:
TRUNCATE TABLE 문은 테이블을 지우고 다시 생성하며, 모든 자동 증가 값이 초기 값으로 재설정됩니다(보통 0입니다).1)。
DELETE는 선택적인 WHERE 절을 사용하여 지우려는 행을 필터링할 수 있지만, TRUNCATE TABLE은 WHERE 절을 지원하지 않으며 모든 행을 지웁니다.
TRUNCATE TABLE은 DELETE보다 빠르고 시스템 자원을 사용하는 데 더 적습니다. 왜냐하면 DELETE는 영향을 받는 행 수를 스캔하고, 각 행을 하나씩 지우며, 각 지운 행에 대해 데이터베이스 로그에 항목을 기록합니다. 반면에 TRUNCATE TABLE은 모든 행을 지우지만 추가 정보를 제공하지 않기 때문입니다.
푸시:모든 행을 지우고 전체 테이블을 다시 생성하려면 TRUNCATE TABLE을 사용하세요. 특정 조건에 따라 행의 수를 제한하거나 자동 증가 값을 재설정하지 않고 싶다면 DELETE를 사용하세요.