0Pricing
SQL Academy · Leçon

Pourquoi les jointures (rappel du modèle relationnel)

Révisez le modèle relationnel, les tables normalisées et les clés étrangères, puis découvrez pourquoi JOIN est le pont qui réassemble les données de plusieurs tables.

Pourquoi les jointures (rappel du modèle relationnel) est une leçon SQL Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage SQL Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SQL Academy comprend 4 leçons au total.

La normalisation en un coup d’œil

Au lieu de dupliquer les données, vous les répartissez entre plusieurs tables :

  • users — id, name, email
  • orders — id, user_id, total

Chaque commande fait référence à un utilisateur par son id, au lieu de stocker à nouveau son nom et son adresse e-mail.

Pourquoi normaliser ?

Avantages :

  • Aucune duplication — modifiez l’adresse e-mail d’un utilisateur à un seul endroit
  • Tables plus petites — meilleur taux de réussite du cache
  • Les contraintes imposent le respect des relations

Les clés étrangères définissent le lien

Le lien est déclaré avec une FOREIGN KEY :

CREATE TABLE orders (
  id BIGSERIAL PRIMARY KEY,
  user_id BIGINT NOT NULL REFERENCES users(id),
  total NUMERIC(10,2) NOT NULL
);

Réassembler les données avec JOIN

Pour afficher « le nom de l’utilisateur pour chaque commande », vous réunissez à nouveau les tables avec JOIN :

SELECT o.id, o.total, u.full_name, u.email
FROM orders o
JOIN users u ON u.id = o.user_id
ORDER BY o.id;

Modèle mental : produit cartésien filtré

Conceptuellement, une jointure :

  1. Forme le produit cartésien de deux tables (chaque ligne de A est associée à chaque ligne de B)
  2. Ne conserve que les paires pour lesquelles la condition ON est TRUE

En pratique, la base de données utilise une jointure par hachage, par fusion ou par boucles imbriquées — mais le résultat est identique.

Un-à-plusieurs

Un utilisateur peut avoir plusieurs commandes. Le côté « plusieurs » porte la clé étrangère.

-- Each order row points back to its user:
SELECT u.email, COUNT(o.id) AS order_count
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id, u.email;

Plusieurs-à-plusieurs via une table de liaison

Étiquettes ↔ publications : introduisez une troisième table :

CREATE TABLE posts (id BIGSERIAL PRIMARY KEY, title TEXT);
CREATE TABLE tags  (id BIGSERIAL PRIMARY KEY, name TEXT);
CREATE TABLE post_tags (
  post_id BIGINT REFERENCES posts(id),
  tag_id  BIGINT REFERENCES tags(id),
  PRIMARY KEY (post_id, tag_id)
);

Interroger une relation plusieurs-à-plusieurs

Deux jointures pour tout réunir :

SELECT p.title, t.name
FROM posts p
JOIN post_tags pt ON pt.post_id = p.id
JOIN tags      t  ON t.id = pt.tag_id
WHERE t.name = 'sql';

Quand dénormaliser

La dénormalisation (duplication des données) est parfois utilisée pour améliorer les performances — mise en cache de totaux calculés, colonnes de texte intégral, vues matérialisées. Commencez par normaliser ; dénormalisez après avoir mesuré les performances.

Jointures ou sous-requêtes

De nombreuses requêtes JOIN peuvent être écrites sous forme de sous-requêtes, et inversement. Utilisez la forme la plus claire à la lecture ; les planificateurs modernes produisent souvent le même plan.

Les clés étrangères ne sont pas appliquées automatiquement

Vous devez les déclarer avec REFERENCES. Même avec des contraintes FK, l’indexation de la colonne FK relève de YOUR responsabilité — déclarez-en une explicitement pour améliorer les performances des jointures.

Récapitulatif

Les jointures réassemblent les données réparties entre plusieurs tables pour garantir leur intégrité.

  • Les clés étrangères déclarent le lien
  • JOIN inverse la normalisation au moment de la requête
  • Une relation un-à-plusieurs utilise une FK du côté « plusieurs », et une relation plusieurs-à-plusieurs une table de liaison

Vérification rapide

Dans une relation un-à-plusieurs entre users et orders, quelle table porte la colonne de clé étrangère ?

Questions Fréquemment Posées

La leçon « Pourquoi les jointures (rappel du modèle relationnel) » est-elle gratuite ?

Oui — le texte complet de « Pourquoi les jointures (rappel du modèle relationnel) » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours SQL Academy, passe à CoddyKit PRO. Le cours SQL Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Pourquoi les jointures (rappel du modèle relationnel) » ?

Révisez le modèle relationnel, les tables normalisées et les clés étrangères, puis découvrez pourquoi JOIN est le pont qui réassemble les données de plusieurs tables. Tu pratiques SQL Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer SQL Academy ?

Aucune expérience préalable n'est requise. SQL Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Pourquoi les jointures (rappel du modèle relationnel) » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon SQL Academy ?

Oui. Chaque leçon SQL Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Pourquoi les jointures (rappel du modèle relationnel)
  2. Fonctionnement de INNER JOIN
  3. LEFT/RIGHT JOIN et jointures OUTER
  4. Auto-jointures et alias
← Retour à SQL Academy