Database-0004-外键

2016.8.10

外键(Foreign Key)

外键又称作外关键字。

如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。

以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。

如果关系模式R中的某属性集不是R的主键,而是另一个关系R1的主键,则该属性集是关系模式R的外键。

保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。
使两张表形成关联,外键只能引用外表中的列的值或使用空值。

外键就是指这个键在外表中是主键 。

总结:
  • 主键就是在本表是主键,外键就是在外表是主键。
  • 主键表是被引用的表,外键表是引用其他表的表。
  • 主键的取值规则:非空唯一
  • 外键的取之规则:可为空也可不为空,可以重复,必须来源于参照主键。
  • 一个字段只能被定义一个表级约束,要么实体完整性约束(主键),要么参照完整性约束(外键)。
  • 一般情况下不存在两个表用同一个字段当主键。
  • 一般来说,标准的关系模式定义下、两个表有两个相同字段、那么一个在这表当主键、必定在另一表当外键。

外键约束

如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。外键是用来实现参照完整性的。

比如说:

create table a(   
    id int not null,   
    name varchar(30),   
    primary key (id)   
);  
insert into a values (1, 'Group1');   
insert into a values (2, 'Group2');
create table b(   
    id int not null,   
    name varchar(30),   
    a_id int,   
    primary key (id),   
    foreign key (a_id) references a(id)
);  
insert into b values (1, 'qianxin', 1); --可以插入   
insert into b values (2, 'yiyu', 2);    --可以插入   
insert into b values (3, 'dai', 3);     --错误,无法插入,用户组3不存在,与参照完整性约束不符 

使用原则

  1. 为关联字段创建外键。
  2. 所有的键都必须唯一。
  3. 避免使用复合键。
  4. 外键总是关联唯一的键字段。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容