1. 什么是外键?
在MSSQL中,外键(Foreign key)是一种关系型数据表的特殊约束条件,它用于限定两个表之间的对应关系。
简单来说,外键是一种约束,其作用是保证表中的数据在多个表之间的引用时,引用的数据必须确切存在,并且不能引用不存在的数据。
2. 外键的使用场景
外键的使用场景,在实际的开发过程中非常常见。例如,在学生信息管理系统中,一个班级中的学生会和另外一个表格中的教师相关联。这时,可以使用外键来保证学生和教师的关系正确。
此外,外键也可以被应用于表格之间的联结操作。
3. 添加外键
3.1 确认要添加的外键
在添加外键之前,需要确认要添加的外键的名称、列名、参考表的名称、参考表列名等信息。确认好这些信息之后,才能继续执行下一步的添加操作。
3.2 添加外键
可以使用ALTER TABLE
命令添加外键。
ALTER TABLE TableName
ADD CONSTRAINT FK_ConstraintName
FOREIGN KEY (ColumnName)
REFERENCES ReferencedTable (ReferencedColumnName);
其中,TableName
是要添加外键的表名称;FK_ConstraintName
是要添加的外键名称;ColumnName
是要添加外键的列名称;ReferencedTable
是外键参考表的名称;ReferencedColumnName
是外键参考表的列名称。
3.3 外键的属性
添加外键后,可以通过ALTER TABLE
命令,修改外键的属性。
3.3.1 ON DELETE
ON DELETE
属性指定删除关联表中数据时要执行的操作。
可以使用以下语句指定ON DELETE
属性:
ALTER TABLE TableName
ADD CONSTRAINT FK_ConstraintName
FOREIGN KEY (ColumnName)
REFERENCES ReferencedTable (ReferencedColumnName)
ON DELETE CASCADE;
CASCADE
操作表示,当有数据在关联表中删除时,所有关联的数据也将被删除。
RESTRICT
操作表示,当有数据在关联表中删除时,将会提示“操作被限制”。
NO ACTION
操作表示,当有数据在关联表中删除时,只是抛出错误。
SET NULL
操作表示,在删除关联表中的数据之后,将被关联的列设置为 NULL。
SET DEFAULT
操作表示,在删除关联表中的数据之后,将被关联的列设置为指定的默认值。
3.3.2 ON UPDATE
ON UPDATE
属性指定要更新关联表中数据时要执行的操作。
可以使用以下语句指定ON UPDATE
属性:
ALTER TABLE TableName
ADD CONSTRAINT FK_ConstraintName
FOREIGN KEY (ColumnName)
REFERENCES ReferencedTable (ReferencedColumnName)
ON UPDATE CASCADE;
CASCADE
操作表示,当关联表中的数据更新时,所有关联数据也将被更新。
RESTRICT
操作表示,当关联表中的数据更新时,将提示“操作被限制”。
NO ACTION
操作表示,当有数据在关联表中更新时,只是抛出错误。
SET NULL
操作表示,在更新关联表中的数据之后,将被关联的列设置为 NULL。
SET DEFAULT
操作表示,在更新关联表中的数据之后,将被关联的列设置为指定的默认值。
4. 删除外键
在MSSQL中,可以使用ALTER TABLE
命令删除外键。
ALTER TABLE TableName
DROP CONSTRAINT FK_ConstraintName;
其中,TableName
是要删除外键的表名称;FK_ConstraintName
是要删除的外键名称。
5. 结论
在MSSQL中,外键是保证表格间数据完整性的重要元素。添加外键有助于避免数据冲突和其他异常情况的发生。我们可以通过ALTER TABLE
命令添加或删除外键,同时还可以修改添加的外键的属性,以适应各种不同的使用场景。