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
Quelle instruction SQL modifie les valeurs de lignes qui existent déjà ?
AUPDATE
BREPLACE COLUMN
CINSERT
DMODIFY
2.Facile
Quelle clause filtre les lignes avant le regroupement ?
AWHERE
BHAVING
CGROUP BY
DORDER BY
3.Facile
Dans un motif LIKE, que représente le caractère générique % ?
ALa fin de la chaîne
BUn chiffre quelconque
CExactement un caractère à cette position de la chaîne
DToute suite de zéro caractère ou plus
4.Moyen
La table a compte 3 lignes et la table b 4 lignes. Combien de lignes SELECT * FROM a CROSS JOIN b renvoie-t-il ?
A12
B7
C4
D3
5.Moyen
Une table stocke l'adresse du client sur chaque ligne de commande. Modifier l'adresse dans une ligne mais pas dans les autres est un exemple :
AD'anomalie d'insertion
BD'anomalie de mise à jour
CD'anomalie de suppression
DDe lecture fantôme
6.Moyen
Que renvoie EXCEPT (appelé MINUS dans Oracle) ?
ALes lignes présentes dans les deux requêtes
BLes lignes de la seconde requête qui n'apparaissent pas dans la première
CLes lignes de la première requête qui n'apparaissent pas dans la seconde
DToutes les lignes des deux requêtes, sans doublons
7.Difficile
Les scores sont 90, 90 et 80. Quelles valeurs RANK() OVER (ORDER BY score DESC) donne-t-il ?
A1, 2, 3
B2, 2, 3
C1, 1, 2
D1, 1, 3
8.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
Corrigé
1. A · UPDATE
2. A · WHERE
3. D · Toute suite de zéro caractère ou plus
4. A · 12
5. B · D'anomalie de mise à jour
6. C · Les lignes de la première requête qui n'apparaissent pas dans la seconde
7. D · 1, 1, 3
8. A · COUNT(*) compte pour 1 la ligne remplie de NULL des clients sans commande
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.