先决条件 – MS SQL Server 中的主键
SQL Server有不同的键,用于不同的目的。在本文中,将简要讨论外键。
外键与主键的用途相似,外键用于两个表。在少数情况下,外键用于自引用单个表。
外键:
由另一个表的单列或一组列唯一标识的一个表的单列或一组列称为外键。
句法 –
constraint fk_constraint-name foreign key(col1, col2)
references parent_table-name(col1, col2)
(OR)
foreign key(col1, col2)
references parent_table-name(col1, col2)
一个外键有两个表——父表和子表。如果用户想在子表中插入一列,该列必须是父表的一部分,否则会显示错误。在语法中,约束项不是必须使用的。
当查询中提到外键时,该键会自动创建一个引用约束,这意味着只有当它是父表的一部分时,才能将列插入到子表中。
考虑了大学数据库中名为 student(父表)和marks(子表)的两个表。
Name | Rollno | Age |
---|---|---|
Aisha | 111 | 18 |
Maya | 112 | 19 |
Fatima | 113 | 18 |
表 –标记
Name | Rollno | Marks |
---|---|---|
Aisha | 111 | 9.5 |
Maya | 112 | 8.7 |
Fatima | 113 | 7.7 |
如果用户想要插入新列,则查询如下:
foreign key('rollno')
references student('rollno')
insert into marks ('name', 'rollno', 'marks')
values('Naina, '111', '7.5')
显示错误,因为学生已取得卷号。 (外键约束)。外键不允许值重复出现。为避免此类错误,值不得重复,也不得考虑不同的列。