mysql关于外键存值语句_浅谈 MySQL的外键的作用

MySQL中外键的介绍:

MySQL外键必须使用存储引擎为  innDB  其中MySAM 和MEMORYH这两种引擎不支持

由数据库自身保证数据一致性,完整性,更可靠,因为程序很难100%保证数据的完整性,而用外键即使在数据库服务器当机或者出现其他问题的时候,也能够最大限度的保证数据的一致性和完整性。

设置外键约束的两个表之间会具有父子关系,即子表中外键的字段的取值范围由父表所决定

设置外键一定程度上降低数据库的速度

子表的外键字段的数据类型和父表中要一致

关于外键的设置:

CREATE   TABLE   table_name (

属性名: 数据类型

属性名: 数据类型

.......

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

)

实验的环境试验:

两个表   父表  t_dept   子表  t_employee

两个表中的具体的字段

A+EVgn7kYYfoAAAAAElFTkSuQmCC

F8jhQFAEikMAJJIYQCQRAoDgCRSGAAkkcIAIIkUBgBJpDAASCKFAUASKQwAkkhhAJBECgOAJFIYACSRwgAgiRQGAEmkMABIIoUBQBIpDACSSGEAkEQKA4AkUhgAJJHCACCJFAYASaQwAEgihQFAEikMAJJIYQCQRAoDgCRSGAAkkcIAIIkUBgBJpDAASCKFAUASKQwAkkhhAJBECgOAJFIYACSRwgAgiRQGAEmkMABIIoUBQBIpDACSSGEAkEQKA4AkUhgAJJHCACCJFAYASaQwAEgihQFAEikMAJJIYQCQRAoDgCRSGAAkkcIAIIkUBgBJpDAASCKFAUASKQwAkkhhAJBECgOAJFIYACSRwgAgiRQGAEmkMABIIoUBQBIpDACSSGEAkEQKA4AkUhgAJJHCACCJFAYASaQwAEgihQFAEikMAJJIYQCQ9D8KpJGuZT6bPQAAAABJRU5ErkJggg==

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

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

在父表中添加一些字段:

如添加了两个字段 1和2

NX47d6hcTIGAHAcGQMAaIyMAQA0RsYAABojYwAAjf0fxNrPseJIKycAAAAASUVORK5CYII=

此时在子表中添加字段

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

ISu5CtsVAAAAAElFTkSuQmCC

验证外键的完整性:

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

w8MmPIzj1Qh5wAAAABJRU5ErkJggg==

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

x8iBd+h7EtVIAAAAABJRU5ErkJggg==

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值