数据库中的主外键简析

来源:未知 责任编辑:责任编辑 发表时间:2014-05-20 18:34 点击:
 
前几天做毕设的时候,用的数据库,当时写的时候就没有注意到表关联的问题,老师问到才想起这个问题,今天特意查了一下主键和外键的作用,和大家分享一下。
 
外键的作用:  www.2cto.com  
 
保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。使两张表形成关联,外键只能引用外表中的列的值!
 
例如:
 
a b 两个表
 
a表中存有客户号,客户名称
 
b表中存有每个客户的订单
 
有了外键后
 
你只能在确信b 表中没有客户x的订单后,才可以在a表中删除客户x
 
建立外键的前提:本表的列必须与外键类型相同(外键必须是外表主键)。
 
指定主键关键字: foreign key(列名)
 
引用外键关键字: references <外键表名>(外键列名)
 
事件触发限制: on delete和on update , 可设参数cascade(跟随外键改动), restrict(限制外表中的外键改动),set Null(设空值),set Default(设默认值),[默认]no action
  www.2cto.com  
例如:
 
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列当外键的值删除本表中对应的列筛除当外键的值改变本表中对应的列值改变。
 
外键 (FK) 是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。
 
FOREIGN KEY 约束的主要目的是控制存储在外键表中的数据,但它还可以控制对主键表中数据的修改。例如,如果在 publishers 表中删除一个出版商,而这个出版商的 ID 在 titles 表中记录书的信息时使用了,则这两个表之间关联的完整性将被破坏,titles 表中该出版商的书籍因为与 publishers 表中的数据没有链接而变得孤立了。FOREIGN KEY 约束防止这种情况的发生。如果主键表中数据的更改使之与外键表中数据的链接失效,则这种更改是不能实现的,从而确保了引用完整性。如果试图删除主键表中的行或更改主键值,而该主键值与另一个表的 FOREIGN KEY 约束值相关,则该操作不可实现。若要成功更改或删除 FOREIGN KEY 约束的行,可以先在外键表中删除外键数据或更改外键数据,然后将外键链接到不同的主键数据上去。
 
外键是用来控制数据库中数据的数据完整性的
 
就是当你对一个表的数据进行操作
 
和他有关联的一个或更多表的数据能够同时发生改变
 
这就是外键的作用  www.2cto.com  
 
主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键的设计对物理数据库的性能和可用性都有着决定性的影响。
 
必须将数据库模式从理论上的逻辑设计转换为实际的物理设计。而主键和外键的结构是这个设计过程的症结所在。一旦将所设计的数据库用于了生产环境,就很难对这些键进行修改,所以在开发阶段就设计好主键和外键就是非常必要和值得的。
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Request.ServerVariables 参数大全
  • 执行全文索引时出现权限不足的解决方法
  • 导入excel文件处理流程节点的解决方案
  • 查看sql修改痕迹(SQL Change Tracking on Table)
  • App数据层设计及云存储使用指南
  • PostgreSQL启动过程中的那些事三:加载GUC参数
  • MongoDB安装为Windows服务方法与注意事项
  • Percolator与分布式事务思考(二)
  • 写给MongoDB开发者的50条建议Tip1
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1