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 ajoute une nouvelle colonne à une table existante ?
AUPDATE TABLE
BCREATE COLUMN
CINSERT COLUMN
DALTER TABLE
2.Facile
Quelle instruction SQL ajoute de nouvelles lignes à une table ?
AINSERT
BSELECT
CUPDATE
DALTER
3.Facile
Des instructions comme CREATE, ALTER et DROP appartiennent à quelle partie de SQL ?
ALe langage de contrôle des transactions (TCL)
BLe langage de contrôle de données (DCL)
CLe langage de manipulation de données (DML)
DLe langage de définition de données (DDL)
4.Moyen
La première forme normale (1NF) exige que :
AChaque colonne non clé dépende de toute la clé et de rien d'autre que la clé
BChaque colonne contienne des valeurs atomiques et qu'il n'y ait pas de groupes répétitifs
CChaque table ait exactement une colonne
DIl n'y ait pas de clés étrangères
5.Moyen
Qu'est-ce qu'une injection SQL ?
AUn moyen d'ajouter des index
BUne technique de sauvegarde de base de données
CUne attaque dans laquelle une saisie utilisateur modifie la structure d'une requête SQL
DUne technique pour insérer rapidement de nombreuses lignes avec une seule instruction INSERT
6.Moyen
Une clé étrangère est déclarée avec ON DELETE CASCADE. Que se passe-t-il quand une ligne parente est supprimée ?
ALes lignes enfants qui y font référence sont supprimées automatiquement
BLa suppression est toujours refusée
CLa clé étrangère des lignes enfants est mise à NULL automatiquement
DLa ligne parente est copiée dans une table d'archive
7.Difficile
Après customers LEFT JOIN orders, pourquoi utiliser COUNT(o.id) plutôt que COUNT(*) pour compter les commandes par client ?
ACOUNT(*) compte pour 1 la ligne remplie de NULL des clients sans commande
BCOUNT(o.id) ne compte que les clients distincts
CCOUNT(*) n'est pas autorisé après une jointure
DCOUNT(*) ignore les lignes contenant des valeurs NULL
8.Difficile
Une base de données de reporting copie les noms des clients dans la table des commandes pour éviter des jointures. Quel est le principal coût de cette dénormalisation ?
ALes requêtes sur la table des commandes deviennent plus lentes
BLes copies redondantes doivent rester cohérentes chaque fois que les données client changent
CLes clés primaires ne peuvent plus être utilisées
DLa base de données ne peut plus utiliser d'index
Corrigé
1. D · ALTER TABLE
2. A · INSERT
3. D · Le langage de définition de données (DDL)
4. B · Chaque colonne contienne des valeurs atomiques et qu'il n'y ait pas de groupes répétitifs
5. C · Une attaque dans laquelle une saisie utilisateur modifie la structure d'une requête SQL
6. A · Les lignes enfants qui y font référence sont supprimées automatiquement
7. A · COUNT(*) compte pour 1 la ligne remplie de NULL des clients sans commande
8. B · Les copies redondantes doivent rester cohérentes chaque fois que les données client changent
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.