浅谈 MySQL的外键的作用

MySQL中外键的介绍:

 

  1. MySQL外键必须使用存储引擎为  innDB  其中MySAM 和MEMORYH这两种引擎不支持
  2. 由数据库自身保证数据一致性,完整性,更可靠,因为程序很难100%保证数据的完整性,而用外键即使在数据库服务器当机或者出现其他问题的时候,也能够最大限度的保证数据的一致性和完整性。
  3. 设置外键约束的两个表之间会具有父子关系,即子表中外键的字段的取值范围由父表所决定
  4. 设置外键一定程度上降低数据库的速度
  5. 子表的外键字段的数据类型和父表中要一致

关于外键的设置:

  CREATE   TABLE   table_name (

属性名: 数据类型

属性名: 数据类型

.......

CONSTRAINT FR_deptno  FOREIGN  KEY(子表中的外键字段) REFERENCES  + 父表名  (父表中的字段)

 

)

实验的环境试验:

  • 两个表   父表  t_dept   子表  t_employee
  • 两个表中的具体的字段

  • 设置子表中的外键约束字段 deptno 关联到父表中的 deptno 字段(注意这两个字段的名字可以是不相同的,但表达的意思是相同的)

验证子表中的取值范围由父表决定:

在父表中添加一些字段:

 如添加了两个字段 1和2

此时在子表中添加字段

发现此时在子表中只能选择1和2 不能添加其他字段

验证外键的完整性:

当我们删除父表中的字段的时候子表中的字段也被删除我们删除父表中deptno 字段为1 ,此时发现子表中的字段只剩下一个2

当我们修改父表中deptno字段的值为3时,发现子表中的字段也改变为3

 

posted @ 2016-08-26 16:11  下丶雨天  阅读(2776)  评论(0编辑  收藏  举报