Adloun

Modifier une valeur

Exercice supplémentaire · niveau 1 (application) · mathématiques appliquées (ECG 2e année), chapitre 13 — Bases de données et travaux pratiques · Modifier une table

Énoncé

La table produit a pour champs id, libelle et prix. Écrire la requête fixant à le prix du produit numéro , puis celle augmentant de le prix de tous les produits qui coûtent moins de .

Corrigé

Première requête.


UPDATE produit
SET prix = 15
WHERE id = 3;

Le signe = sert deux fois pour deux rôles différents : affectation après SET, comparaison après WHERE. SQL ne les distingue pas typographiquement, contrairement à Python qui écrirait = et ==.

Seconde requête.


UPDATE produit
SET prix = prix + 2
WHERE prix < 10;

La nouvelle valeur peut dépendre de l'ancienne. prix = prix + 2 se lit « le nouveau prix est l'ancien augmenté de », et s'applique ligne par ligne : chaque produit concerné est augmenté à partir de son prix.

Le rôle de WHERE. Sans elle, la modification s'appliquerait à toutes les lignes. Écrire UPDATE produit SET prix = 15; mettrait tous les produits à , sans avertissement et sans retour en arrière possible. La clause WHERE n'est pas une décoration : elle borne l'effet de la requête.

Un contrôle prudent. Avant un UPDATE, on lit d'abord ce qu'il va atteindre : SELECT id, prix FROM produit WHERE prix &lt; 10;.

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.