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 ajoute de nouvelles lignes à une table ?
ASELECT
BALTER
CINSERT
DUPDATE
2.Facile
Que fait une contrainte CHECK ?
AElle vérifie le mot de passe de l'utilisateur
BElle rejette les lignes dont les valeurs ne satisfont pas une condition
CElle compte les lignes d'une table
DElle vérifie si une table existe avant qu'une requête lui soit appliquée
3.Facile
Que fait ROLLBACK dans une transaction ?
AIl enregistre définitivement sur disque toutes les modifications de la transaction
BIl supprime la table
CIl répète la dernière instruction
DIl annule les modifications effectuées depuis le début de la transaction
4.Moyen
Un LEFT JOIN renvoie :
AUniquement toutes les lignes de la table de droite
BUniquement les lignes correspondantes des deux tables
CLes lignes qui ne correspondent dans aucune des deux tables
DToutes les lignes de la table de gauche et les lignes correspondantes de droite, avec des NULL en l'absence de correspondance
5.Moyen
Que renvoie SELECT SUM(amount) FROM orders lorsque la clause WHERE ne correspond à aucune ligne ?
AUne chaîne vide
B0
CNULL
DUne erreur
6.Moyen
Qu'est-ce qu'une injection SQL ?
AUne technique de sauvegarde de base de données
BUn moyen d'ajouter des index
CUne technique pour insérer rapidement de nombreuses lignes avec une seule instruction INSERT
DUne attaque dans laquelle une saisie utilisateur modifie la structure d'une requête SQL
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 ?
ALa plupart des lignes correspondent, donc un parcours complet de la table coûte moins cher que de nombreux accès par l'index
BL'index traite TRUE comme NULL
CL'optimiseur n'utilise jamais d'index dans les clauses WHERE
DOn ne peut pas créer d'index sur des colonnes booléennes
8.Difficile
Il existe un index composé sur (last_name, first_name). Quelle condition peut l'utiliser le plus efficacement ?
AWHERE first_name LIKE '%a'
BWHERE last_name = 'Jansen'
CWHERE UPPER(first_name) = 'EVA'
DWHERE first_name = 'Eva'
Corrigé
1. C · INSERT
2. B · Elle rejette les lignes dont les valeurs ne satisfont pas une condition
3. D · Il annule les modifications effectuées depuis le début de la transaction
4. D · Toutes les lignes de la table de gauche et les lignes correspondantes de droite, avec des NULL en l'absence de correspondance
5. C · NULL
6. D · Une attaque dans laquelle une saisie utilisateur modifie la structure d'une requête SQL
7. A · 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. B · WHERE last_name = 'Jansen'
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.