用内连接组合表

2016.12.2

十一.用内连接组合表

关系数据库最大的成就就是能够把数据组织到任意多个相互关联的表中,但同时这些表是彼此独立的。关系是通过表中共有的列来推断的。

关系数据库最大的优点在于可以分析业务实体然后进行适当的数据库设计,这样就具备最大的灵活性。实际上,关系数据库就是以任何想要的方式将表连接在一起,从而实现关系的。

把表连接到一起的能力是SQL的基本特性,不使用连接的话,关系数据库的作用就会小很多。

内连接只许查看连接的表之间匹配的数据。

实体关系图:实体指的是表,关系指的是在这些表中的数据元素之间所画的线。

11.1 内连接

SELECT  *

FROM table1

INNER JOIN table2

ON table1.column=table2.column

这个意思是把table1表中的column列 和table2中的column列连接起来。

内连接只会返回关联的两个表之间相匹配的数据,内连接会显示所有可能的匹配。

11.2 内连接中表的顺序

SELECT  *

FROM table1

INNER JOIN table2

ON table1.column=table2.column

SELECT  *

FROM table2

INNER JOIN table1

ON table2.column=table1.column

以上两条语句逻辑上是相同的,也会返回相同的数据。唯一不同的是第一条语句会先显示table1中的列,第二条语句相反。SQL不会指定执行任务的先后顺序,SQL只是指定了需要的逻辑,并且让数据库的内部机制来决定如何执行任务。SQL不会决定数据库如何物理地检索数据,数据库软件会决定诗句的最优化方式。

11.3 内连接的另一种规范

实际上,不仅可以使用INNER JOINON来指定内连接,也可以使用FROMWHERE子句来指定内连接,但不建议这样做。

SELECT  *

FROM table1

INNER JOIN table2

ON table1.column=table2.column

等同于

SELECT  *

FROM table1,table2

WHERE table1.column=table2.column

INNER JOINON的优点在于它们显示的表示了连接的逻辑

11.4 别名

当指定所有列(*)时,两个表中的相同列会出现多次,我们可以使用显式的指定标的别名和列的别名来去除重复。

SELECT  

T1.Column1 AS c1,

T1.Column2 AS c2,

T2.Column2 AS d2,

FROM table1 AS T1

INNER JOIN table2 AS T2

ON T1.column1=T2.column1

 ORACLE中

SELECT  

T1.Column1 AS c1,

T1.Column2 AS c2,

T2.Column2 AS d2,

FROM table1 T1

INNER JOIN table2  T2

ON T1.column1=T2.column1;


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值