FOREIGN

简介: 【11月更文挑战第15天】

SQL FOREIGN KEY 约束详解

FOREIGN KEY 约束在 SQL 中用于在两个表之间建立链接(或关系),确保引用的数据的完整性。一个表中的 FOREIGN KEY 指向另一个表中的唯一键(通常是 PRIMARY KEY 或具有 UNIQUE 约束的列)。

特点和使用场景

  • 数据完整性FOREIGN KEY 约束确保引用表中的数据必须在主表中存在,从而维护了数据的引用完整性。
  • 级联操作:可以设置级联更新和级联删除操作,当主表中的数据发生变化时,引用表中的数据可以自动更新或删除。
  • 多表查询FOREIGN KEY 约束使得多表查询(如连接查询)更加可靠和有意义。

SQL FOREIGN KEY 约束语法

在创建表时,可以为特定列定义 FOREIGN KEY 约束,并指定它引用的另一个表和列:

CREATE TABLE table_name
(
    column1 data_type,
    column2 data_type,
    FOREIGN KEY (column2) REFERENCES referenced_table (referenced_column)
);
AI 代码解读
  • table_name:当前创建的表的名称。
  • column1, column2:列的名称。
  • data_type:列的数据类型。
  • FOREIGN KEY (column2):定义 column2 为外键。
  • REFERENCES referenced_table (referenced_column):指定外键引用的表和列。

代码示例

假设我们有两个表:PersonsOrdersPersons 表包含人员的信息,而 Orders 表包含订单信息,每个订单都与一个人员相关联。

-- 创建 "Persons" 表
CREATE TABLE Persons
(
    P_Id int PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255) NOT NULL,
    Address varchar(255),
    City varchar(255)
);

-- 创建 "Orders" 表
CREATE TABLE Orders
(
    OrderID int PRIMARY KEY,
    P_Id int,
    OrderDate date,
    FOREIGN KEY (P_Id) REFERENCES Persons (P_Id)
);
AI 代码解读

在这个例子中:

  • Persons 表有一个 P_Id 列,作为主键。
  • Orders 表有一个 P_Id 列,作为外键,它引用了 Persons 表中的 P_Id 列。
目录
打赏
0
6
6
0
1190
分享
相关文章
|
5月前
|
`<table>`
【10月更文挑战第17天】
73 1
CREATE TABLE 时的 SQL FOREIGN KEY 约束
【7月更文挑战第24天】CREATE TABLE 时的 SQL FOREIGN KEY 约束。
72 5
ALTER TABLE
【7月更文挑战第19天】ALTER TABLE 。
83 5
SQL FOREIGN KEY Constraint on CREATE TABLE
SQL FOREIGN KEY Constraint on CREATE TABLE
101 1
Stones on the Table
Stones on the Table
152 0
Stones on the Table
瞬表——Ephemeron Table
瞬表——Ephemeron Table
198 0
ALTER TABLE
本文主要介绍如何对表相关的Sequence类型进行修改。
truncate table 和 drop table 的一点坑
网上一搜这个关键字,得到的结果大多都是delete、truncate、drop之间的区别 但是今天我们要讲的内容,是我们在生产环境中遇到的真实案例 互联网公司一般对大表,都会采用分区表或者物理分表吧,这里主要描述的是分表的删除过程中的问题 案例一 环境MySQL5.
4111 0