和另外一张表产生关系

1.节省空间

2.约束,保持一致性

外键里有关联数据的不能删,没有关联的可以删

 

create table userinfo(

  uid int auto_increment priority key,

  name varchar(32),

  department_id int,

  constrait fk_user_depar foreign key ("department_id",) references department("id")  # 外键

)engine=innodb default charset=utf-8;

 

creat table department(

  id int auto_increment priority key,

  title char(15)

)engine=innodb default charset=utf-8;

 

 

主键可以由多列组成(联想外键)

primary key(nid,pid)

 

唯一索引:  # 约束不能重复,加速查找,可以有值为空

unique uql (num)  # 设置唯一

unique uql (num,nid)  # 联合唯一

 

####################################################

 

外键变种

 

普通外键:一对多

外键加唯一索引:一对一  # 博客表

多对多外键:  # 联合唯一索引可选