Wat is de zoekopdracht VERWIJDEREN?
Het MySQL DELETE- commando wordt gebruikt om rijen te verwijderen die niet langer nodig zijn uit de databasetabellen. Het verwijdert de hele rij uit de tabel en retourneert het aantal verwijderde rijen. De opdracht Verwijderen is handig om tijdelijke of verouderde gegevens uit uw database te verwijderen.
De verwijderquery in MySQL kan in een enkele query meer dan één rij uit een tabel verwijderen. Dit blijkt voordelen te zijn bij het verwijderen van grote aantallen rijen uit een databasetabel.
Als een rij Verwijderen in de MySQL-rij eenmaal is verwijderd, kan deze niet worden hersteld. Het wordt daarom sterk aanbevolen om databaseback-ups te maken voordat u gegevens uit de database verwijdert. Hiermee kunt u de database herstellen en de gegevens later bekijken, mocht dit nodig zijn.
Hoe een rij in MySQL te verwijderen
Om een rij in MySQL te verwijderen, wordt de DELETE FROM-instructie gebruikt:
DELETE FROM `table_name` [WHERE condition];
HIER
- DELETE FROM `table_name` vertelt de MySQL-server om rijen uit de tabel te verwijderen ...
- [WHERE-voorwaarde] is optioneel en wordt gebruikt om een filter te plaatsen dat het aantal rijen beperkt dat wordt beïnvloed door de MySQL DELETE-rijquery.
Als de WHERE-clausule niet wordt gebruikt in de MySQL DELETE-query, worden alle rijen in een bepaalde tabel verwijderd.
Voorbeeld van MySQL-verwijderquery
Voordat we verder ingaan op de bespreking van de DELETE-opdracht, laten we wat voorbeeldgegevens invoegen in de filmtabel om mee te werken.
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);
Door het bovenstaande script uit te voeren, worden drie (3) films toegevoegd aan de filmtabel. Voordat we verder gaan met onze les, laten we alle films in onze tabel bekijken. Het onderstaande script doet dat.
SELECT * FROM `movies`;
Het uitvoeren van het bovenstaande script geeft ons de volgende resultaten.
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 |
Laten we aannemen dat de Myflix-videobibliotheek niet langer "The Great Dictator" aan zijn leden wil verhuren en dat ze het uit de database willen verwijderen. De film-ID is 18, we kunnen het onderstaande script gebruiken om de rij uit de filmtabel te verwijderen.
DELETE FROM `movies` WHERE `movie_id` = 18;
Het uitvoeren van het bovenstaande script in MySQL WorkBench tegen de Myflix verwijdert de film met id 18 uit de databasetabel.
Laten we eens kijken naar de huidige status van de filmtafel.
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 |
NOTITIE:
- de film met id 18 is niet geretourneerd in de queryresultaatset.
- u kunt geen enkele kolom voor een tabel verwijderen. U kunt een hele rij verwijderen.
Stel dat we een lijst hebben met films die we willen verwijderen. We kunnen de WHERE-component samen met IN gebruiken.
DELETE FROM `movies` WHERE `movie_id` IN (20,21);
Door het bovenstaande script uit te voeren, worden films met ID's 20 en 21 uit onze filmtabel verwijderd.
Overzicht
- De delete-opdracht wordt gebruikt om gegevens die niet langer nodig zijn uit een tabel te verwijderen.
- De "WHERE-clausule" wordt gebruikt om het aantal rijen te beperken dat wordt beïnvloed door de DELETE-query.
- Als de gegevens eenmaal zijn verwijderd, kunnen ze niet meer worden hersteld. Het wordt daarom ten zeerste aanbevolen een back-up te maken voordat u gegevens verwijdert.