top of page

FOREIGN KEY

Le mot-clef FOREIGN KEY en SQL s’utilise lors de la création d’une table. Il permet d’indiquer qu’une des colonnes de la table contient une clef étangère, c’est-à-dire la clef primaire d’une autre table.


Voici un exemple de syntaxe courante :


CREATE TABLE table1 (

              id VARCHAR(20) PRIMARY KEY NOT NULL AUTO_INCREMENT,

              column1 VARCHAR(20)

              …

);


CREATE TABLE table2 (

              id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,

               table1id VARCHAR(20) NOT NULL,

              …,

FOREIGN KEY (table1id) REFERENCES table1(id)

);


Exemple d’utilisation :


Imaginons une base de données ‘gest_fact’, qu’une entreprise a créée pour stocker les données relatives aux factures qu’elle a émises : la liste des produits commercialisés par l’entreprise, la liste des factures émises par l’entreprise et le détail de chaque ligne de facture. Voici le code de création des tables ‘produit’ et ‘ligne_facture’ :


CREATE TABLE produit(

nom_produit VARCHAR(20) PRIMARY KEY,

gamme VARCHAR(20) NOT NULL,

type VARCHAR(20) NOT NULL,

prix_unitaire FLOAT NOT NULL

);


CREATE TABLE ligne_facture(

id_lf INT PRIMARY KEY IDENTITY(0, 1),

nom_produit VARCHAR(20) NOT NULL,

num_facture VARCHAR(20) NOT NULL,

quantite INT NOT NULL,

num_lf INT NOT NULL,

statut VARCHAR(20),

FOREIGN KEY (nom_produit) REFERENCES produit(nom_produit),

FOREIGN KEY (num_facture) REFERENCES facture(num_facture)

);


Et voici la table ligne_facture créée :


_


Nos formations sur https://www.apprendresql.com/ 


Voir autres : ALTER TABLE, CREATE TABLE, DROP TABLE, AND, AS, AUTO_INCREMENT, AVG(), BETWEEN, COUNT(), CROSS JOIN, DELETE, DISTINCT, FOREIGN KEY, FULL JOIN, GROUP BY, HAVING, IN, INNER JOIN, INSERT, INTERSECT, IS NULL, LEFT JOIN, LIKE, MAX(), MERGE, MIN(), NATURAL JOIN, OR, ORDER BY, PRIMARY KEY, RIGHT JOIN, SELECT, SUM(), UNION, UPDATE, WITH ROLLUP, GRANT, REVOKE, BEGIN TRANSACTION, COMMIT, ROLLBACK, SAVEPOINT


bottom of page