美文网首页
Database-0004-外键

Database-0004-外键

作者: 云转水流 | 来源:发表于2016-08-10 20:20 被阅读38次

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. 外键总是关联唯一的键字段。

相关文章

  • Database-0004-外键

    2016.8.10 外键(Foreign Key) 外键又称作外关键字。 如果公共关键字在一个关系中是主关键字,那...

  • 外键约束

    外键约束主要包含添加外键和删除外键。 1、外键约束-添加外键 create table 表名(字段名 数据类型,....

  • SQL数据库的、外键和查询

    外键 增加外键 创建表的时候增加外键:在所有的表字段之后,使用foreign key(外键字段) referenc...

  • 外键、联合查询、子查询

    1、外键: 增加外键 创建表的时候增加外键:在所有的表字段之后,使用foreign key(外键字段) refer...

  • mysql(15)

    主键、外键和索引的区别? 主键,外键和索引的区别如下表: |主键|外键|索引|------|-----|----|...

  • MySQL学习:外键约束foreign key

    1、在创建表时,可添加外键 语法: CREATE TABLE 表名( .... 外键列 CONSTRAINT 外键...

  • 2018-01-19

    1对n关系:外键关联与逻辑外键外键关联缺陷:外键字段的值必须依赖于另一张表的唯一性约束字段逻辑关联缺陷:逻辑外键所...

  • 09_MySQL多表 & JDBC

    MySQL多表 外键 主表主键和从表外键 ==(从表的外键引用主表的主键)== 从表的外键类型必须和主表的主键类型...

  • 浅谈数据库主键外键索引

    目录 1、主键、外键、索引定义 2、为什么定义主键、外键 3、主键和外键的关系 4、数据库中主键和外键的设计原则 ...

  • 5 MySQL 命令

    [Toc] 1 禁用外键约束 禁用外键约束:SET FOREIGN_KEY_CHECKS=0 启用外键约束:set...

网友评论

      本文标题:Database-0004-外键

      本文链接:https://www.haomeiwen.com/subject/stfjsttx.html