1、创建测试数据:
CREATE TABLE TBL_TEST1(F_ID NUMBER(10) PRIMARY KEY);
CREATE TABLE TBL_TEST2(D_ID NUMBER(10) PRIMARY KEY, F_ID NUMBER(10));
BEGIN
FOR I IN 1 .. 3 LOOP
INSERT INTO TBL_TEST1 VALUES (I);
INSERT INTO TBL_TEST2 VALUES (I, I);
END LOOP;
FOR I IN 4 .. 5 LOOP
INSERT INTO TBL_TEST1 VALUES (I);
END LOOP;
FOR I IN 4 .. 5 LOOP
INSERT INTO TBL_TEST2 VALUES (I, 0);
END LOOP;
COMMIT;
END;
/
生成的数据如下:
SQL> SELECT * FROM TBL_TEST1;
F_ID
-----------
1
2
3
4
5
SQL> SELECT * FROM TBL_TEST2;
D_ID F_ID
----------- -----------
1 1
2 2
3 3
4 0
5 0
2、内连接:
-- 内连接;
SELECT * FROM TBL_TEST1 T1, TBL_TEST2 T2 WHERE T1.F_ID = T2.F_ID;
得到的结果如下:
F_ID D_ID F_ID
----------- ----------- -----------
1 1 1
2 2 2
3 3 3
3、右外关联:
-- T1右外关联T2;
SELECT * FROM TBL_TEST1 T1, TBL_TEST2 T2 WHERE T1.F_ID(+) = T2.F_ID;
SELECT *
FROM TBL_TEST1 T1
RIGHT OUTER JOIN TBL_TEST2 T2 ON (T1.F_ID = T2.F_ID);
上面两个SQL是等价的,执行结果如下:
F_ID D_ID F_ID
----------- ----------- -----------
1 1 1
2 2 2
3 3 3
4 0
5 0
4、左外关联:
-- T1左外关联T2;
SELECT * FROM TBL_TEST1 T1, TBL_TEST2 T2 WHERE T1.F_ID = T2.F_ID(+);
SELECT *
FROM TBL_TEST1 T1
LEFT OUTER JOIN TBL_TEST2 T2 ON (T1.F_ID = T2.F_ID);
执行结果如下:
F_ID D_ID F_ID
----------- ----------- -----------
1 1 1
2 2 2
3 3 3
5
4
5、全外关联:
-- 全外关联;
SELECT *
FROM TBL_TEST1 T1
FULL OUTER JOIN TBL_TEST2 T2 ON (T1.F_ID = T2.F_ID);
执行结果如下:
F_ID D_ID F_ID
---------- ----------- -----------
1 1 1
2 2 2
3 3 3
5
4
4 0
5 0
分享到:
相关推荐
Oracle基础查询关联查询练习题.docx
ORACLE测试题1_关联查询_答案可以测试一下自己的水平
支持MYSQL和ORACLE!!!
Oracle数据库3种主要表连接方式各自优劣对比
oracle详细表结构关系图,实例,图解
oracle两表关联更新Demo,使用exists嵌套子查询实现两表关联更新
oracle 三种索引的简单描述,位图、B树、全文索引。
ORACLE ebs 各个模块的表之间的关联关系,方便大家熟悉ebs系统的表结构
在某个业务受理子系统BSS中, --客户资料表 create table customers ( customer_id number(8) not null, -- 客户标示 city_name varchar2(10) not null, -- 所在城市 customer_type char(2) not null, -- 客户...
例如: 两表(多表)关联update -- 仅在where字句中的连接 --这次提取的数据都是VIP,且包括新增的,所以顺便更新客户类别 update customers a -- 使用别名 set customer_type='01' --01 为vip,00为普通 where ...
Oracle ebs AP基表和总账关联表结构Oracle ebs AP基表和总账关联表结构
skyline与oracle数据库坐标关联之oracle数据库操作说明
主要介绍了Oracle中多表关联批量插入,批量更新与批量删除操作,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
教你怎么用plsql关联64oracle数据库,我试了很简单 跟大家共享共享
直接运行批处理文件启动Oracle关联的服务进程,非常方便!
当安装好Oracle数据库之后,会自动运行几个Oracle服务进程,这些进程占用大量的内存空间,导致计算机运行卡顿甚至崩溃,直接运行批处理文件启动或关闭Oracle关联的服务进程,非常方便!
方法一(推荐): UPDATE 表2 SET 表2.C = (SELECT B FROM 表1 WHERE 表1.A = 表2.A) WHERE EXISTS (SELECT 1 FROM 表1 WHERE 表1.A = 表2.A);...尤其注意最后的外层where条件尤为重要,是锁定其批量更新数据...
c++、golang连接oracle需要关联的基础库,无需再次下载。golang中连接oracle的必须使用。无需再次安装,版本21-6
Oracle 多表查询优化
sql多表关联查询