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列的值不能重复
加速查找