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

Quelle instruction SQL ajoute de nouvelles lignes à une table ?

  1. ASELECT
  2. BUPDATE
  3. CALTER
  4. DINSERT
2.Facile

Que fait COMMIT dans une transaction ?

  1. AIl rend permanentes toutes les modifications de la transaction
  2. BIl crée une nouvelle table
  3. CIl annule toutes les modifications effectuées depuis le début de la transaction
  4. DIl verrouille toute la base de données
3.Facile

Une clé étrangère (foreign key) est :

  1. AUne colonne qui fait référence à la clé primaire d'une autre table
  2. BUne clé toujours chiffrée
  3. CUne colonne dont les valeurs doivent être uniques sur toutes les lignes de la table
  4. DUne clé utilisée par des utilisateurs étrangers
4.Moyen

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

  1. ASELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  2. BSELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
  3. CSELECT customer_id FROM orders WHERE COUNT(*) > 0
  4. DSELECT DISTINCT COUNT(*) FROM orders
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 = NULL
  2. BSELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  3. CSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
  4. DSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
6.Moyen

Un LEFT JOIN renvoie :

  1. AUniquement les lignes correspondantes des deux tables
  2. BLes lignes qui ne correspondent dans aucune des deux tables
  3. CUniquement toutes les lignes de la table de droite
  4. DToutes les lignes de la table de gauche et les lignes correspondantes de droite, avec des NULL en l'absence de correspondance
7.Difficile

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

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

Avec le contrôle de concurrence multiversion (MVCC), comment les lecteurs évitent-ils de bloquer les écrivains ?

  1. ALes lecteurs attendent toujours que tous les écrivains aient validé
  2. BLes lecteurs voient un instantané cohérent des versions validées des lignes, tandis que les écrivains créent de nouvelles versions
  3. CLes écritures sont interdites tant qu'un lecteur est actif
  4. DLes lecteurs lisent directement les données non validées

Corrigé

  1. 1. D · INSERT
  2. 2. A · Il rend permanentes toutes les modifications de la transaction
  3. 3. A · Une colonne qui fait référence à la clé primaire d'une autre table
  4. 4. A · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  5. 5. D · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  6. 6. D · Toutes les lignes de la table de gauche et les lignes correspondantes de droite, avec des NULL en l'absence de correspondance
  7. 7. D · Chaque ligne d'employé accompagnée du salaire moyen de son service
  8. 8. B · Les lecteurs voient un instantané cohérent des versions validées des lignes, tandis que les écrivains créent de nouvelles versions

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