Couverture de l’UE : Première version : chaque rubrique du sommaire dispose d’un cours de méthode. La couverture reste partielle : approfondissements encore nécessaires en normalisation, fonctions de tableur, programmation VBA exécutée dans Excel, diagrammes BPMN complets et cas transversaux. Les exercices SQL sont contrôlés sur un jeu d’essai SQLite ; les particularités d’autres SGBD et tableurs doivent être vérifiées.
Objectif : Appliquer la méthode et expliquer ses contrôles.
Jeu de données de cet atelier
Clients : (1, Alma), (2, Boréal), (3, Cyprès). Factures (identifiant, client, montant en euros) : (10, 1, 600), (11, 1, −100), (12, 2, 300), (13, 2, 250), (14, 1, NULL). Le client 3 n’a aucune facture. NULL est un montant non renseigné.
Données du cas
Reprenez les tables et les montants initiaux. La moyenne demandée porte sur les seuls montants connus, avoirs compris. La correction de la facture 12 doit la faire passer de 300 à 310 €, sans modifier les autres factures.
Démarche
Définissez le résultat attendu avant de choisir la formule ou la requête. Contrôlez les valeurs manquantes, les limites et le périmètre. Comparez votre réponse au corrigé en distinguant calcul, interprétation et conditions d’exécution.
Exercice
1. Extrayez les factures dont le montant dépasse cette moyenne. 2. Écrivez la mise à jour ciblée. 3. Donnez un contrôle avant/après.
Afficher le corrigé expliqué
1. SELECT id_facture, montant FROM Facture WHERE montant > (SELECT AVG(montant) FROM Facture) ORDER BY id_facture; La moyenne vaut 1 050 / 4 = 262,50 €. Résultat : (10, 600), (12, 300). 2. UPDATE Facture SET montant = 310 WHERE id_facture = 12; 3. Avant exécution, vérifier la facture 12 ; après, vérifier qu’une seule ligne a changé et que le total connu augmente de 10 €, de 1 050 à 1 060 €. Le test pédagogique est exécuté dans une base temporaire puis annulé ; il ne touche aucune donnée réelle.
Question de validation
Sans WHERE, cette instruction UPDATE modifierait :
Seulement la facture 12
Toutes les lignes de Facture
Aucune ligne
Vérifier la réponse
Réponse B : Toutes les lignes de Facture
Sans condition WHERE, UPDATE applique l’affectation à toutes les lignes de la table.
Sources complémentaires
Repères théoriques ; exemples et exercices originaux.