Fiche d’exercices de Bases de données et SQL avec corrigé

Fiche d’exercices de Bases de données et SQL gratuite et imprimable : 8 exercices, du niveau facile au niveau examen, avec corrigé. Imprimez-la ou enregistrez-la en PDF.

Pour les enseignants : gratuite à imprimer, copier et utiliser en classe. Chaque nouvelle fiche a de nouvelles valeurs et son propre corrigé. Un lien vers ExamProblems sur la page de votre cours est apprécié.

Nom: ____________________   Date: ____________

1.Facile

À quoi sert un diagramme entité-association (ER) ?

  1. AÀ modéliser les entités, leurs attributs et leurs associations lors de la conception d'une base de données
  2. BÀ mesurer les performances d'une base de données
  3. CÀ lister les utilisateurs d'une base de données
  4. DÀ montrer comment une requête est exécutée
2.Facile

Qu'est-ce qu'une clé candidate ?

  1. AUn ensemble de colonnes partagé entre deux tables pour relier leurs lignes
  2. BUne colonne en attente de devenir une clé étrangère
  3. CToute colonne contenant des valeurs NULL
  4. DUn ensemble minimal de colonnes qui identifie de manière unique chaque ligne
3.Facile

En quoi UNION ALL diffère-t-il de UNION ?

  1. AUNION ALL ne fonctionne que sur une seule table
  2. BUNION ALL trie le résultat
  3. CUNION ALL conserve les lignes en double
  4. DUNION ALL supprime les lignes en double
4.Moyen

Une colonne contient les valeurs 10, 20 et NULL. Que renvoie AVG(col) ?

  1. A10
  2. B30
  3. C15
  4. DNULL
5.Moyen

Que renvoie SELECT SUM(amount) FROM orders lorsque la clause WHERE ne correspond à aucune ligne ?

  1. ANULL
  2. BUne erreur
  3. C0
  4. DUne chaîne vide
6.Moyen

Quelle requête renvoie le nombre de commandes par client ?

  1. ASELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
  2. BSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  3. CSELECT customer_id FROM orders WHERE COUNT(*) > 0
  4. DSELECT DISTINCT COUNT(*) FROM orders
7.Difficile

Pourquoi une requête avec WHERE YEAR(order_date) = 2025 pourrait-elle ne pas utiliser un index sur order_date ?

  1. ALes index ne fonctionnent jamais avec des dates
  2. BAppliquer une fonction à la colonne empêche une simple recherche par plage dans l'index
  3. CYEAR n'est pas du SQL valide
  4. DUn index sur order_date n'est utilisé que pour les clauses ORDER BY, jamais pour WHERE
8.Difficile

Deux médecins de garde vérifient chacun que l'autre est encore de garde, puis se désinscrivent tous les deux en même temps. Quelle anomalie l'isolation par instantané (snapshot isolation) peut-elle encore permettre ici ?

  1. ALa lecture non reproductible au sein d'une transaction
  2. BL'écriture sale
  3. CLa lecture sale
  4. DLe write skew (écriture biaisée)

Corrigé

  1. 1. A · À modéliser les entités, leurs attributs et leurs associations lors de la conception d'une base de données
  2. 2. D · Un ensemble minimal de colonnes qui identifie de manière unique chaque ligne
  3. 3. C · UNION ALL conserve les lignes en double
  4. 4. C · 15
  5. 5. A · NULL
  6. 6. B · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  7. 7. B · Appliquer une fonction à la colonne empêche une simple recherche par plage dans l'index
  8. 8. D · Le write skew (écriture biaisée)

Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.