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

王林
王林 转载
2023-09-06 13:53:02 920浏览

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

实际上 FOREIGN KEY 是一列或几列的组合,可用于设置两个表中数据之间的链接。换句话说,我们可以说 FOREIGN KEY 约束与两个表相关。它还用于增强数据完整性,因为表的主键链接到其他表的外键。

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

这里REFERENCES是一个关键字; column_name 是要设置 FOREIGN KEY 的列的列表;具有主键的表是包含主键的表的名称; column_name 是已设置 PRIMARY KEY 的列的列表。

示例

假设我们有两个表“Customer”和“Orders”。两个表之间的关系可以通过字段“Cust_Id”指定的表“orders”中的外键建立。创建两个表的查询如下 -

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)

这里,表“Customer”称为父表或引用表,表“Orders”称为子表或引用表。子表中的行必须包含父表中存在的值。例如,表“orders”中的每一行都必须具有“customer”表中存在的“Cust_Id”。

以上就是FOREIGN KEY 是什么意思以及我们如何在 MySQL 表中使用它?的详细内容,更多请关注php中文网其它相关文章!

声明:本文转载于:tutorialspoint,如有侵犯,请联系admin@php.cn删除