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 INNER JOIN renvoie :

  1. ALes lignes qui ne correspondent pas
  2. BToutes les lignes de la table de gauche, avec des NULL là où il n'y a pas de correspondance
  3. CUniquement les lignes ayant des valeurs correspondantes dans les deux tables
  4. DToutes les lignes des deux tables
2.Facile

Comment trier un résultat du salaire le plus élevé au plus bas ?

  1. AGROUP BY salary DESC
  2. BORDER BY salary ASC
  3. CSORT salary DOWN
  4. DORDER BY salary DESC
3.Facile

Que fait une contrainte CHECK ?

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

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

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

Que renvoie EXCEPT (appelé MINUS dans Oracle) ?

  1. AToutes les lignes des deux requêtes, sans doublons
  2. BLes lignes présentes dans les deux requêtes
  3. CLes lignes de la première requête qui n'apparaissent pas dans la seconde
  4. DLes lignes de la seconde requête qui n'apparaissent pas dans la première
6.Moyen

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

  1. AUne erreur
  2. B0
  3. CNULL
  4. DUne chaîne vide
7.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. BGROUP BY doit lister toutes les colonnes de la table
  3. CCOUNT(*) ne peut pas être utilisé avec GROUP BY
  4. Dname n'est ni regroupé ni agrégé, il n'a donc pas une valeur unique par groupe
8.Difficile

Que renvoie un FULL OUTER JOIN ?

  1. AUniquement les lignes sans correspondance
  2. BToutes les lignes des deux tables, appariées si possible et complétées par des NULL sinon
  3. CUniquement les lignes correspondantes
  4. DLe produit cartésien, qui associe chaque ligne d'une table à toutes les lignes de l'autre

Corrigé

  1. 1. C · Uniquement les lignes ayant des valeurs correspondantes dans les deux tables
  2. 2. D · ORDER BY salary DESC
  3. 3. D · Elle rejette les lignes dont les valeurs ne satisfont pas une condition
  4. 4. A · SELECT COUNT(DISTINCT city) FROM customers
  5. 5. C · Les lignes de la première requête qui n'apparaissent pas dans la seconde
  6. 6. C · NULL
  7. 7. D · name n'est ni regroupé ni agrégé, il n'a donc pas une valeur unique par groupe
  8. 8. B · Toutes les lignes des deux tables, appariées si possible et complétées par des NULL sinon

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