码迷,mamicode.com
首页 > 其他好文 > 详细

6-[表操作]--foreign key、表与表的关系

时间:2018-05-11 23:50:33      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:employee   from   img   inno   cas   技术   --   src   级联   

1、 foreign key

  (1)快速理解foreign key

  员工信息表有三个字段:工号 姓名 部门

  公司有3个部门,但是有1个亿的员工,那意味着部门这个字段需要重复存储,部门名字越长,越浪费

     技术分享图片

 

  解决方法:

  我们完全可以定义一个部门表

  然后让员工信息表关联该表,如何关联,即foreign key

   技术分享图片

 

  (2)建立表关系

#表类型必须是innodb存储引擎,且被关联的字段,即references指定的另外一个表的字段,必须保证唯一

# 先建立被关联的表,并且保证被关联的字段唯一
create table dep(
    id int primary key,
    name char(16),
    comment char(50)
);


#dpt_id外键,关联父表(department主键id),同步更新,同步删除

# 再建立关联的表
create table emp(
    id int primary key,
    name char(10),
    sex enum(male,female,other),
    dep_id int,
    foreign key(dep_id) references dep(id) on delete cascade  on update cascade
);

  

       foreign key(dep_id) references dep(id) on delete cascade  on update cascade
	# 外键  dep_id,     引用      dep 表的id字段    删除,更新   级联

  

  技术分享图片

    技术分享图片

    技术分享图片

 

  (2)插入数据

    
#先往被关联表插入记录 
#先往父表department中插入记录

insert into dep values
(1,"IT","技术能力有限部门"),
(2,"销售","销售能力不足部门"),
(3,"财务","花钱特别多部门");

#再往关联表插入记录
#再往子表employee中插入记录
insert into emp values
(1,egon,male,1);

insert into emp values
(2,alex,male,1),
(3,wupeiqi,female,2),
(4,yuanhao,male,3),
(5,jinximn,male,2);

 

 

 技术分享图片

技术分享图片技术分享图片

 

  (4)删除更新

#删父表department,子表employee中对应的记录跟着删
delete from dep where id=3;

#更新父表department,子表employee中对应的记录跟着改
mysql> update department set id=22222 where id=2;

 

 技术分享图片

 技术分享图片

 

 

  

 

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      

 

 

 

 

 

4

5

 

 

6

6-[表操作]--foreign key、表与表的关系

标签:employee   from   img   inno   cas   技术   --   src   级联   

原文地址:https://www.cnblogs.com/venicid/p/9026489.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!