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 ?

  1. ASELECT
  2. BALTER
  3. CINSERT
  4. DUPDATE
2.Facile

Que fait une contrainte CHECK ?

  1. AElle vérifie le mot de passe de l'utilisateur
  2. BElle rejette les lignes dont les valeurs ne satisfont pas une condition
  3. CElle compte les lignes d'une table
  4. DElle vérifie si une table existe avant qu'une requête lui soit appliquée
3.Facile

Que fait ROLLBACK dans une transaction ?

  1. AIl enregistre définitivement sur disque toutes les modifications de la transaction
  2. BIl supprime la table
  3. CIl répète la dernière instruction
  4. DIl annule les modifications effectuées depuis le début de la transaction
4.Moyen

Un LEFT JOIN renvoie :

  1. AUniquement toutes les lignes de la table de droite
  2. BUniquement les lignes correspondantes des deux tables
  3. CLes lignes qui ne correspondent dans aucune des deux tables
  4. 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 ?

  1. AUne chaîne vide
  2. B0
  3. CNULL
  4. DUne erreur
6.Moyen

Qu'est-ce qu'une injection SQL ?

  1. AUne technique de sauvegarde de base de données
  2. BUn moyen d'ajouter des index
  3. CUne technique pour insérer rapidement de nombreuses lignes avec une seule instruction INSERT
  4. 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 ?

  1. ALa plupart des lignes correspondent, donc un parcours complet de la table coûte moins cher que de nombreux accès par l'index
  2. BL'index traite TRUE comme NULL
  3. CL'optimiseur n'utilise jamais d'index dans les clauses WHERE
  4. 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 ?

  1. AWHERE first_name LIKE '%a'
  2. BWHERE last_name = 'Jansen'
  3. CWHERE UPPER(first_name) = 'EVA'
  4. DWHERE first_name = 'Eva'

Corrigé

  1. 1. C · INSERT
  2. 2. B · Elle rejette les lignes dont les valeurs ne satisfont pas une condition
  3. 3. D · Il annule les modifications effectuées depuis le début de la transaction
  4. 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. 5. C · NULL
  6. 6. D · Une attaque dans laquelle une saisie utilisateur modifie la structure d'une requête SQL
  7. 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. 8. B · WHERE last_name = 'Jansen'

Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.