分为三种:交叉链接、内链接、外链接。spa
没有where子句的交叉链接将产生链接表的笛卡尔积,等同于inner join。select
select * from R cross join S;遍历
内链接分为三种:天然链接、等值链接、非等值链接。查询
天然链接 natural join:在链接条件中使用等于=运算符比较被链接列的列值,但删除链接表中重复列。join
select * from R natural join S;oss
等值链接 :使用等于=比较链接列的列值,在查询结果中列出接连表中的全部列,包括其中的重复列。运算符
select * from R join S where R.C = S.C;
或
select * from R inner join S where R.C = S.C;
非等值链接 :在链接条件中,能够使用其余比较运算符,比较被链接列的列值,如:<、>、!=等。
外链接分为三类:全外链接、左外链接、右外链接。
左外链接 left join / left outer join
select * from R left join S on R.C = S.C;
左外链接要遍历左表的全部记录,右表没有的用null表示。
右外链接 right join / right outer join
select * from R right join S on R.C = S.C;
右外链接要遍历右表全部的记录,左表没有的用null表示。
全外链接 full join / full outer join
select * from R full join S on R.C = S.C;
全链接产生的全部记录(双方匹配记录)在表R和表S。若是没有匹配,则对面将包含null。