MYSQL学习笔记2 (连接查询)
程序员文章站
2022-05-29 16:49:12
...
MYSQL学习笔记2 (连接查询)
1.连接查询分类(连接方式)
内连接:
等值连接
非等值连接
自连接
外链接:
左链接
右连接
全连接:
1.1.内连接和外连接的区别
内连接:
假设A和B表进行连接,使用内连接的话,凡是A表和B表能够匹配上的记录查询回来,就是内连接,AB两表没有主副之分。
外连接:
假设A和B表进行连接,使用外连接的话,AB两张表中有一张表是主表,一张表是副表。主要查询主表中的数据,捎带查询副表的数据,当副表的数据没有和主表的数据匹配上时,副表自动模拟出NULL与之匹配。
2.笛卡尔积现象
当两张表进行连接查询时,没有任何条件进行限制,最终的查询结果条数为两张表记录条数的乘积。
3.表的别名
当两张或更多张表中有相同的字段时,为了提高执行效率,需要给表起别名。
例如:
select a.字段,b.字段,… from 表1 a,表2 b;
4.避免笛卡尔积现象
避免笛卡尔积现象的方法:加条件进行过滤。
注意:加条件进行过滤后不会减少匹配的次数,只是显示的是有效记录。
例如:
select a.字段,b.字段,… from 表1 a join 表2 b on a.字段=b.字段;
4.内连接
4.1 等值连接
select
a.字段,
b.字段,
.....
from
表1 a
join
表2 b
on //条件
a.字段=b.字段;
4.2 非等值连接
连接条件中的关系是非等量关系
select
a.字段,
b.字段,
.....
from
表1 a
join
表2 b
on //条件
a.字段 between b.字段1 and b.字段2;
4.2 自连接
一张表看成两张表,自己连自己。
自连接的条件可以是等量关系也可以是非等量关系。
select
a.字段,
b.字段,
.....
from
表1 a
join
表1 b
on //条件
a.字段 between b.字段1 and b.字段2;
或
a.字段=b.字段;
5.外连接
5.1.左连接
左边的表是主表
select
a.字段,
b.字段,
.....
from
表1 a
left join
表1 b
on //条件
a.字段 between b.字段1 and b.字段2;
或
a.字段=b.字段;
5.2.右连接
右边的表是主表
select
a.字段,
b.字段,
.....
from
表1 a
right join
表1 b
on //条件
a.字段 between b.字段1 and b.字段2;
或
a.字段=b.字段;
上一篇: Python序列元素解压全面介绍
下一篇: ETL学习笔记之一 概念篇(转)