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

En quoi UNION ALL diffère-t-il de UNION ?

  1. AUNION ALL trie le résultat
  2. BUNION ALL conserve les lignes en double
  3. CUNION ALL supprime les lignes en double
  4. DUNION ALL ne fonctionne que sur une seule table
2.Facile

Dans PostgreSQL et MySQL, quelle clause renvoie uniquement les 10 premières lignes d'un résultat ?

  1. AFIRST 10 ONLY
  2. BMAX 10
  3. CTOP ROWS 10
  4. DLIMIT 10
3.Facile

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

  1. ACONTAINS
  2. BSIMILAR
  3. CMATCH
  4. DLIKE
4.Moyen

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

  1. ALes lignes du premier résultat absentes du second
  2. BLe produit cartésien des résultats
  3. CLes lignes présentes dans les deux résultats
  4. DToutes les lignes des deux résultats
5.Moyen

Que renvoie SELECT name, CASE WHEN grade >= 5,5 THEN 'pass' ELSE 'fail' END FROM results ?

  1. ALe nombre d'étudiants reçus et recalés
  2. BUniquement les étudiants reçus
  3. CUne erreur, car CASE n'est pas autorisé dans SELECT
  4. DChaque nom avec l'étiquette 'pass' ou 'fail' selon la note
6.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. AJoindre la table employees à elle-même avec deux alias
  2. BCombiner la table avec elle-même au moyen de UNION ALL et d'un filtre WHERE
  3. CCréer une seconde copie de la table sur disque
  4. DUtiliser uniquement GROUP BY manager_id
7.Difficile

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

  1. Adept doit figurer dans une fonction d'agrégation
  2. BGROUP BY doit lister toutes les colonnes de la table
  3. Cname n'est ni regroupé ni agrégé, il n'a donc pas une valeur unique par groupe
  4. DCOUNT(*) ne peut pas être utilisé avec GROUP BY
8.Difficile

Une application exécute UPDATE item SET qty = 4, version = 8 WHERE id = 1 AND version = 7 et signale un conflit si aucune ligne n'a été mise à jour. De quelle technique s'agit-il ?

  1. ALe partitionnement (sharding) de la base de données
  2. BLe contrôle de concurrence optimiste
  3. CLe verrouillage à deux phases strict avec des verrous de ligne
  4. DLa journalisation anticipée (WAL)

Corrigé

  1. 1. B · UNION ALL conserve les lignes en double
  2. 2. D · LIMIT 10
  3. 3. D · LIKE
  4. 4. C · Les lignes présentes dans les deux résultats
  5. 5. D · Chaque nom avec l'étiquette 'pass' ou 'fail' selon la note
  6. 6. A · Joindre la table employees à elle-même avec deux alias
  7. 7. C · name n'est ni regroupé ni agrégé, il n'a donc pas une valeur unique par groupe
  8. 8. B · Le contrôle de concurrence optimiste

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