本文概要
- SQL FOREIGN KEY约束ON CREATE TABLE
- SQL FOREIGN KEY约束的ALTER TABLE
- DROP语法外键COSTRAINT
- 主键和SQL中的外键的区别
在简单的话,你可以说,在一个表的外键用于指向另一个表的主键。
让我们举个例子来解释一下:
这里有两个表第一个是学生表,二是订单表。
这里订单由学生给出。
第一个表:
S_ID | 姓 | 名字 | 市 |
---|---|---|---|
1 | MAURYA | AJEET | ALLAHABAD |
2 | JAISWAL | RATAN | GHAZIABAD |
3 | ARORA | SAUMYA | 莫迪纳加尔 |
O_Id | 订单号 | S_ID |
---|---|---|
1 | 99586465 | 2 |
2 | 78466588 | 2 |
3 | 22354846 | 3 |
4 | 57698656 | 1 |
- 在“学生”表中的“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-
主键不能在另一方面的外键空可以为空。
主键始终是唯一的,而国外的键可以重复。
主键唯一标识记录在一个表中,而外键是一个表,是在另一个表的主键字段。
只有一个表中的主键,另一方面,我们可以在表中有多个外键。
默认情况下,主键增加,另一方面外键不会自动创建索引的聚簇索引,集群或非集群。你必须手动创建外键索引。
推荐阅读
- SQL复合键
- SQL PRIMARY KEY主键
- SQL CROSS JOIN交叉连接查询
- SQL FULL JOIN全连接查询
- SQL LEFT JOIN左连接查询
- SQL RIGHT JOIN右连接查询
- SQL JOIN查询语句
- SQL OUTER JOIN外连接查询
- SQL DELETE JOIN语句