外键(Foreign Key)

外键(Foreign Key)

  如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字

  外键的作用:

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

  例如:

  a b 两个表

  a表中存有客户号,客户名称

  b表中存有每个客户的订单

  有了外键后

  你只能在确信b 表中没有客户x的订单后,才可以在a表中删除客户x

  建立外键的前提: 本表的列必须与外键类型相同(外键必须是外表主键)。

  指定外键关键字: foreign key(列名)

  引用外键关键字: references <外键表名>(外键列名)

  事件触发限制: on delete和on update , 可设参数cascade(跟随外键改动), restrict(限制外表中的外键改动),set Null(设空值),set Default(设默认值),[默认]no action

  例如:

  outTable表 主键 id 类型 int

  创建含有外键的表:

  create table temp(

  id int,

  name char(20),

  foreign key(id) references outTable(id) on delete cascade on update cascade);

  说明:把id列 设为外键 参照外表outTable的id列 当外键的值删除 本表中对应的列筛除 当外键的值改变 本表中对应的列值改变。

  建键几个原则:

  1、 为关联字段创建外键。

  2、 所有的键都必须唯一。

  3、避免使用复合键。

  4、外键总是关联唯一的键字段。

  ---------------------------------------------------------------------------------------------------------

  主键表和外建表:

  使用设计界面创建外键时,出现主键表和外建表问题,上述使个人理解有误:

  CREATE TABLE TABLE1

  (

  [ID] INT IDENTITY(1,1) PRIMARY KEY

  )

  GO

  CREATE TABLE TABLE2

  (

  [ID] INT NOT NULL,

  FOREIGN KEY ([ID]) REFERENCES [TABLE1]([ID])

  )

  GO

  TABLE2 中引用了TABLE1,在此TABLE1为主键表,而TABLE2 为外键表。

  总结:主键表是被引用的表,外键表是引用其他表的表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值