Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 테이블의 전체 레코드 삭제 방법 – TRUNCATE 명령어 완벽 가이드

MySQL에서 테이블의 모든 레코드를 한 번에 삭제하려면 TRUNCATE 명령어를 사용하는 것이 가장 간단하고 효율적인 방법입니다. 이 글에서는 TRUNCATE 문법과 실제 예제를 통해 테이블 데이터를 전체 삭제하는 과정을 단계별로 살펴보겠습니다.

TRUNCATE 기본 문법

TRUNCATE 명령어의 기본 문법은 다음과 같습니다.

TRUNCATE TABLE yourTableName;

위 문법을 실행하면 해당 테이블의 모든 레코드가 삭제되지만, 테이블 구조(컬럼 정의)는 그대로 유지됩니다.

예제 테이블 생성하기

먼저 실습용 테이블을 생성해 보겠습니다.

mysql> create table TruncateTableDemo
-> (
    -> BookId int
    -> ,
    -> BookName varchar(200)
-> );
Query OK, 0 rows affected (0.54 sec)

레코드 삽입하기

INSERT 명령어를 사용해 테이블에 샘플 데이터를 추가합니다.

mysql> insert into TruncateTableDemo values(1001,'C in Dept');
Query OK, 1 row affected (0.18 sec)

mysql> insert into TruncateTableDemo values(1002,'The C++ Programming');
Query OK, 1 row affected (0.22 sec)

mysql> insert into TruncateTableDemo values(1003,'Let us C');
Query OK, 1 row affected (0.16 sec)

현재 저장된 데이터 확인하기

SELECT 문으로 테이블에 저장된 모든 레코드를 조회해 보겠습니다.

mysql> select *from TruncateTableDemo;

실행 결과는 다음과 같습니다.

+--------+---------------------+
| BookId |               BookName |
+--------+---------------------+
| 1001   |            C in Dept |
| 1002   | The C++ Programming |
| 1003   |             Let us C |
+--------+---------------------+
3 rows in set (0.00 sec)

총 3개의 레코드가 정상적으로 저장된 것을 확인할 수 있습니다.

TRUNCATE로 전체 레코드 삭제하기

이제 앞서 소개한 TRUNCATE 문법을 적용해 테이블의 모든 레코드를 삭제해 보겠습니다.

mysql> truncate table TruncateTableDemo;
Query OK, 0 rows affected (0.93 sec)

삭제 결과 검증하기

다시 SELECT 문을 실행해 레코드가 모두 삭제되었는지 확인합니다.

mysql> select *from TruncateTableDemo;
Empty set (0.00 sec)

Empty set이 출력되면 테이블의 모든 레코드가 성공적으로 삭제된 것입니다.

TRUNCATE와 DELETE의 차이점

참고로 TRUNCATE는 DELETE와 달리 WHERE 절 없이 전체 삭제만 가능하며, 일반적으로 더 빠르게 동작합니다. 또한 대부분의 경우 자동 증가(AUTO_INCREMENT) 값도 초기화됩니다. 반면 DELETE는 조건부 삭제가 가능하고 롤백이 지원되므로, 상황에 맞게 적절한 명령어를 선택하는 것이 좋습니다.