oracle 学习笔记四
2012-09-06 18:48
253 查看
SELECT table1.column, table2.column
FROM table1
[CROSS JOIN table2] |
[NATURAL JOIN table2] |
[JOIN table2 USING (column_name)] |
[JOIN table2
ON(table1.column_name = table2.column_name)] |
[LEFT|RIGHT|FULL OUTER JOIN table2
ON (table1.column_name = table2.column_name)];
交叉连接 CROSS JOIN
oracle 8i中
select * from employees,departments;
oracle 9i中
select * from employees CROSS JOIN departments;
自然连接 NATURAL JOIN
oracle 8i
select * from emp e,dept d where e.deptno=d.deptno;
oracle 9i
select * from emp NATURAL JOIN dept;
select * from emp join dept using (deptno);
on子名
sql-1999
select * from emp;
select * from dept;
select e.ename,e.empno,d.dname,d.deptno
from emp e join dept d on(e.deptno=d.deptno);
三个表的内连接
select * from employees;
select * from location;
select * from departments;
oracle8i等值接连
select e.employee_id,e.first_name||e.last_name,d.department_id,d.department_name,l.loc,l.city
from employees e,departments d,location l where e.department_id=d.department_id and d.location_id=l.location_id;
sql-1999
select e.employee_id,e.first_name||e.last_name,d.department_id,d.department_name,l.loc,l.city
from employees e join departments d on(e.department_id=d.department_id) join location l on(d.location_id=l.location_id);
左外连接 LEFT OUTER JOIN 对连接条件中左边的表中的记录不加限制
oracle8i右外接连
select e.employee_id,e.first_name||e.last_name,d.department_id,d.department_name
from employees e, departments d where e.department_id=d.department_id(+);
sql-1999
select e.employee_id,e.first_name||e.last_name,d.department_id,d.department_name
from employees e left outer join departments d on(e.department_id=d.department_id);
右外连接 RIGHT OUTER JOIN 对连接条件中右边的表中的记录不加限制
oracle8i左外接连
select e.employee_id,e.first_name||e.last_name,d.department_id,d.department_name
from employees e, departments d where e.department_id(+)=d.department_id;
sql-1999
select e.employee_id,e.first_name||e.last_name,d.department_id,d.department_name
from employees e right outer join departments d on(e.department_id=d.department_id);
全外连接 Full outer Join 全外连接是对两个表中的记录都不加限制。
select e.employee_id,e.first_name||e.last_name,d.department_id,d.department_name
from employees e full outer join departments d on(e.department_id=d.department_id);
FROM table1
[CROSS JOIN table2] |
[NATURAL JOIN table2] |
[JOIN table2 USING (column_name)] |
[JOIN table2
ON(table1.column_name = table2.column_name)] |
[LEFT|RIGHT|FULL OUTER JOIN table2
ON (table1.column_name = table2.column_name)];
交叉连接 CROSS JOIN
oracle 8i中
select * from employees,departments;
oracle 9i中
select * from employees CROSS JOIN departments;
自然连接 NATURAL JOIN
oracle 8i
select * from emp e,dept d where e.deptno=d.deptno;
oracle 9i
select * from emp NATURAL JOIN dept;
select * from emp join dept using (deptno);
on子名
sql-1999
select * from emp;
select * from dept;
select e.ename,e.empno,d.dname,d.deptno
from emp e join dept d on(e.deptno=d.deptno);
三个表的内连接
select * from employees;
select * from location;
select * from departments;
oracle8i等值接连
select e.employee_id,e.first_name||e.last_name,d.department_id,d.department_name,l.loc,l.city
from employees e,departments d,location l where e.department_id=d.department_id and d.location_id=l.location_id;
sql-1999
select e.employee_id,e.first_name||e.last_name,d.department_id,d.department_name,l.loc,l.city
from employees e join departments d on(e.department_id=d.department_id) join location l on(d.location_id=l.location_id);
左外连接 LEFT OUTER JOIN 对连接条件中左边的表中的记录不加限制
oracle8i右外接连
select e.employee_id,e.first_name||e.last_name,d.department_id,d.department_name
from employees e, departments d where e.department_id=d.department_id(+);
sql-1999
select e.employee_id,e.first_name||e.last_name,d.department_id,d.department_name
from employees e left outer join departments d on(e.department_id=d.department_id);
右外连接 RIGHT OUTER JOIN 对连接条件中右边的表中的记录不加限制
oracle8i左外接连
select e.employee_id,e.first_name||e.last_name,d.department_id,d.department_name
from employees e, departments d where e.department_id(+)=d.department_id;
sql-1999
select e.employee_id,e.first_name||e.last_name,d.department_id,d.department_name
from employees e right outer join departments d on(e.department_id=d.department_id);
全外连接 Full outer Join 全外连接是对两个表中的记录都不加限制。
select e.employee_id,e.first_name||e.last_name,d.department_id,d.department_name
from employees e full outer join departments d on(e.department_id=d.department_id);
相关文章推荐
- 学习笔记_oracle——SQL优化
- Oracle体系结构一(学习笔记)
- oracle__学习笔记2014.09.05
- oracle 体系结构 学习笔记
- ORACLE PL/SQL 集合学习笔记(一)
- 四、Oracle数据库之学习笔记---Oracle的表的基本查询(1)
- Oracle 学习笔记1 —— 启动,关闭
- Oracle学习笔记[5] - win2000/xp/2003下完全卸载ORACLE
- hive学习笔记之-使用Sqoop把Oracle表导入Hive
- [Oracle 学习笔记] 01 使用SQL*Plus
- Oracle - SQL学习笔记 1
- Oracle-学习笔记(==》集合函数与分组四)
- Oracle Core 学习笔记二 -- Transactions 和 Consistency 说明
- [Oracle 学习笔记] 05 连接查询
- Oracle User Management FAQ翻译及学习笔记
- ORACLE MODEL子句学习笔记
- Oracle 学习笔记 9 -- 数据处理
- java 从零开始,学习笔记之基础入门<Oracle_基础>(三十三)
- Oracle学习查询语句的笔记
- 【数据库学习笔记】Oracle_01_sql*plus,存储结构,用户管理,常用数据类型