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) ?

  1. AÀ modéliser les entités, leurs attributs et leurs associations lors de la conception d'une base de données
  2. BÀ mesurer les performances d'une base de données
  3. CÀ montrer comment une requête est exécutée
  4. DÀ lister les utilisateurs d'une base de données
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. CToute colonne contenant des valeurs NULL
  4. 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 ?

  1. AZéro-à-zéro
  2. BPlusieurs-à-plusieurs
  3. CUn-à-plusieurs
  4. DUn-à-un
4.Moyen

Qu'est-ce qu'une injection SQL ?

  1. AUne attaque dans laquelle une saisie utilisateur modifie la structure d'une requête SQL
  2. BUn moyen d'ajouter des index
  3. CUne technique de sauvegarde de base de données
  4. DUne technique pour insérer rapidement de nombreuses lignes avec une seule instruction INSERT
5.Moyen

Que signifie la dépendance fonctionnelle A → B ?

  1. AA est une clé étrangère qui fait référence à B
  2. BChaque valeur de A est associée à exactement une valeur de B
  3. CA et B sont toutes deux des clés primaires
  4. 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 ?

  1. ALes alias ne peuvent pas contenir de tiret bas
  2. BL'arithmétique n'est pas autorisée dans la liste du SELECT
  3. CWHERE est évalué avant la liste du SELECT, donc l'alias n'existe pas encore
  4. 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 ?

  1. ALa condition WHERE sur o rejette les lignes remplies de NULL, ce qui en fait une jointure interne
  2. BLa jointure devrait utiliser USING au lieu de ON
  3. Cstatus est un mot réservé
  4. 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 ?

  1. ACOUNT(*) compte pour 1 la ligne remplie de NULL des clients sans commande
  2. BCOUNT(o.id) ne compte que les clients distincts
  3. CCOUNT(*) n'est pas autorisé après une jointure
  4. DCOUNT(*) ignore les lignes contenant des valeurs NULL

Corrigé

  1. 1. A · À modéliser les entités, leurs attributs et leurs associations lors de la conception d'une base de données
  2. 2. B · Un ensemble minimal de colonnes qui identifie de manière unique chaque ligne
  3. 3. C · Un-à-plusieurs
  4. 4. A · Une attaque dans laquelle une saisie utilisateur modifie la structure d'une requête SQL
  5. 5. B · Chaque valeur de A est associée à exactement une valeur de B
  6. 6. C · WHERE est évalué avant la liste du SELECT, donc l'alias n'existe pas encore
  7. 7. A · La condition WHERE sur o rejette les lignes remplies de NULL, ce qui en fait une jointure interne
  8. 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.