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

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

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

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

 

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

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

 

如下图,有一个成绩表

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

 

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

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

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

 

右击后选择“关系”

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

 

选择“添加”

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

 

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

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

 

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

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

 

选择“关闭”

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

 

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

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

 

完成后视图如下

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

 

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

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

 

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

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

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

 

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

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

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

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

上一篇:shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改、查)等各种操作


下一篇:MYSQL中分类汇总