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 fonction d'agrégation compte les lignes ?

  1. AMAX
  2. BCOUNT
  3. CAVG
  4. DSUM
2.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-à-un
  2. BPlusieurs-à-plusieurs
  3. CZéro-à-zéro
  4. DUn-à-plusieurs
3.Facile

Quelle instruction ajoute une nouvelle colonne à une table existante ?

  1. AUPDATE TABLE
  2. BALTER TABLE
  3. CCREATE COLUMN
  4. DINSERT COLUMN
4.Moyen

Quelle propriété ACID signifie que des transactions concurrentes ne voient pas les modifications inachevées les unes des autres ?

  1. ALa durabilité
  2. BL'atomicité
  3. CLa disponibilité
  4. DL'isolation
5.Moyen

Quelle requête renvoie le nombre de villes différentes dans la table customers ?

  1. ASELECT SUM(DISTINCT city) FROM customers
  2. BSELECT DISTINCT COUNT(city) FROM customers
  3. CSELECT COUNT(city) FROM customers GROUP BY city
  4. DSELECT COUNT(DISTINCT city) FROM customers
6.Moyen

Pourquoi SELECT price * 2 AS double_price FROM t WHERE double_price > 10 échoue-t-il dans la plupart des bases de données ?

  1. ALes alias ne peuvent pas contenir de tiret bas
  2. BWHERE ne peut comparer que des colonnes de texte
  3. CWHERE est évalué avant la liste du SELECT, donc l'alias n'existe pas encore
  4. DL'arithmétique n'est pas autorisée dans la liste du SELECT
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'index traite TRUE comme NULL
  3. CL'optimiseur n'utilise jamais d'index dans les clauses WHERE
  4. DOn ne peut pas créer d'index sur des colonnes booléennes
8.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. BCOUNT(*) ne peut pas être utilisé avec GROUP BY
  3. Cname n'est ni regroupé ni agrégé, il n'a donc pas une valeur unique par groupe
  4. DGROUP BY doit lister toutes les colonnes de la table

Corrigé

  1. 1. B · COUNT
  2. 2. D · Un-à-plusieurs
  3. 3. B · ALTER TABLE
  4. 4. D · L'isolation
  5. 5. D · SELECT COUNT(DISTINCT city) FROM customers
  6. 6. C · WHERE est évalué avant la liste du SELECT, donc l'alias n'existe pas encore
  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. C · 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.