目录
关联表
创建的条件 :
foreign key :外键,指定该行记录从属于主表中的一条记录,主要用于参照完整性
语法格式foreign key(当前表中建立关系的外键字段) references 被关联表名(id)
关联表再在多表之间唯一存在,表中可以存在多个foreign
#先创建被关联表
create table dep (
id int primary key auto_increment,
dep_name char(10) not null,
dep_desc varchar(50) not null
)
#创建关联表
create table emp (
id int PRIMARY KEY auto_increment,
name varchar(10),
age int,
gender enum('male','female'),
dep_id int,
FOREIGN KEY(dep_id) references dep(id) ##是已定义字段关联
)
多表查询
根据指定条件将两张表中的数据进行合并,然后在合并后的结果表中进行数据的查询。同时查询多个表的数据。
内连接:inner join
将两张表公共的部分组合成新表(合并公共项)
select * from 表名 as a inner join 表名 as b on a.porn_id = b.id
#a,b为别名
#on 成立条件
注:on为可执行的关联条件
外连接:outer join
两张表进行指定条件连接,能连接的就连接,连接不了的显示null(匹配对应项)
left join:以左边的表为主表进行交叉联结,如果左边的表中有的行,右边没有对应数据,则显示为null。同理right join。
select * from 表名 as a right join 表名 as b on a.porn_id = b.id
union
select * from 表名 as a left join 表名 as b on a.porn_id = b.id
多表关联设计
在多表的关联设计中包含了如下三种关系:一对一,一对多,多对多
一对一关系
两个表,关联表与被关联表呈现