Cours SQL et MySQL · Module 5: Modifier les données (DML)

Viser avec la clause WHERE - les conditions en DML

2 min de lecture
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. 1. Quel opérateur, dans une clause WHERE, signifie « supérieur à » ?

  2. 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.