SQL foreign-key
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”列是“学生”表中的PRIMARY KEY。
- “订单”表中的“ S_Id”列是“订单”表中的FOREIGN KEY。
外键约束通常是防止破坏表之间链接的操作。
它还可以防止无效数据输入外键列。
CREATE TABLE上的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访问:
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)
DROP SYNTAX for 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。外键可以为null。
主键始终是唯一的,而外键可以复制。
主键唯一地标识表中的记录,而外键是表中的字段,而表中的字段是另一个表中的主键。
另一方面,表中只有一个主键,而表中可以有多个外键。
默认情况下,主键会添加聚簇索引,而外键不会自动创建聚簇或非聚簇索引。您必须手动为外键创建索引。
类别:MySQL、
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!