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 renvoie un CROSS JOIN ?
AUniquement les lignes qui ne correspondent pas
BToutes les combinaisons de lignes des deux tables
CUniquement les lignes qui correspondent sur une colonne clé commune
DUniquement les lignes de la première table
2.Facile
Quelle fonction d'agrégation compte les lignes ?
AMAX
BCOUNT
CSUM
DAVG
3.Facile
Un INNER JOIN renvoie :
AToutes les lignes des deux tables
BUniquement les lignes ayant des valeurs correspondantes dans les deux tables
CToutes les lignes de la table de gauche, avec des NULL là où il n'y a pas de correspondance
DLes lignes qui ne correspondent pas
4.Moyen
Quelle affirmation sur HAVING est correcte ?
AElle doit figurer avant WHERE dans l'instruction SELECT
BElle ne peut pas être utilisée avec GROUP BY
CElle trie les résultats
DElle peut utiliser des fonctions d'agrégation pour filtrer les groupes
5.Moyen
Une table employees possède une colonne manager_id qui fait référence à un autre employé. Comment lister chaque employé à côté du nom de son responsable ?
ACréer une seconde copie de la table sur disque
BJoindre la table employees à elle-même avec deux alias
CUtiliser uniquement GROUP BY manager_id
DCombiner la table avec elle-même au moyen de UNION ALL et d'un filtre WHERE
6.Moyen
Quelle requête renvoie le nombre de commandes par client ?
ASELECT customer_id FROM orders WHERE COUNT(*) > 0
BSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
CSELECT DISTINCT COUNT(*) FROM orders
DSELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
7.Difficile
La transaction T1 verrouille la ligne A et attend la ligne B, tandis que T2 verrouille la ligne B et attend la ligne A. Que fait un SGBD typique ?
AIl valide les deux transactions en même temps
BIl laisse les deux transactions attendre jusqu'à ce que l'une d'elles se termine normalement par un COMMIT
CIl détecte l'interblocage et annule l'une des transactions, désignée comme victime
DIl fusionne les deux transactions en une seule
8.Difficile
Les scores sont 90, 90 et 80. Quelles valeurs RANK() OVER (ORDER BY score DESC) donne-t-il ?
A1, 1, 2
B2, 2, 3
C1, 2, 3
D1, 1, 3
Corrigé
1. B · Toutes les combinaisons de lignes des deux tables
2. B · COUNT
3. B · Uniquement les lignes ayant des valeurs correspondantes dans les deux tables
4. D · Elle peut utiliser des fonctions d'agrégation pour filtrer les groupes
5. B · Joindre la table employees à elle-même avec deux alias
6. B · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
7. C · Il détecte l'interblocage et annule l'une des transactions, désignée comme victime
8. D · 1, 1, 3
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.