Qu'est-ce que la requête DELETE?
La commande MySQL DELETE est utilisée pour supprimer les lignes qui ne sont plus nécessaires des tables de la base de données. Il supprime la ligne entière de la table et renvoie le nombre de lignes supprimées. La commande Delete est pratique pour supprimer des données temporaires ou obsolètes de votre base de données.
La requête Supprimer dans MySQL peut supprimer plus d'une ligne d'une table dans une seule requête. Cela s'avère être des avantages lors de la suppression d'un grand nombre de lignes d'une table de base de données.
Une fois qu'une ligne Supprimer dans la ligne MySQL a été supprimée, elle ne peut pas être récupérée. Il est donc fortement recommandé de faire des sauvegardes de la base de données avant de supprimer des données de la base de données. Cela peut vous permettre de restaurer la base de données et d'afficher les données ultérieurement si nécessaire.
Comment supprimer une ligne dans MySQL
Pour supprimer une ligne dans MySQL, l'instruction DELETE FROM est utilisée:
DELETE FROM `table_name` [WHERE condition];
ICI
- DELETE FROM `nom_table` indique au serveur MySQL de supprimer les lignes de la table…
- [Condition WHERE] est facultative et est utilisée pour mettre un filtre qui limite le nombre de lignes affectées par la requête de ligne MySQL DELETE.
Si la clause WHERE n'est pas utilisée dans la requête MySQL DELETE, toutes les lignes d'une table donnée seront supprimées.
Exemple de requête de suppression MySQL
Avant d'entrer dans la discussion plus détaillée de la commande DELETE, insérons des exemples de données dans la table des films pour travailler avec.
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);
L'exécution du script ci-dessus ajoute trois (3) films dans le tableau des films. Avant d'aller plus loin dans notre leçon, mettons tous les films dans notre tableau. Le script ci-dessous fait cela.
SELECT * FROM `movies`;
L'exécution du script ci-dessus nous donne les résultats suivants.
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 |
Supposons que la vidéothèque Myflix ne souhaite plus louer "The Great Dictator" à ses membres et qu'ils souhaitent le retirer de la base de données. Son identifiant de film est 18, nous pouvons utiliser le script ci-dessous pour supprimer sa ligne du tableau des films.
DELETE FROM `movies` WHERE `movie_id` = 18;
L'exécution du script ci-dessus dans MySQL WorkBench sur Myflix supprime le film avec l'ID 18 de la table de base de données.
Voyons l'état actuel de la table des films.
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 |
REMARQUE:
- le film avec l'ID 18 n'a pas été renvoyé dans le jeu de résultats de la requête.
- vous ne pouvez pas supprimer une seule colonne pour une table. Vous pouvez supprimer une ligne entière.
Disons que nous avons une liste de films que nous voulons supprimer. Nous pouvons utiliser la clause WHERE avec IN.
DELETE FROM `movies` WHERE `movie_id` IN (20,21);
L'exécution du script ci-dessus supprime les films avec les ID 20 et 21 de notre tableau des films.
Résumé
- La commande delete est utilisée pour supprimer les données qui ne sont plus nécessaires d'une table.
- La "clause WHERE" est utilisée pour limiter le nombre de lignes affectées par la requête DELETE.
- Une fois les données supprimées, elles ne peuvent pas être récupérées, il est donc fortement recommandé de faire des sauvegardes avant de supprimer les données.