Perbedaan antara Hapus dan Hapus

Anonim

Hapus vs. Truncate

Perintah SQL (Structure Query Language), Delete and Truncate digunakan untuk menyingkirkan data yang tersimpan dalam tabel dalam database. Hapus adalah pernyataan DML (Data Manipulation Language) dan menghapus beberapa atau semua baris tabel. Klausa 'Where clause' digunakan untuk menentukan baris yang diminta untuk dihapus, dan jika klausa Where tidak digunakan dengan Delete statement, ia akan menghapus semua data dalam tabel. Truncate adalah pernyataan DDL (Data Definition Language), dan menghapus keseluruhan data dari tabel. Kedua perintah ini tidak menghancurkan struktur tabel dan referensi ke tabel, dan hanya data yang dihapus sesuai kebutuhan.

Delete Statement

Hapus pernyataan memungkinkan pengguna untuk menghapus data dari tabel yang ada dalam database berdasarkan kondisi tertentu, dan klausa 'Where clause' digunakan untuk menentukan kondisi ini. Perintah Delete disebut sebagai eksekusi log, karena hanya menghapus satu baris pada satu waktu, dan menyimpan entri untuk setiap penghapusan baris di log transaksi. Jadi, ini menyebabkan operasi lebih lambat. Hapus adalah pernyataan DML, dan karenanya tidak dilakukan secara otomatis saat menjalankan perintah. Karena itu, operasi Delete bisa digulung kembali untuk mengakses data lagi, jika diperlukan. Setelah eksekusi perintah Delete, itu harus dilakukan atau digulung kembali untuk menyimpan perubahan secara permanen. Hapus pernyataan tidak menghapus struktur tabel tabel dari database. Juga tidak deallocate ruang memori yang digunakan oleh meja.

Sintaks tipikal untuk perintah Delete tercantum di bawah ini.

HAPUS DARI

atau

HAPUS DARI WHERE

Pernyataan Truncate

Pernyataan pemotongan menghapus semua data dari tabel yang ada dalam database, namun mempertahankan struktur tabel yang sama, juga batasan integritas, hak akses dan hubungan ke tabel lainnya. Jadi, tidak perlu mendefinisikan tabel lagi, dan struktur tabel lama dapat digunakan, jika pengguna ingin menggunakan kembali tabel lagi. Truncate menghapus keseluruhan data dengan deallocating halaman data yang digunakan untuk menyimpan data, dan hanya deallocation halaman ini yang disimpan dalam log transaksi. Oleh karena itu, perintah truncate hanya menggunakan sedikit sumber daya sistem dan sumber log transaksi untuk operasi, jadi lebih cepat daripada perintah terkait lainnya. Truncate adalah perintah DDL, jadi menggunakan komitmen otomatis sebelum dan sesudah eksekusi pernyataan. Oleh karena itu, truncate tidak dapat mengembalikan data lagi dengan cara apa pun. Ini melepaskan ruang memori yang digunakan oleh meja setelah eksekusi. Tapi pernyataan Truncate tidak bisa diterapkan pada tabel yang direferensikan oleh foreign key constraints.

Berikut adalah sintaks umum untuk pernyataan Truncate.

TRUNCATE TABLE

Apa perbedaan antara Delete dan Truncate?

1. Perintah Delete and Truncate menghapus data dari tabel yang ada dalam database tanpa merugikan struktur tabel atau referensi lainnya ke tabel.

2. Namun, perintah Delete dapat digunakan untuk menghapus baris tertentu hanya dalam sebuah tabel dengan menggunakan kondisi yang relevan, atau untuk menghapus semua baris tanpa kondisi apapun, sementara perintah Truncate hanya dapat digunakan untuk menghapus keseluruhan data dalam tabel.

3. Hapus adalah perintah DML, dan bisa memutar ulang operasi jika perlu, tapi Truncate adalah perintah DDL, jadi ini adalah pernyataan komit otomatis dan tidak dapat digulung kembali dengan cara apa pun. Jadi penting untuk menggunakan perintah ini dengan hati-hati dalam pengelolaan database.

4. Operasi pemotongan menghabiskan lebih sedikit sumber daya sistem dan sumber log transaksi daripada operasi Hapus, oleh karena itu, Truncate dianggap lebih cepat daripada Hapus.

5. Selain itu, Hapus tidak menghilangkan 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 diizinkan untuk digunakan saat tabel direferensikan oleh batasan kunci asing, dan dalam hal ini, perintah Delete dapat digunakan sebagai pengganti Truncate.

7. Akhirnya, kedua perintah ini memiliki kelebihan dan kekurangan dalam menerapkannya dalam Sistem Manajemen Database dan pengguna harus sadar menggunakan perintah ini secara tepat untuk mencapai hasil yang baik.