mysql 外键

为什么使用外键

例如上表中员工所属的部门列存在重复的数据,而且如果部门过长的话, 太占用空间,所以我们可以重新设计一张表, 这张表 中存放部门的相关信息

                

这种解决方法就是使用外键来解决的

操作方法:

constraint 外键名(fk_userinfo_depart) foreign key (列名(depart_id)) references 表名(department)(关联的列名(id))

 例:create table student(
  sid int auto_increment primary key,
  sname char(32) not null default '',
  gender char(16) not null default '',
  class_id int not null default 1,
  constraint class_key foreign key (class_id) references class(cid)
  )charset=utf8 engine=innodb;

ps:创建多个外键的时候, 名称不能一样

外键的变种

唯一索引

例:create table t1(
                    id int,
                    num int,
                    unique(num)
                )engine=Innodb charset=utf8;

作用:    
                    num列的值不能重复
                    加速查找

联合唯一索引:

例:create table t2(
                    id int,
                    num int,
                    unique(id, num)
                )engine=Innodb charset=utf8;

作用:    
                    num列和id列的值不能重复
                    加速查找

 

posted @ 2019-06-14 12:12  adiugy  阅读(128)  评论(0编辑  收藏  举报