0Pricing
SQL Academy · Leçon

UPDATE avec FROM et mises à jour de type JOIN

Mettez à jour des lignes à partir de valeurs provenant d’une autre table avec UPDATE ... FROM (PostgreSQL) et l’instruction standard MERGE.

UPDATE avec FROM et mises à jour de type JOIN est une leçon SQL Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage SQL Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SQL Academy comprend 4 leçons au total.

UPDATE de base

Modifiez les valeurs des lignes correspondantes :

UPDATE users SET full_name = 'Alice Adams' WHERE id = 1;

Plusieurs colonnes

Liste SET séparée par des virgules :

UPDATE users
SET full_name = 'Alice', last_login = NOW(), visits = visits + 1
WHERE id = 1;

Mettre à jour de nombreuses lignes

Faites simplement correspondre davantage de lignes avec WHERE :

UPDATE orders SET status = 'archived'
WHERE created_at < NOW() - INTERVAL '5 years';

UPDATE avec une sous-requête

Calculez la nouvelle valeur à partir d’une autre requête :

UPDATE products
SET review_count = (
  SELECT COUNT(*) FROM reviews WHERE reviews.product_id = products.id
);

UPDATE … FROM (PostgreSQL)

Mise à jour de type JOIN : récupérez des valeurs dans une autre table :

UPDATE products p
SET stock = i.qty
FROM inventory i
WHERE i.product_id = p.id;

UPDATE … FROM avec plusieurs tables

La liste FROM peut inclure plusieurs tables :

UPDATE invoices inv
SET tax_rate = r.rate
FROM users u
JOIN rates r ON r.country = u.country
WHERE inv.user_id = u.id;

SQL standard : UPDATE … FROM via une sous-requête corrélée

Équivalent portable, mais plus lent :

UPDATE products p
SET stock = (SELECT qty FROM inventory i WHERE i.product_id = p.id);

MERGE pour INSERT/UPDATE/DELETE

PostgreSQL 15+ prend en charge MERGE pour les opérations combinées — consultez la leçon sur UPSERT.

RETURNING avec UPDATE

Récupérez les lignes mises à jour en un seul aller-retour :

UPDATE orders SET status = 'shipped', shipped_at = NOW()
WHERE id = $1
RETURNING id, status, shipped_at;

UPDATE avec CASE

Nouvelles valeurs conditionnelles :

UPDATE orders
SET status = CASE
  WHEN paid_at IS NOT NULL THEN 'paid'
  WHEN created_at < NOW() - INTERVAL '24h' THEN 'expired'
  ELSE status
END;

Attention à l’absence de WHERE

UPDATE users SET active = false; met à jour TOUTES les lignes. En production :

  • Exécutez d’abord un SELECT pour vérifier le nombre de lignes
  • Utilisez une transaction et vérifiez le résultat avant COMMIT
  • Utilisez BEGIN; ...; SELECT count(*) FROM users WHERE active = false; ROLLBACK; pour faire une simulation

Performances des mises à jour

Un UPDATE crée une nouvelle version de la ligne et marque l’ancienne comme obsolète (MVCC). Les tables fréquemment mises à jour peuvent gonfler — ce point est traité dans la leçon sur VACUUM/MVCC.

Récapitulatif

UPDATE … FROM est la mise à jour de type JOIN qui permet d’effectuer proprement des corrections en masse.

  • WHERE est toujours nécessaire — ne l’oubliez jamais
  • Utilisez RETURNING pour vérifier
  • Testez dans une transaction avec ROLLBACK

Vérification rapide

Quelle syntaxe UPDATE permet de faire référence à une autre table dans PostgreSQL ?

Questions Fréquemment Posées

La leçon « UPDATE avec FROM et mises à jour de type JOIN » est-elle gratuite ?

Oui — le texte complet de « UPDATE avec FROM et mises à jour de type JOIN » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours SQL Academy, passe à CoddyKit PRO. Le cours SQL Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « UPDATE avec FROM et mises à jour de type JOIN » ?

Mettez à jour des lignes à partir de valeurs provenant d’une autre table avec UPDATE ... FROM (PostgreSQL) et l’instruction standard MERGE. Tu pratiques SQL Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer SQL Academy ?

Aucune expérience préalable n'est requise. SQL Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « UPDATE avec FROM et mises à jour de type JOIN » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon SQL Academy ?

Oui. Chaque leçon SQL Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. INSERT avec plusieurs lignes
  2. UPSERT : ON CONFLICT DO UPDATE (PostgreSQL)
  3. UPDATE avec FROM et mises à jour de type JOIN
  4. DELETE avec USING et modèles sûrs
← Retour à SQL Academy