内连接(INNER JOIN)
- 定义:只返回在两个表中都匹配的行。
- 用途:当只需要获取两个表中关联键相匹配的数据时,使用内连接。
- 例子:假设有两个表,
employees
和departments
,要找出所有有对应部门的员工信息,会使用内连接。
左外连接(LEFT JOIN 或 LEFT OUTER JOIN)
- 定义:返回左表中的所有行,即使右表中没有匹配。如果右表中没有匹配,则结果中右表的部分将包含NULL。
- 用途:当需要获取左表的所有记录,及其与右表匹配的记录时,使用左外连接。
- 例子:使用前面的表格,如果想列出所有员工及其部门信息(即使某些员工没有分配部门),使用左外连接。
右外连接(RIGHT JOIN 或 RIGHT OUTER JOIN)
- 定义:返回右表中的所有行,即使左表中没有匹配。如果左表中没有匹配,则结果中左表的部分将包含NULL。
- 用途:当需要获取右表的所有记录,及其与左表匹配的记录时,使用右外连接。
- 例子:如果想列出所有部门及其员工信息(即使某些部门没有员工),使用右外连接。
全外连接(FULL JOIN 或 FULL OUTER JOIN)
- 定义:返回左表和右表中的所有行。当某一侧没有匹配时,另一侧将包含NULL。
- 用途:当需要获取两个表中所有记录,并显示它们之间的匹配关系时,使用全外连接。
- 例子:使用前面的例子,如果想列出所有员工及其部门信息,以及没有员工的部门和没有部门的员工,使用全外连接。
交叉连接(CROSS JOIN)
- 定义:返回两个表中所有可能的行组合。如果第一个表有
X
行,第二个表有Y
行,那么结果将会有X*Y
行。 - 用途:当需要获取两个表的笛卡尔积时,使用交叉连接。
- 例子:如果有一个产品表和一个颜色表,想要列出每种产品的每种颜色,使用交叉连接。