先决条件– 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')
由于卷号已经被学生记录,因此会显示一个错误。 (外键约束)。外键不允许再次出现该值。为避免此类错误,既不能重复这些值,也不能考虑其他列。