Guide sur les requêtes SQL DELETE : Un guide amical pour les débutants
Salut à toi, futur passionné de SQL ! Aujourd'hui, nous allons plonger dans le monde des requêtes DELETE en SQL. Ne t'inquiète pas si tu es nouveau dans le domaine de la programmation - je vais te guider étape par étape, comme j'ai fait pour des centaines d'étudiants au cours de mes années d'enseignement. Alors, prends une tasse de café (ou de thé, si c'est ton truc), et c'est parti !
L'instruction SQL DELETE
Imagine que tu organises ton album photo numérique. Parfois, tu veux supprimer certaines photos, non ? C'est exactement ce que fait l'instruction DELETE en SQL - elle nous aide à supprimer des données indésirables de nos tables de bases de données.
Voici la syntaxe de base d'une instruction DELETE :
DELETE FROM nom_table
WHERE condition;
Décomposons cela :
-
DELETE FROM
: Cela indique à SQL que nous voulons supprimer quelque chose d'une table spécifique. -
nom_table
: Remplace cela par le nom de ta table. -
WHERE
: C'est optionnel mais important. Il spécifie quelles lignes supprimer. -
condition
: C'est où tu fixes les critères de suppression.
Exemple 1 : Supprimer une seule ligne
Disons que nous avons une table appelée students
et que nous voulons supprimer un étudiant nommé John Doe :
DELETE FROM students
WHERE name = 'John Doe';
Cette requête supprimera la ligne où le nom est exactement 'John Doe'. Sois prudent cependant ! Si il y a plusieurs John Doe, ils seront tous supprimés.
Exemple 2 : Supprimer en fonction d'une condition numérique
Maintenant, supprimons tous les étudiants qui ont plus de 25 ans :
DELETE FROM students
WHERE age > 25;
Cette requête supprimera toutes les lignes où l'âge est supérieur à 25. C'est comme dire à la base de données : "Écoute, enlève tout le monde qui est assez âgé pour louer une voiture sans frais supplémentaires !"
Supprimer plusieurs lignes
Parfois, tu peux vouloir supprimer plusieurs lignes qui remplissent certains critères. Jetons un coup d'œil à quelques exemples.
Exemple 3 : Supprimer des lignes avec plusieurs conditions
Supposons que nous voulons supprimer tous les étudiants qui ont plus de 30 ans et un GPA inférieur à 2.5 :
DELETE FROM students
WHERE age > 30 AND gpa < 2.5;
Cette requête combine deux conditions en utilisant AND. C'est comme dire : "Supprime les étudiants qui sont à la fois plus de 30 ans et en difficulté académique."
Exemple 4 : Supprimer des lignes en fonction d'une liste de valeurs
Que faire si nous voulons supprimer des étudiants d'une liste spécifique de villes ? Nous pouvons utiliser l'opérateur IN :
DELETE FROM students
WHERE city IN ('New York', 'Los Angeles', 'Chicago');
Cette requête supprimera tous les étudiants de New York, Los Angeles ou Chicago. C'est comme avoir une liste VIP, mais pour la suppression !
Supprimer toutes les enregistrements d'une table
Parfois, tu peux vouloir vider entirely une table. C'est comme décider de vider tout ton placard pour recommencer à zéro. Voici comment tu fais :
DELETE FROM nom_table;
Par exemple, pour supprimer toutes les enregistrements de notre table students
:
DELETE FROM students;
⚠️ Avertissement : Sois extrêmement prudent avec cette commande ! C'est comme utiliser un lance-flammes pour nettoyer ta chambre - efficace, mais potentiellement désastreux si utilisé incorrectement.
Supprimer des enregistrements dans plusieurs tables
Maintenant, levons le niveau un peu. Parfois, tu dois supprimer des enregistrements dans plusieurs tables liées à la fois. Cela devient un peu plus complexe, mais ne t'inquiète pas - je vais te guider.
Exemple 5 : Supprimer de plusieurs tables en utilisant JOIN
Disons que nous avons deux tables : students
et enrollments
. Nous voulons supprimer tous les enregistrements d'inscriptions et d'étudiants pour ceux qui n'ont pas payé leurs frais :
DELETE students, enrollments
FROM students
JOIN enrollments ON students.id = enrollments.student_id
WHERE students.fees_paid = 0;
Cette requête fait plusieurs choses :
- Elle joint les tables
students
etenrollments
. - Elle cherche les étudiants qui n'ont pas payé leurs frais.
- Elle supprime les enregistrements correspondants des deux tables.
C'est comme nettoyer ta liste de contacts et enlever ces contacts de tous tes-groupes de discussions en même temps !
Exemple 6 : Utiliser des sous-requêtes pour la suppression
Parfois, tu peux avoir besoin de supprimer en fonction des données d'une autre table sans vraiment les joindre. Voici un exemple :
DELETE FROM enrollments
WHERE student_id IN (
SELECT id
FROM students
WHERE graduation_year < 2020
);
Cette requête supprime toutes les inscriptions pour les étudiants qui ont gradué avant 2020. C'est comme dire : "Enlève toutes les invitations à des événements pour les personnes qui ont déjà déménagé."
Résumé des méthodes DELETE
Voici un tableau de réference des méthodes DELETE que nous avons couvertes :
Méthode | Description | Exemple |
---|---|---|
DELETE de base | Supprime des lignes en fonction d'une condition | DELETE FROM students WHERE name = 'John Doe'; |
DELETE avec plusieurs conditions | Supprime des lignes qui remplissent plusieurs critères | DELETE FROM students WHERE age > 30 AND gpa < 2.5; |
DELETE avec clause IN | Supprime des lignes en fonction d'une liste de valeurs | DELETE FROM students WHERE city IN ('New York', 'Los Angeles', 'Chicago'); |
DELETE tous les enregistrements | Supprime toutes les lignes d'une table | DELETE FROM students; |
DELETE avec JOIN | Supprime des enregistrements liés dans plusieurs tables | DELETE students, enrollments FROM students JOIN enrollments ON students.id = enrollments.student_id WHERE students.fees_paid = 0; |
DELETE avec sous-requête | Supprime en fonction des résultats d'une autre requête | DELETE FROM enrollments WHERE student_id IN (SELECT id FROM students WHERE graduation_year < 2020); |
Et voilà ! Tu viens d'apprendre les ficelles des requêtes DELETE en SQL. Souviens-toi, avec grand pouvoir vient grande responsabilité. Vérifie toujours tes clauses WHERE avant d'exécuter une requête DELETE, et si possible, commence par un SELECT pour prévisualiser ce que tu vas supprimer.
Pratique ces requêtes, joue avec elles, et bientôt tu supprimeras des données comme un pro ! N'oublie pas - dans le monde réel, il est souvent préférable d'archiver les données plutôt que de les supprimer définitivement. Bonne chance pour tes requêtes, et puisses tes bases de données toujours être propres et organisées !
Credits: Image by storyset