MySQL HAPUS Kueri: Cara Menghapus Baris dari Tabel
โก Ringkasan Cerdas
MySQL Perintah DELETE menghapus baris yang tidak lagi dibutuhkan dari sebuah tabel dan mengembalikan jumlah baris yang terpengaruh. Sumber daya ini menjelaskan sintaks DELETE, pemfilteran WHERE, penghapusan beberapa baris dengan IN, dan alternatif yang lebih aman yaitu TRUNCATE dan DROP.

Apa itu Permintaan DELETE?
The MySQL DELETE Pernyataan DELETE digunakan untuk menghapus baris yang tidak lagi diperlukan dari tabel basis data. Pernyataan ini menghapus seluruh baris dari tabel dan mengembalikan jumlah baris yang dihapus. Pernyataan DELETE sangat berguna ketika Anda perlu membersihkan data sementara atau usang dari basis data Anda.
Kueri DELETE di MySQL Dapat menghapus lebih dari satu baris dari sebuah tabel dalam satu kali eksekusi. Hal ini terbukti menguntungkan ketika Anda menghapus sejumlah besar baris dari tabel basis data.
Setelah sebuah baris dihapus, baris tersebut tidak dapat dipulihkan. Selalu buat cadangan basis data sebelum menghapus data, sehingga basis data dapat dipulihkan dan ditinjau kembali di kemudian hari jika diperlukan.
Cara Menghapus Baris di MySQL
Setelah tujuan pernyataan tersebut jelas, langkah selanjutnya adalah sintaksnya. Untuk menghapus baris di MySQL, pernyataan DELETE FROM digunakan:
DELETE FROM `table_name` [WHERE condition];
SINI:
- HAPUS DARI `table_name` menceritakan MySQL server untuk menghapus baris dari tabel yang disebutkan.
- [Kondisi MANA] Opsi ini bersifat opsional dan digunakan untuk menerapkan filter yang membatasi jumlah baris yang terpengaruh oleh kueri DELETE.
Jika klausa WHERE tidak digunakan di MySQL HAPUS kueri, lalu semua Baris-baris dalam tabel tertentu akan dihapus.
โ ๏ธ Peringatan: Jalankan filter sebagai SELECT terlebih dahulu. Jika filter tersebut mengembalikan baris yang persis sama dengan yang ingin Anda hapus, maka perintah DELETE yang sesuai aman digunakan. Sintaks lengkapnya didokumentasikan di... MySQL Manual Pernyataan HAPUS.
Contoh MySQL Hapus Kueri
Bagian selanjutnya membangun kumpulan data kecil lalu menghapus beberapa data darinya.
Langkah 1: Masukkan Data Sampel
Sebelum kita membahas lebih detail tentang pernyataan SQL DELETE, mari kita masukkan beberapa data sampel ke dalam tabel film untuk dikerjakan.
INSERT INTO `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('The Great Dictator', 'Charlie Chaplin', 1940, 7); INSERT INTO `movies` (`title`, `director`, `category_id`) VALUES ('sample movie', 'Anonymous', 8); INSERT INTO `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('movie 3', 'John Brown', 1920, 8);
Menjalankan skrip di atas akan menambahkan tiga (3) film ke dalam tabel film. Sebelum melanjutkan, mari kita daftarkan semua film yang ada di tabel kita.
SELECT * FROM `movies`;
Menjalankan skrip di atas memberikan hasil sebagai berikut. Tiga baris yang baru dimasukkan ditandai dengan sorotan.
| film_id | judul | direktur | tahun_dirilis | kategori_id |
|---|---|---|---|---|
| 1 | Bajak Laut Karibia 4 | Rob Marshall | 2011 | 1 |
| 2 | Melupakan Sarah Marshal | Nicholas Stoller | 2008 | 2 |
| 3 | X-Men | NULL | 2008 | NULL |
| 4 | Code Nama Hitam | Edgar Jimz | 2010 | NULL |
| 5 | Gadis Kecil Ayah | NULL | 2007 | 8 |
| 6 | malaikat dan iblis | NULL | 2007 | 6 |
| 7 | Da Vinci Code | NULL | 2007 | 6 |
| 9 | Honey mooners | John Schultz | 2005 | 8 |
| 16 | 67% Bersalah | NULL | 2012 | NULL |
| 18 | The Great Dictator | Charlie Chaplin | 1940 | 7 |
| 19 | contoh film | Anonim | NULL | 8 |
| 20 | film 3 | John Brown | 1920 | 8 |
Langkah 2: Hapus Satu Baris
Misalkan perpustakaan video Myflix tidak lagi ingin menyewakan film โThe Great Dictatorโ dan ingin film tersebut dihapus dari basis data. ID filmnya adalah 18, jadi skrip di bawah ini menghapus baris tersebut.
DELETE FROM `movies` WHERE `movie_id` = 18;
Menjalankan skrip di atas dalam MySQL Meja kerja Perintah ini menghapus film dengan ID 18 dari tabel di dalam database Myflix.
Sekarang mari kita periksa status terkini dari tabel film.
SELECT * FROM `movies`;
| film_id | judul | direktur | tahun_dirilis | kategori_id |
|---|---|---|---|---|
| 1 | Bajak Laut Karibia 4 | Rob Marshall | 2011 | 1 |
| 2 | Melupakan Sarah Marshal | Nicholas Stoller | 2008 | 2 |
| 3 | X-Men | NULL | 2008 | NULL |
| 4 | Code Nama Hitam | Edgar Jimz | 2010 | NULL |
| 5 | Gadis Kecil Ayah | NULL | 2007 | 8 |
| 6 | malaikat dan iblis | NULL | 2007 | 6 |
| 7 | Da Vinci Code | NULL | 2007 | 6 |
| 9 | Honey mooners | John Schultz | 2005 | 8 |
| 16 | 67% Bersalah | NULL | 2012 | NULL |
| 19 | contoh film | Anonim | NULL | 8 |
| 20 | film 3 | John Brown | 1920 | 8 |
CATATAN:
- Film dengan ID 18 tidak lagi muncul dalam hasil pencarian.
- Anda tidak dapat menghapus satu kolom saja dari sebuah tabel dengan perintah DELETE. Perintah tersebut menghapus seluruh baris. Untuk menghapus satu kolom, gunakan perintah lain. PERBARUI kueri yang mengatur kolom menjadi NULL.
Langkah 3: Menghapus Beberapa Baris dengan IN
Misalkan kita memiliki daftar film yang ingin kita hapus. Daripada menjalankan satu pernyataan per baris, kita dapat menggabungkan klausa WHERE dengan operator IN.
DELETE FROM `movies` WHERE `movie_id` IN (20,21);
Menjalankan skrip di atas akan menghapus film dengan ID 20 dan 21 dari tabel film kita dalam satu kali proses.
HAPUS vs POTONG vs JATUHKAN MySQL
Menghapus bukanlah satu-satunya cara untuk menghapus data dari MySQLPara pemula sering kali menggunakan perintah ini padahal perintah yang lebih cepat akan lebih tepat, jadi tabel di bawah ini membandingkan ketiga perintah penghapusan tersebut.
| Fitur | DELETE | MEMOTONG | DROP |
|---|---|---|---|
| Jenis perintah | DML | HAL-HAL | HAL-HAL |
| klausa WHERE | Didukung | Tidak didukung | Tidak didukung |
| Apa yang dihilangkan | Baris terpilih | Semua baris | Struktur baris dan tabel |
| Rollback | Kemungkinan terjadi di dalam transaksi | Tidak mungkin (komitmen implisit) | Tidak mungkin (komitmen implisit) |
| AUTO_INCREMENT | Penghitung dipertahankan | Penghitung diatur ulang ke nilai awal. | Meja dan konter dilepas bersamaan dengan meja. |
| Kecepatan di meja besar | Lambat (baris demi baris) | Sangat cepat | Sangat cepat |
Gunakan DELETE jika Anda memerlukan filter atau kemampuan untuk mengembalikan perubahan. Gunakan POTONG TABEL Gunakan perintah DROP hanya ketika Anda ingin mengosongkan tabel dengan cepat dan mengatur ulang penghitung AUTO_INCREMENT-nya. Perintah ini hanya digunakan ketika tabel itu sendiri tidak lagi dibutuhkan, karena perintah ini menghapus definisi tabel beserta datanya.
