欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【mysql基础系列之八】连接查询

程序员文章站 2022-05-03 20:50:00
...

在关系型数据库设计过程中,实体(表)与实体之间是存在很对关系的(一对一、一对多、多对多)。通常在时间操作的过程中,需要利用这层关系来保护数据的完整性。即连接查询:将多张表连接到一起进行查询(会导致记录数行和字段数列发生改变)。没有任何条件时,产生笛卡尔积。本质上就是select * from 表1,表2;

连接查询分类

交叉连接、内连接、外连接(左外连接、右外连接)、自然连接。

交叉连接

原理:依次从第一张表中一次取出每一条记录,与另一张表中的全部记录逐个匹配。

语法:表1查询语句 cross join 表2查询语句;

内连接

原理:依次从一张表中取出每一条记录去另外一张表中匹配,根据条件匹配成功了就保留,失败就不保存。

表1查询语句 【inner】 join 表2查询语句 on 匹配条件;

【mysql基础系列之八】连接查询

注意:表的设计过程中容易产生同名字段,通常使用:表名.字段名。

外连接

原理:按照某一张表作为主表(表中所有数据都会保留),根据条件去连接另外一张表作为从表,从而得到数据。


-- 左外连接(left join)
主表 left join 从表 on 连接条件;

-- 右外连接(right join)
主表 right join 从表 on 连接条件;

【mysql基础系列之八】连接查询

using关键字

是在连接查询中用来代替对应的on关键字的,进行条件匹配。

原理:使用using的前提是对应的两张表连接的字段是同名的(类似自然连接自动匹配),并且对应的同名字段最终在结果中只会保留一个。

表1 【inner/left/right】 join 表2 using(同名字段1,同名字段2...);

【mysql基础系列之八】连接查询

相关标签: mysql 连接查询