【数据库】5.连接查询
目录
连接查询完整学习
连接查询-菜鸟教程连接查询的含义
连接查询指使用多张表联合查询选取出最终的结果。实际开发中,一般一个业务都会对应多张表。
连接查询的分类
根据表的连接方式来划分可以将连接查询划分为:
- 内连接(Inner Join)
- 等值连接
- 非等值连接
- 自连接
- 外连接(Outer Join)
- 左外连接
- 右外连接
- 全连接(Full Join)
笛卡尔积现象
百度百科:笛卡尔积若两张表的连接查询没有任何条件限制,查询到的数据条数将是两张表数据条数的乘积。
若要避免最终结果的笛卡尔积现象,需要在联合查询时增加条件。(获取结果需要对数据进行比对的次数仍然是笛卡尔积次)
内连接(Inner Join)
查出的所有数据记录在table1
和table2
都能够被匹配上。
SELECT ...
FROM <table1>
INNER JOIN <table2>
ON <condition>
等值连接
等值连接的最大特点是条件为等量关系
非等值连接
非等值连接的最大特点在于连接的条件是非等量关系
自连接
自连接的最大特点在于将一张表看成两张表,表和自己进行连接
外连接(Outer Join)
外连接中,连接的两张表有主副两表之分,其中,主表中的所有数据会被无条件的查找出来。
左外连接
table1
是主表。
查出的数据必须和table1
可以匹配上,但不一定要和table2
匹配上。在table2
中无法匹配的数据缺失字段会自动设置为NULL
SELECT ...
FROM <table1>
LEFT JOIN <table2>
ON <condition>
右外连接
和上述相似,主表变为table2
SELECT ...
FROM <table1>
RIGHT JOIN <table2>
ON <condition>
全连接
全连接中两张表都是主表,只要数据能在任意一张表匹配上,就可以输出数据。
SELECT ...
FROM <table1>
FULL OUTER JOIN <table2>
ON <condition>