Cours SQL et MySQL · Module 5: Modifier les données (DML)
Viser avec la clause WHERE - les conditions en DML
Dans cette leçon3
Tu connais déjà INSERT, UPDATE et DELETE. Je vais maintenant t'enseigner à viser avec précision - car c'est la clause WHERE qui décide quels parchemins seront modifiés ou supprimés.
Les opérateurs de comparaison
Dans une condition WHERE, nous comparons une colonne à une valeur. Les opérateurs les plus courants du scribe :
=- égal à (par ex.WHERE id = 5),>- supérieur à (par ex.WHERE cena > 100),<- inférieur à (par ex.WHERE rok_wydania < 0),>=,<=- supérieur/inférieur ou égal,<>(ou!=) - différent de.
1UPDATE ksiazki
2SET dostepna = 0
3WHERE cena > 100;Cette commande marquera comme indisponibles tous les livres plus chers que 100 - cela peut être une ligne ou une centaine. WHERE couvre chaque parchemin correspondant.
Combiner les conditions : AND et OR
Parfois, une seule condition ne suffit pas. Le scribe les relie avec des connecteurs :
- AND - les deux conditions doivent être remplies à la fois,
- OR - une seule des conditions suffit.
1DELETE FROM ksiazki
2WHERE dostepna = 0 AND autor_id = 4;Cela ne supprimera que les livres à la fois indisponibles et écrits par l'auteur numéro 4. Si nous utilisions OR, les livres remplissant l'une ou l'autre condition disparaîtraient - bien plus de parchemins !
Viser en pleine conscience
Plus le WHERE est précis, plus la commande est sûre. Une mauvaise valeur après >, ou une confusion entre AND et OR, peut toucher des centaines de lignes que tu ne voulais jamais modifier. Avant d'exécuter un UPDATE ou un DELETE, relis ta condition à voix haute : « sont-ce exactement les lignes que je veux ? ».
Tu as repéré une erreur dans cette leçon ?
Teste tes connaissances
Réponds aux questions de cette leçon. Choisis une réponse pour voir tout de suite si elle est correcte.
1. Quel opérateur, dans une clause WHERE, signifie « supérieur à » ?
2. Que signifie WHERE kraj = 'Egipt' AND rok_urodzenia > 0 dans une commande UPDATE/DELETE ?
Voici 2 des 3 questions de cette leçon. Réponds aux autres dans le jeu.
Tâches pratiques dans le jeu
- Éditeur de code
Écris une commande qui, dans la table ksiazki, fixe dostepna à 0 pour tous les livres dont cena est supérieur à 100. Utilise une clause WHERE avec l'opérateur >.
- Clique dans l'ordre
Clique sur les éléments dans l'ordre où l'on construit une simple condition WHERE :
- Éditeur de code
Écris une commande qui supprime de la table ksiazki les livres qui sont indisponibles (dostepna = 0) ET qui viennent de autor_id = 4. Utilise WHERE avec AND.