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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • springboot注解大全注解(spring两个方法都注解事务)

    关系型数据库多用到事务,在传统项目中使用xml配置,配置虽然也还好,但是看着很不美观,在使用SpringBoot框架,就简单的多了,以实战为准,直接上代码@Transactionalspring事务注解1.简单开启事务管理@EnableTransactionManagement//启注解事务管理,等同于xml配置方式的<tx:annotation-driven/>2.事务注解详解默认遇到

    2022年4月13日
    49
  • unix命令大全详解-完整版_command方式:

    unix命令大全详解-完整版_command方式:UNIX命令大全详解-完整版command方式:任何输入都会作为编辑命令,而不会出现在屏幕上,若输入错误则有“岬”的声音;任何输入都引起立即反映insert方式:任何输入的数据都置于编辑寄存器。在command方式下输入(I,a,A等),可进入in

    2022年5月6日
    45
  • L0/L1/L2/无穷范数

    L0范数:向量中非零元素的个数L1范数:向量中各个元素绝对值的和L2范数:向量中元素平方的和,再开方;即向量的模长无穷范数:向量中各个元素绝对值的最大值 关于范数,有个好文章:http://blog.csdn.net/zouxy09/article/details/24971995重要部分贴过来(感谢作者): 好了,这里兑现上面的承诺,来直观的聊聊L1和L2的差别,…

    2022年4月7日
    81
  • ftp工具哪个好用_客户端游戏人气排行榜

    ftp工具哪个好用_客户端游戏人气排行榜序言:随着互联网的不断普及、发展,越来越多的人在使用FTP软件,它被广泛的应用于网页制作、网站更新、资源共享、数据传输等多个方面。“工欲善其事,必先利其器”,面对现在多如牛毛的各种FTP软件,我们到底选择哪一款才能更好的帮助我们呢?为此我们将针对当前比较流行的十款FTP客户端软件进行横向评测,通过下面的评测我们将会给出圆满的答案,希望能够给广大读者提供指引和帮助。导读:☆:

    2022年10月19日
    0
  • content-type 的所有可选项

    content-type 的所有可选项

    2021年4月24日
    153
  • datagrip 2021.11.4 激活_最新在线免费激活

    (datagrip 2021.11.4 激活)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月28日
    33

发表回复

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

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