【1】等值连接
1)连接:凡是查询涉及到两个以上的表,就需要将表连接;
2)就是用where子句做的连接查询;连接查询的列名可以不同;

【2】自然连接:
select * from 
a_tbl natual join  b_tbl
这就需要a_tbl 与 b_tbl 有相同的列且值相同;连接查询的列名可必须相同;

【3】左外连接
select * from 
a_tbl a left join  b_tbl b on  a.id = b.rcrd_id 
以a表为主表进行查询, 查询出a表的所有数据, b表中有连接数据则填充,如果没有则补null;

【4】右外连接:与左外连接类似;

【5】内连接:

左外连接和内连接的交集;

【6】全外连接
左外连接和右外连接的并集;

【注意】内连接与等值连接的区别:
转自:  http://www.cnblogs.com/huangfr/archive/2012/06/20/2555530.html
注意1)内连接:两个表(或连接)中某一数据项相等的连接称为内连接。
等值连接:一般用where字句设置条件,内连接一般用on字句设置条件,但内连接与等值连接效果是相同的。
注意2)内连接与等值连接其实是一回事情(等效)。
经常有人会问到select a.id,b.name from a,b where a.id=b.pid  与
select a.id,b.name from a inner join b on a.id=b.pid   有什么区别,哪个效率更高一些。

实际上一回事情了。只是内连接是由SQL 1999规则定的书写方式。两个说的是一码事。


注意3) 不过今天有同事说了:  连接查询的话,是先筛选数据行,然后再进行笛卡尔积; where子句查询的话,是先做笛卡尔积,然后再筛选数据行;


Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐