Maison  >  Article  >  base de données  >  Que signifie FOREIGN KEY et comment pouvons-nous l'utiliser dans les tables MySQL ?

Que signifie FOREIGN KEY et comment pouvons-nous l'utiliser dans les tables MySQL ?

王林
王林avant
2023-09-06 13:53:022417parcourir

FOREIGN KEY 是什么意思以及我们如何在 MySQL 表中使用它?

En fait, FOREIGN KEY est une colonne ou une combinaison de plusieurs colonnes qui peut être utilisée pour établir un lien entre les données de deux tables. En d’autres termes, on peut dire que la contrainte FOREIGN KEY est liée aux deux tables. Il est également utilisé pour améliorer l'intégrité des données car les clés primaires d'une table sont liées aux clés étrangères d'autres tables.

Syntaxe

FOREIGN KEY [column_name] REFERENCES [table having Primary Key] ([column_name]);

Ici REFERENCES est un mot-clé ; column_name est la liste des colonnes sur lesquelles FOREIGN KEY doit être définie ; table avec la clé primaire est le nom de la table contenant la clé primaire ; PRIMARY KEY a été défini.

Exemple

Supposons que nous ayons deux tables "Client" et "Commandes". La relation entre les deux tables peut être établie grâce à une clé étrangère dans la table « commandes » précisée par le champ « Cust_Id ». La requête pour créer deux tables est la suivante -

mysql> Create Table Customer(Cust_ID int Primary Key, First_name Varchar(20), Last_name  Varchar(20), City Varchar(10));
Query OK, 0 rows affected (0.13 sec)

mysql> Create Table Orders(Order_Id Int Primary Key, Product_Name Varchar(25), Orderdate DATE, Cust_ID Int, FOREIGN KEY(Cust_ID) REFERENCES Customer(Cust_id));
Query OK, 0 rows affected (0.13 sec)

mysql> Describe Orders;
+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| Order_Id     | int(11)     | NO   | PRI | NULL    |       |
| Product_Name | varchar(25) | YES  |     | NULL    |       |
| Orderdate    | date        | YES  |     | NULL    |       |
| Cust_ID      | int(11)     | YES  | MUL | NULL    |       |
+--------------+-------------+------+-----+---------+-------+
4 rows in set (0.04 sec)

Ici, la table "Client" est appelée table parent ou table de référence et la table "Commandes" est appelée table enfant ou table de référence. Les lignes de la table enfant doivent contenir des valeurs qui existent dans la table parent. Par exemple, chaque ligne du tableau « commandes » doit avoir un « Cust_Id » qui existe dans le tableau « client ».

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer