Apakah Pertanyaan DELETE?
Perintah MySQL DELETE digunakan untuk menghapus baris yang tidak lagi diperlukan dari jadual pangkalan data. Ia menghapus keseluruhan baris dari jadual dan mengembalikan jumlah baris yang dihapuskan. Perintah hapus sangat berguna untuk menghapus data sementara atau usang dari pangkalan data anda.
Pertanyaan Hapus di MySQL dapat menghapus lebih dari satu baris dari jadual dalam satu pertanyaan. Ini terbukti menjadi kelebihan ketika mengeluarkan sebilangan besar baris dari jadual pangkalan data.
Setelah baris Hapus di baris MySQL telah dihapus, baris tidak dapat dipulihkan. Oleh itu, sangat disarankan untuk membuat sandaran pangkalan data sebelum menghapus data dari pangkalan data. Ini membolehkan anda memulihkan pangkalan data dan melihat data di kemudian hari sekiranya diperlukan.
Cara Menghapus baris di MySQL
Untuk menghapus baris dalam MySQL, pernyataan DELETE FROM digunakan:
DELETE FROM `table_name` [WHERE condition];
SINI
- HAPUS DARI `table_name` memberitahu pelayan MySQL untuk membuang baris dari jadual ...
- [WHERE condition] adalah pilihan dan digunakan untuk meletakkan penapis yang menyekat jumlah baris yang dipengaruhi oleh pertanyaan baris MySQL DELETE.
Sekiranya klausa DI MANA tidak digunakan dalam pertanyaan HAPUS MySQL, maka semua baris dalam jadual yang diberikan akan dihapus.
Contoh Pertanyaan Hapus MySQL
Sebelum kita membincangkan lebih terperinci arahan DELETE, mari masukkan beberapa contoh data ke dalam jadual filem untuk digunakan.
INSERT INTO `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('The Great Dictator', 'Chalie Chaplie', 1920, 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);
Melaksanakan skrip di atas menambah tiga (3) filem ke dalam jadual filem. Sebelum kita melangkah lebih jauh dalam pelajaran kita, mari kita masukkan semua filem dalam jadual kita. Skrip yang ditunjukkan di bawah menunjukkan bahawa.
SELECT * FROM `movies`;
Melaksanakan skrip di atas memberikan hasil berikut.
movie_id | itle | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X-Men | NULL | 2008 | NULL |
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
5 | Daddy's Little Girls | NULL | 2007 | 8 |
6 | Angels and Demons | NULL | 2007 | 6 |
7 | Davinci Code | NULL | 2007 | 6 |
9 | Honey mooners | John Schultz | 2005 | 8 |
16 | 67% Guilty | NULL | 2012 | NULL |
18 | The Great Dictator | Chalie Chaplie | 1920 | 7 |
19 | sample movie | Anonymous | NULL | 8 |
20 | movie 3 | John Brown | 1920 | 8 |
Anggaplah bahawa pustaka video Myflix tidak lagi mahu menyewakan "The Great Dictator" kepada anggotanya dan mereka mahu ia dikeluarkan dari pangkalan data. Id filemnya adalah 18, kita boleh menggunakan skrip yang ditunjukkan di bawah ini untuk menghapus barisnya dari jadual filem.
DELETE FROM `movies` WHERE `movie_id` = 18;
Melaksanakan skrip di atas di MySQL WorkBench terhadap Myflix akan menghapus filem dengan id 18 dari jadual pangkalan data.
Mari lihat jadual jadual filem terkini.
SELECT * FROM `movies`;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X-Men | NULL | 2008 | NULL |
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
5 | Daddy's Little Girls | NULL | 2007 | 8 |
6 | Angels and Demons | NULL | 2007 | 6 |
7 | Davinci Code | NULL | 2007 | 6 |
9 | Honey mooners | John Schultz | 2005 | 8 |
16 | 67% Guilty | NULL | 2012 | NULL |
19 | sample movie | Anonymous | NULL | 8 |
20 | movie 3 | John Brown | 1920 | 8 |
CATATAN:
- filem dengan id 18 belum kembali dalam set hasil pertanyaan.
- anda tidak boleh memadamkan satu lajur untuk jadual. Anda boleh memadam keseluruhan baris.
Katakan kita mempunyai senarai filem yang ingin kita hapuskan. Kita boleh menggunakan klausa WHERE bersama dengan IN.
DELETE FROM `movies` WHERE `movie_id` IN (20,21);
Melaksanakan skrip di atas akan menghapus filem dengan ID 20 dan 21 dari jadual filem kami.
Ringkasan
- Perintah hapus digunakan untuk menghapus data yang tidak lagi diperlukan dari jadual.
- "Klausa DI MANA" digunakan untuk mengehadkan bilangan baris yang dipengaruhi oleh pertanyaan DELETE.
- Setelah data dihapus, data tidak dapat dipulihkan, oleh itu sangat disarankan membuat sandaran sebelum menghapus data.