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À montrer comment une requête est exécutée
BÀ lister les utilisateurs d'une base de données
CÀ mesurer les performances d'une base de données
DÀ modéliser les entités, leurs attributs et leurs associations lors de la conception d'une base de données
2.Facile
Que fait ROLLBACK dans une transaction ?
AIl répète la dernière instruction
BIl supprime la table
CIl enregistre définitivement sur disque toutes les modifications de la transaction
DIl annule les modifications effectuées depuis le début de la transaction
3.Facile
En quoi UNION ALL diffère-t-il de UNION ?
AUNION ALL ne fonctionne que sur une seule table
BUNION ALL supprime les lignes en double
CUNION ALL conserve les lignes en double
DUNION ALL trie le résultat
4.Moyen
Quelle propriété ACID garantit que les modifications validées survivent à une panne du système ?
ALa cohérence
BLa durabilité
CL'atomicité
DL'isolation
5.Moyen
Que renvoie INTERSECT utilisé entre deux requêtes SELECT ?
ALes lignes du premier résultat absentes du second
BLe produit cartésien des résultats
CLes lignes présentes dans les deux résultats
DToutes les lignes des deux résultats
6.Moyen
Pourquoi SELECT price * 2 AS double_price FROM t WHERE double_price > 10 échoue-t-il dans la plupart des bases de données ?
AL'arithmétique n'est pas autorisée dans la liste du SELECT
BWHERE ne peut comparer que des colonnes de texte
CLes alias ne peuvent pas contenir de tiret bas
DWHERE est évalué avant la liste du SELECT, donc l'alias n'existe pas encore
7.Difficile
Quelle fonctionnalité SQL convient le mieux pour trouver tous les employés sous un responsable dans un organigramme de profondeur inconnue ?
AUne expression de table commune récursive (WITH RECURSIVE)
BUne contrainte UNIQUE sur manager_id
CUne seule auto-jointure de la table employees sur manager_id
DUn GROUP BY sur manager_id
8.Difficile
La requête FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.status = 'paid' élimine de façon inattendue les clients sans commande. Pourquoi ?
ALa jointure devrait utiliser USING au lieu de ON
BLa condition WHERE sur o rejette les lignes remplies de NULL, ce qui en fait une jointure interne
Cstatus est un mot réservé
DLEFT JOIN ne conserve jamais les lignes sans correspondance
Corrigé
1. D · À modéliser les entités, leurs attributs et leurs associations lors de la conception d'une base de données
2. D · Il annule les modifications effectuées depuis le début de la transaction
3. C · UNION ALL conserve les lignes en double
4. B · La durabilité
5. C · Les lignes présentes dans les deux résultats
6. D · WHERE est évalué avant la liste du SELECT, donc l'alias n'existe pas encore
7. A · Une expression de table commune récursive (WITH RECURSIVE)
8. B · La condition WHERE sur o rejette les lignes remplies de NULL, ce qui en fait une jointure interne
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.