Hapus vs Potong
Kedua perintah SQL (Structure Query Language), Delete dan Truncate digunakan untuk menghapus data yang disimpan dalam tabel dalam database. Delete adalah pernyataan DML (Data Manipulation Language) dan menghapus beberapa atau semua baris tabel. Klausa 'Where' digunakan untuk menentukan baris yang harus dihapus, dan jika klausa Where tidak digunakan dengan pernyataan Hapus, klausa tersebut akan menghapus semua data dalam tabel. Truncate adalah pernyataan DDL (Data Definition Language), dan menghapus seluruh data dari tabel. Kedua perintah ini tidak merusak struktur tabel dan referensi ke tabel, dan hanya data yang dihapus sesuai kebutuhan.
Hapus Pernyataan
Pernyataan Delete memungkinkan pengguna untuk menghapus data dari tabel yang ada dalam database berdasarkan kondisi yang ditentukan, dan 'klausa Where' digunakan untuk menentukan kondisi ini. Perintah hapus disebut sebagai eksekusi yang dicatat, karena hanya menghapus satu baris pada satu waktu, dan menyimpan entri untuk setiap penghapusan baris dalam log transaksi. Jadi, ini menyebabkan operasi menjadi lebih lambat. Hapus adalah pernyataan DML, sehingga tidak secara otomatis dilakukan saat menjalankan perintah. Oleh karena itu, operasi Hapus dapat dibatalkan untuk mengakses data lagi, jika diperlukan. Setelah eksekusi perintah Hapus, itu harus dilakukan atau dibatalkan untuk menyimpan perubahan secara permanen. Hapus pernyataan tidak menghapus struktur tabel tabel dari database. Juga tidak membatalkan alokasi ruang memori yang digunakan oleh tabel.
Sintaks khas untuk perintah Hapus dinyatakan di bawah ini.
HAPUS DARI
atau
HAPUS DARI MANA
Memotong Pernyataan
Pernyataan Truncate menghapus semua data dari tabel yang ada dalam database, tetapi mempertahankan struktur tabel yang sama, juga batasan integritas, hak akses, dan hubungan ke tabel lain. Jadi, tidak perlu lagi mendefinisikan tabel, dan struktur tabel yang lama dapat digunakan, jika pengguna ingin menggunakan kembali tabel tersebut. Truncate menghapus seluruh data dengan membatalkan alokasi halaman data yang digunakan untuk menyimpan data, dan hanya alokasi halaman ini yang disimpan dalam log transaksi. Oleh karena itu, perintah truncate hanya menggunakan sumber daya sistem dan log transaksi yang lebih sedikit untuk operasi, sehingga lebih cepat daripada perintah terkait lainnya. Truncate adalah perintah DDL, sehingga menggunakan komitmen otomatis sebelum dan sesudah eksekusi pernyataan. Oleh karena itu, truncate tidak dapat memutar kembali data dengan cara apa pun. Ini melepaskan ruang memori yang digunakan oleh tabel setelah eksekusi. Tetapi pernyataan Truncate tidak dapat diterapkan pada tabel yang direferensikan oleh batasan kunci asing.
Berikut adalah sintaks umum untuk pernyataan Truncate.
TRUNCATE TABEL
Apa perbedaan antara Hapus dan Potong?
1. Perintah Delete dan Truncate menghapus data dari tabel yang ada dalam database tanpa merusak struktur tabel atau referensi lain ke tabel.
2. Namun, perintah Delete dapat digunakan untuk menghapus baris tertentu hanya dalam tabel menggunakan kondisi yang relevan, atau untuk menghapus semua baris tanpa kondisi apa pun, sedangkan perintah Truncate hanya dapat digunakan untuk menghapus seluruh data dalam tabel.
3. Hapus adalah perintah DML, dan itu dapat memutar kembali operasi jika perlu, tetapi Truncate adalah perintah DDL, jadi ini adalah pernyataan komit otomatis dan tidak dapat dibatalkan dengan cara apa pun. Jadi penting untuk menggunakan perintah ini dengan hati-hati dalam manajemen database.
4. Operasi truncate mengkonsumsi lebih sedikit sumber daya sistem dan sumber daya log transaksi daripada operasi Hapus, oleh karena itu, Truncate dianggap lebih cepat daripada Hapus.
5. Juga, Hapus tidak mengalokasikan ruang yang digunakan oleh tabel, sedangkan Truncate membebaskan ruang yang digunakan setelah eksekusi, jadi Hapus tidak efisien jika menghapus seluruh data dari tabel database.
6. Namun, Truncate tidak diperbolehkan untuk digunakan ketika tabel direferensikan oleh batasan kunci asing, dan dalam hal ini, perintah Delete dapat digunakan sebagai pengganti Truncate.
7. Terakhir, kedua perintah ini memiliki kelebihan dan kekurangan dalam penerapannya dalam Sistem Manajemen Basis Data dan pengguna harus menyadari penggunaan perintah ini dengan tepat untuk mencapai hasil yang baik.