oracle连接查询
2016-02-29 19:46
549 查看
以下的相关内容主要是对Oracle join用法的具体介绍,如果你对Oracle join有不解之处时,你可以通过以下的文章对其的实际应用与功能有所了解,以下是文章的具体介绍,望你浏览完以下的内容会有所收获。
8i:
create table dali.test1(a int,b int);
create table dali.test2(a int,b int);
insert into dali.test1 values(1,456);
insert into dali.test1 values(2,427);
insert into dali.test2 values(1,45456);
insert into dali.test2 values(3,45656);
---内连接
select * from dali.test1 a, dali.test2 b where a.a=b.a;
---左连接
select * from dali.test1 a, dali.test2 b where a.a=b.a(+);
---右连接
select * from dali.test1 a, dali.test2 b where a.a(+)=b.a;
---完全连接
select * from dali.test1 a, dali.test2 b where a.a=b.a(+)
union
select * from dali.test1 a, dali.test2 b where a.a(+)=b.a;
---迪卡尔
select * from dali.test1, dali.test2;
在Oracle join的用法中9i和sqlserver一样 left join,right join,full join
分为1.
INNER JOIN 2. LEFT JOIN 3. RIGHT JOIN 4.LEFT OUTER JOIN
首先设定一个我们要用的两个表
表A 表B
ID NAME ID CLASS
1 IBM 1 C1
2 SONY 3 C3
3 BMW 4 C4
1 INNER JOIN: SELECT * FROM A INNER JOIN B ON A.ID=B.ID
得表 ID NAME CLASS
1 IBM C1
3 BMW C3
对了 就是 两个表的ID都存在并相同 得到这两个表的组合表
2
LEFT JOIN : SELECT * FROM A LEFT JOIN B ON A.ID=B.ID
得表 ID NAME CLASS
1 IBM C1
2 SONY null
3 BMW C3
在Oracle join的用法中上面的相关操作可说是很复杂的。 如果还有方向感 就行 LEFT(左) 得到的是A(left语句的左边的表)的所有记录 而B表对应的记录没有的话也要补齐
3
RIGHT JOIN : SELECT * FROM A RIGHT JOIN B ON A.ID=B.ID
得表 ID NAME CLASS
1 IBM C1
3 BMW C3
4 null C4
对了RIGHT(右) 得到的是B(right语句的右边的表)的所有记录 而A表对应的记录没有的话也要补齐 (我也翻身了! 呵呵)
4
FULL OUTER JOIN: SELECT * FROM A FULL OUTER JOIN B ON A.ID=B.ID
得表 ID NAME CLASS
1 IBM C1
2 SONY null
3 BMW C3
4 null C4
以上的相关内容就是对Oracle join的用法相关内容的介绍,望你能有所收获。
8i:
create table dali.test1(a int,b int);
create table dali.test2(a int,b int);
insert into dali.test1 values(1,456);
insert into dali.test1 values(2,427);
insert into dali.test2 values(1,45456);
insert into dali.test2 values(3,45656);
---内连接
select * from dali.test1 a, dali.test2 b where a.a=b.a;
---左连接
select * from dali.test1 a, dali.test2 b where a.a=b.a(+);
---右连接
select * from dali.test1 a, dali.test2 b where a.a(+)=b.a;
---完全连接
select * from dali.test1 a, dali.test2 b where a.a=b.a(+)
union
select * from dali.test1 a, dali.test2 b where a.a(+)=b.a;
---迪卡尔
select * from dali.test1, dali.test2;
在Oracle join的用法中9i和sqlserver一样 left join,right join,full join
分为1.
INNER JOIN 2. LEFT JOIN 3. RIGHT JOIN 4.LEFT OUTER JOIN
首先设定一个我们要用的两个表
表A 表B
ID NAME ID CLASS
1 IBM 1 C1
2 SONY 3 C3
3 BMW 4 C4
1 INNER JOIN: SELECT * FROM A INNER JOIN B ON A.ID=B.ID
得表 ID NAME CLASS
1 IBM C1
3 BMW C3
对了 就是 两个表的ID都存在并相同 得到这两个表的组合表
2
LEFT JOIN : SELECT * FROM A LEFT JOIN B ON A.ID=B.ID
得表 ID NAME CLASS
1 IBM C1
2 SONY null
3 BMW C3
在Oracle join的用法中上面的相关操作可说是很复杂的。 如果还有方向感 就行 LEFT(左) 得到的是A(left语句的左边的表)的所有记录 而B表对应的记录没有的话也要补齐
3
RIGHT JOIN : SELECT * FROM A RIGHT JOIN B ON A.ID=B.ID
得表 ID NAME CLASS
1 IBM C1
3 BMW C3
4 null C4
对了RIGHT(右) 得到的是B(right语句的右边的表)的所有记录 而A表对应的记录没有的话也要补齐 (我也翻身了! 呵呵)
4
FULL OUTER JOIN: SELECT * FROM A FULL OUTER JOIN B ON A.ID=B.ID
得表 ID NAME CLASS
1 IBM C1
2 SONY null
3 BMW C3
4 null C4
以上的相关内容就是对Oracle join的用法相关内容的介绍,望你能有所收获。
相关文章推荐
- C#中使用Oracle
- Oracle GoldenGate Director安装和配置(无图)
- oracle ,ibitis 存储过程的调用
- Oracle什么时候需要Commit
- Oracle 11g R2 RAC 卸载 grid
- oracle11g R2 RAC卸载grid
- Oracle 10g配置单向stream流复制,完整记录
- oracle针对oracle和grid用户---环境变量设置---单实例和RAC
- Oracle 基于备份控制文件的恢复(unsing backup controlfile)
- AIX 日志清理 监听日志清理--过大的Oracle监听日志文件处理
- 如何找到Oracle 企业管理控制台
- Linux下利用yum安装oracle11g(第一部分)
- 【ROLLUP】Oracle分组函数之ROLLUP魅力
- Oracle之查看建表语句
- Oracle RAC 11g r2查询太慢
- Oracle之创建自增的ID
- Oracle类型修改
- Oracle 11GR2 RAC添加节点
- Oracle大数据常见优化查询
- Oracle大数据常见优化查询