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
Dans PostgreSQL et MySQL, quelle clause renvoie uniquement les 10 premières lignes d'un résultat ?
AMAX 10
BFIRST 10 ONLY
CTOP ROWS 10
DLIMIT 10
2.Facile
Que fait WHERE country IN ('NL', 'BE', 'DE') ?
AIl trie les lignes dans l'ordre de la liste
BIl conserve les lignes dont le pays est égal à l'une des valeurs de la liste
CIl conserve les lignes dont le pays n'est pas dans la liste
DIl conserve les lignes dont la valeur de country contient les trois codes à la fois
3.Facile
Quelle instruction SQL modifie les valeurs de lignes qui existent déjà ?
AUPDATE
BREPLACE COLUMN
CMODIFY
DINSERT
4.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
BChaque nom avec l'étiquette 'pass' ou 'fail' selon la note
CUniquement les étudiants reçus
DUne erreur, car CASE n'est pas autorisé dans SELECT
5.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 ?
ACombiner la table avec elle-même au moyen de UNION ALL et d'un filtre WHERE
BCréer une seconde copie de la table sur disque
CUtiliser uniquement GROUP BY manager_id
DJoindre la table employees à elle-même avec deux alias
6.Moyen
Quelle instruction supprime toutes les lignes d'une table, conserve sa structure et n'accepte pas de clause WHERE ?
ADELETE FROM avec une clause WHERE
BTRUNCATE TABLE
CDROP TABLE
DALTER TABLE
7.Difficile
Une table a un million de lignes et une colonne booléenne is_active vraie pour 95% d'entre elles. Pourquoi l'optimiseur pourrait-il ignorer un index sur is_active pour WHERE is_active = TRUE ?
AOn ne peut pas créer d'index sur des colonnes booléennes
BL'optimiseur n'utilise jamais d'index dans les clauses WHERE
CLa plupart des lignes correspondent, donc un parcours complet de la table coûte moins cher que de nombreux accès par l'index
DL'index traite TRUE comme NULL
8.Difficile
Que renvoie la requête suivante : SELECT name FROM students WHERE grade > (SELECT AVG(grade) FROM students) ?
AUne erreur, car les sous-requêtes ne sont pas autorisées dans WHERE
BUniquement les étudiants ayant la note la plus élevée
CLes étudiants dont la note est supérieure à la note moyenne
DLa note moyenne de tous les étudiants
Corrigé
1. D · LIMIT 10
2. B · Il conserve les lignes dont le pays est égal à l'une des valeurs de la liste
3. A · UPDATE
4. B · Chaque nom avec l'étiquette 'pass' ou 'fail' selon la note
5. D · Joindre la table employees à elle-même avec deux alias
6. B · TRUNCATE TABLE
7. C · La plupart des lignes correspondent, donc un parcours complet de la table coûte moins cher que de nombreux accès par l'index
8. C · Les étudiants dont la note est supérieure à la note moyenne
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.