Application/Database

[MySQL] 데이터 삭제 DELETE, DROP, TRUNCATE

Kangjieun11 2021. 4. 13. 01:07
728x90

DELETE

테이블에 데이터를 행 단위로 삭제하는 명령어

DELETE FROM 테이블이름 
WHERE 조건;

DELETE할 때 WHERE 절을 생략하면 전체 데이터가 삭제되니 주의  !!!!!!

 

데이터 1개 삭제

 

 

 

 

 

id가 10006인 데이터를 삭제하라

DELETE FROM testTBL4 WHERE id= 10006

 

 

 

 

 

LIMIT절 : 상위 n개만 삭제하기

Fname이 Aamer인 상위 데이터 5개를 삭제하라

 

먼저 Fname이 Aamer 인 데이터들만 추출해보았다.

 

SELECT * FROM testTBL4 WHERE Fname = 'Aamer';

 

 

 

 

DELETE FROM testTBL4 WHERE Fname = 'Aamer' LIMIT 5;

 

 

 

 

노랑색으로 칠해두었던 상위 5개 데이터가 사라진 것을 볼 수 있다. 

DELETE 는 한 행 자체를 삭제하는 것이므로 열조건을 쓸 필요가 없다. 

 

잘못된 생각 : DELETE id FROM .....

무조건 DELETE FROM ....

 

DELETE, DROP, TRUNCATE

 

테이블 삭제를 통해 실행 시간을 확인해보자. 

 

DELETE FROM bigTBL1;
DROP TABLE bigTBL2;
TRUNCATE TABLE bigTBL3;

 

 

 

 

 

 

실행시간을 고려하면 테이블 삭제시 DROP 과 TRUNCATE 사용 이유는 다음과 같다.

 

DROP : 대용량 테이블 전체 내용을 삭제할 떄, 테이블 자체가 필요없을 때 사용

 

TRUNCATE : 테이블의 구조를 남겨놓고 싶을 때 사용