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

Un INNER JOIN renvoie :

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

Quelles lignes WHERE price BETWEEN 10 AND 20 sélectionne-t-il ?

  1. ALes lignes dont le prix est supérieur à 10 et inférieur à 20, 10 et 20 exclus
  2. BUniquement les lignes dont le prix est égal à 10 ou à 20
  3. CLes lignes dont le prix est en dehors de l'intervalle de 10 à 20
  4. DLes lignes dont le prix va de 10 à 20, bornes 10 et 20 incluses
3.Facile

Que fait UNION avec les résultats de deux requêtes SELECT ?

  1. AIl les joint côte à côte sur une clé
  2. BIl les combine en un seul résultat et supprime les lignes en double
  3. CIl ne garde que les lignes qui apparaissent dans la première requête mais pas dans la seconde
  4. DIl ne garde que les lignes présentes dans les deux
4.Moyen

Quelle requête renvoie le nombre de villes différentes dans la table customers ?

  1. ASELECT DISTINCT COUNT(city) FROM customers
  2. BSELECT SUM(DISTINCT city) FROM customers
  3. CSELECT COUNT(DISTINCT city) FROM customers
  4. DSELECT COUNT(city) FROM customers GROUP BY city
5.Moyen

Pourquoi crée-t-on des index sur des colonnes ?

  1. APour empêcher les valeurs NULL
  2. BPour rendre les insertions et les mises à jour plus rapides sur ces colonnes
  3. CPour accélérer les recherches et les jointures sur ces colonnes
  4. DPour économiser de l'espace disque
6.Moyen

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

  1. ALa lecture de données sans clause WHERE
  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 d'une même ligne deux fois avec la même valeur
7.Difficile

Quelle fonctionnalité SQL convient le mieux pour trouver tous les employés sous un responsable dans un organigramme de profondeur inconnue ?

  1. AUn GROUP BY sur manager_id
  2. BUne contrainte UNIQUE sur manager_id
  3. CUne seule auto-jointure de la table employees sur manager_id
  4. DUne expression de table commune récursive (WITH RECURSIVE)
8.Difficile

Que montre EXPLAIN (ou EXPLAIN ANALYZE dans PostgreSQL) pour une requête ?

  1. AUniquement une réécriture de la requête en notation d'algèbre relationnelle
  2. BLe plan d'exécution choisi par l'optimiseur, comme les parcours et les méthodes de jointure
  3. CLa signification de chaque mot-clé SQL de la requête
  4. DLa liste des utilisateurs qui ont exécuté la requête

Corrigé

  1. 1. A · Uniquement les lignes ayant des valeurs correspondantes dans les deux tables
  2. 2. D · Les lignes dont le prix va de 10 à 20, bornes 10 et 20 incluses
  3. 3. B · Il les combine en un seul résultat et supprime les lignes en double
  4. 4. C · SELECT COUNT(DISTINCT city) FROM customers
  5. 5. C · Pour accélérer les recherches et les jointures sur ces colonnes
  6. 6. C · La lecture de données écrites par une autre transaction qui n'a pas encore été validée
  7. 7. D · Une expression de table commune récursive (WITH RECURSIVE)
  8. 8. B · Le plan d'exécution choisi par l'optimiseur, comme les parcours et les méthodes de jointure

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