À quoi sert une clé primaire ?
Une clé primaire (Primary Key) est une colonne (ou un groupe de colonnes)
qui identifie une ligne de façon unique dans une table.
Grâce à elle, on peut dire : “je veux modifier ou supprimer cette ligne précise”.
Dans la vie, deux personnes peuvent s’appeler “Ahmed”, mais elles n’ont pas le même numéro de carte d’identité.
En base de données, la clé primaire joue le rôle du numéro unique.
Une clé primaire est un champ (ou plusieurs champs) dont la valeur est :
unique et non nulle.
Une table ne peut avoir qu’une seule clé primaire.
Les 3 règles d’une bonne clé primaire
1
Unique
Deux lignes ne peuvent pas avoir la même valeur de clé primaire.
2
Jamais NULL
Une clé primaire doit toujours être renseignée.
3
Stable
Elle ne doit pas changer facilement (sinon ça casse les liens entre tables).
✅
Conclusion
On utilise souvent un id numérique auto-généré.
Exemple : créer une table avec une clé primaire
Vous avez déjà vu CREATE TABLE. Ici on ajoute une clé primaire :
CREATE TABLE films (
id INTEGER PRIMARY KEY,
titre TEXT NOT NULL,
annee INTEGER,
note INTEGER
);
Les mots exacts peuvent changer selon MySQL / PostgreSQL / SQLite.
L’idée reste la même : une colonne unique et non nulle.
Clé primaire auto-incrémentée : pourquoi c’est pratique
Dans beaucoup de projets, vous ne voulez pas choisir un id à la main.
Vous voulez que la base attribue automatiquement 1, 2, 3, 4…
⚙️
Avantage
La base garantit l’unicité. Vous ne risquez pas de doublon d’id.
🧠
Résultat
Vous pouvez insérer sans préciser l’id : la base le génère.
✅
Très courant
C’est le standard dans la plupart des applications web.
⚠️
À savoir
Le mot “AUTO_INCREMENT” ou “SERIAL” dépend du SGBD.
INSERT INTO films (titre, annee, note)
VALUES ('Inception', 2010, 9);
Pourquoi la clé primaire est indispensable pour UPDATE / DELETE
Dans les chapitres 13 et 14, vous avez vu que UPDATE et DELETE sont dangereux sans WHERE.
Le meilleur WHERE possible est souvent : WHERE id = ...
UPDATE films
SET note = 10
WHERE id = 3;
DELETE FROM films
WHERE id = 3;
Quand une table n’a pas de clé primaire, on perd rapidement le contrôle : doublons, mises à jour imprécises,
suppression trop large… La clé primaire “sécurise” votre travail.
Clé primaire composite : quand une seule colonne ne suffit pas
Parfois, une seule colonne ne peut pas être unique.
Exemple : une table inscriptions qui relie un étudiant à un cours.
Un étudiant peut s’inscrire à plusieurs cours, et un cours contient plusieurs étudiants.
Dans ce cas, la combinaison (etudiant_id, cours_id) peut être unique.
CREATE TABLE inscriptions (
etudiant_id INTEGER,
cours_id INTEGER,
PRIMARY KEY (etudiant_id, cours_id)
);
Une clé primaire composite est une clé primaire composée de plusieurs colonnes.
L’unicité est garantie par la combinaison de ces colonnes.
Choisir une bonne clé primaire : bonnes pratiques
1
Éviter les champs “humains”
Évitez de prendre comme clé primaire : nom, email, téléphone…
Car ces valeurs peuvent changer et peuvent contenir des doublons.
2
Préférer un id technique
Un id auto-généré est simple, stable et efficace.
3
Définir la clé dès la création
On définit la clé primaire au moment de CREATE TABLE,
pas “plus tard” quand les données sont déjà en place.
Exercice pratique : identifier la bonne clé
Pour chaque table ci-dessous, choisissez une clé primaire logique.
(Répondez “id auto-incrémenté” ou “clé composite” selon le cas.)
1) Table clients
Colonnes : nom, prenom, email, ville
Question : quel champ pourrait être unique ? Est-ce stable ?
2) Table produits
Colonnes : nom, prix, stock, categorie
Question : un nom de produit est-il toujours unique ?
3) Table inscriptions
Colonnes : etudiant_id, cours_id, date_inscription
Question : une clé composite a-t-elle du sens ici ?
Bonus
Créez une table “clients” avec un id en clé primaire.
CREATE TABLE clients (
id INTEGER PRIMARY KEY,
nom TEXT
);
En général : pour “clients” et “produits”, on choisit un id technique.
Pour “inscriptions”, une clé composite est très logique.
Récapitulatif du chapitre
- Expliquer ce qu’est une clé primaire
- Connaître ses règles : unique, non nulle, stable
- Créer une table avec une clé primaire
- Comprendre l’intérêt pour UPDATE / DELETE
- Découvrir les clés primaires composites
- Choisir une clé primaire adaptée à un cas réel
Prochain chapitre : vous allez apprendre les relations entre tables (clé primaire ↔ clé étrangère).