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 ROLLBACK dans une transaction ?
AIl supprime la table
BIl annule les modifications effectuées depuis le début de la transaction
CIl répète la dernière instruction
DIl enregistre définitivement sur disque toutes les modifications de la transaction
2.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
3.Facile
Dans un motif LIKE, que représente le caractère générique _ (tiret bas) ?
AUn caractère espace
BExactement un caractère
CZéro caractère ou plus
DUne lettre quelconque, mais pas un chiffre
4.Moyen
Pourquoi crée-t-on des index sur des colonnes ?
APour économiser de l'espace disque
BPour accélérer les recherches et les jointures sur ces colonnes
CPour rendre les insertions et les mises à jour plus rapides sur ces colonnes
DPour empêcher les valeurs NULL
5.Moyen
Que renvoie INTERSECT utilisé entre deux requêtes SELECT ?
AToutes les lignes des deux résultats
BLes lignes du premier résultat absentes du second
CLe produit cartésien des résultats
DLes lignes présentes dans les deux résultats
6.Moyen
Quelle requête renvoie le nombre de villes différentes dans la table customers ?
ASELECT SUM(DISTINCT city) FROM customers
BSELECT COUNT(city) FROM customers GROUP BY city
CSELECT DISTINCT COUNT(city) FROM customers
DSELECT COUNT(DISTINCT city) FROM customers
7.Difficile
Après customers LEFT JOIN orders, pourquoi utiliser COUNT(o.id) plutôt que COUNT(*) pour compter les commandes par client ?
ACOUNT(*) compte pour 1 la ligne remplie de NULL des clients sans commande
BCOUNT(*) n'est pas autorisé après une jointure
CCOUNT(o.id) ne compte que les clients distincts
DCOUNT(*) ignore les lignes contenant des valeurs NULL
8.Difficile
x est NULL et y = 1. Quelle est la valeur de la condition (x > 5 OR y = 1) ?
ANULL, donc la ligne est toujours rejetée
BUNKNOWN
CFALSE
DTRUE
Corrigé
1. B · Il annule les modifications effectuées depuis le début de la transaction
2. D · Elle rejette les lignes dont les valeurs ne satisfont pas une condition
3. B · Exactement un caractère
4. B · Pour accélérer les recherches et les jointures sur ces colonnes
5. D · Les lignes présentes dans les deux résultats
6. D · SELECT COUNT(DISTINCT city) FROM customers
7. A · COUNT(*) compte pour 1 la ligne remplie de NULL des clients sans commande
8. D · TRUE
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.