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
Quelle instruction SQL ajoute de nouvelles lignes à une table ?
ASELECT
BUPDATE
CALTER
DINSERT
2.Facile
Que fait COMMIT dans une transaction ?
AIl rend permanentes toutes les modifications de la transaction
BIl crée une nouvelle table
CIl annule toutes les modifications effectuées depuis le début de la transaction
DIl verrouille toute la base de données
3.Facile
Une clé étrangère (foreign key) est :
AUne colonne qui fait référence à la clé primaire d'une autre table
BUne clé toujours chiffrée
CUne colonne dont les valeurs doivent être uniques sur toutes les lignes de la table
DUne clé utilisée par des utilisateurs étrangers
4.Moyen
Quelle requête renvoie le nombre de commandes par client ?
ASELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
BSELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
CSELECT customer_id FROM orders WHERE COUNT(*) > 0
DSELECT DISTINCT COUNT(*) FROM orders
5.Moyen
Quelle requête liste les clients qui n'ont jamais passé de commande ?
ASELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
BSELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
CSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
DSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
6.Moyen
Un LEFT JOIN renvoie :
AUniquement les lignes correspondantes des deux tables
BLes lignes qui ne correspondent dans aucune des deux tables
CUniquement toutes les lignes de la table de droite
DToutes les lignes de la table de gauche et les lignes correspondantes de droite, avec des NULL en l'absence de correspondance
7.Difficile
Que renvoie SELECT name, dept, AVG(salary) OVER (PARTITION BY dept) FROM emp ?
AUne ligne par service avec son salaire moyen
BUne erreur, car name ne figure pas dans un GROUP BY
CUniquement les employés qui gagnent plus que la moyenne de leur service
DChaque ligne d'employé accompagnée du salaire moyen de son service
8.Difficile
Avec le contrôle de concurrence multiversion (MVCC), comment les lecteurs évitent-ils de bloquer les écrivains ?
ALes lecteurs attendent toujours que tous les écrivains aient validé
BLes lecteurs voient un instantané cohérent des versions validées des lignes, tandis que les écrivains créent de nouvelles versions
CLes écritures sont interdites tant qu'un lecteur est actif
DLes lecteurs lisent directement les données non validées
Corrigé
1. D · INSERT
2. A · Il rend permanentes toutes les modifications de la transaction
3. A · Une colonne qui fait référence à la clé primaire d'une autre table
4. A · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
5. D · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
6. D · Toutes les lignes de la table de gauche et les lignes correspondantes de droite, avec des NULL en l'absence de correspondance
7. D · Chaque ligne d'employé accompagnée du salaire moyen de son service
8. B · Les lecteurs voient un instantané cohérent des versions validées des lignes, tandis que les écrivains créent de nouvelles versions
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.