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 clause filtre les lignes avant le regroupement ?

  1. AWHERE
  2. BGROUP BY
  3. CORDER BY
  4. DHAVING
2.Facile

Qu'est-ce qu'une clé primaire (primary key) ?

  1. AUne colonne qui peut contenir des doublons mais ne doit jamais contenir NULL
  2. BLa première colonne de chaque table
  3. CUn mot de passe pour la base de données
  4. DUne colonne ou un ensemble de colonnes qui identifie de manière unique chaque ligne
3.Facile

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

  1. AIl conserve les lignes dont le pays n'est pas dans 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 la valeur de country contient les trois codes à la fois
  4. DIl trie les lignes dans l'ordre de la liste
4.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. BJoindre la table employees à elle-même avec deux alias
  3. CCréer une seconde copie de la table sur disque
  4. DUtiliser uniquement GROUP BY manager_id
5.Moyen

Que renvoie SELECT SUM(amount) FROM orders lorsque la clause WHERE ne correspond à aucune ligne ?

  1. AUne erreur
  2. BUne chaîne vide
  3. CNULL
  4. D0
6.Moyen

Quelle affirmation sur HAVING est correcte ?

  1. AElle ne peut pas être utilisée avec GROUP BY
  2. BElle doit figurer avant WHERE dans l'instruction SELECT
  3. CElle trie les résultats
  4. DElle peut utiliser des fonctions d'agrégation pour filtrer les groupes
7.Difficile

La requête FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.status = 'paid' élimine de façon inattendue les clients sans commande. Pourquoi ?

  1. ALa jointure devrait utiliser USING au lieu de ON
  2. BLa condition WHERE sur o rejette les lignes remplies de NULL, ce qui en fait une jointure interne
  3. Cstatus est un mot réservé
  4. DLEFT JOIN ne conserve jamais les lignes sans correspondance
8.Difficile

Quel est un inconvénient connu de la décomposition des tables en BCNF par rapport à la 3NF ?

  1. ALes tables en BCNF ne peuvent pas avoir de clé primaire
  2. BLa décomposition perd toujours des données lors de la jointure inverse
  3. CCertaines dépendances fonctionnelles peuvent ne plus être vérifiables au sein d'une seule table
  4. DLa BCNF permet plus de redondance que la 3NF

Corrigé

  1. 1. A · WHERE
  2. 2. D · Une colonne ou un ensemble de colonnes qui identifie de manière unique chaque ligne
  3. 3. B · Il conserve les lignes dont le pays est égal à l'une des valeurs de la liste
  4. 4. B · Joindre la table employees à elle-même avec deux alias
  5. 5. C · NULL
  6. 6. D · Elle peut utiliser des fonctions d'agrégation pour filtrer les groupes
  7. 7. B · La condition WHERE sur o rejette les lignes remplies de NULL, ce qui en fait une jointure interne
  8. 8. C · Certaines dépendances fonctionnelles peuvent ne plus être vérifiables au sein d'une seule table

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