Avant d'écrire la moindre requête, il faut comprendre ce que vous interrogez. Une base de données relationnelle est un ensemble de tables. Chaque table ressemble à une feuille de calcul structurée : les lignes sont des enregistrements (un client, une commande), les colonnes sont des attributs (nom, date, montant).
Prenons notre fil rouge : une boutique en ligne. Elle a besoin d'au moins trois tables :
- clients (id_client, nom, email)
- commandes (id_commande, id_client, date_commande)
- produits (id_produit, nom_produit, prix)
Chaque table possède une clé primaire : une colonne qui identifie de façon unique chaque ligne (id_client dans la table clients, par exemple). Quand une table fait référence à une autre, elle utilise une clé étrangère : la colonne id_client dans la table commandes pointe vers la clé primaire de la table clients. C'est ce mécanisme qui permet de relier les tables entre elles plus tard avec des jointures.
Un piège fréquent chez les débutants : confondre base de données et table. La base est l'ensemble du système, la table n'en est qu'une composante. Autre confusion classique : croire qu'une clé étrangère doit porter le même nom que la clé primaire qu'elle référence. Ce n'est pas obligatoire, même si c'est une bonne pratique pour la lisibilité.
Pour progresser efficacement, prenez l'habitude de dessiner le schéma de vos tables sur papier ou dans un outil simple, avec des flèches entre les clés étrangères et les clés primaires. Cette carte mentale vous évitera de vous perdre dès que le nombre de tables augmente.
💡 Conseil de pro
Avant d'écrire une seule requête, demandez toujours à voir le schéma des tables (souvent appelé modèle de données ou diagramme entité-relation). Cinq minutes passées à comprendre les relations vous font gagner un temps considérable ensuite, et vous évitent des erreurs de jointure difficiles à repérer.
Mini-exercice : Sur une feuille ou un fichier texte, listez les tables d'un système que vous connaissez bien (votre messagerie, votre banque, une bibliothèque). Pour chacune, identifiez au moins une clé primaire et une éventuelle clé étrangère vers une autre table.