DBA面试题

当前位置: 面试问题网 > DBA面试题 > 介绍一下内联、左联、右联

介绍一下内联、左联、右联

一.先看一些最简单的例子
  
   例子
  
   Table A
   aid adate
   1 a1
   2 a2
   3 a3
  
   TableB
  
   bid bdate
   1 b1
   2 b2
   4 b4
   两个表a,b相连接,要取出id相同的字段
   select * from a inner join b on a.aid = b.bid这是仅取出匹配的数据.
   此时的取出的是:
   1 a1 b1
   2 a2 b2
  
   那么left join 指:
   select * from a left join b on a.aid = b.bid
   首先取出a表中所有数据,然后再加上与a,b匹配的的数据
   此时的取出的是:
   1 a1 b1
   2 a2 b2
   3 a3 空字符
  
   同样的也有right join
   指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据
   此时的取出的是:
   1 a1 b1
   2 a2 b2
   4 空字符 b4
  
   LEFT JOIN 或 LEFT OUTER JOIN。
   左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值
  
   二. left join/right join/inner join操作演示
  
   表A记录如下:
   aID aNum
   1 a20050111
   2 a20050112
   3 a20050113
   4 a20050114
   5 a20050115
  
   表B记录如下:
   bID bName
   1 2006032401
   2 2006032402
   3 2006032403
   4 2006032404
   8 2006032408
  
   实验如下:
   1. left join
   sql语句如下:
  
   SELECT * FROM A
   LEFT JOIN B
   ON A.aID = B.bID
   结果如下:
   aID aNum bID bName
   1 a20050111 1 2006032401
   2 a20050112 2 2006032402
   3 a20050113 3 2006032403
   4 a20050114 4 2006032404
   5 a20050115 NULL NULL
   (所影响的行数为 5 行)
  
   结果说明:
   left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.
   换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).
   B表记录不足的地方均为NULL.
  
   2. right join
   sql语句如下:
  
   SELECT * FROM A
   RIGHT JOIN B
   ON A.aID = B.bID
   结果如下:
   aID aNum bID bName
   1 a20050111 1 2006032401
   2 a20050112 2 2006032402
   3 a20050113 3 2006032403
   4 a20050114 4 2006032404
   NULL NULL 8 2006032408
   (所影响的行数为 5 行)
  
   结果说明:
   仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.
  
   3.inner join
   sql语句如下:
  
   SELECT * FROM A
   INNERJOIN B
   ON A.aID = B.bID
   结果如下:
   aID aNum bID bName
   1 a20050111 1 2006032401
   2 a20050112 2 2006032402
   3 a20050113 3 2006032403
   4 a20050114 4 2006032404
  
   结果说明:
   很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.
  
   -----------------[以下为网上的一点资料]------------------
   LEFT JOIN操作用于在任何的 FROM 子句中,组合来源表的记录。使用 LEFT JOIN 运算来创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录。
  
   语法:
   FROM table1 LEFT JOIN table2 ON table1.field1 compopr table2.field2
  
   说明:
   ① table1, table2参数用于指定要将记录组合的表的名称。
   ② field1, field2参数指定被联接的字段的名称。且这些字段必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的名称。
   ③ compopr参数指定关系比较运算符:”=”, “<", ">“, “=” 或 ““。
   ④ 如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object 数据类型数据的字段,将会发生错误。

【介绍一下内联、左联、右联】相关文章

1. 介绍一下内联、左联、右联

2. 介绍一下ASP中一下五个对象

3. 关联、聚合(Aggregation)以及组合(Composition)的区别

4. 请你自我介绍一下你自己?

5. 能否介绍一下你的社会活动能力

6. 介绍一下结构化程序设计方法和面向对象程序设计方法的区别

7. 介绍一下海量数据的处理方法

8. 介绍一下MD5加密算法

9. 介绍一下常见的木马种类

10. 介绍一下如何利用路径遍历进行攻击及如何防范

本文来源:https://www.mianshiwenti.com/a13352.html

点击展开全部

《介绍一下内联、左联、右联》

将本文的Word文档下载到电脑,方便收藏和打印

推荐程度:

进入下载页面

﹝介绍一下内联、左联、右联﹞相关内容

「介绍一下内联、左联、右联」相关专题

其它栏目

也许您还喜欢