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é tirée de données réelles, comme une adresse e-mail
  2. BUne clé qui fait référence à une autre table
  3. CUne clé utilisée uniquement dans les vues
  4. DUn identifiant artificiel sans signification métier, comme un id auto-incrémenté
2.Facile

Comment trier un résultat du salaire le plus élevé au plus bas ?

  1. AORDER BY salary DESC
  2. BORDER BY salary ASC
  3. CGROUP BY salary DESC
  4. DSORT salary DOWN
3.Facile

Qu'est-ce qu'une clé composée (composite key) ?

  1. AUne clé formée de deux colonnes ou plus
  2. BUne clé stockée dans une table séparée
  3. CUne clé qui autorise les doublons
  4. DUne clé générée par la base de données
4.Moyen

Une table contient des lignes où col est NULL. Quelles lignes WHERE col = NULL renvoie-t-il ?

  1. AToutes les lignes de la table
  2. BAucune ligne, car la comparaison est inconnue
  3. CUniquement les lignes où col est NULL, comme avec IS NULL
  4. DUne erreur dans toutes les bases de données
5.Moyen

Qu'apporte une expression de table commune (WITH name AS (...)) ?

  1. AUn nouvel utilisateur de la base de données
  2. BUn index sur une colonne
  3. CUn résultat temporaire nommé, utilisable au sein d'une seule instruction
  4. DUne table permanente qui reste stockée sur disque jusqu'à sa suppression
6.Moyen

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

  1. ANULL
  2. BUne erreur
  3. CUne chaîne vide
  4. D'unknown'
7.Difficile

Pourquoi une requête avec WHERE YEAR(order_date) = 2025 pourrait-elle ne pas utiliser un index sur order_date ?

  1. AUn index sur order_date n'est utilisé que pour les clauses ORDER BY, jamais pour WHERE
  2. BAppliquer une fonction à la colonne empêche une simple recherche par plage dans l'index
  3. CYEAR n'est pas du SQL valide
  4. DLes index ne fonctionnent jamais avec des dates
8.Difficile

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

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

Corrigé

  1. 1. D · Un identifiant artificiel sans signification métier, comme un id auto-incrémenté
  2. 2. A · ORDER BY salary DESC
  3. 3. A · Une clé formée de deux colonnes ou plus
  4. 4. B · Aucune ligne, car la comparaison est inconnue
  5. 5. C · Un résultat temporaire nommé, utilisable au sein d'une seule instruction
  6. 6. D · 'unknown'
  7. 7. B · Appliquer une fonction à la colonne empêche une simple recherche par plage dans l'index
  8. 8. D · Les étudiants dont la note est supérieure à la note moyenne

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