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

Dans PostgreSQL et MySQL, quelle clause renvoie uniquement les 10 premières lignes d'un résultat ?

  1. ATOP ROWS 10
  2. BFIRST 10 ONLY
  3. CMAX 10
  4. DLIMIT 10
2.Facile

Que renvoie un CROSS JOIN ?

  1. AUniquement les lignes qui ne correspondent pas
  2. BToutes les combinaisons de lignes des deux tables
  3. CUniquement les lignes de la première table
  4. DUniquement les lignes qui correspondent sur une colonne clé commune
3.Facile

Quelle contrainte garantit qu'une colonne ne peut jamais rester vide (NULL) ?

  1. ANOT NULL
  2. BUNIQUE
  3. CDEFAULT
  4. DCHECK NULL
4.Moyen

Que fait GRANT SELECT ON employees TO alice ?

  1. AIl copie la table employees pour alice
  2. BIl fait d'alice la propriétaire de la base de données
  3. CIl autorise alice à modifier et à supprimer des lignes de la table employees
  4. DIl autorise l'utilisatrice alice à lire la table employees
5.Moyen

Quelle propriété ACID garantit que les modifications validées survivent à une panne du système ?

  1. ALa durabilité
  2. BL'atomicité
  3. CLa cohérence
  4. DL'isolation
6.Moyen

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

  1. ALa lecture d'une même ligne deux fois avec la même valeur
  2. BLa lecture de données sur un disque corrompu
  3. CLa lecture de données écrites par une autre transaction qui n'a pas encore été validée
  4. DLa lecture de données sans clause WHERE
7.Difficile

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

  1. ALes index ne fonctionnent jamais avec des dates
  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. DUn index sur order_date n'est utilisé que pour les clauses ORDER BY, jamais pour WHERE
8.Difficile

Après customers LEFT JOIN orders, pourquoi utiliser COUNT(o.id) plutôt que COUNT(*) pour compter les commandes par client ?

  1. ACOUNT(*) ignore les lignes contenant des valeurs NULL
  2. BCOUNT(*) compte pour 1 la ligne remplie de NULL des clients sans commande
  3. CCOUNT(*) n'est pas autorisé après une jointure
  4. DCOUNT(o.id) ne compte que les clients distincts

Corrigé

  1. 1. D · LIMIT 10
  2. 2. B · Toutes les combinaisons de lignes des deux tables
  3. 3. A · NOT NULL
  4. 4. D · Il autorise l'utilisatrice alice à lire la table employees
  5. 5. A · La durabilité
  6. 6. C · La lecture de données écrites par une autre transaction qui n'a pas encore été validée
  7. 7. B · Appliquer une fonction à la colonne empêche une simple recherche par plage dans l'index
  8. 8. B · COUNT(*) compte pour 1 la ligne remplie de NULL des clients sans commande

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