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 renvoie un CROSS JOIN ?
AUniquement les lignes qui ne correspondent pas
BToutes les combinaisons de lignes des deux tables
CUniquement les lignes de la première table
DUniquement les lignes qui correspondent sur une colonne clé commune
2.Facile
Quelle fonction d'agrégation compte les lignes ?
ACOUNT
BMAX
CAVG
DSUM
3.Facile
Que fait WHERE country IN ('NL', 'BE', 'DE') ?
AIl conserve les lignes dont la valeur de country contient les trois codes à la fois
BIl conserve les lignes dont le pays n'est pas dans la liste
CIl conserve les lignes dont le pays est égal à l'une des valeurs de la liste
DIl trie les lignes dans l'ordre de la liste
4.Moyen
Pourquoi SELECT price * 2 AS double_price FROM t WHERE double_price > 10 échoue-t-il dans la plupart des bases de données ?
ALes alias ne peuvent pas contenir de tiret bas
BL'arithmétique n'est pas autorisée dans la liste du SELECT
CWHERE est évalué avant la liste du SELECT, donc l'alias n'existe pas encore
DWHERE ne peut comparer que des colonnes de texte
5.Moyen
Quand WHERE EXISTS (sous-requête) est-il vrai pour une ligne ?
AQuand la sous-requête renvoie au moins une ligne
BQuand la sous-requête ne renvoie aucune valeur NULL
CQuand la sous-requête renvoie un nombre supérieur à zéro
DQuand la sous-requête renvoie exactement une ligne
6.Moyen
Qu'est-ce qu'une lecture sale (dirty read) ?
ALa lecture d'une même ligne deux fois avec la même valeur
BLa lecture de données écrites par une autre transaction qui n'a pas encore été validée
CLa lecture de données sans clause WHERE
DLa lecture de données sur un disque corrompu
7.Difficile
Pourquoi NATURAL JOIN est-il considéré comme risqué dans les requêtes de production ?
AIl ignore les clés primaires et étrangères et ne garde que les lignes NULL
BIl renvoie toujours un produit cartésien
CIl n'est pris en charge par aucune base de données
DIl joint sur toutes les colonnes de même nom, si bien qu'une nouvelle colonne peut modifier le résultat sans prévenir
8.Difficile
Que montre EXPLAIN (ou EXPLAIN ANALYZE dans PostgreSQL) pour une requête ?
ALa liste des utilisateurs qui ont exécuté la requête
BUniquement une réécriture de la requête en notation d'algèbre relationnelle
CLa signification de chaque mot-clé SQL de la requête
DLe plan d'exécution choisi par l'optimiseur, comme les parcours et les méthodes de jointure
Corrigé
1. B · Toutes les combinaisons de lignes des deux tables
2. A · COUNT
3. C · Il conserve les lignes dont le pays est égal à l'une des valeurs de la liste
4. C · WHERE est évalué avant la liste du SELECT, donc l'alias n'existe pas encore
5. A · Quand la sous-requête renvoie au moins une ligne
6. B · La lecture de données écrites par une autre transaction qui n'a pas encore été validée
7. D · Il joint sur toutes les colonnes de même nom, si bien qu'une nouvelle colonne peut modifier le résultat sans prévenir
8. D · Le plan d'exécution choisi par l'optimiseur, comme les parcours et les méthodes de jointure
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.