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 garantit une contrainte UNIQUE sur une colonne ?

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

Quel opérateur sert à une recherche simple par motif de texte dans une clause WHERE ?

  1. ALIKE
  2. BSIMILAR
  3. CMATCH
  4. DCONTAINS
3.Facile

Quelles lignes WHERE price BETWEEN 10 AND 20 sélectionne-t-il ?

  1. AUniquement les lignes dont le prix est égal à 10 ou à 20
  2. BLes lignes dont le prix va de 10 à 20, bornes 10 et 20 incluses
  3. CLes lignes dont le prix est supérieur à 10 et inférieur à 20, 10 et 20 exclus
  4. DLes lignes dont le prix est en dehors de l'intervalle de 10 à 20
4.Moyen

Une table employees possède une colonne manager_id qui fait référence à un autre employé. Comment lister chaque employé à côté du nom de son responsable ?

  1. AUtiliser uniquement GROUP BY manager_id
  2. BCombiner la table avec elle-même au moyen de UNION ALL et d'un filtre WHERE
  3. CCréer une seconde copie de la table sur disque
  4. DJoindre la table employees à elle-même avec deux alias
5.Moyen

Quelle affirmation sur HAVING est correcte ?

  1. AElle ne peut pas être utilisée avec GROUP BY
  2. BElle doit figurer avant WHERE dans l'instruction SELECT
  3. CElle peut utiliser des fonctions d'agrégation pour filtrer les groupes
  4. DElle trie les résultats
6.Moyen

Quand WHERE EXISTS (sous-requête) est-il vrai pour une ligne ?

  1. AQuand la sous-requête renvoie un nombre supérieur à zéro
  2. BQuand la sous-requête ne renvoie aucune valeur NULL
  3. CQuand la sous-requête renvoie exactement une ligne
  4. DQuand la sous-requête renvoie au moins une ligne
7.Difficile

La table enrolment(student_id, course_id, student_name, grade) a pour clé (student_id, course_id). Quelle forme normale viole-t-elle ?

  1. AAucune, elle est en BCNF
  2. BLa deuxième forme normale, car student_name ne dépend que de student_id
  3. CUniquement la troisième forme normale, car grade dépend de student_name
  4. DLa première forme normale, car la colonne grade ne contient pas de valeurs atomiques
8.Difficile

La table b contient les valeurs 1, 2 et NULL dans la colonne y. Que renvoie SELECT * FROM a WHERE x NOT IN (SELECT y FROM b) ?

  1. AToutes les lignes de a
  2. BLes lignes de a où x ne vaut ni 1 ni 2
  3. CUniquement les lignes de a où x est NULL
  4. DAucune ligne

Corrigé

  1. 1. D · Deux lignes ne peuvent pas avoir la même valeur non NULL dans cette colonne
  2. 2. A · LIKE
  3. 3. B · Les lignes dont le prix va de 10 à 20, bornes 10 et 20 incluses
  4. 4. D · Joindre la table employees à elle-même avec deux alias
  5. 5. C · Elle peut utiliser des fonctions d'agrégation pour filtrer les groupes
  6. 6. D · Quand la sous-requête renvoie au moins une ligne
  7. 7. B · La deuxième forme normale, car student_name ne dépend que de student_id
  8. 8. D · Aucune ligne

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