内联: 查询结果取两个表的交集,不包含空的结果
表1 inner join 表2 on 连接条件 inner join 表3 on 连接条件;
select * from student inner join sc on sc.S = student.S;
可以看到没有‘王菊’和‘09’的信息,因为他们不存在于student和sc的交集中。
左联: 查询结果以左边表为基准,匹配行,如果没有就显示空
表1 left join 表2 on 连接条件;
select * from student left join sc on sc.S = student.S;
可以看到有‘王菊’ 没有‘09’,因为以student表为准。
右联: 查询结果以右边表为基准,匹配行,如果没有就显示空
表1 right join 表2 on 连接条件;
select * from student right join sc on sc.S = student.S;
可以看到有‘09’ 没有‘王菊’,因为以sc表为准。
笛卡尔积: 在关系数据库中,笛卡尔积是对两个表的每一行进行组合,结果是两个表的所有可能的行对。比如,表A有3行,表B有4行,那么笛卡尔积的结果将是3×4=12行。查询结果和内联一致,但是查询效率低,不推荐使用。
select * from 表1,表2 where 连接条件;
select * from student, sc where sc.S = student.S;
结果与内联的结果一致,但是效率低下一般不推荐使用。