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

Que représente NULL en SQL ?

  1. AUne chaîne vide
  2. BUne valeur manquante ou inconnue
  3. CLe nombre zéro dans les colonnes numériques
  4. DUn booléen faux
2.Facile

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

  1. ALIMIT 10
  2. BMAX 10
  3. CFIRST 10 ONLY
  4. DTOP ROWS 10
3.Facile

Qu'est-ce qu'une clé primaire (primary key) ?

  1. ALa première colonne de chaque table
  2. BUne colonne qui peut contenir des doublons mais ne doit jamais contenir NULL
  3. CUn mot de passe pour la base de données
  4. DUne colonne ou un ensemble de colonnes qui identifie de manière unique chaque ligne
4.Moyen

Que fait GRANT SELECT ON employees TO alice ?

  1. AIl copie la table employees pour alice
  2. BIl autorise l'utilisatrice alice à lire la table employees
  3. CIl fait d'alice la propriétaire de la base de données
  4. DIl autorise alice à modifier et à supprimer des lignes de la table employees
5.Moyen

Quelle requête renvoie le nombre de commandes par client ?

  1. ASELECT customer_id FROM orders WHERE COUNT(*) > 0
  2. BSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  3. CSELECT DISTINCT COUNT(*) FROM orders
  4. DSELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
6.Moyen

Que renvoie EXCEPT (appelé MINUS dans Oracle) ?

  1. ALes lignes de la première requête qui n'apparaissent pas dans la seconde
  2. BLes lignes présentes dans les deux requêtes
  3. CToutes les lignes des deux requêtes, sans doublons
  4. DLes lignes de la seconde requête qui n'apparaissent pas dans la première
7.Difficile

La table employee(emp_id, dept_id, dept_name) a pour clé emp_id, et dept_id → dept_name. Quelle affirmation est correcte ?

  1. AElle n'est pas en 2NF
  2. BElle est en 2NF mais pas en 3NF
  3. CElle est en BCNF et donc en 3NF
  4. DElle n'est pas en 1NF
8.Difficile

Deux transactions lisent toutes deux stock = 10, retirent chacune 1 et écrivent le résultat, ce qui donne 9 au lieu de 8. De quelle anomalie s'agit-il ?

  1. AUne lecture fantôme
  2. BUne lecture sale
  3. CUne anomalie de suppression
  4. DUne mise à jour perdue (lost update)

Corrigé

  1. 1. B · Une valeur manquante ou inconnue
  2. 2. A · LIMIT 10
  3. 3. D · Une colonne ou un ensemble de colonnes qui identifie de manière unique chaque ligne
  4. 4. B · Il autorise l'utilisatrice alice à lire la table employees
  5. 5. B · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  6. 6. A · Les lignes de la première requête qui n'apparaissent pas dans la seconde
  7. 7. B · Elle est en 2NF mais pas en 3NF
  8. 8. D · Une mise à jour perdue (lost update)

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