有人可以解释什么是外键,以及为什么要使用它?

时间:2018-12-12 10:54:24

标签: c# sql database

我正在学习C#,并且打算学习SQL数据库,但是我不确定我是否完全了解外键?

预先感谢您

5 个答案:

答案 0 :(得分:2)

外键是另一个表的主键。它用于链接两个表。 示例:我们有2个表(人员和员工)

人员具有主键:personID, 员工具有主键:employeeID

员工是一个人,因此必须将他们联系起来。

员工具有外键:personID

因此,每个雇员都有一个与之链接的人(其中Employee中的personID与Person中的personID相同)。

答案 1 :(得分:1)

FOREIGN KEY是用于将两个表链接在一起的键。

FOREIGN KEY是一个表中的一个字段(或字段的集合),它引用另一个表中的PRIMARY KEY。

包含外键的表称为子表,而包含候选键的表称为引用表或父表。

参考:https://www.w3schools.com/sql/sql_foreignkey.asp

答案 2 :(得分:1)

在关系数据库的上下文中,外键是一个表中的一个字段(或字段的集合),它唯一地标识另一个表或同一表的一行。用简单的话来说,外键是在第二个表中定义的,但它指的是第一个表中的主键或唯一键。

enter image description here

这将我们带到主键。 customer表在每行上都包含一个唯一的键,称为customerNumber,这是表的主键。在订单表上,有orderNumber列,它是该表的主键。

订单表具有通过客户编号返回客户表的外键链接。我们称客户编号为外键。

客户表:

customerNumber CustomerName.
       1           Bob
       2           Jane

订单表:

OrderNumber customerNumber   Status
       1           1         Shipped
       2           1         Exploded

如果您想查看bob的订单,请使用上面的数据,将主键设为bob客户ID,并检查订单表中包含该订单的所有行。这是链接两个表的外键。

答案 3 :(得分:0)

使用它可以将两个表链接在一起,从而使数据完整性更好。除非有明确的理由,否则应始终使用外键链接表引用。

假设您有Foobar列的UserId表和User列的Id表。您可以使用外键将UserId表中的Foobar列链接到User表的Id列中。

此后,如果您拥有Foobar为1的UserId行,并尝试从User列值为1的Id删除行,则会收到错误,因为{ {1}}引用了它。插入操作也经过验证,假设您尝试使用Foobar表中不存在的FoobarUserId表插入行,并且也会出现错误。

答案 4 :(得分:0)

外键是一列或一组列,它在其表和另一个表之间创建链接。创建链接的主表包含一个主键,该主键链接到第二个表的外键。这个主键>外键链接允许一个表中的一行或多行数据链接或关联到另一表中的一行或多行数据。

在创建新数据库表或更改现有数据库表时,使用“ FOREIGN KEY”约束创建外键。指定为外键的列也固有地具有“ NOT NULL”约束,这意味着它必须包含一个值并且不能为空。