1. 什么是外键
在 SQL Server 中,外键是用于连接两个表之间的关系的一种方式。它通过连接一个表的列到另一个表的主键来创建两个表之间的关联。外键约束可确保各自相关联的表中的数据一致性。
1.1 外键的作用
外键可以确保两个表之间的关系始终保持一致。它有以下几个作用:
防止因为数据不一致而出现垃圾数据。
允许在相关表之间进行自动更新操作。
可以帮助创建更好的表结构。
1.2 外键的类型
SQL Server 中有两种类型的外键:一种是主外键约束(PRIMARY KEY-FOREIGN KEY CONSTRAINT),另一种是非主外键约束(FOREIGN KEY CONSTRAINT)。
主外键约束用于连接主表的主键列到从表的外键列。当主键在主表中添加、删除或修改时,相关的子表中的所有行都将自动修改、删除或添加。
非主外键约束用于连接一个表中的某个列到另一个表中的主键列上,以显示它们之间的关系。
2. 创建外键
在 SQL Server 中,创建外键约束可以通过 SQL 代码或图形用户界面完成。以下是创建外键约束的基本步骤:
在主表上创建一个主键。
在从表上创建一个与主表上的主键相关联的外键。
2.1 通过 SQL 代码创建外键
创建外键的 SQL 代码语句如下所示:
ALTER TABLE 从表名称
ADD CONSTRAINT 约束名称
FOREIGN KEY (外键)
REFERENCES 主表名称(主键)
其中:
从表名称:需要创建外键的表名称。
约束名称:外键约束的名称。
外键:连接从表与主表的外键列。
主表名称:必须包含连接表的主键的表名称。
主键:主表中用作连接的主键列。
例如,下面的 SQL 代码将在 Customers 表中创建一个与 Orders 表相关联的外键:
ALTER TABLE Orders
ADD CONSTRAINT FK_Orders_Customers
FOREIGN KEY (CustomerID)
REFERENCES Customers(CustomerID)
2.2 通过图形用户界面创建外键
使用 SQL Server Management Studio 中的图形界面可以轻松地创建外键。下面是通过图形界面创建外键的步骤:
展开“数据库图形”,然后右键单击需要添加外键的表。
点击“设计”选项以打开表的设计视图。
从“工具栏”选择“关系”图标。
连接需要关联的两个表,即主表和从表。
备注:在关系中必须选择一种类型,以确定关系如何处理删除或更新操作。
3. 删除外键
你可以通过以下两种方式删除外键:
使用 SQL 代码
通过主键外键关系图形界面
3.1 使用 SQL 代码删除外键
删除外键的 SQL 代码语句如下:
ALTER TABLE 表名称
DROP CONSTRAINT 约束名称
其中:
表名称:包含外键约束的表名称。
约束名称:需要删除的外键约束的名称。
例如,下面的 SQL 代码将删除名为 FK_Orders_Customers 的外键约束:
ALTER TABLE Orders
DROP CONSTRAINT FK_Orders_Customers
3.2 通过主键外键关系图形界面删除外键
使用 SQL Server Management Studio 中的主键外键关系图形界面可以轻松地删除外键。
展开“数据库图形”,然后右键单击需要删除外键的表。
点击“设计”选项以打开表的设计视图。
从外键约束行中右键单击外键,然后选择“删除”。
4. 外键使用的注意事项
当使用外键时,需要考虑以下几个方面:
外键列必须要有索引。如果外键列没有索引,将会导致整张表的性能下降。
如果在使用 ON DELETE CASCADE 时,可能会出现循环引用而导致删除失败。因此,要谨慎使用。
在使用外键约束时,需要注意它们的顺序。如果将两个相关的表互相引用,则应该先创建其中一个表的主键,然后在另一个表上添加外键约束。
总结
外键是 SQL Server 中用于连接两个表之间关联的一种方式。它可以确保数据的完整性和一致性,实现表之间的从属关系和约束关系。在 SQL Server 中,通过 SQL 代码或图形用户界面可以轻松地创建和删除外键。但在使用外键时,需要注意它们的顺序,以及它们所包含的约束和索引等细节。