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
Quel mot-clé donne à une colonne ou à une table un autre nom temporaire dans une requête ?
ARENAME
BAS
CNAME
DALIAS
2.Facile
Une clé étrangère (foreign key) est :
AUne colonne qui fait référence à la clé primaire d'une autre table
BUne colonne dont les valeurs doivent être uniques sur toutes les lignes de la table
CUne clé toujours chiffrée
DUne clé utilisée par des utilisateurs étrangers
3.Facile
Quelle instruction ajoute une nouvelle colonne à une table existante ?
AINSERT COLUMN
BUPDATE TABLE
CCREATE COLUMN
DALTER TABLE
4.Moyen
Quelle requête renvoie le nombre de commandes par client ?
ASELECT DISTINCT COUNT(*) FROM orders
BSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
CSELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
DSELECT customer_id FROM orders WHERE COUNT(*) > 0
5.Moyen
Que renvoie INTERSECT utilisé entre deux requêtes SELECT ?
AToutes les lignes des deux résultats
BLes lignes présentes dans les deux résultats
CLe produit cartésien des résultats
DLes lignes du premier résultat absentes du second
6.Moyen
Une table contient des lignes où col est NULL. Quelles lignes WHERE col = NULL renvoie-t-il ?
AUniquement les lignes où col est NULL, comme avec IS NULL
BAucune ligne, car la comparaison est inconnue
CUne erreur dans toutes les bases de données
DToutes les lignes de la table
7.Difficile
Une base de données de reporting copie les noms des clients dans la table des commandes pour éviter des jointures. Quel est le principal coût de cette dénormalisation ?
ALes requêtes sur la table des commandes deviennent plus lentes
BLes clés primaires ne peuvent plus être utilisées
CLes copies redondantes doivent rester cohérentes chaque fois que les données client changent
DLa base de données ne peut plus utiliser d'index
8.Difficile
Après customers LEFT JOIN orders, pourquoi utiliser COUNT(o.id) plutôt que COUNT(*) pour compter les commandes par client ?
ACOUNT(*) ignore les lignes contenant des valeurs NULL
BCOUNT(*) n'est pas autorisé après une jointure
CCOUNT(o.id) ne compte que les clients distincts
DCOUNT(*) compte pour 1 la ligne remplie de NULL des clients sans commande
Corrigé
1. B · AS
2. A · Une colonne qui fait référence à la clé primaire d'une autre table
3. D · ALTER TABLE
4. B · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
5. B · Les lignes présentes dans les deux résultats
6. B · Aucune ligne, car la comparaison est inconnue
7. C · Les copies redondantes doivent rester cohérentes chaque fois que les données client changent
8. D · COUNT(*) compte pour 1 la ligne remplie de NULL des clients sans commande
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.