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 ?
AFIRST 10 ONLY
BMAX 10
CLIMIT 10
DTOP ROWS 10
2.Facile
Qu'est-ce qu'une clé candidate ?
AUn ensemble de colonnes partagé entre deux tables pour relier leurs lignes
BUn ensemble minimal de colonnes qui identifie de manière unique chaque ligne
CUne colonne en attente de devenir une clé étrangère
DToute colonne contenant des valeurs NULL
3.Facile
Quelle contrainte garantit qu'une colonne ne peut jamais rester vide (NULL) ?
ADEFAULT
BCHECK NULL
CNOT NULL
DUNIQUE
4.Moyen
En algèbre relationnelle, l'opérateur de projection (π) correspond :
AAu tri du résultat
BAu choix des colonnes qui apparaissent dans le résultat
CÀ la combinaison de deux tables sur une clé
DAu choix des lignes qui satisfont une condition donnée
5.Moyen
Quelle requête renvoie le salaire le plus élevé de chaque service ?
ASELECT dept, MAX(salary) FROM emp ORDER BY dept
BSELECT dept, salary FROM emp WHERE salary = MAX(salary)
CSELECT MAX(dept), salary FROM emp GROUP BY salary
DSELECT dept, MAX(salary) FROM emp GROUP BY dept
6.Moyen
Pourquoi crée-t-on des index sur des colonnes ?
APour accélérer les recherches et les jointures sur ces colonnes
BPour rendre les insertions et les mises à jour plus rapides sur ces colonnes
CPour empêcher les valeurs NULL
DPour économiser de l'espace disque
7.Difficile
Pourquoi SELECT dept, name, COUNT(*) FROM emp GROUP BY dept est-il invalide en SQL standard ?
Aname n'est ni regroupé ni agrégé, il n'a donc pas une valeur unique par groupe
Bdept doit figurer dans une fonction d'agrégation
CCOUNT(*) ne peut pas être utilisé avec GROUP BY
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 ?
AWHERE UPPER(first_name) = 'EVA'
BWHERE first_name LIKE '%a'
CWHERE last_name = 'Jansen'
DWHERE first_name = 'Eva'
Corrigé
1. C · LIMIT 10
2. B · Un ensemble minimal de colonnes qui identifie de manière unique chaque ligne
3. C · NOT NULL
4. B · Au choix des colonnes qui apparaissent dans le résultat
5. D · SELECT dept, MAX(salary) FROM emp GROUP BY dept
6. A · Pour accélérer les recherches et les jointures sur ces colonnes
7. A · name n'est ni regroupé ni agrégé, il n'a donc pas une valeur unique par groupe
8. C · WHERE last_name = 'Jansen'
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.