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 GROUP BY dans une requête ?
AIl joint deux tables sur leurs colonnes communes
BIl supprime les lignes contenant des valeurs NULL
CIl regroupe les lignes ayant les mêmes valeurs pour calculer les agrégats par groupe
DIl trie les lignes du résultat par ordre alphabétique
2.Facile
Un INNER JOIN renvoie :
ALes lignes qui ne correspondent pas
BToutes les lignes des deux tables
CUniquement les lignes ayant des valeurs correspondantes dans les deux tables
DToutes les lignes de la table de gauche, avec des NULL là où il n'y a pas de correspondance
3.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
4.Moyen
Un LEFT JOIN renvoie :
AToutes les lignes de la table de gauche et les lignes correspondantes de droite, avec des NULL en l'absence de correspondance
BLes lignes qui ne correspondent dans aucune des deux tables
CUniquement les lignes correspondantes des deux tables
DUniquement toutes les lignes de la table de droite
5.Moyen
Que fait GRANT SELECT ON employees TO alice ?
AIl fait d'alice la propriétaire de la base de données
BIl autorise l'utilisatrice alice à lire la table employees
CIl copie la table employees pour alice
DIl autorise alice à modifier et à supprimer des lignes de la table employees
6.Moyen
Quelle requête renvoie le salaire le plus élevé de chaque service ?
ASELECT MAX(dept), salary FROM emp GROUP BY salary
BSELECT dept, salary FROM emp WHERE salary = MAX(salary)
CSELECT dept, MAX(salary) FROM emp GROUP BY dept
DSELECT dept, MAX(salary) FROM emp ORDER BY dept
7.Difficile
Que renvoie la requête suivante : SELECT name FROM students WHERE grade > (SELECT AVG(grade) FROM students) ?
ALa note moyenne de tous les étudiants
BLes étudiants dont la note est supérieure à la note moyenne
CUne erreur, car les sous-requêtes ne sont pas autorisées dans WHERE
DUniquement les étudiants ayant la note la plus élevée
8.Difficile
Pourquoi une requête avec WHERE YEAR(order_date) = 2025 pourrait-elle ne pas utiliser un index sur order_date ?
AUn index sur order_date n'est utilisé que pour les clauses ORDER BY, jamais pour WHERE
BYEAR n'est pas du SQL valide
CLes index ne fonctionnent jamais avec des dates
DAppliquer une fonction à la colonne empêche une simple recherche par plage dans l'index
Corrigé
1. C · Il regroupe les lignes ayant les mêmes valeurs pour calculer les agrégats par groupe
2. C · Uniquement les lignes ayant des valeurs correspondantes dans les deux tables
3. A · Elle rejette les lignes dont les valeurs ne satisfont pas une condition
4. A · Toutes les lignes de la table de gauche et les lignes correspondantes de droite, avec des NULL en l'absence de correspondance
5. B · Il autorise l'utilisatrice alice à lire la table employees
6. C · SELECT dept, MAX(salary) FROM emp GROUP BY dept
7. B · Les étudiants dont la note est supérieure à la note moyenne
8. D · Appliquer une fonction à la colonne empêche une simple recherche par plage dans l'index
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.