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
Qu'est-ce qu'une clé de substitution (surrogate key) ?
AUne clé utilisée uniquement dans les vues
BUne clé tirée de données réelles, comme une adresse e-mail
CUn identifiant artificiel sans signification métier, comme un id auto-incrémenté
DUne clé qui fait référence à une autre table
2.Facile
Quelle instruction ajoute une nouvelle colonne à une table existante ?
ACREATE COLUMN
BUPDATE TABLE
CINSERT COLUMN
DALTER TABLE
3.Facile
Des instructions comme CREATE, ALTER et DROP appartiennent à quelle partie de SQL ?
ALe langage de contrôle des transactions (TCL)
BLe langage de manipulation de données (DML)
CLe langage de contrôle de données (DCL)
DLe langage de définition de données (DDL)
4.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 ?
AWHERE est évalué avant la liste du SELECT, donc l'alias n'existe pas encore
BL'arithmétique n'est pas autorisée dans la liste du SELECT
CLes alias ne peuvent pas contenir de tiret bas
DWHERE ne peut comparer que des colonnes de texte
5.Moyen
La table orders compte 5 lignes, chacune faisant référence à un client existant. La table customers compte 3 lignes. Combien de lignes un INNER JOIN sur customer_id renvoie-t-il ?
A3
B5
C8
D15
6.Moyen
Qu'est-ce qu'une lecture sale (dirty read) ?
ALa lecture de données sur un disque corrompu
BLa lecture de données écrites par une autre transaction qui n'a pas encore été validée
CLa lecture de données sans clause WHERE
DLa lecture d'une même ligne deux fois avec la même valeur
7.Difficile
Une base de données de reporting copie les noms des clients dans la table des commandes pour éviter des jointures. Quel est le principal coût de cette dénormalisation ?
ALa base de données ne peut plus utiliser d'index
BLes clés primaires ne peuvent plus être utilisées
CLes requêtes sur la table des commandes deviennent plus lentes
DLes copies redondantes doivent rester cohérentes chaque fois que les données client changent
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. C · Un identifiant artificiel sans signification métier, comme un id auto-incrémenté
2. D · ALTER TABLE
3. D · Le langage de définition de données (DDL)
4. A · WHERE est évalué avant la liste du SELECT, donc l'alias n'existe pas encore
5. B · 5
6. B · La lecture de données écrites par une autre transaction qui n'a pas encore été validée
7. D · Les copies redondantes doivent rester cohérentes chaque fois que les données client changent
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.