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 :
ALes lignes qui ne correspondent pas
BToutes les lignes de la table de gauche, avec des NULL là où il n'y a pas de correspondance
CUniquement les lignes ayant des valeurs correspondantes dans les deux tables
DToutes les lignes des deux tables
2.Facile
Comment trier un résultat du salaire le plus élevé au plus bas ?
AGROUP BY salary DESC
BORDER BY salary ASC
CSORT salary DOWN
DORDER BY salary DESC
3.Facile
Que fait une contrainte CHECK ?
AElle vérifie le mot de passe de l'utilisateur
BElle compte les lignes d'une table
CElle vérifie si une table existe avant qu'une requête lui soit appliquée
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 ?
ASELECT COUNT(DISTINCT city) FROM customers
BSELECT COUNT(city) FROM customers GROUP BY city
CSELECT DISTINCT COUNT(city) FROM customers
DSELECT SUM(DISTINCT city) FROM customers
5.Moyen
Que renvoie EXCEPT (appelé MINUS dans Oracle) ?
AToutes les lignes des deux requêtes, sans doublons
BLes lignes présentes dans les deux requêtes
CLes lignes de la première requête qui n'apparaissent pas dans la seconde
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 ?
AUne erreur
B0
CNULL
DUne chaîne vide
7.Difficile
Pourquoi SELECT dept, name, COUNT(*) FROM emp GROUP BY dept est-il invalide en SQL standard ?
Adept doit figurer dans une fonction d'agrégation
BGROUP BY doit lister toutes les colonnes de la table
CCOUNT(*) ne peut pas être utilisé avec GROUP BY
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 ?
AUniquement les lignes sans correspondance
BToutes les lignes des deux tables, appariées si possible et complétées par des NULL sinon
CUniquement les lignes correspondantes
DLe produit cartésien, qui associe chaque ligne d'une table à toutes les lignes de l'autre
Corrigé
1. C · Uniquement les lignes ayant des valeurs correspondantes dans les deux tables
2. D · ORDER BY salary DESC
3. D · Elle rejette les lignes dont les valeurs ne satisfont pas une condition
4. A · SELECT COUNT(DISTINCT city) FROM customers
5. C · Les lignes de la première requête qui n'apparaissent pas dans la seconde
6. C · NULL
7. D · name n'est ni regroupé ni agrégé, il n'a donc pas une valeur unique par groupe
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.