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 permet de récupérer des données d'une table ?

  1. ASELECT
  2. BINSERT
  3. CCREATE
  4. DUPDATE
2.Facile

Quelle fonction d'agrégation compte les lignes ?

  1. ACOUNT
  2. BSUM
  3. CMAX
  4. DAVG
3.Facile

Que fait GROUP BY dans une requête ?

  1. AIl trie les lignes du résultat par ordre alphabétique
  2. BIl regroupe les lignes ayant les mêmes valeurs pour calculer les agrégats par groupe
  3. CIl joint deux tables sur leurs colonnes communes
  4. DIl supprime les lignes contenant des valeurs NULL
4.Moyen

La troisième forme normale (3NF) élimine :

  1. ALes clés composées
  2. BLes dépendances transitives entre attributs non clés
  3. CLes index redondants sur des colonnes qui ne font pas partie d'une clé
  4. DLes valeurs atomiques
5.Moyen

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

  1. AUniquement les étudiants reçus
  2. BUne erreur, car CASE n'est pas autorisé dans SELECT
  3. CChaque nom avec l'étiquette 'pass' ou 'fail' selon la note
  4. DLe nombre d'étudiants reçus et recalés
6.Moyen

Que fait ROLLBACK TO SAVEPOINT s1 ?

  1. AIl annule les modifications effectuées après le point de sauvegarde s1, en gardant la transaction ouverte
  2. BIl termine la transaction et valide tout
  3. CIl annule toute la transaction depuis le début
  4. DIl supprime le point de sauvegarde et toutes les tables modifiées depuis
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. ALa plupart des lignes correspondent, donc un parcours complet de la table coûte moins cher que de nombreux accès par l'index
  2. BL'optimiseur n'utilise jamais d'index dans les clauses WHERE
  3. COn ne peut pas créer d'index sur des colonnes booléennes
  4. DL'index traite TRUE comme NULL
8.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. Bname n'est ni regroupé ni agrégé, il n'a donc pas une valeur unique par groupe
  3. CGROUP BY doit lister toutes les colonnes de la table
  4. Ddept doit figurer dans une fonction d'agrégation

Corrigé

  1. 1. A · SELECT
  2. 2. A · COUNT
  3. 3. B · Il regroupe les lignes ayant les mêmes valeurs pour calculer les agrégats par groupe
  4. 4. B · Les dépendances transitives entre attributs non clés
  5. 5. C · Chaque nom avec l'étiquette 'pass' ou 'fail' selon la note
  6. 6. A · Il annule les modifications effectuées après le point de sauvegarde s1, en gardant la transaction ouverte
  7. 7. A · 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. B · name n'est ni regroupé ni agrégé, il n'a donc pas une valeur unique par groupe

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