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
Que fait une contrainte CHECK ?
AElle rejette les lignes dont les valeurs ne satisfont pas une condition
BElle vérifie si une table existe avant qu'une requête lui soit appliquée
CElle compte les lignes d'une table
DElle vérifie le mot de passe de l'utilisateur
2.Facile
Une clé étrangère (foreign key) est :
AUne clé toujours chiffrée
BUne colonne qui fait référence à la clé primaire d'une autre table
CUne colonne dont les valeurs doivent être uniques sur toutes les lignes de la table
DUne clé utilisée par des utilisateurs étrangers
3.Facile
Que garantit une contrainte UNIQUE sur une colonne ?
ALa colonne ne peut plus être modifiée après l'insertion
BLes valeurs de la colonne sont triées
CLa colonne devient automatiquement la clé primaire de la table
DDeux lignes ne peuvent pas avoir la même valeur non NULL dans cette colonne
4.Moyen
Une table contient des lignes où col est NULL. Quelles lignes WHERE col = NULL renvoie-t-il ?
AUne erreur dans toutes les bases de données
BAucune ligne, car la comparaison est inconnue
CUniquement les lignes où col est NULL, comme avec IS NULL
DToutes les lignes de la table
5.Moyen
La table orders compte 5 lignes, chacune faisant référence à un client existant. La table customers compte 3 lignes. Combien de lignes un INNER JOIN sur customer_id renvoie-t-il ?
A3
B15
C5
D8
6.Moyen
Quelle requête renvoie le nombre de commandes par client ?
ASELECT customer_id FROM orders WHERE COUNT(*) > 0
BSELECT DISTINCT COUNT(*) FROM orders
CSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
DSELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
7.Difficile
Quel est un inconvénient connu de la décomposition des tables en BCNF par rapport à la 3NF ?
ACertaines dépendances fonctionnelles peuvent ne plus être vérifiables au sein d'une seule table
BLa décomposition perd toujours des données lors de la jointure inverse
CLa BCNF permet plus de redondance que la 3NF
DLes tables en BCNF ne peuvent pas avoir de clé primaire
8.Difficile
Que renvoie SELECT name, dept, AVG(salary) OVER (PARTITION BY dept) FROM emp ?
AUniquement les employés qui gagnent plus que la moyenne de leur service
BUne erreur, car name ne figure pas dans un GROUP BY
CChaque ligne d'employé accompagnée du salaire moyen de son service
DUne ligne par service avec son salaire moyen
Corrigé
1. A · Elle rejette les lignes dont les valeurs ne satisfont pas une condition
2. B · Une colonne qui fait référence à la clé primaire d'une autre table
3. D · Deux lignes ne peuvent pas avoir la même valeur non NULL dans cette colonne
4. B · Aucune ligne, car la comparaison est inconnue
5. C · 5
6. C · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
7. A · Certaines dépendances fonctionnelles peuvent ne plus être vérifiables au sein d'une seule table
8. C · Chaque ligne d'employé accompagnée du salaire moyen de son service
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.