Application/Database
[MySQL] 데이터 삭제 DELETE, DROP, TRUNCATE
Kangjieun11
2021. 4. 13. 01:07
728x90
DELETE
테이블에 데이터를 행 단위로 삭제하는 명령어
DELETE FROM 테이블이름 WHERE 조건; |
DELETE할 때 WHERE 절을 생략하면 전체 데이터가 삭제되니 주의 !!!!!!
데이터 1개 삭제
![](https://blog.kakaocdn.net/dn/bgTdAj/btq2zehocds/7oiTjq9zMvbLHKNvg2kRk1/img.png)
id가 10006인 데이터를 삭제하라
DELETE FROM testTBL4 WHERE id= 10006 |
![](https://blog.kakaocdn.net/dn/bDYOSx/btq2s0kUr5p/kv6fKoJTo1rx6lYCBnDFbk/img.png)
LIMIT절 : 상위 n개만 삭제하기
Fname이 Aamer인 상위 데이터 5개를 삭제하라
먼저 Fname이 Aamer 인 데이터들만 추출해보았다.
SELECT * FROM testTBL4 WHERE Fname = 'Aamer';
![](https://blog.kakaocdn.net/dn/oBcmL/btq2u299k4C/r4TOnDa1vqxmUwD7elyqKK/img.png)
DELETE FROM testTBL4 WHERE Fname = 'Aamer' LIMIT 5; |
![](https://blog.kakaocdn.net/dn/HN5nC/btq2uaAAbZg/k56CcCbndFb5VmKikDRLbk/img.png)
노랑색으로 칠해두었던 상위 5개 데이터가 사라진 것을 볼 수 있다.
DELETE 는 한 행 자체를 삭제하는 것이므로 열조건을 쓸 필요가 없다.
잘못된 생각 : DELETE id FROM .....
무조건 DELETE FROM ....
DELETE, DROP, TRUNCATE
테이블 삭제를 통해 실행 시간을 확인해보자.
DELETE FROM bigTBL1; DROP TABLE bigTBL2; TRUNCATE TABLE bigTBL3; |
![](https://blog.kakaocdn.net/dn/c17YrB/btq2x31QxnY/xi5D9iJJOIsL62c7AzqcLK/img.png)
실행시간을 고려하면 테이블 삭제시 DROP 과 TRUNCATE 사용 이유는 다음과 같다.
DROP : 대용량 테이블 전체 내용을 삭제할 떄, 테이블 자체가 필요없을 때 사용
TRUNCATE : 테이블의 구조를 남겨놓고 싶을 때 사용