首页博客网络编程
使用 SQL 外键约束
摘要

内容

SQL 外键约束:主要提示

  • 基于表的链接到基于其他表的

  • FOREIGN KEY 约束可防止可能破坏表之间链接的操作。

  • FOREIGN KEY 约束不允许无效数据插入到外键列中。

演示数据库

这是数据库中“Developers”表中的演示示例:

编号名字城市国家




1汤姆·库尔库蒂斯纽约美国
2安娜·费尔南德斯伦敦英国
3安东尼奥·靛蓝巴黎法国
4阿拉夫·凯林(Aarav Kaelin)德里印度
5安德鲁·图莫塔迈阿密美国

这是数据库中“Orders”表中的演示示例:

Order_IDClient_IDDeveloper_ID日期
1509912017-08-18
15102052016-12-19
15111552017-01-25

SQL 外键约束:解释

“Orders”表格中的“DeveloperID”列链接到“Developers”表格中的“DeveloperID”列。

“Developers”表中的“DeveloperID”列被解释为“Developers”表中的PRIMARY KEY。

“Orders”表中的“DeveloperID”列被解释为“Orders”表中的FOREIGN KEY。

SQL 外键 对 CREATE 表的约束

当 “Orders” 表已存在时,使用以下 SQL 语法在 “DeveloperID” 列上构建 FOREIGN KEY:

MySQL的:

复制

CREATE TABLE Orders (
    OrderID int NOT NULL,
    DeveloperID int,
    PRIMARY KEY (OrderID),    FOREIGN KEY (DeveloperID) REFERENCES Developers(DeveloperID)
);

SQL Server/MS Access/Oracle:

复制

CREATE TABLE Orders (
    OrderID int NOT NULL PRIMARY KEY,
    DeveloperID int FOREIGN KEY REFERENCES Developers(DeveloperID)
);

使用以下 SQL 语法允许命名 FOREIGN KEY 约束,并对要定义的各种列的 FOREIGN KEY 约束:

MySQL / SQL Server / MS Access / Oracle:

复制

CREATE TABLE Orders (
    OrderID int NOT NULL,
    DeveloperID int,
    PRIMARY KEY (OrderID),    CONSTRAINT FK_DeveloperOrder FOREIGN KEY (DeveloperID)    REFERENCES Developers(DeveloperID)
);

SQL 外键 对 ALTER 表的约束

当 “Orders” 表已存在时,使用以下 SQL 语法在 “DeveloperID” 列上构建 FOREIGN KEY 约束:

MySQL / SQL Server / MS Access / Oracle:

复制

ALTER TABLE OrdersADD FOREIGN KEY (DeveloperID) REFERENCES Developers(DeveloperID);

使用以下 SQL 语法允许命名 FOREIGN KEY 约束,并对要定义的各种列的 FOREIGN KEY 约束:

MySQL / SQL Server / MS Access / Oracle:

复制

ALTER TABLE OrdersADD CONSTRAINT FK_DeveloperOrderFOREIGN KEY (DeveloperID) REFERENCES Developers(DeveloperID);

删除 FOREIGN KEY 约束

使用此 SQL 语法删除 FOREIGN KEY 约束。

MySQL的:

复制

ALTER TABLE OrdersDROP FOREIGN KEY FK_DeveloperOrder;

SQL Server/MS Access/Oracle:

复制

ALTER TABLE OrdersDROP CONSTRAINT FK_DeveloperOrder;


声明提示:若要转载请务必保留原文链接,申明来源,谢谢合作!

本文链接:https://www.gaoxuejun173.top/blog/271

广告位

本文配乐
来说两句吧

该文章已禁止评论

最新评论

广告位