ORACLE 表间的联结方式
来源:互联网 发布:威尔法瑞尔知乎 编辑:程序博客网 时间:2024/06/06 10:46
ORACLE 表间的联结方式
- 内联结
- 左联结
- 右联结
- 自然联结
- 全联结
- 笛卡尔联结
创建测试数据
CREATE TABLE TMP_TB_1(USER_ID NUMBER(10,0),USER_NAME VARCHAR2(30),ADDRESS VARCHAR2(50));CREATE TABLE TMP_TB_2(USER_ID NUMBER(10,0),USER_NAME VARCHAR2(30),U_ADDRESS VARCHAR2(50));-- 插入数据INSERT INTO TMP_TB_1 VALUES (1,'小明','李家胡同');INSERT INTO TMP_TB_1 VALUES (2,'李君','李家胡同');INSERT INTO TMP_TB_1 VALUES (3,'小黑','五里坨');INSERT INTO TMP_TB_1 VALUES (4,'提提','南宫');INSERT INTO TMP_TB_1 VALUES (7,'酷酷','大红门');INSERT INTO TMP_TB_1 VALUES (8,'李老师','天安门');SELECT * FROM TMP_TB_1;-- 插入数据INSERT INTO TMP_TB_2 VALUES (1,'小明','李家胡同');INSERT INTO TMP_TB_2 VALUES (2,'李君','李家胡同');INSERT INTO TMP_TB_2 VALUES (3,'小宝宝','卡瓦挖');INSERT INTO TMP_TB_2 VALUES (5,'多多','国贸');INSERT INTO TMP_TB_2 VALUES (6,'荣荣','上京');SELECT * FROM TMP_TB_2;
1 内联结
SELECT A.*,B.* FROM TMP_TB_1 A, TMP_TB_2 B WHERE A.USER_ID = B.USER_ID;SELECT A.*,B.* FROM TMP_TB_1 A JOIN TMP_TB_2 B ON A.USER_ID = B.USER_ID;SELECT A.*,B.* FROM TMP_TB_1 A INNER JOIN TMP_TB_2 B ON A.USER_ID = B.USER_ID;
2 左外联接
SELECT A.*,B.* FROM TMP_TB_1 A, TMP_TB_2 B WHERE A.USER_ID = B.USER_ID(+);SELECT A.*,B.* FROM TMP_TB_1 A LEFT JOIN TMP_TB_2 B ON A.USER_ID = B.USER_ID;SELECT A.*,B.* FROM TMP_TB_1 A LEFT OUTER JOIN TMP_TB_2 B ON A.USER_ID = B.USER_ID;
带筛选条件的的左(外)联接
-- 先筛选后联接SELECT A.*,B.* FROM TMP_TB_1 A, TMP_TB_2 B WHERE A.USER_ID = B.USER_ID(+) AND B.U_ADDRESS(+) = '李家胡同';SELECT A.*,B.* FROM TMP_TB_1 A LEFT JOIN TMP_TB_2 B ON A.USER_ID = B.USER_ID AND B.U_ADDRESS = '李家胡同';-- 左外联接 联接后根据条件筛选SELECT A.*,B.* FROM TMP_TB_1 A, TMP_TB_2 B WHERE A.USER_ID = B.USER_ID(+) AND B.U_ADDRESS = '李家胡同';SELECT A.*,B.* FROM TMP_TB_1 A LEFT JOIN TMP_TB_2 B ON A.USER_ID = B.USER_ID WHERE B.U_ADDRESS = '李家胡同';
3 右(外)联接 同左(外)联接
4 自然连接
SELECT * FROM TMP_TB_1 A NATURAL JOIN TMP_TB_2 B;
5 全(外)联接
SELECT * FROM TMP_TB_1 A FULL JOIN TMP_TB_2 B ON A.USER_ID = B.USER_ID AND A.USER_NAME = B.USER_NAME; SELECT * FROM TMP_TB_1 A FULL OUTER JOIN TMP_TB_2 B ON A.USER_ID = B.USER_ID; SELECT * FROM TMP_TB_1 A FULL JOIN TMP_TB_2 B ON A.USER_ID = B.USER_ID AND A.USER_NAME = B.USER_NAME;
6 笛卡尔积
SELECT * FROM TMP_TB_1 A, TMP_TB_2 B; SELECT * FROM TMP_TB_1 A CROSS JOIN TMP_TB_2 B;
0 0
- ORACLE 表间的联结方式
- 【oracle概念】表联结方式
- 联结方式
- SQl 表的联结
- 表的联结方法
- PostgreSQL 联结方式--hash联结
- 数据库的几种联结方式整理
- 数据库的多表联结
- 联结表
- PostgreSQL 联结方式--嵌套循环联结
- PostgreSQL 联结方式--排序-合并联结
- oracle 嵌套循环联结
- oracle 排序-合并联结
- oracle 笛卡尔联结
- oracle 联结方法
- 表的联结、运算符学习笔记
- Oracle的表的联结类型(内连接,外连接(左外连接,右外连接),自连接)
- MySQL联结表
- Android进程启动过程源码分析整理.
- POJ 2441 Arrange the Bulls 已被翻译
- 抽象类与接口比较
- NOIP2016 day1玩具谜题
- angularJS date filter ——时间格式化过滤器
- ORACLE 表间的联结方式
- adb启动失败
- UML之包图
- CSS三大特性之继承性
- 求方幂模s = a^j mod p
- input file类型自定义样式-按钮
- 虚函数和纯虚函数的区别
- 我的Unity(3)一点一滴 实现物体移动和旋转的方法总结(1)
- java和c/c++的运行效率,谁的比较高?