SQL FOREIGN KEY

SQL FOREIGN KEY 一个表中的FOREIGHKEY指向另一个表中的PRIMARYKEY。 通过实例来解释外键。请看下面两个表:注意:  ·"Orders"表中的"P_Id"列指向"Persons"表中的"P_Id"列。  ·"Persons"表中的"P_Id"列是"Persons"表中的PRIMARYKEY。  ·"Orders&quo

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

  一个表中的FOREIGH KEY 指向另一个表中的PRIMARY 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:

 

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:

 

 

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:

 

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

 

ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

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

 

MySQL /SQL Server /Oracle /MS Access:

 

ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

 

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

 

 

MySQL:

 

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

 

SQL Server /Oracle /MS Access:

 

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders

 

参考:

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

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2022年6月15日 上午6:00
下一篇 2022年6月15日 上午6:00


相关推荐

  • latex连乘符号怎么写_latex属于符号怎么打

    latex连乘符号怎么写_latex属于符号怎么打求和符号:\sum_{i=1}^{n}左侧的“\sum”代表求和符号,中间的"_{i=1}"代表下标是“i=1”,右边的"^{n}"代表上标是“n”。 连乘符号:\prod_{i=1}^{n}连乘除了最前面的词不一样,别的都和求和符号一样,下面再说求和符号其他形式。连乘都可以参考 求和符号不加上标\sum_{i=1}求和符号…

    2022年10月12日
    3
  • java实现redis分布式锁实例[通俗易懂]

    无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里以跳转到教程java实现redis分布式锁应用场景:多并发特点:分布式锁、动态解决由redis宕机产生死锁的情况,基于wait()、notify()有效提高效率节省资源Junit类,其中testTryLock包含多线…

    2022年4月12日
    69
  • JDK新特性-Lambda表达式的神操作

    JDK新特性-Lambda表达式的神操作

    2020年11月20日
    203
  • net mvc 设置启动页面「建议收藏」

    net mvc 设置启动页面「建议收藏」在项目的App_Start文件夹下的RouteConfig页面设置publicstaticvoidRegisterRoutes(RouteCollectionroutes){routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”);routes.MapRoute(name:”Default”,url:”{controller}/{action}/{id}”,defaults:new{controller=”Home”,

    2022年7月27日
    9
  • idea永久激活码[在线序列号]

    idea永久激活码[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    137
  • 谈谈人的主观能动性

    谈谈人的主观能动性主观能动性是什么 主观能动性是反映一个人对外界的主观认知的一个概念 简单来说就是人习惯性的想法与做法 可以将一个人的特点简单粗暴的分为 智力 性格 主观能动性这三点 1 智力 不得不承认 人与人之间的智力确实存在差距 这是非常残酷的现实 这是先天决定的 智力主要体现在一个人的理解能力与记忆能力 2 性格 这个与环境有着很大的关系 如果一个人成长在有爱 温馨的家

    2026年3月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号