SQL FOREIGN KEY外键

本文概要

  • SQL FOREIGN KEY约束ON CREATE TABLE
  • SQL FOREIGN KEY约束的ALTER TABLE
  • DROP语法外键COSTRAINT
  • 主键和SQL中的外键的区别
在关系数据库中,外键是一个字段或者是用于建立两个表之间的连接列。
在简单的话,你可以说,在一个表的外键用于指向另一个表的主键。
让我们举个例子来解释一下:
这里有两个表第一个是学生表,二是订单表。
这里订单由学生给出。
第一个表:
S_ID名字
1MAURYAAJEETALLAHABAD
2JAISWALRATANGHAZIABAD
3ARORASAUMYA莫迪纳加尔
第二个表:
O_Id订单号S_ID
1995864652
2784665882
3223548463
4576986561
这里可以看到,“S_ID”中的“订单”表指向“S_ID”列“学生”表列。
  • 在“学生”表中的“S_ID”列是“学生”表的主键。
  • 在“订单”表中的“S_ID”列在“订单”表的外键。
外键约束通常是防止破坏表之间的链接作用。
它还可以防止无效数据外键列进入。
SQL FOREIGN KEY约束ON CREATE TABLE(定义在单个列外键约束)
【SQL FOREIGN KEY外键】要创建的“S_ID”列中的外键创建“订单”表时:
MySQL的:
CREATE TABLE orders ( O_Id int NOT NULL,Order_Noint NOT NULL,S_Id int,PRIMAY KEY (O_Id),FOREIGN KEY (S_Id) REFERENCES Persons (S_Id) )

SQL服务器/甲骨文/ MS访问:
CREATE TABLE Orders ( O_Id int NOT NULL PRIMAY KEY,Order_No int NOT NULL,S_Id int FOREIGN KEY REFERENCES persons (S_Id) )

SQL FOREIGN KEY约束的ALTER TABLE如果已创建订单表,并且要建立在“S_ID”列外键约束,你应该写的语法如下:
定义在单个列外键约束:
MySQL的/ SQL服务器/甲骨文/ MS访问:
ALTER TABLE Orders ADD CONSTRAINT fk_PerOrders FOREIGN KEY(S_Id) REFERENCES Students (S_Id)

DROP语法外键COSTRAINT如果你想删除一个外键约束,使用的语法如下:
MySQL的:
ALTER TABLE Orders DROP FOREIGN KEY fk_PerOrders

SQL服务器/甲骨文/ MS访问:
ALTER TABLE Orders DROP CONSTRAINT fk_PerOrders

主键和SQL中的外键的区别这是主键和外键之间的一些重要区别SQL-
主键不能在另一方面的外键空可以为空。
主键始终是唯一的,而国外的键可以重复。
主键唯一标识记录在一个表中,而外键是一个表,是在另一个表的主键字段。
只有一个表中的主键,另一方面,我们可以在表中有多个外键。
默认情况下,主键增加,另一方面外键不会自动创建索引的聚簇索引,集群或非集群。你必须手动创建外键索引。

    推荐阅读