外键:一个实体(主表)的某个字段对应另一个实体(从表)的主键,表达一种约束关系。
一、创建\删除外键
(一)使用navicat添加外键:
(二) sql语句设置外键:
1、创建表时直接设置
语法:constraint 外键名 foreign key(外键列) references 从表名(对应列)
注意:外键和对应列的数据类型器需要一致;对应列需要是从表的主键;不同外键可以指向同一对应列,即一对多;
2、已有表添加外键
语法:alter table 主表名 add foreign key(外键列) references 从表(对应列);
注意:若从表中已有数据,外键列需要满足对应条件,否则创建不成功,
3、已有表删除外键
语法:alter table 主表名 drop foreign key 外键名;
注意:创建外键时需要进行命名,方便之后的删除等操作,
二、外键应用
(一)一对一表链接
1、A left join B on A.xxx=B.xxx
语法:select * from 主表名 left join 从表名 on 主表.主键 = 从表.对应列 where 条件
说明:以A为主,显示A中所有数据,以及B中与A相关联的数据,
2、 A right join B on A.xxx=B.xxx
说明:A right join B on A.xxx=B.xxx 与 B left join A on B.xxx=A.xxx 相同,不常用,
3、A inner join B on A.xxx=B.xxx
说明:返回A、B中同时满足on的数据,
(二)一对多表链接:依赖字典表
(三)多对多表链接:依赖于关系表
表数据之间的对应,不是唯一的,需要在字典表的基础上,创建关系表记录对应关系,
以男女朋友关系为例:man和faleman对应同一张关系表,完成多对多的关系映射,