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 ?

  1. AUPDATE TABLE
  2. BCREATE COLUMN
  3. CINSERT COLUMN
  4. DALTER TABLE
2.Facile

Quelle instruction SQL ajoute de nouvelles lignes à une table ?

  1. AINSERT
  2. BSELECT
  3. CUPDATE
  4. DALTER
3.Facile

Des instructions comme CREATE, ALTER et DROP appartiennent à quelle partie de SQL ?

  1. ALe langage de contrôle des transactions (TCL)
  2. BLe langage de contrôle de données (DCL)
  3. CLe langage de manipulation de données (DML)
  4. DLe langage de définition de données (DDL)
4.Moyen

La première forme normale (1NF) exige que :

  1. AChaque colonne non clé dépende de toute la clé et de rien d'autre que la clé
  2. BChaque colonne contienne des valeurs atomiques et qu'il n'y ait pas de groupes répétitifs
  3. CChaque table ait exactement une colonne
  4. DIl n'y ait pas de clés étrangères
5.Moyen

Qu'est-ce qu'une injection SQL ?

  1. AUn moyen d'ajouter des index
  2. BUne technique de sauvegarde de base de données
  3. CUne attaque dans laquelle une saisie utilisateur modifie la structure d'une requête SQL
  4. 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 ?

  1. ALes lignes enfants qui y font référence sont supprimées automatiquement
  2. BLa suppression est toujours refusée
  3. CLa clé étrangère des lignes enfants est mise à NULL automatiquement
  4. 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 ?

  1. ACOUNT(*) compte pour 1 la ligne remplie de NULL des clients sans commande
  2. BCOUNT(o.id) ne compte que les clients distincts
  3. CCOUNT(*) n'est pas autorisé après une jointure
  4. 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 ?

  1. ALes requêtes sur la table des commandes deviennent plus lentes
  2. BLes copies redondantes doivent rester cohérentes chaque fois que les données client changent
  3. CLes clés primaires ne peuvent plus être utilisées
  4. DLa base de données ne peut plus utiliser d'index

Corrigé

  1. 1. D · ALTER TABLE
  2. 2. A · INSERT
  3. 3. D · Le langage de définition de données (DDL)
  4. 4. B · Chaque colonne contienne des valeurs atomiques et qu'il n'y ait pas de groupes répétitifs
  5. 5. C · Une attaque dans laquelle une saisie utilisateur modifie la structure d'une requête SQL
  6. 6. A · Les lignes enfants qui y font référence sont supprimées automatiquement
  7. 7. A · COUNT(*) compte pour 1 la ligne remplie de NULL des clients sans commande
  8. 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.