C’est quoi une clé
étrangère ??
Une clé étrangère
est un champ qui
est déjà une clé primaire
dans une autre table,
par
exemple dans la table
Fournisseur on a le champ numclt est une clé étrangère
dans la table Fournisseur
car il
est tout simplement une clé primaire dans
une
autre table qui
est la table Client.
Remarque
: Dans le cas
d’une
table qui contient des clés étrangères avant
la
créer on doit avant
créer
les tables qui contiennent ces
clés étrangères comme des clés
primaires, pour que le
système
SQL
sache qu’ils sont des clés
primaires dans d’autres tables durant les
déclarer comme
des clés
étrangères dans
les autres tables
qui les contient comme
des
clés étrangères,
Sinon ce n’est pas logique de
déclarer un champ
comme une
clé étrangère s’il
n’est pas déjà crée comme
une clé primaire dans une
autre table.
Syntaxe
Create Table Nom_Table (Champ1 Type Ses_Propriétés, Champ2 Type Ses_Propriétés, CONSTRAINT
Nom_Clé_etrangére foreign key (Champs_decrlaré_comme_clé_étrangére) references Nom_Table_Origine (Nom_du_Champs_clé_primaire)
Explication de la syntaxe
Nom_Clé_etrangére
: Un nom qu’on donne tout simplement à la
clé étrangère qu’on
va créer,
pour la faire appelle on
cas
qu’on veut la supprimer
où la modifier
Champs_decrlaré_comme_clé_étrangére : Le nom du champ qu’on veut déclarer comme une clé
étrangère.
Nom_Table_Origine : Le nom de la table
dans
laquelle le
champ
déclaré est déjà de
type clé primaire
Nom_du_Champs_clé_primaire : Le nom avec lequel le champ
qu’on a déclaré comme clé étrangère existe
dans la table dans laquelle il est clé
primaire.
Exemple (clé primaire constitué de deux clés
étrangères)
Créer
une table Fournisseur
avec quatre champs
numéro fournisseur (son nom num),
tel, numclt, numovr, avec une clé primaire combiné des
deux champs numclt et numovr
Avant de créer cette table on doit
observer que les deux champs numclt et numovr sont des clés primaires dans
d’autres tables Ouvrier et
Client, alors on doit les déclarer
comme des clés
étrangères dans
la
table Fournisseur qu’on va créer avant de déclarer les
deux comme clé primaire.
Il faut
aussi ajouter une autre chose importante avant de déclarer une clé
étrangère il faut qu’elle soit déjà crée comme
clé primaire dans
sa table originale, ça veut
dire
avant de créer cette table Fournisseur, on doit avant
créer
les
tables qui contient les
clés étrangères (numclt, numovr) qu’on veut
déclarer dans
Fournisseur, alors il faut créer Client et Ouvrier s’ils ne sont pas déjà crées puis Fournisseur.
Create Table Fournisseur (numclt int, numovr int, numf int, tel char(9),
CONSTRAINT Cle_etrangere1 foreign key (numclt) references Client (numclt), CONSTRAINT Cle_etrangere2 foreign key (numovr) references Ouvrier (numovr), CONSTRAINT Cleprimaire3 primary key (numclt, numovr))
Aucun commentaire:
Enregistrer un commentaire