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
Quel mot-clé trie le résultat d'une requête ?
AARRANGE
BORDER BY
CSORT
DGROUP BY
3.Facile
Une clé étrangère (foreign key) est :
AUne clé toujours chiffrée
BUne colonne dont les valeurs doivent être uniques sur toutes les lignes de la table
CUne colonne qui fait référence à la clé primaire d'une autre table
DUne clé utilisée par des utilisateurs étrangers
4.Moyen
Une colonne contient les valeurs 10, 20 et NULL. Que renvoie AVG(col) ?
A15
B30
C10
DNULL
5.Moyen
Quelle requête renvoie le salaire le plus élevé de chaque service ?
ASELECT MAX(dept), salary FROM emp GROUP BY salary
BSELECT dept, MAX(salary) FROM emp ORDER BY dept
CSELECT dept, salary FROM emp WHERE salary = MAX(salary)
DSELECT dept, MAX(salary) FROM emp GROUP BY dept
6.Moyen
Quand WHERE EXISTS (sous-requête) est-il vrai pour une ligne ?
AQuand la sous-requête renvoie au moins une ligne
BQuand la sous-requête ne renvoie aucune valeur NULL
CQuand la sous-requête renvoie exactement une ligne
DQuand la sous-requête renvoie un nombre supérieur à zéro
7.Difficile
Deux médecins de garde vérifient chacun que l'autre est encore de garde, puis se désinscrivent tous les deux en même temps. Quelle anomalie l'isolation par instantané (snapshot isolation) peut-elle encore permettre ici ?
ALa lecture sale
BL'écriture sale
CLa lecture non reproductible au sein d'une transaction
DLe write skew (écriture biaisée)
8.Difficile
La requête FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.status = 'paid' élimine de façon inattendue les clients sans commande. Pourquoi ?
Astatus est un mot réservé
BLa jointure devrait utiliser USING au lieu de ON
CLEFT JOIN ne conserve jamais les lignes sans correspondance
DLa condition WHERE sur o rejette les lignes remplies de NULL, ce qui en fait une jointure interne
Corrigé
1. C · Il regroupe les lignes ayant les mêmes valeurs pour calculer les agrégats par groupe
2. B · ORDER BY
3. C · Une colonne qui fait référence à la clé primaire d'une autre table
4. A · 15
5. D · SELECT dept, MAX(salary) FROM emp GROUP BY dept
6. A · Quand la sous-requête renvoie au moins une ligne
7. D · Le write skew (écriture biaisée)
8. D · La condition WHERE sur o rejette les lignes remplies de NULL, ce qui en fait une jointure interne
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.