SQL : UPDATE.
Réponse AJAX

Présentation

UPDATE sert à modifier la valeur d'un enregistrement, sans avoir à le recréer. C'est très utile dans la plupart des bases de données. Par exemple :

Syntaxe simplifiée :

UPDATE nom_de_table SET champ1 = nouvelle_valeur [, champ2 = nouvelle_valeur [, ...] ] [WHERE condition] ;

En général, on essaiera de baser la condition sur la clé primaire, pour être sûr de ne pas modifier involontairement d'autres enregistrements.

La nouvelle valeur peut faire référence à un champ de la table, et même au champ qu'on est en train de modifier. Par exemple :

La nouvelle valeur peut être le résultat d'un SELECT, par exemple :

On peut modifier plusieurs champs avec un seul UPDATE, par exemple :

Attention... n'oubliez pas la condition !

Si vous oubliez la condition WHERE, vous allez modifier TOUS les enregistrements de la table. Par exemple, ceci est sûrement une bêtise : On veut sûrement changer l'adresse d'un seul utilisateur, on rajoute alors la condition WHERE : Ceci n'est pas totalement satisfaisant, on risque de modifier l'adresse d'autres utilisateurs qui ont le même prénom. Tant que c'est possible, faites la condition sur la clé primaire :

Exercices d'entraînement

Les tables ci-dessus sont extraites dela base de données d'un pépiniériste. Il vend des arbres et les mouvements de stock sont enregistrés dans la table Mouv_Stock, où le champ ms_E/S a pour valeur E ou S selon si c'est une entrée ou une sortie.

Il y a eu une erreur sur le 47ème mouvement de stock de l'arbre n°15. Corrigez-le en remplaçant la quantité par 12.

Votre réponse n°1

Modifiez les données de l'arbre n°42 : le nom devient Prunier et la famille devient Fruitier.

Votre réponse n°2

Le champ arb_qté_stock de l'arbre n°1 est corrompu. Recalculez ce champ à partir de la table des mouvements de stock. Pour simplifier, supposez que ms_quantité est négatif lorsqu'il s'agit d'une sortie. Ainsi, vous ne vous préoccupez pas du champ ms_E/S et vous pouvez faire une simple somme.

Votre réponse n°3

Liens vers les études de cas

Etude de cas DA, 2010, métropole : Cas NOIXCOOP, dossier 2, question 5 (go).

Etude de cas DA, 2011, métropole : Cas ATLANTIK, dossier 4, question 2 (go).

Pour en savoir plus : lien vers la doc MySQL

La documentation de UPDATE pour MySQL, en français :
http://dev.mysql.com/doc/refman/5.0/fr/update.html