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

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

  1. AMAX 10
  2. BFIRST 10 ONLY
  3. CTOP ROWS 10
  4. DLIMIT 10
2.Facile

Que fait WHERE country IN ('NL', 'BE', 'DE') ?

  1. AIl trie les lignes dans l'ordre de la liste
  2. BIl conserve les lignes dont le pays est égal à l'une des valeurs de la liste
  3. CIl conserve les lignes dont le pays n'est pas dans la liste
  4. DIl conserve les lignes dont la valeur de country contient les trois codes à la fois
3.Facile

Quelle instruction SQL modifie les valeurs de lignes qui existent déjà ?

  1. AUPDATE
  2. BREPLACE COLUMN
  3. CMODIFY
  4. DINSERT
4.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. BChaque nom avec l'étiquette 'pass' ou 'fail' selon la note
  3. CUniquement les étudiants reçus
  4. DUne erreur, car CASE n'est pas autorisé dans SELECT
5.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. ACombiner la table avec elle-même au moyen de UNION ALL et d'un filtre WHERE
  2. BCréer une seconde copie de la table sur disque
  3. CUtiliser uniquement GROUP BY manager_id
  4. DJoindre la table employees à elle-même avec deux alias
6.Moyen

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

  1. ADELETE FROM avec une clause WHERE
  2. BTRUNCATE TABLE
  3. CDROP TABLE
  4. DALTER TABLE
7.Difficile

Une table a un million de lignes et une colonne booléenne is_active vraie pour 95% d'entre elles. Pourquoi l'optimiseur pourrait-il ignorer un index sur is_active pour WHERE is_active = TRUE ?

  1. AOn ne peut pas créer d'index sur des colonnes booléennes
  2. BL'optimiseur n'utilise jamais d'index dans les clauses WHERE
  3. CLa plupart des lignes correspondent, donc un parcours complet de la table coûte moins cher que de nombreux accès par l'index
  4. DL'index traite TRUE comme NULL
8.Difficile

Que renvoie la requête suivante : SELECT name FROM students WHERE grade > (SELECT AVG(grade) FROM students) ?

  1. AUne erreur, car les sous-requêtes ne sont pas autorisées dans WHERE
  2. BUniquement les étudiants ayant la note la plus élevée
  3. CLes étudiants dont la note est supérieure à la note moyenne
  4. DLa note moyenne de tous les étudiants

Corrigé

  1. 1. D · LIMIT 10
  2. 2. B · Il conserve les lignes dont le pays est égal à l'une des valeurs de la liste
  3. 3. A · UPDATE
  4. 4. B · Chaque nom avec l'étiquette 'pass' ou 'fail' selon la note
  5. 5. D · Joindre la table employees à elle-même avec deux alias
  6. 6. B · TRUNCATE TABLE
  7. 7. C · La plupart des lignes correspondent, donc un parcours complet de la table coûte moins cher que de nombreux accès par l'index
  8. 8. C · Les étudiants dont la note est supérieure à la note moyenne

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