📜  如何在 SQL 中创建带有外键的表?(1)

📅  最后修改于: 2023-12-03 14:52:34.823000             🧑  作者: Mango

如何在 SQL 中创建带有外键的表

外键是用于建立表与表之间关联关系的重要概念。它允许我们通过引用其他表中的数据来创建数据之间的联系。在 SQL 中,我们可以使用 FOREIGN KEY 约束来创建带有外键的表。下面是创建带有外键的表的步骤:

步骤 1:创建主表

首先,我们需要创建主表。主表是包含被引用的外键的表,可以存在没有相关数据的情况。

CREATE TABLE 主表名 (
  主表的列名1 数据类型,
  主表的列名2 数据类型,
  ...
  CONSTRAINT 主表名_PK PRIMARY KEY (主表的主键列名)
);
步骤 2:创建外键表

接下来,我们需要创建包含外键的表。外键表是引用主表的表,其中的外键列与主表的主键列相对应。外键表中的外键列可用于与主表中的数据建立联系。

CREATE TABLE 外键表名 (
  外键表的列名1 数据类型,
  外键表的列名2 数据类型,
  ...
  CONSTRAINT 外键表名_FK FOREIGN KEY (外键表的外键列名)
    REFERENCES 主表名 (主表的主键列名)
      ON DELETE 操作规则
      ON UPDATE 操作规则
);

在上述代码中,外键表名_FK 是用于约束外键的名称,外键表的外键列名 是包含外键值的列名,主表名 是主表的名称,主表的主键列名 是主表的主键列名称。

ON DELETEON 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 CASCADEON UPDATE CASCADE 规定了外键引用的行在主表中被删除或更新时的操作规则。

现在你已经学会如何在 SQL 中创建带有外键的表了。运用外键可以帮助我们建立有效的关联关系,提高数据的完整性和一致性。