HAPUS
- HAPUS adalah Perintah DML.
- Pernyataan DELETE dieksekusi menggunakan kunci baris, setiap baris dalam tabel dikunci untuk dihapus.
- Kita dapat menentukan filter di klausa where
- Ini menghapus data tertentu jika ada kondisi.
- Hapus mengaktifkan pemicu karena operasi dicatat satu per satu.
- Lebih lambat dari truncate karena menyimpan log.
- Pengembalian dimungkinkan.
POTONGKAT
- TRUNCATE adalah perintah DDL.
- TRUNCATE TABLE selalu mengunci tabel dan halaman tetapi tidak setiap baris.
- Tidak dapat menggunakan Kondisi Where.
- Ini Menghapus semua data.
- TRUNCATE TABLE tidak dapat mengaktifkan pemicu karena operasi tidak mencatat penghapusan setiap baris.
- Lebih cepat dalam performa, karena tidak menyimpan log apa pun.
- Pengembalian dimungkinkan.
- DELETE dan TRUNCATE keduanya dapat dibatalkan saat digunakan dengan TRANSACTION (TRUNCATE dapat dibatalkan di SQL Server, tetapi tidak di MySQL).
- jika ada PK dengan auto increment, truncate akan mereset counter
http://beginner-sql-tutorial.com/sql-delete-statement .htm