浅析数据库中内连接、全连接与左右连接的不同点

              浅析数据库中内连接、全连接与左右连接的不同点

在这里,我们将讨论的是联合查询的比较。主要是针对内连接、全连接与左右连接的不同点,对比的环境是两个表的联合查询。

AD:

我们经常用到2个表的联合查询,有时候用到内连接,全连接,以及左右连接,是不是很复杂呢?下面给演示一下他们的区别

首先有以下2个表:

  1. CREATE TABLE weather  
  2. (  
  3.   city character varying(80) NOT NULL,  
  4.   temp_lo integer NOT NULL,  
  5.   temp_hi integer NOT NULL,  
  6.   prcp real,  
  7.   date date 
  8. )  
  9. WITH (  
  10.   OIDS=FALSE 
  11. );  
  12. ALTER TABLE weather OWNER TO postgres;  
  13. -----------------------------------------------------------  
  14.  
  15. REATE TABLE cities  
  16. (  
  17.   "name" character varying(80) NOT NULL,  
  18.   "location" point  
  19. )  
  20. WITH (  
  21.   OIDS=FALSE 
  22. );  
  23. ALTER TABLE cities OWNER TO postgres; 

让我们想看看里面的数据吧

下面就开始内连接了。不用太多的说明,看图片就知道怎么回事了

看到了吗,inner 和 select * from weather,cities where city =name 输出一样的,都是一一对应的输出。这个我喜欢!

下面在看看全连接,左右连接的图片

可以看得出来,全连接呢,就是2个表的所有数据都被列举出来,如果他表中没有对于的数据呢,就补空。

左右连接为全连接的子集(我是这么认为的)左连接以前表为基准,后表没有的数据补控

右连接已后表为基准,前表没有的就补空。

原文链接:http://www.cnblogs.com/yongjun-zou/archive/2010/08/22/1805870.html

(个人理解:内连接 join 要求两个表都有连接的那个值才进入结果表,而左连接只需左表,右连接只需右表,全连接只需其中一表)

 

posted @ 2012-12-16 13:33  xjx_user  阅读(504)  评论(0编辑  收藏  举报