交叉连接不带WHERE子句,会返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积。
2.内连接:
内连接合并具有同一列的两个以上的表的行, 结果集中不包含一个表与另一个表不匹配的行。
语法:
SELECT <列名>
FROM 表1 INNER JOIN 表2
ON 表1.列名 条件运算符 表2.列名
[WHERE 条件]
[ORDER BY 排序列]
(1)等值连接
等值连接必须要有等值的条件,当条件不同时连接的结果也不相同,两个关系可以没有相同的属性列(列名可不同)
L表:
Y表:
where条件为:
L.A=Y.B:
L.B=Y.B:
(2)自然连接:
自然连接(Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。而等值连接并不去掉重复的属性列。
(3)不等值连接:出等号之外的运算符
3.外连接:
外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出。(连接条件里属性列可同可不同)
(1)左外联结 (LEFT JOIN):
左外连接使用LEFT JOIN连接两表,连接时左表为主表,左表中的每条记录必定出现在结果集中,而在右表中没有对应的记录,将以NULL值进行填充。
语法:
SELECT * FROM TABLE_A
LEFT JOIN TABLE_B
ON 连接条件
[WHERE 条件]
例:select * FROM L left JOIN Y on L.B=Y.C
(2)右外联结 (RIGHT JOIN):
右外连接与左外连接相似,不同的是右表为主表,右表中的每条记录必定出现在结果集中,而在左表中没有对应的记录,将以NULL值进行填充。
语法:
SELECT * FROM TABLE_A
RIGHT JOIN TABLE_B
ON 连接条件
[WHERE 条件]
例:select * FROM L RIGHT JOIN Y on L.B=Y.C
4.内外连接的区别: