【mysql基础系列之八】连接查询
程序员文章站
2022-05-03 20:50:00
...
在关系型数据库设计过程中,实体(表)与实体之间是存在很对关系的(一对一、一对多、多对多)。通常在时间操作的过程中,需要利用这层关系来保护数据的完整性。即连接查询:将多张表连接到一起进行查询(会导致记录数行和字段数列发生改变)。没有任何条件时,产生笛卡尔积。本质上就是select * from 表1,表2;
连接查询分类
交叉连接、内连接、外连接(左外连接、右外连接)、自然连接。
交叉连接
原理:依次从第一张表中一次取出每一条记录,与另一张表中的全部记录逐个匹配。
语法:表1查询语句 cross join 表2查询语句;
内连接
原理:依次从一张表中取出每一条记录去另外一张表中匹配,根据条件匹配成功了就保留,失败就不保存。
表1查询语句 【inner】 join 表2查询语句 on 匹配条件;
注意:表的设计过程中容易产生同名字段,通常使用:表名.字段名。
外连接
原理:按照某一张表作为主表(表中所有数据都会保留),根据条件去连接另外一张表作为从表,从而得到数据。
-- 左外连接(left join)
主表 left join 从表 on 连接条件;
-- 右外连接(right join)
主表 right join 从表 on 连接条件;
using关键字
是在连接查询中用来代替对应的on关键字的,进行条件匹配。
原理:使用using的前提是对应的两张表连接的字段是同名的(类似自然连接自动匹配),并且对应的同名字段最终在结果中只会保留一个。
表1 【inner/left/right】 join 表2 using(同名字段1,同名字段2...);
上一篇: python中的多重继承实例讲解