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
À quoi sert un diagramme entité-association (ER) ?
AÀ modéliser les entités, leurs attributs et leurs associations lors de la conception d'une base de données
BÀ mesurer les performances d'une base de données
CÀ montrer comment une requête est exécutée
DÀ lister les utilisateurs d'une base de données
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
CToute colonne contenant des valeurs NULL
DUne colonne en attente de devenir une clé étrangère
3.Facile
Un client peut passer de nombreuses commandes, mais chaque commande appartient à exactement un client. De quel type d'association s'agit-il ?
AZéro-à-zéro
BPlusieurs-à-plusieurs
CUn-à-plusieurs
DUn-à-un
4.Moyen
Qu'est-ce qu'une injection SQL ?
AUne attaque dans laquelle une saisie utilisateur modifie la structure d'une requête SQL
BUn moyen d'ajouter des index
CUne technique de sauvegarde de base de données
DUne technique pour insérer rapidement de nombreuses lignes avec une seule instruction INSERT
5.Moyen
Que signifie la dépendance fonctionnelle A → B ?
AA est une clé étrangère qui fait référence à B
BChaque valeur de A est associée à exactement une valeur de B
CA et B sont toutes deux des clés primaires
DChaque valeur de B est associée à exactement une valeur de A
6.Moyen
Pourquoi SELECT price * 2 AS double_price FROM t WHERE double_price > 10 échoue-t-il dans la plupart des bases de données ?
ALes alias ne peuvent pas contenir de tiret bas
BL'arithmétique n'est pas autorisée dans la liste du SELECT
CWHERE est évalué avant la liste du SELECT, donc l'alias n'existe pas encore
DWHERE ne peut comparer que des colonnes de texte
7.Difficile
La requête FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.status = 'paid' élimine de façon inattendue les clients sans commande. Pourquoi ?
ALa condition WHERE sur o rejette les lignes remplies de NULL, ce qui en fait une jointure interne
BLa jointure devrait utiliser USING au lieu de ON
Cstatus est un mot réservé
DLEFT JOIN ne conserve jamais les lignes sans correspondance
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(o.id) ne compte que les clients distincts
CCOUNT(*) n'est pas autorisé après une jointure
DCOUNT(*) ignore les lignes contenant des valeurs NULL
Corrigé
1. A · À modéliser les entités, leurs attributs et leurs associations lors de la conception d'une base de données
2. B · Un ensemble minimal de colonnes qui identifie de manière unique chaque ligne
3. C · Un-à-plusieurs
4. A · Une attaque dans laquelle une saisie utilisateur modifie la structure d'une requête SQL
5. B · Chaque valeur de A est associée à exactement une valeur de B
6. C · WHERE est évalué avant la liste du SELECT, donc l'alias n'existe pas encore
7. A · La condition WHERE sur o rejette les lignes remplies de NULL, ce qui en fait une jointure interne
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.