什么是外键

什么是主键?主键的用处?

主键保证数据的唯一性!

一张表只能有一个主键!

一个主键不一定只是一列(因为有可能两列合起来做一个主键!)

#两列合起来并成一个主键
create table t1( nid int(11) not null auto_increment, pid int(11) not null, num int(11) not null, primary key(nid,pid) )engine=innodb default charset=utf8;

  

#如果另一个表的主键是两列的时候,创建外键的话就可以写成两个参数
create table t2(
id int auto_increment primary key,
name char(10),
id1 int,
id2 int,
#创建外键的时候不能外键名不能和已有的外键名重复,可以用fk_表名1_表名2来命名
constraint fk_t1_t2 foreign key (id1,id2) references t1(nid,pid)
);

 

 

首先我们有一个表。这里是一个开发公司,每个人有每个人的部门

 

 再来一个表:

 

 

这里我们可以将第一个表对应的department填成第二个表对应职位的id,变成这样:

 

 

这样做可以节省空间(假设如果有十万个人的话,UTF8编码里一个中文可是要占三个字节呀!如果数据大的话可以节省很多空间)

另外,我们这样就相当于加上了一个约束,比方说我们部门表里面没有id为10这个部门,那如果在表中写上了部门id为10的部门的话,这样是匹配不到的。所以这样我们保证了数据表的一致性。

 

外键  就是一张表中另一张表的主键!让他们两个联系起来的东西!

 

posted @ 2021-03-17 09:24  MyNorth  阅读(1678)  评论(0)    收藏  举报