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
Qu'est-ce qu'une clé primaire (primary key) ?
AUne colonne ou un ensemble de colonnes qui identifie de manière unique chaque ligne
BLa première colonne de chaque table
CUne colonne qui peut contenir des doublons mais ne doit jamais contenir NULL
DUn mot de passe pour la base de données
2.Facile
Qu'est-ce qu'une clé de substitution (surrogate key) ?
AUne clé qui fait référence à une autre table
BUne clé tirée de données réelles, comme une adresse e-mail
CUn identifiant artificiel sans signification métier, comme un id auto-incrémenté
DUne clé utilisée uniquement dans les vues
3.Facile
Quelle instruction supprime une table entière, structure comprise ?
ADROP TABLE
BTRUNCATE ROWS
CDELETE FROM
DREMOVE TABLE
4.Moyen
Que renvoie SELECT COALESCE(phone, 'unknown') FROM customers pour un client dont le téléphone est NULL ?
AUne chaîne vide
B'unknown'
CNULL
DUne erreur
5.Moyen
Qu'est-ce qu'un déclencheur (trigger) de base de données ?
AUn type d'index qui accélère les recherches
BDu code exécuté automatiquement lorsqu'un événement précis, comme INSERT, UPDATE ou DELETE, se produit sur une table
CUne sauvegarde planifiée de la base de données
DUne requête qu'un utilisateur lance à la main
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
BUtiliser uniquement GROUP BY manager_id
CCombiner la table avec elle-même au moyen de UNION ALL et d'un filtre WHERE
DCréer une seconde copie de la table sur disque
7.Difficile
Que renvoie la requête suivante : SELECT name FROM students WHERE grade > (SELECT AVG(grade) FROM students) ?
ALes étudiants dont la note est supérieure à la note moyenne
BUne erreur, car les sous-requêtes ne sont pas autorisées dans WHERE
CLa note moyenne de tous les étudiants
DUniquement les étudiants ayant la note la plus élevée
8.Difficile
Pourquoi SELECT dept, name, COUNT(*) FROM emp GROUP BY dept est-il invalide en SQL standard ?
Aname n'est ni regroupé ni agrégé, il n'a donc pas une valeur unique par groupe
BCOUNT(*) ne peut pas être utilisé avec GROUP BY
CGROUP BY doit lister toutes les colonnes de la table
Ddept doit figurer dans une fonction d'agrégation
Corrigé
1. A · Une colonne ou un ensemble de colonnes qui identifie de manière unique chaque ligne
2. C · Un identifiant artificiel sans signification métier, comme un id auto-incrémenté
3. A · DROP TABLE
4. B · 'unknown'
5. B · Du code exécuté automatiquement lorsqu'un événement précis, comme INSERT, UPDATE ou DELETE, se produit sur une table
6. A · Joindre la table employees à elle-même avec deux alias
7. A · Les étudiants dont la note est supérieure à la note moyenne
8. A · name n'est ni regroupé ni agrégé, il n'a donc pas une valeur unique par groupe
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.