首页 > 数据库技术 > 详细

SQL2005学习(三十四),外键约束 Foreign Key

时间:2014-04-16 13:23:05      阅读:724      评论:0      收藏:0      [点我收藏+]

外键约束(Foreign Key)定义了表之间的关系,主要用来维护两个表之间的一致性。当一个表中一列或者多个列的组合和其它表中的主关键字定义相同时,就可以将这些列或者列的组合定义为外关键字,并设定它适合与哪个表中的哪些列相关联。外键约束简而言之就是列参照完整性

如下图,我们只有a表和b表且分别为:学生表和成绩表。我们发现在b表中有学号6,但时a表中根本没有学号6这样的同学,也就是说学号6应该不能在b表出现,因为这是毫无意义的,为了防止这样的问题出现,a表的学号设置为主键,b表的学号设置为外键,那么在b表中录入学号就必须参照a表中的学号,如果在b表中录入a表中没有的学号,那么将报错。

bubuko.com,布布扣

 

如下图,有一个学生表,其中学号设置为主键,学号为1-6.

bubuko.com,布布扣

 

如下图,有一个成绩表

bubuko.com,布布扣

 

下面我把成绩表中的学号设置成外键

如下图,成绩表右击选择“设计”

bubuko.com,布布扣

 

右击后选择“关系”

bubuko.com,布布扣

 

选择“添加”

bubuko.com,布布扣

 

选择添加后,我们可以修改外键的名称,如下图,我该为F_成绩表,然后选择“表和列规范”

bubuko.com,布布扣

 

如下图,选择主键表是“学生表”,外键表是“成绩表”,且都选择学号,然后选择“确定”

bubuko.com,布布扣

 

选择“关闭”

bubuko.com,布布扣

 

选择“保存”,选择“是”

bubuko.com,布布扣

 

完成后视图如下

bubuko.com,布布扣

 

如下图,因为插入学号10的学生在学生表中没有这样的学号,顾报了Foregin Key约束“F_成绩表”冲突。

bubuko.com,布布扣

 

上面我是通过图形界面创建了外键约束,如果我想看看创建外键约束的语法怎么办?

如下图,选择“新查询编辑器窗口”

bubuko.com,布布扣

 

如下图,这就是创建外键约束的语法

bubuko.com,布布扣

SQL2005学习(三十四),外键约束 Foreign Key,布布扣,bubuko.com

SQL2005学习(三十四),外键约束 Foreign Key

原文:http://ksyiwen.blog.51cto.com/2754337/1395738

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!