Corriger une faute de saisie
Exercice d'entraînement · niveau 2 · mathématiques appliquées (ECG 2e année), chapitre 13 — Bases de données et travaux pratiques · Modifier une base
Énoncé
La table client contient les lignes suivantes.
| id | nom | ville |
|---|---|---|
| 1 | Durand | Lion |
| 2 | Petit | Nantes |
| 3 | Nguyen | Lion |
| 4 | Roux | Lyon |
Écrire la requête corrigeant la faute d'orthographe, dire combien de lignes elle modifie, et ce qui se passerait si l'on omettait la condition.
Corrigé
La requête.
UPDATE client
SET ville = 'Lyon'
WHERE ville = 'Lion';
Les trois parties. UPDATE nomme la table à modifier, SET indique la nouvelle valeur, WHERE désigne les lignes concernées. La chaîne est entre apostrophes simples, et le signe = sert ici deux fois pour deux rôles différents : affectation après SET, comparaison après WHERE. SQL ne les distingue pas typographiquement, contrairement à Python.
Le nombre de lignes modifiées. La condition ville = 'Lion' est vérifiée par les lignes et seulement : la ligne porte « Nantes », et la ligne porte déjà « Lyon », qui n'est pas « Lion ». La requête modifie donc deux lignes.
Après exécution, la table est :
| id | nom | ville |
|---|---|---|
| 1 | Durand | Lyon |
| 2 | Petit | Nantes |
| 3 | Nguyen | Lyon |
| 4 | Roux | Lyon |
Sans la condition. La requête UPDATE client SET ville = 'Lyon'; mettrait toutes les lignes à « Lyon », y compris celle de Petit, qui habite Nantes. Aucun avertissement ne serait émis, et l'information d'origine serait perdue définitivement : rien ne permettrait de retrouver « Nantes ».
Le point à retenir. La clause WHERE n'est pas une décoration : elle est ce qui borne l'effet d'un UPDATE. L'oublier ne provoque pas d'erreur — c'est précisément ce qui rend l'oubli dangereux.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.