由于业务之间的相互关联,所以各个表结构之间也存在着各种联系
基本分为三种:
一对多
多对多
一对一
外键语法
create table 表名(
字段名 数据类型,
...
[constraint] 外键名称 foreign key (外键字段名)references 主表名 (字段名)
);
--见完表以后,添加外键
alter table 表名 add constraint 外键名称 foreign key (外键字段名) references 主表(字段名);
foreign key物理外键
注意 使用foreign key 定义外键关联另一张表
缺点:
-
影响增、删、改的效率
-
仅用于单节点数据库,不适用与分布式、集群场景
-
容易引发数据库死锁问题,消耗性能
逻辑外键
概念:在业务层逻辑中,解决外键关联
通过逻辑外键,就可以很方便的解决上述问题
内连接
隐式内连接:select 字段列表 from 表1,表2 where 条件...;
显示内连接:select 字段列表 from [inner] join 表2 on 连接条件...;
外连接
左外连接:select 字段列表 from 表1 left [outer] join 表2 on 连接条件...;
右外连接:select 字段列表 from 表1 right [outer] join 表2 on 连接条件...;