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 fait une contrainte CHECK ?

  1. AElle rejette les lignes dont les valeurs ne satisfont pas une condition
  2. BElle vérifie si une table existe avant qu'une requête lui soit appliquée
  3. CElle compte les lignes d'une table
  4. DElle vérifie le mot de passe de l'utilisateur
2.Facile

Une clé étrangère (foreign key) est :

  1. AUne clé toujours chiffrée
  2. BUne colonne qui fait référence à la clé primaire d'une autre table
  3. CUne colonne dont les valeurs doivent être uniques sur toutes les lignes de la table
  4. DUne clé utilisée par des utilisateurs étrangers
3.Facile

Que garantit une contrainte UNIQUE sur une colonne ?

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

Une table contient des lignes où col est NULL. Quelles lignes WHERE col = NULL renvoie-t-il ?

  1. AUne erreur dans toutes les bases de données
  2. BAucune ligne, car la comparaison est inconnue
  3. CUniquement les lignes où col est NULL, comme avec IS NULL
  4. DToutes les lignes de la table
5.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
6.Moyen

Quelle requête renvoie le nombre de commandes par client ?

  1. ASELECT customer_id FROM orders WHERE COUNT(*) > 0
  2. BSELECT DISTINCT COUNT(*) FROM orders
  3. CSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  4. DSELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
7.Difficile

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

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

Que renvoie SELECT name, dept, AVG(salary) OVER (PARTITION BY dept) FROM emp ?

  1. AUniquement les employés qui gagnent plus que la moyenne de leur service
  2. BUne erreur, car name ne figure pas dans un GROUP BY
  3. CChaque ligne d'employé accompagnée du salaire moyen de son service
  4. DUne ligne par service avec son salaire moyen

Corrigé

  1. 1. A · Elle rejette les lignes dont les valeurs ne satisfont pas une condition
  2. 2. B · Une colonne qui fait référence à la clé primaire d'une autre table
  3. 3. D · Deux lignes ne peuvent pas avoir la même valeur non NULL dans cette colonne
  4. 4. B · Aucune ligne, car la comparaison est inconnue
  5. 5. C · 5
  6. 6. C · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  7. 7. A · Certaines dépendances fonctionnelles peuvent ne plus être vérifiables au sein d'une seule table
  8. 8. C · Chaque ligne d'employé accompagnée du salaire moyen de son service

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