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

Quelle clause filtre les lignes avant le regroupement ?

  1. AHAVING
  2. BORDER BY
  3. CGROUP BY
  4. DWHERE
2.Facile

Dans le modèle relationnel, comment appelle-t-on une ligne d'une table ?

  1. AUn attribut
  2. BUn schéma
  3. CUn domaine
  4. DUn tuple (n-uplet)
3.Facile

Que fait GROUP BY dans une requête ?

  1. AIl regroupe les lignes ayant les mêmes valeurs pour calculer les agrégats par groupe
  2. BIl supprime les lignes contenant des valeurs NULL
  3. CIl joint deux tables sur leurs colonnes communes
  4. DIl trie les lignes du résultat par ordre alphabétique
4.Moyen

Quelle affirmation sur HAVING est correcte ?

  1. AElle doit figurer avant WHERE dans l'instruction SELECT
  2. BElle ne peut pas être utilisée avec GROUP BY
  3. CElle peut utiliser des fonctions d'agrégation pour filtrer les groupes
  4. DElle trie les résultats
5.Moyen

Quelle propriété ACID signifie que des transactions concurrentes ne voient pas les modifications inachevées les unes des autres ?

  1. ALa durabilité
  2. BL'atomicité
  3. CL'isolation
  4. DLa disponibilité
6.Moyen

Quelle requête renvoie le salaire le plus élevé de chaque service ?

  1. ASELECT dept, salary FROM emp WHERE salary = MAX(salary)
  2. BSELECT dept, MAX(salary) FROM emp GROUP BY dept
  3. CSELECT dept, MAX(salary) FROM emp ORDER BY dept
  4. DSELECT MAX(dept), salary FROM emp GROUP BY salary
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. Astatus est un mot réservé
  2. BLa jointure devrait utiliser USING au lieu de ON
  3. CLa condition WHERE sur o rejette les lignes remplies de NULL, ce qui en fait une jointure interne
  4. DLEFT JOIN ne conserve jamais les lignes sans correspondance
8.Difficile

Deux médecins de garde vérifient chacun que l'autre est encore de garde, puis se désinscrivent tous les deux en même temps. Quelle anomalie l'isolation par instantané (snapshot isolation) peut-elle encore permettre ici ?

  1. ALa lecture sale
  2. BL'écriture sale
  3. CLe write skew (écriture biaisée)
  4. DLa lecture non reproductible au sein d'une transaction

Corrigé

  1. 1. D · WHERE
  2. 2. D · Un tuple (n-uplet)
  3. 3. A · Il regroupe les lignes ayant les mêmes valeurs pour calculer les agrégats par groupe
  4. 4. C · Elle peut utiliser des fonctions d'agrégation pour filtrer les groupes
  5. 5. C · L'isolation
  6. 6. B · SELECT dept, MAX(salary) FROM emp GROUP BY dept
  7. 7. C · La condition WHERE sur o rejette les lignes remplies de NULL, ce qui en fait une jointure interne
  8. 8. C · Le write skew (écriture biaisée)

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