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 regroupe les lignes ayant les mêmes valeurs pour calculer les agrégats par groupe
CIl supprime les lignes contenant des valeurs NULL
DIl trie les lignes du résultat par ordre alphabétique
2.Facile
Un client peut passer de nombreuses commandes, mais chaque commande appartient à exactement un client. De quel type d'association s'agit-il ?
AUn-à-plusieurs
BPlusieurs-à-plusieurs
CUn-à-un
DZéro-à-zéro
3.Facile
Que renvoie un CROSS JOIN ?
AToutes les combinaisons de lignes des deux tables
BUniquement les lignes qui ne correspondent pas
CUniquement les lignes qui correspondent sur une colonne clé commune
DUniquement les lignes de la première table
4.Moyen
Que renvoie SELECT COALESCE(phone, 'unknown') FROM customers pour un client dont le téléphone est NULL ?
AUne erreur
BUne chaîne vide
CNULL
D'unknown'
5.Moyen
Qu'est-ce qu'une lecture sale (dirty read) ?
ALa lecture de données sans clause WHERE
BLa lecture de données écrites par une autre transaction qui n'a pas encore été validée
CLa lecture de données sur un disque corrompu
DLa lecture d'une même ligne deux fois avec la même valeur
6.Moyen
Une table contient des lignes où col est NULL. Quelles lignes WHERE col = NULL renvoie-t-il ?
AUniquement les lignes où col est NULL, comme avec IS NULL
BToutes les lignes de la table
CAucune ligne, car la comparaison est inconnue
DUne erreur dans toutes les bases de données
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
Une table a un million de lignes et une colonne booléenne is_active vraie pour 95% d'entre elles. Pourquoi l'optimiseur pourrait-il ignorer un index sur is_active pour WHERE is_active = TRUE ?
AOn ne peut pas créer d'index sur des colonnes booléennes
BL'optimiseur n'utilise jamais d'index dans les clauses WHERE
CLa plupart des lignes correspondent, donc un parcours complet de la table coûte moins cher que de nombreux accès par l'index
DL'index traite TRUE comme NULL
Corrigé
1. B · Il regroupe les lignes ayant les mêmes valeurs pour calculer les agrégats par groupe
2. A · Un-à-plusieurs
3. A · Toutes les combinaisons de lignes des deux tables
4. D · 'unknown'
5. B · La lecture de données écrites par une autre transaction qui n'a pas encore été validée
6. C · Aucune ligne, car la comparaison est inconnue
7. D · Le write skew (écriture biaisée)
8. C · La plupart des lignes correspondent, donc un parcours complet de la table coûte moins cher que de nombreux accès par l'index
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.