본문 바로가기
programming/DataManage

mysql 테이블 삭제 drop truncate 차이 테이블삭제와 데이터삭제

by 개코 - 개발과 코딩 2022. 4. 10.

mysql에서 테이블을 삭제하기 위한 방법으로 drop 명령어와 truncate 명령어를 사용한다. 이 둘의 차이가 있는데 truncate는 테이블의 데이터만을 삭제한다. drop은 데이터와 테이블을 삭제한다. 이 둘의 차이점은 테이블의 삭제유무에 있다. 만약 데이터만 삭제하고 테이블은 남겨두고 싶다면 truncate 구문을 사용하면 되고, 테이블까지 완전히 삭제하려면 drop 명령어를 사용하면 된다.

mysql 테이블 삭제 drop truncate 차이
테이블삭제와 데이터삭제

mysql 에서 테이블을 다룰 때 초기화가 필요한 경우가 있다. 여기서 말하는 초기화는 테이블을 삭제하는 것일 수도 있고, 데이터만 삭제하는 것일 수도 있다.

테이블을 초기화하거나 삭제하기 위한 mysql 의 명령어는 2가지가 있다.

이 명령어는 mysql 에서 drop 명령어와 trucate 명령어이다.

보통 테이블 삭제명령어로 말하지만 차이가 있다.

삭제의 차이와 명령어

mysql 에서 테이블을 삭제할 떄 2가지 방법을 사용한다.

테이블 자체를 완전히 삭제할 수도 있고, 테이블 형태를 남기고 데이터만 완전히 삭제하고자 할 수도 있다.

이 때 사용하는 mysql 테이블 삭제 명령어는 drop 과 truncate 가 있다.

drop 명령어는 데이터와 테이블을 완전히 삭제한다.

truncate 명령어는 데이터만 완전히 삭제하고 테이블은 그대로 둔다.

아래는 drop 과 truncate 명령어 사용법을 보여준다.

// 데이터와 테이블 삭제
DROP TABLE table_name

// 데이터만 삭제
TRUNCATE table_name

샘플코드

이제 mysql 에서 테이블을 만들고 삭제를 해 보도록 한다.

실제로 명령어를 실행하여 데이터를 삭제하고 테이블을 삭제해 보도록 한다.

mysql의 drop 명령어와 truncate 명령어 사용을 위해 테이블을 하나 생성하고, 데이터를 하나 넣었다.

이후 drop 명령어와 truncate 명령어를 사용하며 select 명령어로 테이블의 형태를 살펴본다.

코드를 보자.

CREATE TABLE tb_sample (
	idx INT,
	title VARCHAR(250),
	content TEXT,
	insert_date DATETIME,
	update_date DATETIME
)
;

INSERT INTO tb_sample
(
	idx, title, content, insert_date, update_date
)
VALUES
(
	'1', '제목1', '내용2', NOW(), NOW()
)
;

SELECT * FROM tb_sample
;

TRUNCATE TABLE tb_sample
;

SELECT * FROM tb_sample
;

DROP TABLE tb_sample
;

SELECT * FROM tb_sample
;

테이블을 하나 생성했고, 데이터를 하나 넣었다.

truncate 명령어와 drop 명령어를 사용하면서 select 구문을 테이블을 상태를 살펴보았다.

결과화면을 보자.

mysql 에서 데이터가 있는 테이블의 trucate 명령어를 사용하여 데이터가 삭제되어 초기화된 것을 볼 수 있다. 그리고 drop 명령어를 이용하여 테이블이 삭제된 것을 에러메세지를 통해 확인할 수 있다.

테이블이 없기 때문에 마지막 select 구문에서 에러가 발생한 것이다.

반응형

댓글