POTONG SQL
SQL TRUNCATE digunakan untuk menghapus semua baris dari tabel. Pernyataan TRUNCATE adalah versi DELETE yang tidak menggunakan klausa WHERE. Mungkin lebih baik daripada menjatuhkan dan menambahkan kembali tabel melalui SQL. TRUNCATE pada dasarnya melakukan penghapusan dan penambahan baru pada tabel, yang lebih cepat daripada menghapus data baris demi baris.
Perintah tidak dapat diurungkan (tidak dapat diurungkan!); itu tidak akan berfungsi jika tabel lain dikunci (sedang digunakan oleh orang atau program lain), atau jika ada tabel lain yang mereferensikan tabel saat ini.
Perbedaan antara DELETE dan TRUNCATE
Pernyataan DELETE hanya akan menghapus baris berdasarkan kondisi tertentu dalam klausa SQL WHERE (atau semua baris jika Anda menghilangkan WHERE), tetapi tidak mengosongkan ruang yang tersisa di tabel. Hal ini menyebabkan file kembung dan berpotensi BESAR.
Fitur penting lainnya dari TRUNCATE adalah ia akan mengatur ulang bidang nilai secara otomatis/berurutan. Misalnya, jika Anda memiliki kunci utama yang bertambah 1 secara bertahap setiap kali catatan dibuat, fungsi TRUNCATE akan mengatur ulang semuanya; record baru pertama yang dimasukkan ke dalam tabel akan menjadi 1.
Perbedaan Antara DROP dan TRUNCATE
Perintah DROP menghapus tabel dari database; Itu hilang selamanya dan tidak dapat diambil kembali. TRUNCATE, di sisi lain, menghapus semua baris tetapi mempertahankan tabel dan semua pengaturannya. Ini berarti indeks, hak akses, batasan integritas (misalnya, ID karyawan harus berupa angka), dan hubungan dengan tabel lain dipertahankan.
TRUNCATE tidak hanya menghapus semua baris dari tabel, tetapi juga membebaskan ruang untuk penggunaan lain. Namun, beberapa database mengizinkan administrator untuk memutuskan apakah akan mempertahankan ruang ini atau mengosongkannya. (Lihat contoh Oracle dalam pelajaran ini.)
SQL TRUNCATE beraksi
Gambar tabel sebelum pemotongan menunjukkan tabel contoh kecil sebelum perintah TRUNCATE dijalankan. Catat ID kolom – secara otomatis diberi nomor 1-4.
|
tabel sebelum dipotong |
Setelah perintah TRUNCATE, tabel akan terlihat seperti tabel gambar setelah dipotong : Penomoran otomatis diatur ulang menjadi 1.
|
tabel setelah dipotong |
Contoh berikut menunjukkan cara menggunakan TRUNCATE di sistem manajemen basis data utama: Oracle, SQL Server, dan MySQL. Setiap contoh kode menghapus semua data dari tabel Expired_Credentials di database karyawan.
Peramal
Pernyataan berikut menghapus semua baris dari tabel dan mengembalikan ruang ke database.
TRUNCATE TABLE expired_credentials
Untuk opsi administrator database tingkat lanjut, parameter tambahan dapat digunakan untuk menjaga ruang yang dihapus tetap dialokasikan ke tabel. Ini berguna jika Anda ingin menjaga ruang database untuk ekspansi tabel di masa mendatang: mungkin tabel expired_credentials terpotong pada akhir tahun dan kemudian terisi kembali selama transaksi bisnis.
Parameter REUSE STORAGE menghemat ruang.
TRUNCATE expired_credentials GUNAKAN KEMBALI PENYIMPANAN
SQL Server (Transact-SQL)
SQL Server mengharuskan nama database menjadi awalan dari nama tabel:
TRUNCATE TABLE Employees.Expired_Credentials;
mysql
Sintaks server MySQL adalah:
TRUNCATE TABLE expired_credentials
Ringkasan Pelajaran
Kata kunci TRUNCATE SQL sangat mirip dengan pernyataan DELETE, hanya saja lebih cepat dan tidak harus dilakukan baris demi baris. Perintah bertindak lebih seperti kombinasi DROP dan CREATE, tanpa harus menambahkan kembali semua konfigurasi, hubungan, izin akses, dll. dari meja. Juga, pernyataan TRUNCATE membebaskan ruang yang ditempati oleh baris yang dihapus, yang membantu administrator basis data. Mengontrol ukuran database. Akhirnya, beberapa contoh sistem manajemen basis data yang berbeda disediakan.