Quelle est la différence entre une clé primaire et une clé étrangère ? Ces deux notions sont au cœur des bases de données, du site e-commerce au logiciel de gestion, et elles posent souvent question aux débutants en SQL.
Définitions, rôle, exemples concrets en SQL, intégrité référentielle et bonnes pratiques : voici tout ce qu’il faut savoir.
Clé primaire ou clé étrangère : le tableau comparatif
| 🔑 Clé primaire | 🔗 Clé étrangère | |
|---|---|---|
| Rôle | Identifier chaque ligne de façon unique | Relier une table à une autre |
| Unicité | Obligatoire : pas de doublon | Pas obligatoire : doublons possibles |
| Valeur vide (NULL) | Interdite | Autorisée selon les cas |
| Nombre par table | Une seule | Autant que nécessaire |
| Fait référence à | Rien, elle est la référence | La clé primaire d’une autre table |
| Exemple | id_client dans la table clients | id_client dans la table commandes |
| Mot-clé SQL | PRIMARY KEY | FOREIGN KEY … REFERENCES |

🔑 La clé primaire : l’identifiant unique
Une clé primaire est un attribut, ou un ensemble d’attributs, qui permet d’identifier de façon unique chaque ligne d’une table, rappelle Wikipédia.
Elle doit respecter deux règles : chaque valeur est unique, et elle ne peut jamais être vide (NULL). Une table ne possède qu’une seule clé primaire.
Dans la pratique, on utilise souvent un numéro automatique : 1, 2, 3… Ce type de clé, appelé clé de substitution, ne change jamais, même si le client change de nom ou d’adresse.
On peut aussi utiliser une donnée naturelle, comme un numéro ISBN pour un livre, ou combiner plusieurs colonnes : on parle alors de clé composée.
En SQL, on la déclare avec PRIMARY KEY, par exemple : id_client INT PRIMARY KEY.
Pour d’autres notions de programmation, lisez la différence entre les boucles tant que et jusqu’à.
🔗 La clé étrangère : le lien entre les tables
Une clé étrangère est une colonne dont les valeurs font référence à la clé primaire d’une autre table, explique Wikipédia.
Par exemple, dans une table commandes, la colonne id_client indique quel client a passé chaque commande. Elle renvoie à la clé primaire de la table clients.
Contrairement à la clé primaire, une clé étrangère peut contenir des doublons : un même client peut avoir passé plusieurs commandes.

L’intégrité référentielle
La clé étrangère garantit l’intégrité référentielle : il est impossible d’enregistrer une commande pour un client qui n’existe pas.
On peut aussi définir ce qui se passe quand on supprime un client : interdire la suppression s’il a des commandes, ou supprimer aussi ses commandes, avec l’option ON DELETE CASCADE.
En SQL, on la déclare ainsi : FOREIGN KEY (id_client) REFERENCES clients(id_client).
Ces règles évitent les données « orphelines » et les incohérences, ce qui est essentiel pour un site marchand, une banque ou un hôpital.
Bases de données relationnelles et bonnes pratiques

Les clés primaires et étrangères reposent sur le modèle relationnel, proposé en 1970 par l’informaticien Edgar F. Codd chez IBM.
Ce modèle est utilisé par les grands systèmes de gestion de bases de données, comme MySQL, PostgreSQL, Oracle, SQL Server ou SQLite, que l’on interroge avec le langage SQL.
Une bonne pratique consiste à choisir une clé primaire stable, qui ne change jamais : un numéro de téléphone ou une adresse e-mail sont de mauvais choix, car ils peuvent évoluer.
Il est aussi conseillé de créer un index sur les colonnes de clé étrangère, pour accélérer les recherches et les jointures entre tables.
Enfin, bien nommer ses clés, par exemple id_client dans les deux tables, rend le schéma beaucoup plus lisible pour toute l’équipe.
Clé primaire ou clé étrangère : comment s’en souvenir ?
Concrètement, pensez à une carte d’identité : son numéro unique est la clé primaire ; quand ce numéro apparaît sur un autre document pour vous désigner, c’est une clé étrangère.
Pour aller plus loin, découvrez la différence entre XML et HTML.
Pour apprendre à interroger une base de données, voici les livres sur SQL les plus vendus :
Et pour concevoir vos propres bases, voici les livres sur les bases de données les plus vendus :
Questions fréquentes
Quelle est la différence entre une clé primaire et une clé étrangère ?
La clé primaire identifie de façon unique chaque ligne d’une table. La clé étrangère est une colonne qui fait référence à la clé primaire d’une autre table, pour relier les deux.
Une table peut-elle avoir plusieurs clés primaires ?
Non, une seule. Mais cette clé primaire peut être composée de plusieurs colonnes.
Une clé étrangère peut-elle être vide ?
Oui, selon la conception de la base : une valeur NULL signifie alors qu’il n’y a pas de lien.
Une clé étrangère peut-elle contenir des doublons ?
Oui. Un même client peut par exemple avoir plusieurs commandes.
Qu’est-ce que l’intégrité référentielle ?
C’est la règle qui empêche une clé étrangère de pointer vers une ligne qui n’existe pas dans l’autre table.
Que fait ON DELETE CASCADE ?
Quand on supprime une ligne référencée, les lignes qui y font référence sont automatiquement supprimées aussi.
En résumé
En résumé, la différence entre une clé primaire et une clé étrangère tient à leur rôle : la clé primaire identifie de façon unique chaque ligne d’une table, sans doublon ni valeur vide ; la clé étrangère relie une table à une autre en faisant référence à cette clé primaire, et garantit la cohérence des données.
Merci de votre lecture ! Travaillez-vous avec des bases de données au quotidien ? Dites-le-nous en commentaire.
Sources
- Wikipédia : clé primaire
- Wikipédia : clé étrangère
- Wikipédia : intégrité référentielle
- Wikipédia : modèle relationnel
- Wikipédia : Edgar F. Codd
Dernière mise à jour le 2026-10-09 / Liens affiliés / Images de l'API Amazon Partenaires
