PaliSkill
SQL avancé

Leçon 6 / 9 — Chapitre 5: CAST et vues approfondies

Les limites d'une vue avec agrégation

Une vue qui contient un GROUP BY (ou toute agrégation) n'est pas modifiable : impossible d'y faire un INSERT, UPDATE ou DELETE, car il n'existe aucune façon non ambiguë de faire correspondre une modification à une ligne précise d'une table d'origine.

CREATE VIEW total_achats_par_client AS
SELECT client_id, SUM(montant) AS total
FROM achats
GROUP BY client_id;

Cette vue regroupe achats par client : client 1 (Emma) → 25 + 10 = 35 ; client 2 (LUCAS) → 5 ; client 3 (Nina) → 60 ; client 4 (noé) → 40. Soit 4 groupes.

UPDATE total_achats_par_client SET total = 100 WHERE client_id = 1; échoue : total est le résultat d'un calcul (SUM), pas une colonne d'une table réelle — il n'y a rien à modifier « en place ».

À retenir :

  • Une vue contenant GROUP BY, une fonction d'agrégation, DISTINCT ou UNION n'est jamais modifiable.
  • Une vue simple (un seul SELECT sans agrégation, sur une seule table) reste modifiable dans de nombreux moteurs — mais ce n'est pas garanti partout ni pour toute requête.
  • Modifier les données réelles derrière une vue non modifiable exige de cibler directement la table d'origine (ici, achats).

À vous de jouer : quelle est la valeur de total pour le client_id 3 (Nina) dans cette vue ?

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 80 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès