SQL教程
SQL数据库
SQL表
SQL查询
SQL子句
SQL排序
SQL插入
SQL更新
SQL删除
SQL联接查询
SQL键

SQL 外键

在关系数据库中,外键是用于在两个表之间建立链接的字段或列。
简单来说,您可以说一个表中的外键用于指向另一表中的主键。
让我们以一个示例进行解释:
这里有两个表第一个是学生表,第二个是订单表。
这里的订单由学生提供。
第一个表:
S_Id LastName FirstName CITY
1 MAURYA AJEET ALLAHABAD
2 JAISWAL RATAN GHAZIABAD
3 ARORA SAUMYA MODINAGAR
第二张表:
O_Id OrderNo S_Id
1 99586465 2
2 78466588 2
3 22354846 3
4 57698656 1
在这里,您看到"订单"表中的" S_Id"列指向"学生"表中的" S_Id"列。
"学生"表中的" S_Id"列是"学生"表中的主键。 "订单"表中的" S_Id"列是"订单"表中的FOREIGN KEY。
外键约束通常用于防止破坏表之间链接的操作。
它还可以防止无效数据进入外键列。

在创建表上的SQL FOREIGN KEY约束:

(在单列上定义外键约束)
在表上创建外键创建"订单"表时的" 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 Server/Oracle/MS Access:
CREATE TABLE Orders
(
O_Id int NOT null PRIMAY KEY,
Order_No int NOT null,
S_Id int FOREIGN KEY REFERENCES persons (S_Id)
)

ALTER TABLE的SQL FOREIGN KEY约束:

如果已经创建了Order表,并且您想在" S_Id"列上创建FOREIGN KEY约束,则应该编写以下语法:
在单列上定义外键约束:
MySQL/SQL Server/Oracle/MS Access:
ALTER TABLE Orders
ADD CONSTRAint fk_PerOrders
FOREIGN KEY(S_Id)
REFERENCES Students (S_Id)

FOREIGN KEY COSTRAINT的下降语法:

如果要删除FOREIGN KEY约束,请使用以下语法:
MySQL:
 ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders
SQL Server/Oracle/MS Access:
ALTER TABLE Orders
DROP CONSTRAint fk_PerOrders

SQL中的主键和外键之间的区别:

这些是SQL中的主键和外键之间的一些重要区别-
主键不能另一方面,为null时,外键可以为空。
主键始终是唯一的,而外键可以重复。
主键唯一地标识表中的记录,而外键是表中的一个字段,是另一个表中的主键。
另一方面,表中只有一个主键,我们在表中可以有多个外键。
默认情况下,主键会添加聚簇索引,而外键不会自动创建聚簇或非聚簇索引。您必须手动为外键创建索引。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4