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

Dans PostgreSQL et MySQL, quelle clause renvoie uniquement les 10 premières lignes d'un résultat ?

  1. AFIRST 10 ONLY
  2. BMAX 10
  3. CLIMIT 10
  4. DTOP ROWS 10
2.Facile

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

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

Quelle contrainte garantit qu'une colonne ne peut jamais rester vide (NULL) ?

  1. ADEFAULT
  2. BCHECK NULL
  3. CNOT NULL
  4. DUNIQUE
4.Moyen

En algèbre relationnelle, l'opérateur de projection (π) correspond :

  1. AAu tri du résultat
  2. BAu choix des colonnes qui apparaissent dans le résultat
  3. CÀ la combinaison de deux tables sur une clé
  4. DAu choix des lignes qui satisfont une condition donnée
5.Moyen

Quelle requête renvoie le salaire le plus élevé de chaque service ?

  1. ASELECT dept, MAX(salary) FROM emp ORDER BY dept
  2. BSELECT dept, salary FROM emp WHERE salary = MAX(salary)
  3. CSELECT MAX(dept), salary FROM emp GROUP BY salary
  4. DSELECT dept, MAX(salary) FROM emp GROUP BY dept
6.Moyen

Pourquoi crée-t-on des index sur des colonnes ?

  1. APour accélérer les recherches et les jointures sur ces colonnes
  2. BPour rendre les insertions et les mises à jour plus rapides sur ces colonnes
  3. CPour empêcher les valeurs NULL
  4. DPour économiser de l'espace disque
7.Difficile

Pourquoi SELECT dept, name, COUNT(*) FROM emp GROUP BY dept est-il invalide en SQL standard ?

  1. Aname n'est ni regroupé ni agrégé, il n'a donc pas une valeur unique par groupe
  2. Bdept doit figurer dans une fonction d'agrégation
  3. CCOUNT(*) ne peut pas être utilisé avec GROUP BY
  4. DGROUP BY doit lister toutes les colonnes de la table
8.Difficile

Il existe un index composé sur (last_name, first_name). Quelle condition peut l'utiliser le plus efficacement ?

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

Corrigé

  1. 1. C · LIMIT 10
  2. 2. B · Un ensemble minimal de colonnes qui identifie de manière unique chaque ligne
  3. 3. C · NOT NULL
  4. 4. B · Au choix des colonnes qui apparaissent dans le résultat
  5. 5. D · SELECT dept, MAX(salary) FROM emp GROUP BY dept
  6. 6. A · Pour accélérer les recherches et les jointures sur ces colonnes
  7. 7. A · name n'est ni regroupé ni agrégé, il n'a donc pas une valeur unique par groupe
  8. 8. C · WHERE last_name = 'Jansen'

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