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) ?
AÀ modéliser les entités, leurs attributs et leurs associations lors de la conception d'une base de données
BÀ mesurer les performances d'une base de données
CÀ lister les utilisateurs d'une base de données
DÀ montrer comment une requête est exécutée
2.Facile
Qu'est-ce qu'une clé candidate ?
AUn ensemble de colonnes partagé entre deux tables pour relier leurs lignes
BUne colonne en attente de devenir une clé étrangère
CToute colonne contenant des valeurs NULL
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 ?
AUNION ALL ne fonctionne que sur une seule table
BUNION ALL trie le résultat
CUNION ALL conserve les lignes en double
DUNION ALL supprime les lignes en double
4.Moyen
Une colonne contient les valeurs 10, 20 et NULL. Que renvoie AVG(col) ?
A10
B30
C15
DNULL
5.Moyen
Que renvoie SELECT SUM(amount) FROM orders lorsque la clause WHERE ne correspond à aucune ligne ?
ANULL
BUne erreur
C0
DUne chaîne vide
6.Moyen
Quelle requête renvoie le nombre de commandes par client ?
ASELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
BSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
CSELECT customer_id FROM orders WHERE COUNT(*) > 0
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 ?
ALes index ne fonctionnent jamais avec des dates
BAppliquer une fonction à la colonne empêche une simple recherche par plage dans l'index
CYEAR n'est pas du SQL valide
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 ?
ALa lecture non reproductible au sein d'une transaction
BL'écriture sale
CLa lecture sale
DLe write skew (écriture biaisée)
Corrigé
1. A · À modéliser les entités, leurs attributs et leurs associations lors de la conception d'une base de données
2. D · Un ensemble minimal de colonnes qui identifie de manière unique chaque ligne
3. C · UNION ALL conserve les lignes en double
4. C · 15
5. A · NULL
6. B · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
7. B · Appliquer une fonction à la colonne empêche une simple recherche par plage dans l'index
8. D · Le write skew (écriture biaisée)
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.