数据库表连接总结:等值连接, 自然连接,左外连接,右外连接,内连接,全外连接;

【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子句查询的话,是先做笛卡尔积,然后再筛选数据行;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值