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

Un client peut passer de nombreuses commandes, mais chaque commande appartient à exactement un client. De quel type d'association s'agit-il ?

  1. AUn-à-plusieurs
  2. BPlusieurs-à-plusieurs
  3. CZéro-à-zéro
  4. DUn-à-un
2.Facile

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

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

Quelle instruction supprime une table entière, structure comprise ?

  1. ADROP TABLE
  2. BTRUNCATE ROWS
  3. CREMOVE TABLE
  4. DDELETE FROM
4.Moyen

La table orders compte 5 lignes, chacune faisant référence à un client existant. La table customers compte 3 lignes. Combien de lignes un INNER JOIN sur customer_id renvoie-t-il ?

  1. A3
  2. B15
  3. C5
  4. D8
5.Moyen

Quelle requête renvoie le salaire le plus élevé de chaque service ?

  1. ASELECT dept, salary FROM emp WHERE salary = MAX(salary)
  2. BSELECT dept, MAX(salary) FROM emp GROUP BY dept
  3. CSELECT dept, MAX(salary) FROM emp ORDER BY dept
  4. DSELECT MAX(dept), salary FROM emp GROUP BY salary
6.Moyen

Qu'est-ce qu'une lecture sale (dirty read) ?

  1. ALa lecture de données sans clause WHERE
  2. BLa lecture d'une même ligne deux fois avec la même valeur
  3. CLa lecture de données écrites par une autre transaction qui n'a pas encore été validée
  4. DLa lecture de données sur un disque corrompu
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. BOn ne peut pas créer d'index sur des colonnes booléennes
  3. CL'optimiseur n'utilise jamais d'index dans les clauses WHERE
  4. DL'index traite TRUE comme NULL
8.Difficile

Étant données les dépendances fonctionnelles A → B, B → C et C → D sur R(A, B, C, D), quelle est la fermeture A+ ?

  1. A{A, B, C, D}
  2. B{A, B, C}
  3. C{A, B}
  4. D{A}

Corrigé

  1. 1. A · Un-à-plusieurs
  2. 2. C · UNION ALL conserve les lignes en double
  3. 3. A · DROP TABLE
  4. 4. C · 5
  5. 5. B · SELECT dept, MAX(salary) FROM emp GROUP BY dept
  6. 6. C · La lecture de données écrites par une autre transaction qui n'a pas encore été validée
  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. A · {A, B, C, D}

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