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

Comment trier un résultat du salaire le plus élevé au plus bas ?

  1. ASORT salary DOWN
  2. BORDER BY salary ASC
  3. CORDER BY salary DESC
  4. DGROUP BY salary DESC
2.Facile

Qu'est-ce qu'une clé candidate ?

  1. AToute colonne contenant des valeurs NULL
  2. BUn ensemble minimal de colonnes qui identifie de manière unique chaque ligne
  3. CUne colonne en attente de devenir une clé étrangère
  4. DUn ensemble de colonnes partagé entre deux tables pour relier leurs lignes
3.Facile

Qu'est-ce qu'une clé primaire (primary key) ?

  1. AUne colonne qui peut contenir des doublons mais ne doit jamais contenir NULL
  2. BUne colonne ou un ensemble de colonnes qui identifie de manière unique chaque ligne
  3. CLa première colonne de chaque table
  4. DUn mot de passe pour la base de données
4.Moyen

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

  1. ASELECT c.name FROM customers c INNER 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 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 = NULL
5.Moyen

Quelle instruction supprime toutes les lignes d'une table, conserve sa structure et n'accepte pas de clause WHERE ?

  1. ADROP TABLE
  2. BALTER TABLE
  3. CDELETE FROM avec une clause WHERE
  4. DTRUNCATE TABLE
6.Moyen

Que renvoie INTERSECT utilisé entre deux requêtes SELECT ?

  1. ALes lignes du premier résultat absentes du second
  2. BToutes les lignes des deux résultats
  3. CLe produit cartésien des résultats
  4. DLes lignes présentes dans les deux résultats
7.Difficile

Pourquoi SELECT dept, name, COUNT(*) FROM emp GROUP BY dept est-il invalide en SQL standard ?

  1. ACOUNT(*) ne peut pas être utilisé avec GROUP BY
  2. BGROUP BY doit lister toutes les colonnes de la table
  3. Cdept doit figurer dans une fonction d'agrégation
  4. Dname n'est ni regroupé ni agrégé, il n'a donc pas une valeur unique par groupe
8.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 mise à jour perdue (lost update)
  3. CUne anomalie de suppression
  4. DUne lecture sale

Corrigé

  1. 1. C · ORDER BY salary DESC
  2. 2. B · Un ensemble minimal de colonnes qui identifie de manière unique chaque ligne
  3. 3. B · Une colonne ou un ensemble de colonnes qui identifie de manière unique chaque ligne
  4. 4. B · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  5. 5. D · TRUNCATE TABLE
  6. 6. D · Les lignes présentes dans les deux résultats
  7. 7. D · name n'est ni regroupé ni agrégé, il n'a donc pas une valeur unique par groupe
  8. 8. B · Une mise à jour perdue (lost update)

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