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

数据库 SQL 约束之 FOREIGN KEY

作者头像
程序媛淼淼
发布2022-09-01 10:34:17
5300
发布2022-09-01 10:34:17
举报
文章被收录于专栏:程序员阿常程序员阿常

今天是日更的 53/365 天

大家好,我是阿常,上一篇阿常讲了《数据库 SQL 约束之 PRIMARY KEY》,今天阿常和大家分享《数据库 FOREIGN KEY 约束》。

SQL 约束的定义

SQL 约束用于规定表中的数据规则。如果存在违反约束的数据行为,行为会被约束终止。

约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。

SQL FOREIGN KEY 约束

一个表中的 FOREIGN KEY 指向另一个表中的 UNIQUE KEY(唯一约束的键)。我们来通过实例解释一下外键,请看下面两张表:

1、student 表

2、orders 表

请注意,"orders" 表中的 "P_Id" 列指向 "student" 表中的 "ID" 列。

"student" 表中的 "ID" 列是 "student" 表中的 PRIMARY KEY(主键)

"orders" 表中 "P_Id" 列是 "orders" 表中的 FOREIGN KEY(外键)

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

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

一)CREATE TABLE 时的 SQL FOREIGN KEY 约束

1、创建表时,定义单个列的 FOREIGN KEY 约束

数据库实例

代码语言:javascript
复制
CREATE TABLE orders
(
OrderId varchar(255),
OrderNo varchar(255),
P_Id varchar(255),
PRIMARY KEY (OrderId),
FOREIGN KEY (P_Id)
REFERENCES student(ID)
)

2、创建表时,定义多个列的 FOREIGN KEY 约束

数据库实例

代码语言:javascript
复制
CREATE TABLE orders
(
OrderId varchar(255),
OrderNo varchar(255),
P_Id varchar(255),
PRIMARY KEY (OrderId),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES student(ID)
)

二)ALTER TABLE 时的 SQL FOREIGN KEY 约束

1、当表已被创建,定义单个列的 FOREIGN KEY 约束

数据库实例

代码语言:javascript
复制
ALTER TABLE orders
ADD FOREIGN KEY(P_Id)
REFERENCES student(ID);

2、当表已被创建,定义多个列的 FOREIGN KEY 约束

数据库实例

代码语言:javascript
复制
ALTER TABLE orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY(P_Id)
REFERENCES student(ID);

三)撤销 FOREIGN KEY 约束

数据库实例

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

至此,数据库 SQL FOREIGN KEY(外键) 约束就讲完啦,下一篇讲《数据库 SQL CHECK(检查) 约束》。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员阿常 微信公众号,前往查看

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

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

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