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) ?

  1. AUne clé utilisée uniquement dans les vues
  2. BUne clé tirée de données réelles, comme une adresse e-mail
  3. CUn identifiant artificiel sans signification métier, comme un id auto-incrémenté
  4. DUne clé qui fait référence à une autre table
2.Facile

Quelle instruction ajoute une nouvelle colonne à une table existante ?

  1. ACREATE COLUMN
  2. BUPDATE TABLE
  3. CINSERT COLUMN
  4. DALTER TABLE
3.Facile

Des instructions comme CREATE, ALTER et DROP appartiennent à quelle partie de SQL ?

  1. ALe langage de contrôle des transactions (TCL)
  2. BLe langage de manipulation de données (DML)
  3. CLe langage de contrôle de données (DCL)
  4. 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 ?

  1. AWHERE est évalué avant la liste du SELECT, donc l'alias n'existe pas encore
  2. BL'arithmétique n'est pas autorisée dans la liste du SELECT
  3. CLes alias ne peuvent pas contenir de tiret bas
  4. 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 ?

  1. A3
  2. B5
  3. C8
  4. D15
6.Moyen

Qu'est-ce qu'une lecture sale (dirty read) ?

  1. ALa lecture de données sur un disque corrompu
  2. BLa lecture de données écrites par une autre transaction qui n'a pas encore été validée
  3. CLa lecture de données sans clause WHERE
  4. 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 ?

  1. ALa base de données ne peut plus utiliser d'index
  2. BLes clés primaires ne peuvent plus être utilisées
  3. CLes requêtes sur la table des commandes deviennent plus lentes
  4. 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 ?

  1. AOn ne peut pas créer d'index sur des colonnes booléennes
  2. BL'optimiseur n'utilise jamais d'index dans les clauses WHERE
  3. CLa plupart des lignes correspondent, donc un parcours complet de la table coûte moins cher que de nombreux accès par l'index
  4. DL'index traite TRUE comme NULL

Corrigé

  1. 1. C · Un identifiant artificiel sans signification métier, comme un id auto-incrémenté
  2. 2. D · ALTER TABLE
  3. 3. D · Le langage de définition de données (DDL)
  4. 4. A · WHERE est évalué avant la liste du SELECT, donc l'alias n'existe pas encore
  5. 5. B · 5
  6. 6. B · La lecture de données écrites par une autre transaction qui n'a pas encore été validée
  7. 7. D · Les copies redondantes doivent rester cohérentes chaque fois que les données client changent
  8. 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.