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
Un INNER JOIN renvoie :
AToutes les lignes de la table de gauche, avec des NULL là où il n'y a pas de correspondance
BToutes les lignes des deux tables
CLes lignes qui ne correspondent pas
DUniquement les lignes ayant des valeurs correspondantes dans les deux tables
2.Facile
Que fait WHERE country IN ('NL', 'BE', 'DE') ?
AIl conserve les lignes dont le pays n'est pas dans la liste
BIl conserve les lignes dont le pays est égal à l'une des valeurs de la liste
CIl conserve les lignes dont la valeur de country contient les trois codes à la fois
DIl trie les lignes dans l'ordre de la liste
3.Facile
Que représente NULL en SQL ?
AUne chaîne vide
BUne valeur manquante ou inconnue
CLe nombre zéro dans les colonnes numériques
DUn booléen faux
4.Moyen
Que renvoie SELECT COALESCE(phone, 'unknown') FROM customers pour un client dont le téléphone est NULL ?
ANULL
BUne chaîne vide
C'unknown'
DUne erreur
5.Moyen
La deuxième forme normale (2NF) élimine :
ALes dépendances partielles des colonnes non clés vis-à-vis d'une partie d'une clé composée
BLes clés étrangères
CLes dépendances transitives entre colonnes non clés via une autre colonne non clé
DToutes les valeurs NULL
6.Moyen
Pourquoi SELECT price * 2 AS double_price FROM t WHERE double_price > 10 échoue-t-il dans la plupart des bases de données ?
ALes alias ne peuvent pas contenir de tiret bas
BWHERE ne peut comparer que des colonnes de texte
CL'arithmétique n'est pas autorisée dans la liste du SELECT
DWHERE est évalué avant la liste du SELECT, donc l'alias n'existe pas encore
7.Difficile
Deux transactions lisent toutes deux stock = 10, retirent chacune 1 et écrivent le résultat, ce qui donne 9 au lieu de 8. De quelle anomalie s'agit-il ?
AUne lecture fantôme
BUne mise à jour perdue (lost update)
CUne anomalie de suppression
DUne lecture sale
8.Difficile
Quand un ordonnancement de transactions concurrentes est-il dit sérialisable ?
AQuand aucune transaction ne lit jamais de données
BQuand les transactions s'exécutent sur un seul processeur
CQuand chaque transaction reçoit un numéro de série
DQuand son effet équivaut à une exécution en série des mêmes transactions
Corrigé
1. D · Uniquement les lignes ayant des valeurs correspondantes dans les deux tables
2. B · Il conserve les lignes dont le pays est égal à l'une des valeurs de la liste
3. B · Une valeur manquante ou inconnue
4. C · 'unknown'
5. A · Les dépendances partielles des colonnes non clés vis-à-vis d'une partie d'une clé composée
6. D · WHERE est évalué avant la liste du SELECT, donc l'alias n'existe pas encore
7. B · Une mise à jour perdue (lost update)
8. D · Quand son effet équivaut à une exécution en série des mêmes transactions
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.