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

Que garantit une contrainte UNIQUE sur une colonne ?

  1. ALa colonne ne peut plus être modifiée après l'insertion
  2. BDeux lignes ne peuvent pas avoir la même valeur non NULL dans cette colonne
  3. CLes valeurs de la colonne sont triées
  4. DLa colonne devient automatiquement la clé primaire de la table
2.Facile

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

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

Quel mot-clé donne à une colonne ou à une table un autre nom temporaire dans une requête ?

  1. ANAME
  2. BALIAS
  3. CAS
  4. DRENAME
4.Moyen

La deuxième forme normale (2NF) élimine :

  1. AToutes les valeurs NULL
  2. BLes dépendances partielles des colonnes non clés vis-à-vis d'une partie d'une clé composée
  3. CLes dépendances transitives entre colonnes non clés via une autre colonne non clé
  4. DLes clés étrangères
5.Moyen

Que renvoie SELECT COALESCE(phone, 'unknown') FROM customers pour un client dont le téléphone est NULL ?

  1. AUne erreur
  2. BUne chaîne vide
  3. C'unknown'
  4. DNULL
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. BALTER TABLE
  3. CTRUNCATE TABLE
  4. DDROP TABLE
7.Difficile

Que calcule SELECT day, SUM(amount) OVER (ORDER BY day) FROM sales ?

  1. ALe total de tous les montants sur chaque ligne
  2. BUne ligne par jour avec uniquement le total de ce jour
  3. CLe montant moyen par jour
  4. DUn total cumulé de amount, ordonné par day
8.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. AL'optimiseur n'utilise jamais d'index dans les clauses WHERE
  2. BL'index traite TRUE comme NULL
  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. DOn ne peut pas créer d'index sur des colonnes booléennes

Corrigé

  1. 1. B · Deux lignes ne peuvent pas avoir la même valeur non NULL dans cette colonne
  2. 2. C · UNION ALL conserve les lignes en double
  3. 3. C · AS
  4. 4. B · Les dépendances partielles des colonnes non clés vis-à-vis d'une partie d'une clé composée
  5. 5. C · 'unknown'
  6. 6. C · TRUNCATE TABLE
  7. 7. D · Un total cumulé de amount, ordonné par day
  8. 8. 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

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