OpenClassrooms becomes an accredited US university.
Discover what this means for youTable of contents
- Part 1
Initiez-vous à la modélisation relationnelle
Tirez un maximum de ce cours
Organisez vos données selon la modélisation relationnelle
Prenez en main une base de données
Identifiez les lignes de votre table avec votre clé primaire
Mettez en relation plusieurs tables avec des clés étrangères
Identifiez les types d'associations entre vos tables
Quiz: S'initier à la modélisation relationnelle
- Part 2
Construisez des requêtes SQL simples
Affichez les données pertinentes avec SELECT
Filtrez vos lignes avec WHERE
Récupérez des données issues de plusieurs tables avec FROM
Liez des tables avec une jointure interne
Maîtrisez les jointures externes et naturelles
Identifiez toujours vos potentielles clés primaires
Quiz: Construire des requêtes SQL simples
- Part 3
Appliquez d'autres fonctionnalités à vos requêtes SQL
Mettez en relation plusieurs tables avec des clés étrangères
#Qu'est-ce qu'une clé étrangère ?
Au chapitre précédent, vous avez vu comment identifier les lignes de vos tables.
Mais votre base ne contient pas qu'une table, et il arrive que 2 tables contiennent des informations qui sont liées entre elles.
Par exemple, votre table sommier est en lien avec la table matelas , car chaque sommier est associé au matelas avec lequel il sera assemblé !
Pour lier des tables entre elles, on a créé le concept de clé étrangère.
Voici ce que cela donne pour les tables sommier et matelas :

Vous voyez qu'il y a une colonne dans sommier qui contient des identifiants de matelas. C'est comme cela que l'on sait que le sommier S40 va être assemblé avec le matelas M1.
Ici, la clé étrangère n'est composée que d'une colonne ( matelas_fk ), car la clé primaire de la table matelas ne contient qu'une colonne ( id_matelas ). Mais si la clé primaire contient deux colonnes, alors il faut une clé étrangère à deux colonnes !
#À vous de jouer

#Contexte
Vous commencez à vous familiariser avec votre base de données des Panama Papers. Vous y voyez 2 tables qui semblent être liées : la table entity et la table address . Si elles sont liées, il y a probablement une clé étrangère quelque part. La repérer vous aidera ensuite à chercher plus efficacement et de manière plus cohérente dans vos données.
#Consignes
Repérez la clé étrangère, déterminez de combien de colonnes elle est composée, et trouvez la clé primaire qu'elle référence :
Table entity :

Table address :

#Vérifiez votre travail
La clé étrangère est composée d'une seule colonne : id_address de la table entity . Elle référence la clé primaire de address , qui est la colonne id_address . En effet, les valeurs dans la colonne entity.id_address semblent être des identifiants. Ces identifiants se retrouvent dans la colonne address.id_address . Vu le nom de cette colonne (“id_address”), il est très probable qu'elle soit la clé primaire artificielle de la table address.
#Créez du lien entre vos tables
Maintenant que vous savez reconnaître une clé étrangère, on va voir comment implémenter ce concept en SQL.
Vous avez déjà vu le code permettant de créer la table entity. Mais la clé étrangère n'était pas indiquée. Pour spécifier la clé étrangère entre entity et address , il faut ajouter ce bout de code lors de la création de la table entity :
FOREIGN KEY ( <colonnes clés étrangères> ) REFERENCES <table référencée> ( <clé primaire de la table référencée> )
Ce qui donne :
CREATE TABLE entity2 (
id INTEGER,
name TEXT NOT NULL,
jurisdiction TEXT,
jurisdiction_description TEXT,
incorporation_date DATE,
status TEXT,
service_provider TEXT,
id_address INTEGER,
source TEXT,
note TEXT,
end_date DATE,
url TEXT,
lifetime INTEGER,
PRIMARY KEY(id),
FOREIGN KEY (id_address) REFERENCES address (id_address)
)
Supprimez ensuite entity2 avec DROP TABLE entity2 .
#En résumé
Une clé étrangère est un groupe de colonnes d'une table, qui fait référence à la clé primaire d'une autre table, afin de modéliser le lien entre les lignes de ces deux tables.
Une clé étrangère peut être composée d'une ou plusieurs colonnes.
Une clé étrangère se dit en anglais foreign key (FK).
En SQL, une clé étrangère peut se définir lors de la création de la table, en écrivant
FOREIGN KEY ( <colonnes clés étrangères> ) REFERENCES <table référencée> ( <clé primaire de la table référencée> )
Maintenant que vous savez utiliser les clés étrangères, nous allons voir dans le prochain chapitre comment identifier les différents types d'associations entre vos tables.
- Up to 100% of your training program funded
- Flexible start date
- Career-focused projects
- Individual mentoring