Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

MySQL 教程

MySQL 首页 MySQL 简介 MySQL RDBMS

MySQL SQL

MySQL SQL MySQL SELECT MySQL WHERE MySQL AND, OR, NOT MySQL ORDER BY MySQL INSERT INTO MySQL NULL 值 MySQL UPDATE MySQL DELETE MySQL LIMIT MySQL MIN 和 MAX MySQL COUNT, AVG, SUM MySQL LIKE MySQL 通配符 MySQL IN MySQL BETWEEN MySQL 别名 MySQL 联接 MySQL INNER JOIN MySQL LEFT JOIN MySQL RIGHT JOIN MySQL CROSS JOIN MySQL 自联接 MySQL UNION MySQL GROUP BY MySQL HAVING MySQL EXISTS MySQL ANY, ALL MySQL INSERT SELECT MySQL CASE MySQL 空函数 MySQL 注释 MySQL 运算符

MySQL 数据库

MySQL 创建数据库 MySQL 删除数据库 MySQL 创建表 MySQL 删除表 MySQL 修改表 MySQL 约束 MySQL 非空 MySQL 唯一 MySQL 主键 MySQL 外键 MySQL 检查 MySQL 默认值 MySQL 创建索引 MySQL 自增 MySQL 日期 MySQL 视图

MySQL 参考

MySQL 数据类型 MySQL 函数

MySQL 示例

MySQL 示例 MySQL 编辑器 MySQL 测验 MySQL 练习 MySQL 证书

MySQL FOREIGN KEY 约束


MySQL 外键约束

FOREIGN KEY 约束用于防止破坏表之间链接的操作。

FOREIGN KEY 是一个表中的字段(或字段集合),它引用另一个表中的 PRIMARY KEY

带有外键的表称为子表,带有主键的表称为引用表或父表。

查看以下两个表

人员表

PersonID LastName FirstName Age
1 Hansen Ola 30
2 Svendson Tove 23
3 Pettersen Kari 20

订单表

OrderID OrderNumber PersonID
1 77895 3
2 44678 3
3 22456 2
4 24562 1

请注意,“Orders” 表中的“PersonID” 列指向“Persons” 表中的“PersonID” 列。

“Persons” 表中的“PersonID” 列是“Persons” 表中的 PRIMARY KEY

“Orders” 表中的“PersonID” 列是“Orders” 表中的 FOREIGN KEY

FOREIGN KEY 约束可以防止将无效数据插入外键列,因为它必须是父表中包含的值之一。



创建表时的外键

以下 SQL 在创建“Orders” 表时会在“PersonID” 列上创建一个 FOREIGN KEY

CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);

要允许命名 FOREIGN KEY 约束,并在多个列上定义 FOREIGN KEY 约束,请使用以下 SQL 语法

CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)
    REFERENCES Persons(PersonID)
);

ALTER TABLE 时的外键

要在“Orders” 表已创建时在“PersonID” 列上创建 FOREIGN KEY 约束,请使用以下 SQL

ALTER TABLE Orders
ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

要允许命名 FOREIGN KEY 约束,并在多个列上定义 FOREIGN KEY 约束,请使用以下 SQL 语法

ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

删除外键约束

要删除 FOREIGN KEY 约束,请使用以下 SQL

ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.