SQL Server的主键与外键约束

SQL Server的主键与外键约束SQL Server有许多的重要知识,开始也说过许多的SQL知识了。SQL Server中的约束也是一个重要性的知识,下面我来说说关于SQL Server约束的知识。

首先我们来说说SQL sever的主键约束:主键是唯一标识表中每一行的列或一组列。可以使用 PRIMARY KEY 约束为表创建主键。如果主键只包含一列,则可以将 PRIMARY KEY 约束定义为列约束,如果主键有两列或更多列,则必须使用 PRIMARY KEY约束作为表约束(代码如图所示):

SQL Server的主键与外键约束_第1张图片

每个表只能有一个主键。参与主键的所有列必须定义为 NOT NULL。如果没有为这些列指定 NOT NULL 约束,SQL Server会自动为所有主键列设置 NOT NULL 约束。在创建主键时,SQL Server还会自动创建唯一的聚簇索引(如果指定,则为非聚集索引)。

接下来就是外键约束:SQL Server外键约束简介外键是一个表中的一列或一组列,它唯一地标识另一个表的行。 vendor_groups 和vendor表,它们的结构(如图所示):

SQL Server的主键与外键约束_第2张图片

每个供应商属于供应商组,每个供应商组可能有零个或多个供应商。 vendor_groups 和 vendors 表之间的关系是一对多的。对于 vendors 表中的每一行,始终可以在 vendor_groups 表中找到相应的行。但是,如果使用当前表创建方式,可以在vendors 表中插入一行而不在 vendor_groups 表中显示相应 的行。 还可以删除 vendor_groups 表中的行,而无需更新或删除 vendors 表中导致 vendors 表中存在孤立的行。要强制执行 vendor_groups 和 vendors 表中的数据之间的链接,需要在 vendors 表中建立外键。要创建外键,请使用 FOREIGN KEY 约束。以下语句删除 vendors 表并使用 FOREIGN KEY 约束重新创建它:

SQL Server的主键与外键约束_第3张图片

现在,vendor_groups 表称为父表,该表是外键约束引用的表。 vendors 表称为子表,该表是应用外键约束的表。

你可能感兴趣的:(sql)