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
Quel mot-clé donne à une colonne ou à une table un autre nom temporaire dans une requête ?
AAS
BRENAME
CALIAS
DNAME
2.Facile
Que fait WHERE country IN ('NL', 'BE', 'DE') ?
AIl conserve les lignes dont le pays est égal à l'une des valeurs de la liste
BIl conserve les lignes dont la valeur de country contient les trois codes à la fois
CIl conserve les lignes dont le pays n'est pas dans la liste
DIl trie les lignes dans l'ordre de la liste
3.Facile
Quelle instruction supprime une table entière, structure comprise ?
AREMOVE TABLE
BTRUNCATE ROWS
CDROP TABLE
DDELETE FROM
4.Moyen
Des étudiants peuvent suivre plusieurs cours et chaque cours a plusieurs étudiants. Comment modélise-t-on cela en tables ?
AAvec une liste d'identifiants de cours stockée dans une seule colonne
BAvec une table d'association contenant des clés étrangères vers les étudiants et vers les cours
CAvec une colonne de clé étrangère course_id dans la table des étudiants qui pointe vers les cours
DEn fusionnant étudiants et cours dans une seule table
5.Moyen
La table orders compte 5 lignes, chacune faisant référence à un client existant. La table customers compte 3 lignes. Combien de lignes un INNER JOIN sur customer_id renvoie-t-il ?
A3
B5
C15
D8
6.Moyen
Que fait GRANT SELECT ON employees TO alice ?
AIl autorise l'utilisatrice alice à lire la table employees
BIl autorise alice à modifier et à supprimer des lignes de la table employees
CIl copie la table employees pour alice
DIl fait d'alice la propriétaire de la base de données
7.Difficile
Pour une équijointure entre deux grandes tables sans index utile, quel algorithme de jointure un optimiseur choisit-il souvent ?
ALa jointure par hachage (hash join)
BLa jointure bitmap sur la clé primaire
CLa jointure par boucles imbriquées avec accès par index
DLa jointure croisée
8.Difficile
Après customers LEFT JOIN orders, pourquoi utiliser COUNT(o.id) plutôt que COUNT(*) pour compter les commandes par client ?
ACOUNT(*) compte pour 1 la ligne remplie de NULL des clients sans commande
BCOUNT(*) ignore les lignes contenant des valeurs NULL
CCOUNT(*) n'est pas autorisé après une jointure
DCOUNT(o.id) ne compte que les clients distincts
Corrigé
1. A · AS
2. A · Il conserve les lignes dont le pays est égal à l'une des valeurs de la liste
3. C · DROP TABLE
4. B · Avec une table d'association contenant des clés étrangères vers les étudiants et vers les cours
5. B · 5
6. A · Il autorise l'utilisatrice alice à lire la table employees
7. A · La jointure par hachage (hash join)
8. A · COUNT(*) compte pour 1 la ligne remplie de NULL des clients sans commande
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.