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 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 qui correspondent sur une colonne clé commune
  4. DUniquement les lignes de la première table
2.Facile

Quelle fonction d'agrégation compte les lignes ?

  1. AMAX
  2. BCOUNT
  3. CSUM
  4. DAVG
3.Facile

Un INNER JOIN renvoie :

  1. AToutes les lignes des deux tables
  2. BUniquement les lignes ayant des valeurs correspondantes dans les deux tables
  3. CToutes les lignes de la table de gauche, avec des NULL là où il n'y a pas de correspondance
  4. DLes lignes qui ne correspondent pas
4.Moyen

Quelle affirmation sur HAVING est correcte ?

  1. AElle doit figurer avant WHERE dans l'instruction SELECT
  2. BElle ne peut pas être utilisée avec GROUP BY
  3. CElle trie les résultats
  4. DElle peut utiliser des fonctions d'agrégation pour filtrer les groupes
5.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. ACréer une seconde copie de la table sur disque
  2. BJoindre la table employees à elle-même avec deux alias
  3. CUtiliser uniquement GROUP BY manager_id
  4. DCombiner la table avec elle-même au moyen de UNION ALL et d'un filtre WHERE
6.Moyen

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

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

La transaction T1 verrouille la ligne A et attend la ligne B, tandis que T2 verrouille la ligne B et attend la ligne A. Que fait un SGBD typique ?

  1. AIl valide les deux transactions en même temps
  2. BIl laisse les deux transactions attendre jusqu'à ce que l'une d'elles se termine normalement par un COMMIT
  3. CIl détecte l'interblocage et annule l'une des transactions, désignée comme victime
  4. DIl fusionne les deux transactions en une seule
8.Difficile

Les scores sont 90, 90 et 80. Quelles valeurs RANK() OVER (ORDER BY score DESC) donne-t-il ?

  1. A1, 1, 2
  2. B2, 2, 3
  3. C1, 2, 3
  4. D1, 1, 3

Corrigé

  1. 1. B · Toutes les combinaisons de lignes des deux tables
  2. 2. B · COUNT
  3. 3. B · Uniquement les lignes ayant des valeurs correspondantes dans les deux tables
  4. 4. D · Elle peut utiliser des fonctions d'agrégation pour filtrer les groupes
  5. 5. B · Joindre la table employees à elle-même avec deux alias
  6. 6. B · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  7. 7. C · Il détecte l'interblocage et annule l'une des transactions, désignée comme victime
  8. 8. D · 1, 1, 3

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