📅  最后修改于: 2023-12-03 14:52:34.823000             🧑  作者: Mango
外键是用于建立表与表之间关联关系的重要概念。它允许我们通过引用其他表中的数据来创建数据之间的联系。在 SQL 中,我们可以使用 FOREIGN KEY 约束来创建带有外键的表。下面是创建带有外键的表的步骤:
首先,我们需要创建主表。主表是包含被引用的外键的表,可以存在没有相关数据的情况。
CREATE TABLE 主表名 (
主表的列名1 数据类型,
主表的列名2 数据类型,
...
CONSTRAINT 主表名_PK PRIMARY KEY (主表的主键列名)
);
接下来,我们需要创建包含外键的表。外键表是引用主表的表,其中的外键列与主表的主键列相对应。外键表中的外键列可用于与主表中的数据建立联系。
CREATE TABLE 外键表名 (
外键表的列名1 数据类型,
外键表的列名2 数据类型,
...
CONSTRAINT 外键表名_FK FOREIGN KEY (外键表的外键列名)
REFERENCES 主表名 (主表的主键列名)
ON DELETE 操作规则
ON UPDATE 操作规则
);
在上述代码中,外键表名_FK
是用于约束外键的名称,外键表的外键列名
是包含外键值的列名,主表名
是主表的名称,主表的主键列名
是主表的主键列名称。
ON DELETE
和 ON UPDATE
是可选的,用于指定外键引用的行在主表中被删除或更新时的操作规则。常见的操作规则包括:
CASCADE
:删除或更新主表中的行时,同时删除或更新外键表中的行。SET NULL
:删除或更新主表中的行时,将外键表中的外键列设置为 NULL。RESTRICT
:阻止删除或更新主表中的行,当外键表中存在与其关联的行。下面是一个示例,展示如何创建带有外键的两个表:
-- 创建主表
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY,
CustomerName VARCHAR(255)
);
-- 创建外键表
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
OrderNumber INT,
CustomerID INT,
CONSTRAINT ORDERS_FK FOREIGN KEY (CustomerID)
REFERENCES Customers (CustomerID)
ON DELETE CASCADE
ON UPDATE CASCADE
);
在上述示例中,Customers
表是主表,CustomersID
是其主键列。Orders
表是外键表,CustomerID
是其外键列,用于引用 Customers
表中的数据。ON DELETE CASCADE
和 ON UPDATE CASCADE
规定了外键引用的行在主表中被删除或更新时的操作规则。
现在你已经学会如何在 SQL 中创建带有外键的表了。运用外键可以帮助我们建立有效的关联关系,提高数据的完整性和一致性。