📜  外键 (1)

📅  最后修改于: 2023-12-03 15:23:42.907000             🧑  作者: Mango

外键

什么是外键

外键(Foreign Key)是关系型数据库中的一种约束。外键建立在两个表格之间的关系上,它指向另一个表格的主键,用来维护表格之间的一致性和完整性。

如何使用外键

使用外键需要在创建表格时设定。在MySQL数据库中,设定外键需要使用FOREIGN KEY关键字:

CREATE TABLE 表格名称 (
  列1 数据类型,
  ...
  列n 数据类型,
  FOREIGN KEY (列m) REFERENCES 另一个表格名称(另一个表格的主键名称)
);

例如,在创建一个订单表格时,我们需要在订单详情表格中引用“订单编号”这个字段。我们可以使用以下代码创建订单详情表格:

CREATE TABLE 订单详情 (
  商品编码 INT,
  商品名称 VARCHAR(20),
  数量 INT,
  订单编号 INT,
  FOREIGN KEY (订单编号) REFERENCES 订单(订单编号)
);

这样,我们就在订单详情表格中设定了一个外键,它指向了订单表格的主键“订单编号”。

外键的作用

外键的作用主要有以下几点:

  1. 保证数据的一致性和完整性:使用外键可以确保在表格之间建立正确的关系,避免数据异常和冗余的情况发生。

  2. 提高数据查询的效率:使用外键可以建立表格之间的关联关系,从而让数据查询更加高效。

  3. 便于管理数据:使用外键可以用较少的时间和资源管理大量的数据。

外键的约束

外键约束是一种限制性条件,它指定了从一个表格到另一个表格的关系。在MySQL数据库中,外键约束有以下几种类型:

  1. ON DELETE CASCADE: 当外键所在的行被删除后,其所在表格中的所有与之关联的行也会被删除。

  2. ON DELETE RESTRICT: 当外键所在的行被删除后,其所在表格中的所有与之关联的行不会被删除,但要求在进行删除操作时必须先删除该行。

  3. ON DELETE SET NULL: 当外键所在的行被删除后,其所在表格中的所有与之关联的行的外键值将被设置为NULL

  4. ON DELETE NO ACTION: 当外键所在的行被删除后,其所在表格中的所有与之关联的行不会被删除,也不会被设置为NULL

总结

外键是一种关系型数据库的约束,用来确保数据的一致性和完整性。使用外键可以建立表格之间的关系,提高数据查询的效率,便于管理数据。在MySQL数据库中,外键有多种约束类型,可以根据实际需求进行选择。