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

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

实际上,FOREIGN KEY是一列或多列,可用于在两个表中设置数据链接。换句话说,我们可以说FOREIGN KEY约束与两个表有关。它还用于增强数据完整性,因为一个表的PRIMARY KEY与其他表的FOREIGN KEY相关联。

阅读更多:MySQL 教程

语法

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

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

例子

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

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”。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程