个性化阅读
专注于IT技术分析

SQL FOREIGN KEY外键

本文概要

在关系数据库中,外键是一个字段或者是用于建立两个表之间的连接列。

在简单的话,你可以说,在一个表的外键用于指向另一个表的主键。

让我们举个例子来解释一下:

这里有两个表第一个是学生表,二是订单表。

这里订单由学生给出。

第一个表:

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

(定义在单个列外键约束)

要创建的“S_ID”列中的外键创建“订单”表时:

MySQL的:

CREATE TABLE orders
(
O_Id int NOT NULL,Order_No  int 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-

主键不能在另一方面的外键空可以为空。

主键始终是唯一的,而国外的键可以重复。

主键唯一标识记录在一个表中,而外键是一个表,是在另一个表的主键字段。

只有一个表中的主键,另一方面,我们可以在表中有多个外键。

默认情况下,主键增加,另一方面外键不会自动创建索引的聚簇索引,集群或非集群。你必须手动创建外键索引。

赞(0)
未经允许不得转载:srcmini » SQL FOREIGN KEY外键

评论 抢沙发

评论前必须登录!