MSSQL中外键的使用方法

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 代码或图形用户界面可以轻松地创建和删除外键。但在使用外键时,需要注意它们的顺序,以及它们所包含的约束和索引等细节。

数据库标签