Cours SQL et MySQL · Module 11: Projet final

Le pouvoir des questions - JOIN et GROUP BY

2 min de lecture
Dans cette leçon3

Des données sans questions ne sont qu'un tas de parchemins morts. Le vrai pouvoir de la Bibliothèque ne s'éveille que lorsque nous relions les rayons et comptons les régularités. Rappelons les deux piliers de cet art.

JOIN - relier les rayons

JOIN fait correspondre les lignes de deux tables selon une colonne commune. Le plus souvent, nous joignons une table par sa clé étrangère. Nous écrivons la condition de correspondance après le mot-clé ON :

1SELECT c.imie, w.data_wypozyczenia
2FROM czytelnicy c
3JOIN wypozyczenia w ON c.id = w.czytelnik_id;
  • INNER JOIN (le JOIN par défaut) - ne renvoie que les lignes correspondantes.
  • LEFT JOIN - garde TOUTES les lignes de la table de gauche, même si elles n'ont pas de correspondance à droite (les champs vides sont remplis de NULL).

GROUP BY - compter par groupes

GROUP BY fusionne les lignes ayant la même valeur en un seul groupe, et les fonctions d'agrégation calculent quelque chose pour chaque groupe :

1SELECT czytelnik_id, COUNT(*) AS liczba
2FROM wypozyczenia
3GROUP BY czytelnik_id;

Cette requête répond à : « Combien de fois chaque lecteur a-t-il emprunté quelque chose ? ». Les fonctions les plus courantes sont COUNT(), SUM(), AVG(), MIN(), MAX().

JOIN + GROUP BY ensemble

Combinés, ils produisent des rapports - le cœur de toute bibliothèque :

1SELECT c.imie, COUNT(*) AS liczba
2FROM czytelnicy c
3JOIN wypozyczenia w ON c.id = w.czytelnik_id
4GROUP BY c.id;

Nous relions d'abord les rayons, puis nous regroupons et comptons. C'est ainsi que le savoir naît des données brutes !

Tu as repéré une erreur dans cette leçon ?

Teste tes connaissances

Réponds aux questions de cette leçon. Choisis une réponse pour voir tout de suite si elle est correcte.

  1. 1. Quel type de jointure utiliseras-tu pour afficher TOUS les lecteurs, y compris ceux qui n'ont rien emprunté ?

  2. 2. Qu'écrit-on après le mot-clé ON dans un JOIN ?

Voici 2 des 3 questions de cette leçon. Réponds aux autres dans le jeu.

Tâches pratiques dans le jeu

  • Éditeur de code

    Écris une requête qui joint les tables czytelnicy (c) et wypozyczenia (w) sur la condition c.id = w.czytelnik_id, puis affiche pour chaque lecteur son imie et le nombre d'emprunts sous le nom liczba. Regroupe les résultats par c.id.

  • Éditeur de code

    Écris une requête qui joint les tables ksiazki (k) et kategorie (kat) sur la condition k.kategoria_id = kat.id, puis affiche le nom de la catégorie (kat.nazwa) et le prix moyen sous le nom srednia. Regroupe les résultats par kat.id.

  • Tri vertical

    Ordonne les clauses de la requête de reporting dans le bon ordre (de haut en bas) :