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 fait GROUP BY dans une requête ?

  1. AIl regroupe les lignes ayant les mêmes valeurs pour calculer les agrégats par groupe
  2. BIl supprime les lignes contenant des valeurs NULL
  3. CIl joint deux tables sur leurs colonnes communes
  4. DIl trie les lignes du résultat par ordre alphabétique
2.Facile

Qu'est-ce qu'une clé candidate ?

  1. AUn ensemble minimal de colonnes qui identifie de manière unique chaque ligne
  2. BUn ensemble de colonnes partagé entre deux tables pour relier leurs lignes
  3. CToute colonne contenant des valeurs NULL
  4. DUne colonne en attente de devenir une clé étrangère
3.Facile

Que garantit une contrainte UNIQUE sur une colonne ?

  1. ADeux lignes ne peuvent pas avoir la même valeur non NULL dans cette colonne
  2. BLes valeurs de la colonne sont triées
  3. CLa colonne devient automatiquement la clé primaire de la table
  4. DLa colonne ne peut plus être modifiée après l'insertion
4.Moyen

Quelle requête renvoie le nombre de villes différentes dans la table customers ?

  1. ASELECT COUNT(city) FROM customers GROUP BY city
  2. BSELECT SUM(DISTINCT city) FROM customers
  3. CSELECT DISTINCT COUNT(city) FROM customers
  4. DSELECT COUNT(DISTINCT city) FROM customers
5.Moyen

Pourquoi une table ne peut-elle avoir qu'un seul index clustérisé (clustered index) ?

  1. ALa norme SQL interdit d'avoir plus d'un index sur une table
  2. BLes lignes ne peuvent être stockées physiquement que dans un seul ordre
  3. CLes index clustérisés ne peuvent porter que sur la clé primaire
  4. DLes index clustérisés utilisent trop de mémoire
6.Moyen

Une table contient des lignes où col est NULL. Quelles lignes WHERE col = NULL renvoie-t-il ?

  1. AToutes les lignes de la table
  2. BAucune ligne, car la comparaison est inconnue
  3. CUne erreur dans toutes les bases de données
  4. DUniquement les lignes où col est NULL, comme avec IS NULL
7.Difficile

Que renvoie la requête suivante : SELECT name FROM students WHERE grade > (SELECT AVG(grade) FROM students) ?

  1. AUniquement les étudiants ayant la note la plus élevée
  2. BLa note moyenne de tous les étudiants
  3. CLes étudiants dont la note est supérieure à la note moyenne
  4. DUne erreur, car les sous-requêtes ne sont pas autorisées dans WHERE
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 ?

  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. BOn ne peut pas créer d'index sur des colonnes booléennes
  3. CL'index traite TRUE comme NULL
  4. DL'optimiseur n'utilise jamais d'index dans les clauses WHERE

Corrigé

  1. 1. A · Il regroupe les lignes ayant les mêmes valeurs pour calculer les agrégats par groupe
  2. 2. A · Un ensemble minimal de colonnes qui identifie de manière unique chaque ligne
  3. 3. A · Deux lignes ne peuvent pas avoir la même valeur non NULL dans cette colonne
  4. 4. D · SELECT COUNT(DISTINCT city) FROM customers
  5. 5. B · Les lignes ne peuvent être stockées physiquement que dans un seul ordre
  6. 6. B · Aucune ligne, car la comparaison est inconnue
  7. 7. C · Les étudiants dont la note est supérieure à la note moyenne
  8. 8. 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

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