数据库面试

上一篇 / 下一篇  2010-04-14 12:45:03 / 个人分类:数据库

join和full join有何区别?

SQL中我们通常会用到两个表的联合查询,一般会用到inner join ,left join ,full join这几种类型,
他们的区别是什么呢 ,下面我就来介绍
例如有两个表,
表A1      表二A2
a1 b1     a2 b2
江苏     张山
湖北     李四
天津     王五
例如上面两个表A1和A2两个表的关联字段是a1==a2
如果这个语句查询出现的结果是
sql语句:select * from A1 as Ainner joinA2 as B on A.a1=B.a2
结果是:a1 b1 a2 b2
       湖北 张山
       天津 李四

二:如果用left join来关联两个表来查询则:
SQL语句:select * from A1 as Aleft joinA2 as B on A.a1=B.a2
结果是: a1  b1   a2   b2
        江苏  NULL NULL
        湖北     张山
        天津     李四

三:如果是用full join来关联两个表来查询则:
SQL语句:select * from A1 as Afull joinA2 as B on A.a1=B.a2
则结果是: a1 b1   a2   b2
           江苏 NULL NULL
           湖北    张山
           天津    李四
          NULL NULL   王五

union和union all的区别

union过滤重复数据,union all直接返回结果集,不进行帅选

IN与exist的区别

in 是把外表和内表作hash join,而exists是对外表作loop,每次loop再对内表进行查询。
这样的话,in适合内外表都很大的情况,exists适合外表结果集很小的情况。


TAG:

 

评分:0

我来说两句

日历

« 2024-05-12  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 2113
  • 日志数: 4
  • 建立时间: 2010-02-25
  • 更新时间: 2010-04-19

RSS订阅

Open Toolbar