SQL ET POSTGRE 4.18 : Modification de données dans une table
Après avoir vu comment insérer des lignes, attaquons la modification des données existantes. Sur la table exemple précédemment alimentée, la requête SQL de mise à jour s'articule autour de trois mots-clés : UPDATE (nom de la table), SET (nouvelles valeurs), et WHERE (filtre pour cibler les lignes concernées).
Une, plusieurs lignes, plusieurs colonnes
Pour modifier la nationalité de Mike, dont l'exemple_id vaut 2, on écrit :
UPDATE exemple SET nationalite = 'US' WHERE exemple_id = 2;
L'id étant une clé primaire unique, c'est l'indicateur le plus sûr pour cibler exactement une ligne. Après exécution, un SELECT * FROM exemple confirme que Mike est passé de GB à US.
On peut aussi modifier plusieurs lignes en même temps sans utiliser la clé primaire, en s'appuyant sur une valeur commune. Pour changer la nationalité de Mike et John (tous deux 'US') en 'CA' :
UPDATE exemple SET nationalite = 'CA' WHERE nationalite = 'US';
Enfin, on peut modifier plusieurs champs d'une même ligne en séparant les affectations par une virgule :
UPDATE exemple SET prenom = 'Anke', age = 37 WHERE exemple_id = 4;
À retenir : UPDATE pour la table, SET pour les nouvelles valeurs (chaînes entre apostrophes, entiers nus), WHERE pour cibler. Sans WHERE, vous modifieriez toutes les lignes de la table — soyez prudent. Rendez-vous dans la prochaine vidéo pour la suppression de données.
En résumé
Cette leçon explique comment modifier des données existantes dans une table PostgreSQL en utilisant la requête UPDATE. Elle couvre la syntaxe complète (UPDATE nom_table SET colonne = valeur WHERE condition) avec trois cas d'usage : modifier une ligne via sa clé primaire (ID), modifier plusieurs lignes selon un critère partagé, et modifier plusieurs colonnes simultanément. Chaque modification est vérifiée avec une requête SELECT.
Points clés
- Syntaxe UPDATE : UPDATE [table] SET [colonne] = [valeur] WHERE [condition]
- Utiliser la clé primaire (ID) pour modifier une seule ligne de manière fiable (l'ID est unique)
- Modifier plusieurs lignes avec un critère WHERE (ex: WHERE nationalité = 'US')
- Modifier plusieurs colonnes en une seule requête en séparant par des virgules (SET col1 = val1, col2 = val2)
- Les valeurs textuelles doivent être entre guillemets simples ou doubles, les nombres sans
- Toujours vérifier la modification avec une requête SELECT pour confirmer le résultat
Questions fréquentes
Quelle est la différence entre modifier via l'ID et via un autre critère?
L'ID (clé primaire) est unique, donc cibler une ligne par ID la modifie une seule fois de manière sûre. Un autre critère (comme nationalité) modifiera TOUTES les lignes qui correspondent, ce qui peut affecter plusieurs enregistrements.
Comment modifier plusieurs colonnes en une seule requête?
On utilise SET avec une virgule pour séparer les assignations : SET colonne1 = valeur1, colonne2 = valeur2. Les valeurs sans guillemets doivent être numériques.
Que se passe-t-il si on oublie la condition WHERE dans UPDATE?
TOUTE la table serait modifiée. La clause WHERE est essentielle pour filtrer et cibler seulement les lignes concernées, c'est un garde-fou critique.