Oracle数据库学习——数据操纵语言(DML)之连接查询
2013-09-10 20:56
169 查看
3.数据操纵语言(DML)
3.1 连接查询
—(1)内连接—(2)外连接
左外连接(LEFT JOIN)
返回左边表的所有行
右外连接(RIGHT JOIN)
返回右边表的所有行,实现
全外连接(FULL JOIN)
返回两个表的所有数据
交叉连接(CROSS JOIN) 返回连接表中所有数据行的笛卡尔积
(1)内连接:
SQL> --查询所有员工及其所在的部门信息
SQL> select e.ename,d.dname
from emp e join dept d
on e.deptno = d.deptno;
解释:
这条查询语句用到了表的别名,这里给emp表和dept表都起了别名e和d,主要是说要查询出员工的姓名和员工相对应所在的部门名称,这里还用到了表的连接‘join’,即emp表连接dept表,条件是‘e.deptno = d.deptno’。
SQL> --查询所有的管理者
SQL> select e1.ename,e2.ename
from emp e1,emp e2
where e1.mgr = e2.empno;
解释:
这里用到了自连接查询,即根据自身表的关系来查询,这里将emp表用了两次别名e1和e2,查找出e1中的与员工的管理者的编号 = e2中的员工编号,即查询出所有员工的对应管理者。
(2)左外连接:
SQL> --查询所有部门及其部门下的员工(没有与员工的部门也要查询出来)
SQL> select d.dname,e.ename
from dept d left joinemp e
on d.deptno = e.deptno;
解释:
左外连接可以简单的理解为将左边表的所有信息要显示出来,而右边表的显示与否则根据on后的条件来定。
SQL> --查询所有部门编号大于20及其部门下的员工
SQL> select d.*,e.ename
from dept d left join emp e
on d.deptno = e.deptno
where d.deptno > 20;
(3)全外连接:显示表的所有信息。
——SELECT e.empno,e.ename,d.dname FROM EMP e FULL JOIN dept d
ON e.deptno=d.deptno
相关文章推荐
- MySQL学习记录(多表连接查询+演示分析)七 DML
- Oracle数据库学习5之查询进阶:连接查询
- 【从零开始学习Oracle数据库】(3)函数与子查询和连接查询
- SQL 数据库 学习 029 查询-12 连接查询 --- 内连接
- SQL 数据库 学习 031 查询-14 连接查询 --- 左(右)外连接、完全连接、交叉连接、联合
- 跟我一起学Oracle 11g【8】----SQL 基础学习2[连接查询]
- Oracle数据库:左右连接、自然连接、交叉连接、统计函数以及分组查询(having子句)
- Oracle数据库高级查询(四)子查询和连接查询的综合案例
- Oracle学习_3 sql子查询,自连接,单行select总结
- MySQl 子查询,左右连接,多表连接学习笔记
- Oracle数据库连接、退出缓慢问题查询与处理
- SQL学习笔记八 索引,表连接,子查询,ROW_NUMBER
- 跟小博老师一起学习数据库 ——连接查询
- Asp.Net连接Oracle数据库的通用类orahelper.cs并且利用它对数据库查询、汇总、更新等操作演示
- MySQL学习笔记5:子查询与连接
- Asp.Net连接Oracle数据库的通用操作类并且利用它对数据库查询、汇总、更新等操作演示
- Oracle数据库学习---查询语句
- sqlserver -- 学习笔记(三)解决php连接sqlserver2005视图时显示“异类查询要求为连接设置 ANSI_NULLS 和 ANSI_WARNINGS 选项”的问题
- 详细学习之java简单连接Oracle数据库
- 深入学习之mysql(五)连接查询