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 client peut passer de nombreuses commandes, mais chaque commande appartient à exactement un client. De quel type d'association s'agit-il ?

  1. AUn-à-un
  2. BUn-à-plusieurs
  3. CPlusieurs-à-plusieurs
  4. DZéro-à-zéro
2.Facile

Quelle instruction supprime une table entière, structure comprise ?

  1. ADELETE FROM
  2. BREMOVE TABLE
  3. CTRUNCATE ROWS
  4. DDROP TABLE
3.Facile

Quel opérateur sert à une recherche simple par motif de texte dans une clause WHERE ?

  1. ASIMILAR
  2. BMATCH
  3. CCONTAINS
  4. DLIKE
4.Moyen

La table orders compte 5 lignes, chacune faisant référence à un client existant. La table customers compte 3 lignes. Combien de lignes un INNER JOIN sur customer_id renvoie-t-il ?

  1. A8
  2. B15
  3. C3
  4. D5
5.Moyen

Quelle requête liste les clients qui n'ont jamais passé de commande ?

  1. ASELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  2. BSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
  3. CSELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  4. DSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
6.Moyen

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

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

La table enrolment(student_id, course_id, student_name, grade) a pour clé (student_id, course_id). Quelle forme normale viole-t-elle ?

  1. AAucune, elle est en BCNF
  2. BLa deuxième forme normale, car student_name ne dépend que de student_id
  3. CUniquement la troisième forme normale, car grade dépend de student_name
  4. DLa première forme normale, car la colonne grade ne contient pas de valeurs atomiques
8.Difficile

Que renvoie SELECT name, dept, AVG(salary) OVER (PARTITION BY dept) FROM emp ?

  1. AUniquement les employés qui gagnent plus que la moyenne de leur service
  2. BUne ligne par service avec son salaire moyen
  3. CUne erreur, car name ne figure pas dans un GROUP BY
  4. DChaque ligne d'employé accompagnée du salaire moyen de son service

Corrigé

  1. 1. B · Un-à-plusieurs
  2. 2. D · DROP TABLE
  3. 3. D · LIKE
  4. 4. D · 5
  5. 5. A · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  6. 6. C · Pour accélérer les recherches et les jointures sur ces colonnes
  7. 7. B · La deuxième forme normale, car student_name ne dépend que de student_id
  8. 8. D · Chaque ligne d'employé accompagnée du salaire moyen de son service

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