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
En quoi UNION ALL diffère-t-il de UNION ?
AUNION ALL trie le résultat
BUNION ALL conserve les lignes en double
CUNION ALL supprime les lignes en double
DUNION ALL ne fonctionne que sur une seule table
2.Facile
Dans PostgreSQL et MySQL, quelle clause renvoie uniquement les 10 premières lignes d'un résultat ?
AFIRST 10 ONLY
BMAX 10
CTOP ROWS 10
DLIMIT 10
3.Facile
Quel opérateur sert à une recherche simple par motif de texte dans une clause WHERE ?
ACONTAINS
BSIMILAR
CMATCH
DLIKE
4.Moyen
Que renvoie INTERSECT utilisé entre deux requêtes SELECT ?
ALes lignes du premier résultat absentes du second
BLe produit cartésien des résultats
CLes lignes présentes dans les deux résultats
DToutes les lignes des deux résultats
5.Moyen
Que renvoie SELECT name, CASE WHEN grade >= 5,5 THEN 'pass' ELSE 'fail' END FROM results ?
ALe nombre d'étudiants reçus et recalés
BUniquement les étudiants reçus
CUne erreur, car CASE n'est pas autorisé dans SELECT
DChaque nom avec l'étiquette 'pass' ou 'fail' selon la note
6.Moyen
Une table employees possède une colonne manager_id qui fait référence à un autre employé. Comment lister chaque employé à côté du nom de son responsable ?
AJoindre la table employees à elle-même avec deux alias
BCombiner la table avec elle-même au moyen de UNION ALL et d'un filtre WHERE
CCréer une seconde copie de la table sur disque
DUtiliser uniquement GROUP BY manager_id
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
Cname n'est ni regroupé ni agrégé, il n'a donc pas une valeur unique par groupe
DCOUNT(*) ne peut pas être utilisé avec GROUP BY
8.Difficile
Une application exécute UPDATE item SET qty = 4, version = 8 WHERE id = 1 AND version = 7 et signale un conflit si aucune ligne n'a été mise à jour. De quelle technique s'agit-il ?
ALe partitionnement (sharding) de la base de données
BLe contrôle de concurrence optimiste
CLe verrouillage à deux phases strict avec des verrous de ligne
DLa journalisation anticipée (WAL)
Corrigé
1. B · UNION ALL conserve les lignes en double
2. D · LIMIT 10
3. D · LIKE
4. C · Les lignes présentes dans les deux résultats
5. D · Chaque nom avec l'étiquette 'pass' ou 'fail' selon la note
6. A · Joindre la table employees à elle-même avec deux alias
7. C · name n'est ni regroupé ni agrégé, il n'a donc pas une valeur unique par groupe
8. B · Le contrôle de concurrence optimiste
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.