DELETE: xóa hàng theo điều kiện (DELETE FROM t WHERE ...), có thể xóa một phần. Là DML, ghi log từng hàng, chạy trong transaction (rollback được), kích hoạt trigger, tôn trọng FK. Xóa nhiều hàng thì chậm và để lại dead tuple (cần VACUUM ở Postgres). Không reset bộ đếm sequence.TRUNCATE: xóa toàn bộ hàng của bảng cực nhanh bằng cách bỏ luôn vùng lưu trữ, không quét từng hàng. Là DDL; trong PostgreSQL vẫn transaction-safe (rollback được) nhưng lấy khóa mạnh; không kích hoạt trigger hàng; có thểRESTART IDENTITYđể reset sequence. Không dùng đượcWHERE.DROP: xóa cả bảng — dữ liệu + cấu trúc (cột, index, ràng buộc) khỏi schema. Bảng không còn tồn tại.
Tóm tắt: DELETE = xóa có chọn lọc; TRUNCATE = làm rỗng nhanh cả bảng; DROP = xóa hẳn bảng.