Leçon 8 : Clés Partie 2 : Clés Étrangères (FK) et Relations
Alors que les Clés Primaires définissent les enregistrements au sein d'une table, les Clés Étrangères (Foreign Keys) sont ce qui relie deux tables ensemble, définissant les relations.
Qu'est-ce qu'une Clé Étrangère (FK) ?
Une Clé Étrangère (FK) est une colonne (ou un ensemble de colonnes) dans une table qui référence la Clé Primaire d'une autre table.
- La Clé Étrangère est le pont qui connecte les données.
Rôle de la Clé Étrangère (Intégrité Référentielle)
La FK applique l'Intégrité Référentielle, ce qui signifie que la relation entre les tables doit être valide. Vous ne pouvez pas créer un enregistrement dans la table 'enfant' qui référence un enregistrement non existant dans la table 'parent'.
Exemple : Commandes et Clients
- Table Parent :
Customers(PK estCustomerID) - Table Enfant :
Orders(Doit savoir quel client a passé la commande)
Nous introduisons une colonne CustomerID dans la table Orders. Cette nouvelle colonne est la Clé Étrangère.
sql -- Table 1: Parent CREATE TABLE Customers ( CustomerID INTEGER PRIMARY KEY, Name VARCHAR(100) );
-- Table 2: Enfant CREATE TABLE Orders ( OrderID INTEGER PRIMARY KEY, OrderDate DATE, CustomerID INTEGER, -- Ceci est la Clé Étrangère
-- Définition de la contrainte FK
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
Cette contrainte garantit :
- Chaque
OrderIDdoit appartenir à unCustomerIDqui existe réellement dans la tableCustomers. - Vous ne pouvez pas supprimer un client s'il y a toujours des commandes associées à lui (sauf indication contraire).