[MySQL] DELETE FROM

2024. 8. 9. 22:17MySQL/SQL 기본

DELETE는 행 단위로 삭제를 한다. 

DELETE [ LOW_PRIORITY ] [ QUICK ] [ IGNORE ] FROM table
[WHERE conditions]
[ORDER BY expression [ ASC | DESC ]]
[LIMIT number_rows];

 

만약 WHERE문이 생략되면 전체 데이터를 삭제한다. 'Aamer'을 삭제하려면 다음과 같이 하면 된다. 

USE sqldb;
DELETE FROM testTbl4 WHERE Fname = 'Aamer';

 

만약 Aamer 중에서 상위 5건만 삭제하고 싶으면 LIMIT을 추가하면 된다. 

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

 

대용량 테이블 삭제

테이블 삭제는 DELETE, DROP, TRUNCATE를 사용할 수 있다. 

DELETE FROM bigTbl1;
DROP TABLE bigTbl2;
TRUNCATE TABLE bigTbl3;

 

그런데 각각 수행 시간이 다르다. 유달리 DELETE만 시간이 많이 잡아먹는다. 트랜잭션 로그를 기록하기 때문인데 이 때문에 테이블 구조를 남기고 싶으면 TRUNCATE는, 테이블 자체가 필요없을 경우에는 DROP을 사용하면 된다. 

'MySQL > SQL 기본' 카테고리의 다른 글

[MySQL] 데이터 형식 변환 함수  (0) 2024.08.13
[MySQL] 변수  (0) 2024.08.12
[MySQL]UPDATE문  (0) 2024.08.08
[MySQL] 집계 함수  (0) 2024.08.05
[MySQL]SELECT문  (0) 2024.08.04