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

Que fait une contrainte CHECK ?

  1. AElle vérifie si une table existe avant qu'une requête lui soit appliquée
  2. BElle rejette les lignes dont les valeurs ne satisfont pas une condition
  3. CElle vérifie le mot de passe de l'utilisateur
  4. DElle compte les lignes d'une table
2.Facile

Que fait ROLLBACK dans une transaction ?

  1. AIl enregistre définitivement sur disque toutes les modifications de la transaction
  2. BIl annule les modifications effectuées depuis le début de la transaction
  3. CIl supprime la table
  4. DIl répète la dernière instruction
3.Facile

Quelle instruction supprime des lignes d'une table ?

  1. ADELETE
  2. BDROP
  3. CTRUNCATE COLUMN
  4. DREMOVE
4.Moyen

Quelle requête renvoie le nombre de commandes par client ?

  1. ASELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
  2. BSELECT customer_id FROM orders WHERE COUNT(*) > 0
  3. CSELECT DISTINCT COUNT(*) FROM orders
  4. DSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
5.Moyen

Une colonne contient les valeurs 10, 20 et NULL. Que renvoie AVG(col) ?

  1. A15
  2. BNULL
  3. C30
  4. D10
6.Moyen

La table a compte 3 lignes et la table b 4 lignes. Combien de lignes SELECT * FROM a CROSS JOIN b renvoie-t-il ?

  1. A4
  2. B3
  3. C12
  4. D7
7.Difficile

Deux transactions lisent toutes deux stock = 10, retirent chacune 1 et écrivent le résultat, ce qui donne 9 au lieu de 8. De quelle anomalie s'agit-il ?

  1. AUne lecture fantôme
  2. BUne anomalie de suppression
  3. CUne mise à jour perdue (lost update)
  4. DUne lecture sale
8.Difficile

La requête FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.status = 'paid' élimine de façon inattendue les clients sans commande. Pourquoi ?

  1. ALEFT JOIN ne conserve jamais les lignes sans correspondance
  2. BLa condition WHERE sur o rejette les lignes remplies de NULL, ce qui en fait une jointure interne
  3. CLa jointure devrait utiliser USING au lieu de ON
  4. Dstatus est un mot réservé

Corrigé

  1. 1. B · Elle rejette les lignes dont les valeurs ne satisfont pas une condition
  2. 2. B · Il annule les modifications effectuées depuis le début de la transaction
  3. 3. A · DELETE
  4. 4. D · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  5. 5. A · 15
  6. 6. C · 12
  7. 7. C · Une mise à jour perdue (lost update)
  8. 8. B · La condition WHERE sur o rejette les lignes remplies de NULL, ce qui en fait une jointure interne

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