Bases des bases de données

Une table Client(IdClient, Nom) contient 4 lignes : (C1, Aoki), (C2, Inoue), (C3, Ueda), (C4, Eto). Une table Commande(IdCommande, IdClient, Montant) contient 5 lignes : (O1, C1, 3000), (O2, C2, 8000), (O3, C1, 6000), (O4, C3, 2000), (O5, C2, 9000). Combien de lignes renvoie SELECT Nom FROM Client WHERE IdClient IN (SELECT IdClient FROM Commande WHERE Montant > 5000) ?

  1. A1 ligne
  2. B2 lignes
  3. C3 lignes
Afficher la réponse et l'explication

Réponse : B. 2 lignes

D'abord, la sous-requête entre parenthèses renvoie l'IdClient des commandes dont le montant dépasse 5000. Ce sont O2 (C2), O3 (C1) et O5 (C2) ; l'ensemble des valeurs IdClient est donc C2, C1, C2. La requête externe vérifie, pour chaque ligne de la table Client, si son IdClient figure dans cet ensemble. C'est le cas d'Aoki (C1) et d'Inoue (C2) ; bien qu'Inoue apparaisse 2 fois dans l'ensemble, il n'est renvoyé qu'une fois, comme une seule ligne de la table Client ; le résultat compte donc 2 lignes. 3 lignes correspond au cas où une ligne serait produite pour chaque commande correspondante, comme lorsqu'on joint les tables Client et Commande avant de filtrer sur le montant. 1 ligne correspond au décompte des seuls clients dont toutes les commandes dépassent 5000 (Inoue).

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases des bases de données

  1. À partir d'une table Client(IdClient, Nom) et d'une table Commande(IdCommande, IdClient, Montant), on veut obtenir le nom des clients qui n'ont jamais passé de commande. Quelle instruction SQL est correcte ?
  2. Quelle proposition décrit correctement une vue (view) dans une base de données relationnelle ?
  3. Quel est le but principal de la normalisation des tables d'une base de données relationnelle ?
  4. La clé primaire d'une table Commande(NumCommande, NumArticle, Quantite, NumClient, NomClient) est {NumCommande, NumArticle}, et ses dépendances fonctionnelles sont {NumCommande, NumArticle} → Quantite, NumCommande → NumClient et NumClient → NomClient. Quel est le résultat correct de la normalisation de cette table jusqu'à la troisième forme normale (3NF) ?
  5. La clé primaire d'une table Employe(NumEmploye, Nom, CodeService, NomService) est NumEmploye, et chaque colonne contient une seule valeur. Les dépendances fonctionnelles sont NumEmploye → Nom, NumEmploye → CodeService et CodeService → NomService. Quelle proposition indique correctement la forme normale de cette table ?