韩顺平Oracle笔记2.pptx是一份用于教学的PPT,主要涵盖了Oracle数据库的相关知识,特别是针对多表查询、自连接和子查询的概念和示例。以下是其中的关键知识点:
1. 多表查询:多表查询是数据库操作中常见的场景,它允许用户从两个或更多表中检索数据。例如,如果需要获取一个员工的姓名、工资和他们所在的部门信息,但这些信息分别存储在不同的表`EMP`和`DEPT`中,可以使用JOIN操作。第一个示例展示了如何通过笛卡尔积(`select a1.ename, a1.sal, a2.dname from emp a1, dept a2 where a1.deptno = a2.deptno;`)来获取所有可能的组合,而第二个示例则筛选出部门编号为10的记录。
2. 连接查询:
- 内连接(INNER JOIN):`select a.ename, a.sal, b.dname from emp a, dept b where a.deptno = b.deptno;` 用于按部门名称降序排列结果。
- 自连接(Self Join):用于查询同一张表中的数据,如展示某个员工的上级领导姓名,通过比较`worker.mgr`与`boss.empno`,如`select worker.ename, boss.ename from emp worker, emp boss where worker.mgr = boss.empno;`。另一个示例更具体地限制了查询结果,仅查找名为"FORD"的员工的上级领导。
3. 子查询:
- 单行查询:子查询是嵌套在主查询中的SELECT语句,它返回一行数据。例如,查询所有员工的姓名、工资、工资等级和部门名称时,`select e.ename, e.sal, s.grade, d.dname from empe, salgrades, deptd where e.sal between s.losal and s.hisal and e.deptno = d.deptno;` 中,`s`就是一个子查询,用于过滤工资范围。
这些知识点展示了在Oracle环境中进行复杂查询和数据分析的基本操作,包括如何有效地利用连接操作将不同表的数据合并,以及如何通过子查询来实现更精细的数据筛选。对于学习Oracle数据库管理和数据分析的学生来说,这份笔记提供了实用的工具和技术参考。