前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL FOREIGN KEY

SQL FOREIGN KEY

作者头像
全栈程序员站长
发布2022-07-02 11:20:10
6840
发布2022-07-02 11:20:10
举报

大家好,又见面了,我是你们的朋友全栈君。

一个表中的FOREIGH KEY 指向另一个表中的PRIMARY KEY。

通过实例来解释外键。请看下面两个表:

SQL FOREIGN KEY
SQL FOREIGN KEY

注意:

·”Orders”表中的”P_Id”列指向”Persons”表中的”P_Id”列。

·”Persons”表中的”P_Id”列是”Persons”表中的PRIMARY KEY。

·”Orders”表中的”P_Id”列是”Orders”表中的FOREIGN KEY。

FOREIGN KEY 约束用于预防破坏表之间连接的行为。

FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

CREATE TABLE时的SQL FOREIGN KEY 约束

在”Orders”表创建时在”P_Id”列上创建FOREIGN KEY 约束:

MySQL:

代码语言:javascript
复制
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)

SQL Server/ Oracle /MS Access:

代码语言:javascript
复制
CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)

如需命名FOREIGN KEY 约束,并定义多个列的FOREIGN KEY 约束,请使用下面的SQL语法:

MySQL /SQL Server /Oracle /MS Access:

代码语言:javascript
复制
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)

ALTER TABLE 时的 SQLFOREIGN KEY 约束

当”Orders”表已被创建时,如需在”P_Id”列创建FOREIGN KEY 约束,请使用下面的SQL:

MySQL /SQL Server /Oracle /MS Access

代码语言:javascript
复制
ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

如需命名FOREIGN KEY 约束,并定义多个列的FOREIGN KEY 约束,请使用下面的SQL语法:

MySQL /SQL Server /Oracle /MS Access:

代码语言:javascript
复制
ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

撤销FOREIGN KEY 约束 如需撤销FOREIGN KEY约束,请使用下面的SQL:

MySQL:

代码语言:javascript
复制
ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server /Oracle /MS Access:

代码语言:javascript
复制
ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders

参考:

https://www.yuque.com/docs/share/79273585-3f48-4505-b43b-edb59ba84662

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/147652.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档