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


相关推荐

  • PCI,PCI-X,PCI-E

    PCI,PCI-X,PCI-EPCI-X是PCI总线的扩展架构,PCI-X频率不像PCI那样固定,而是可以随着设备的变化而变化的。PCI-X采用64位PCI总线(PCI為32bit),可以支持66,100,133MHz这些频率。而在未来,可能将提供更多的频率支持。PCI-X标准的提出主要面向服务器I/O结构。PCI-X的设计目标在于提高CPU与外设之间的传输速度,能使服务器的I/O速度提高两倍。与原来的PCI标准开发商不同的是

    2022年5月7日
    55
  • 无人机wifi图传模块(手机远程控制)

    现在手机的省内流量也便宜了,是时候考虑用手机3G,4G网络来超远程控制无人机、无人车、无人船了。超远程的意思是经过IP互联网,可以操控另一个城市或另一个国家的无人机。网灵科技的“全球鹰”无人机远程控制模块就是这个思路。既然是DIY,那么就要省钱,咱不买“全球鹰”远控模块,就用个闲置的安卓手机放到无人机上去吧,手机可以3G、4G上网,手机摄像头可以做图传用,手机再想办法跟飞控的数传口连接通信,实现数传和远程手柄遥控。

    2022年4月17日
    254
  • c# mvc webGrid 无刷新分页「建议收藏」

    c# mvc webGrid 无刷新分页「建议收藏」参考地址:http://www.dotnetcurry.com/ShowArticle.aspx?ID=618一、webGrid.css.webGrid{margin:4px;border-collapse:collapse;/*width:300px;*/}.header{background-color:#E8E8E8;font-weight:bold;color:#FFF;}.head{

    2022年10月5日
    4
  • visual studio 2013安装教程_Visual Studio下载

    visual studio 2013安装教程_Visual Studio下载C语言学习VisualStudio2013下载及其安装VisualStudio2013官方旗舰版下载地址:http://download.microsoft.com/download/B/1/9/B1932B8C-1046-4773-A1DD-4AB5C0978637/vs2013.2_ult_chs.iso下载完之后:①下载后得到的是ISO文件,直接解压缩或用虚拟光驱加载运行都可以;②这里直接解压,然后双击“vs_ultimate.exe”开始安装;③设置好安装路径后…

    2025年9月23日
    3
  • 一次阿里笔试

    一次阿里笔试时间2020年2月5日主题阿里一面:笔试/代码面时长一个小时前置条件已经历电话面试,约定好笔试时间其它社招、在线笔试结果通过题目类型并发、很简单的算法题题目及当时自己提交的答案1、(JDK1.8)线程A打印a,线程B打印l,线程C打印i,三个线程交替打印,各打印102次,alialiali……publicclassThreadP…

    2022年5月10日
    45
  • Python如何生成可执行的.exe文件

    Python如何生成可执行的.exe文件为什么要生成可执行文件:不需要安装对应的编程环境可以将你的应用闭源用户可以方便、快捷的直接使用打包工具pyinstaller一.pyinstaller简介Python是一个脚本语言,被解释器解释执行。它的发布方式:.py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的各种库。(Python官方的各种安装包就是这样做的).pyc文件…

    2022年5月25日
    23

发表回复

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

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