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é primaire (primary key) ?

  1. AUne colonne ou un ensemble de colonnes qui identifie de manière unique chaque ligne
  2. BLa première colonne de chaque table
  3. CUne colonne qui peut contenir des doublons mais ne doit jamais contenir NULL
  4. DUn mot de passe pour la base de données
2.Facile

Qu'est-ce qu'une clé de substitution (surrogate key) ?

  1. AUne clé qui fait référence à une autre table
  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é utilisée uniquement dans les vues
3.Facile

Quelle instruction supprime une table entière, structure comprise ?

  1. ADROP TABLE
  2. BTRUNCATE ROWS
  3. CDELETE FROM
  4. DREMOVE TABLE
4.Moyen

Que renvoie SELECT COALESCE(phone, 'unknown') FROM customers pour un client dont le téléphone est NULL ?

  1. AUne chaîne vide
  2. B'unknown'
  3. CNULL
  4. DUne erreur
5.Moyen

Qu'est-ce qu'un déclencheur (trigger) de base de données ?

  1. AUn type d'index qui accélère les recherches
  2. BDu code exécuté automatiquement lorsqu'un événement précis, comme INSERT, UPDATE ou DELETE, se produit sur une table
  3. CUne sauvegarde planifiée de la base de données
  4. DUne requête qu'un utilisateur lance à la main
6.Moyen

Une table employees possède une colonne manager_id qui fait référence à un autre employé. Comment lister chaque employé à côté du nom de son responsable ?

  1. AJoindre la table employees à elle-même avec deux alias
  2. BUtiliser uniquement GROUP BY manager_id
  3. CCombiner la table avec elle-même au moyen de UNION ALL et d'un filtre WHERE
  4. DCréer une seconde copie de la table sur disque
7.Difficile

Que renvoie la requête suivante : SELECT name FROM students WHERE grade > (SELECT AVG(grade) FROM students) ?

  1. ALes étudiants dont la note est supérieure à la note moyenne
  2. BUne erreur, car les sous-requêtes ne sont pas autorisées dans WHERE
  3. CLa note moyenne de tous les étudiants
  4. DUniquement les étudiants ayant la note la plus élevée
8.Difficile

Pourquoi SELECT dept, name, COUNT(*) FROM emp GROUP BY dept est-il invalide en SQL standard ?

  1. Aname n'est ni regroupé ni agrégé, il n'a donc pas une valeur unique par groupe
  2. BCOUNT(*) ne peut pas être utilisé avec GROUP BY
  3. CGROUP BY doit lister toutes les colonnes de la table
  4. Ddept doit figurer dans une fonction d'agrégation

Corrigé

  1. 1. A · Une colonne ou un ensemble de colonnes qui identifie de manière unique chaque ligne
  2. 2. C · Un identifiant artificiel sans signification métier, comme un id auto-incrémenté
  3. 3. A · DROP TABLE
  4. 4. B · 'unknown'
  5. 5. B · Du code exécuté automatiquement lorsqu'un événement précis, comme INSERT, UPDATE ou DELETE, se produit sur une table
  6. 6. A · Joindre la table employees à elle-même avec deux alias
  7. 7. A · Les étudiants dont la note est supérieure à la note moyenne
  8. 8. A · name n'est ni regroupé ni agrégé, il n'a donc pas une valeur unique par groupe

Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.