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 garantit une contrainte UNIQUE sur une colonne ?
ALa colonne ne peut plus être modifiée après l'insertion
BDeux lignes ne peuvent pas avoir la même valeur non NULL dans cette colonne
CLes valeurs de la colonne sont triées
DLa colonne devient automatiquement la clé primaire de la table
2.Facile
En quoi UNION ALL diffère-t-il de UNION ?
AUNION ALL trie le résultat
BUNION ALL ne fonctionne que sur une seule table
CUNION ALL conserve les lignes en double
DUNION ALL supprime les lignes en double
3.Facile
Quel mot-clé donne à une colonne ou à une table un autre nom temporaire dans une requête ?
ANAME
BALIAS
CAS
DRENAME
4.Moyen
La deuxième forme normale (2NF) élimine :
AToutes les valeurs NULL
BLes dépendances partielles des colonnes non clés vis-à-vis d'une partie d'une clé composée
CLes dépendances transitives entre colonnes non clés via une autre colonne non clé
DLes clés étrangères
5.Moyen
Que renvoie SELECT COALESCE(phone, 'unknown') FROM customers pour un client dont le téléphone est NULL ?
AUne erreur
BUne chaîne vide
C'unknown'
DNULL
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
BALTER TABLE
CTRUNCATE TABLE
DDROP TABLE
7.Difficile
Que calcule SELECT day, SUM(amount) OVER (ORDER BY day) FROM sales ?
ALe total de tous les montants sur chaque ligne
BUne ligne par jour avec uniquement le total de ce jour
CLe montant moyen par jour
DUn total cumulé de amount, ordonné par day
8.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 ?
AL'optimiseur n'utilise jamais d'index dans les clauses WHERE
BL'index traite TRUE comme NULL
CLa plupart des lignes correspondent, donc un parcours complet de la table coûte moins cher que de nombreux accès par l'index
DOn ne peut pas créer d'index sur des colonnes booléennes
Corrigé
1. B · Deux lignes ne peuvent pas avoir la même valeur non NULL dans cette colonne
2. C · UNION ALL conserve les lignes en double
3. C · AS
4. B · Les dépendances partielles des colonnes non clés vis-à-vis d'une partie d'une clé composée
5. C · 'unknown'
6. C · TRUNCATE TABLE
7. D · Un total cumulé de amount, ordonné par day
8. 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
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.