Infra/Database
[MySQL] 데이터 삭제 DELETE, DROP, TRUNCATE
sdoaolo
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 : 테이블의 구조를 남겨놓고 싶을 때 사용