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.

  • ๏ธ Pernyataan Inti: Perintah DELETE FROM `table_name` [WHERE condition] menghapus seluruh baris dan mengembalikan jumlah baris yang dihapus.
  • โš ๏ธ Bagian yang dihilangkan: Menghilangkan klausa WHERE akan menghapus semua baris dalam tabel, jadi selalu filter sebelum mengeksekusi.
  • ๐ŸŽฏ TargetPenghapusan ed: WHERE `movie_id` = 18 menghapus satu record, sedangkan WHERE `movie_id` IN (20,21) menghapus beberapa record dalam satu pernyataan.
  • ๐Ÿ” Tindakan yang Tidak Dapat Dibalikkan: Data yang dihapus tidak dapat dipulihkan tanpa cadangan, oleh karena itu, cadangkan basis data sebelum menjalankan perintah DELETE.
  • ๐Ÿ“Š Cakupan Tingkat Baris: Perintah DELETE hanya menghapus seluruh baris; menghapus nilai kolom tunggal memerlukan perintah UPDATE dengan nilai NULL.
  • ๏ธ HAPUS vs POTONG vs JATUHKAN: Perintah DELETE memfilter baris, TRUNCATE mengosongkan tabel secara instan, dan DROP menghapus struktur tabel itu sendiri.

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.

Pertanyaan Umum Demo Slot

Hanya di dalam transaksi yang sedang berjalan. Jalankan START TRANSACTION, eksekusi DELETE, lalu ROLLBACK untuk membatalkannya. Setelah COMMIT atau dengan autocommit diaktifkan, baris-baris tersebut hilang dan hanya backup yang dapat memulihkannya.

Gunakan perintah DELETE multi-tabel dengan BERGABUNG, dengan menyebutkan kedua tabel sebelum kata kunci FROM. Atau, definisikan kunci asing dengan ON DELETE CASCADE sehingga baris anak dihapus secara otomatis ketika baris induk dihapus.

Mode Pembaruan Aman diaktifkan secara default di MySQL WorkbenchFitur ini menolak perintah DELETE apa pun yang klausa WHERE-nya tidak menggunakan kolom kunci, sehingga mencegah penghapusan seluruh tabel secara tidak sengaja. Nonaktifkan fitur ini di Edit > Preferensi > Editor SQL.

Ya. Asisten AI menerjemahkan permintaan dalam bahasa Inggris biasa ke dalam sintaks DELETE dan dapat menjelaskan klausa WHERE. Selalu tinjau filter yang dihasilkan terhadap SELECT terlebih dahulu, karena model AI tidak dapat melihat data langsung Anda.

Tidak. Biarkan AI membuat draf pernyataan tersebut, tetapi jalankan sendiri terlebih dahulu pada salinan cadangan atau sementara. Klausa WHERE yang hilang akan menghapus setiap baris, dan tidak ada alat AI yang dapat membalikkan hal itu setelah transaksi dilakukan.

Ringkaslah postingan ini dengan: