设为首页 收藏本站
查看: 475|回复: 0

[经验分享] Oracle 数据库表连接

[复制链接]

尚未签到

发表于 2016-7-21 10:37:38 | 显示全部楼层 |阅读模式
  准备工作:
  创建表table_1并插入数据

CREATE TABLE table_1
(
id INT IDENTITY(1,1) PRIMARY KEY,
name VARCHAR(50),
classid INT
)
GO
INSERT INTO table_1(name,classid) SELECT'苹果',1
UNION ALL SELECT'香蕉',1
UNION ALL SELECT'草莓',1
UNION ALL SELECT'西瓜',1
UNION ALL SELECT'樱桃',1
UNION ALL SELECT'荔枝',1
UNION ALL SELECT'芒果',1
UNION ALL SELECT'木瓜',1 ----table_2没有此项
UNION ALL SELECT'香梨',1 ----table_2没有此项
GO
  创建表table_2并插入数据

CREATE TABLE table_2
(
id INT IDENTITY(1,1) PRIMARY KEY,
name VARCHAR(50),
classid INT
)
GO
INSERT INTO table_2(name,classid) SELECT'苹果',2
UNION ALL SELECT'香蕉',2
UNION ALL SELECT'草莓',2
UNION ALL SELECT'西瓜',2
UNION ALL SELECT'樱桃',2
UNION ALL SELECT'荔枝',2
UNION ALL SELECT'芒果',2
UNION ALL SELECT'龙眼',2 --table_1没有此项
UNION ALL SELECT'芭乐',2 --table_1没有此项
UNION ALL SELECT'榴莲',2 --table_1没有此项
GO
  表之间的连接关系也就是集合之间的关系,如图:
   DSC0000.jpg
  内连接
  其实就是两表之间的公共部分。

SELECT a.*,b.*FROM table_1 a JOIN table_2 b ON a.[name]=b.[name]
  结果:

1苹果11苹果2
2香蕉12香蕉2
3草莓13草莓2
4西瓜14西瓜2
5樱桃15樱桃2
6荔枝16荔枝2
7芒果17芒果2
  左连接
  其实就是A表记录集A1和A、B表的公共部分C.
  

SELECT a.*,b.*FROM table_1 a left JOIN table_2 b ON a.[name]=b.[name]
   结果:

1苹果11苹果2
2香蕉12香蕉2
3草莓13草莓2
4西瓜14西瓜2
5樱桃15樱桃2
6荔枝16荔枝2
7芒果17芒果2
8木瓜1NULLNULLNULL
9香梨1NULLNULLNULL
  右连接
  其实就是B表的记录集B1和A、B表公共部分C

SELECT a.*,b.*FROM table_1 a right JOIN table_2 b ON a.[name]=b.[name]
   结果:

1苹果11苹果2
2香蕉12香蕉2
3草莓13草莓2
4西瓜14西瓜2
5樱桃15樱桃2
6荔枝16荔枝2
7芒果17芒果2
NULLNULLNULL8龙眼2
NULLNULLNULL9芭乐2
NULLNULLNULL10榴莲2
  全连接
  其实就是A1+C+B1全部

SELECT a.*,b.*FROM table_1 a full JOIN table_2 b ON a.[name]=b.[name]
   结果:

1苹果11苹果2
2香蕉12香蕉2
3草莓13草莓2
4西瓜14西瓜2
5樱桃15樱桃2
6荔枝16荔枝2
7芒果17芒果2
8木瓜1NULLNULLNULL
9香梨1NULLNULLNULL
NULLNULLNULL8龙眼2
NULLNULLNULL9芭乐2
NULLNULLNULL10榴莲2
  交叉连接
  其实就是两张表的卡迪尔积。

SELECT a.*,b.*FROM table_1 a CROSS JOIN table_2 b
  结果:

1苹果11苹果2
1苹果12香蕉2
1苹果13草莓2
1苹果14西瓜2
1苹果15樱桃2
1苹果16荔枝2
1苹果17芒果2
1苹果18龙眼2
1苹果19芭乐2
1苹果110榴莲2
2香蕉11苹果2
2香蕉12香蕉2
2香蕉13草莓2
2香蕉14西瓜2
2香蕉15樱桃2
2香蕉16荔枝2
2香蕉17芒果2
2香蕉18龙眼2
2香蕉19芭乐2
2香蕉110榴莲2
3草莓11苹果2
3草莓12香蕉2
3草莓13草莓2
3草莓14西瓜2
3草莓15樱桃2
3草莓16荔枝2
3草莓17芒果2
3草莓18龙眼2
3草莓19芭乐2
3草莓110榴莲2
4西瓜11苹果2
4西瓜12香蕉2
4西瓜13草莓2
4西瓜14西瓜2
4西瓜15樱桃2
4西瓜16荔枝2
4西瓜17芒果2
4西瓜18龙眼2
4西瓜19芭乐2
4西瓜110榴莲2
5樱桃11苹果2
5樱桃12香蕉2
5樱桃13草莓2
5樱桃14西瓜2
5樱桃15樱桃2
5樱桃16荔枝2
5樱桃17芒果2
5樱桃18龙眼2
5樱桃19芭乐2
5樱桃110榴莲2
6荔枝11苹果2
6荔枝12香蕉2
6荔枝13草莓2
6荔枝14西瓜2
6荔枝15樱桃2
6荔枝16荔枝2
6荔枝17芒果2
6荔枝18龙眼2
6荔枝19芭乐2
6荔枝110榴莲2
7芒果11苹果2
7芒果12香蕉2
7芒果13草莓2
7芒果14西瓜2
7芒果15樱桃2
7芒果16荔枝2
7芒果17芒果2
7芒果18龙眼2
7芒果19芭乐2
7芒果110榴莲2
8木瓜11苹果2
8木瓜12香蕉2
8木瓜13草莓2
8木瓜14西瓜2
8木瓜15樱桃2
8木瓜16荔枝2
8木瓜17芒果2
8木瓜18龙眼2
8木瓜19芭乐2
8木瓜110榴莲2
9香梨11苹果2
9香梨12香蕉2
9香梨13草莓2
9香梨14西瓜2
9香梨15樱桃2
9香梨16荔枝2
9香梨17芒果2
9香梨18龙眼2
9香梨19芭乐2
9香梨110榴莲2
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-247293-1-1.html 上篇帖子: oracle、plsql常见异常 下篇帖子: oracle执行delete,数据恢复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表