Oracle SQL基础笔记:全关联与子查询应用

需积分: 3 4 下载量 73 浏览量 更新于2024-09-13 收藏 21KB TXT 举报
本文档是一份实用且精简的SQL基础笔记,主要针对Oracle SQL语言进行讲解。内容涵盖SQL的关键语法和常用操作,包括但不限于: 1. **左连接(LEFT JOIN)**:这种连接方式返回的是左表(employees)的所有记录,即使在右表(departments)中没有匹配的记录,也会显示NULL值。通过`left join departments using (department_id)`的语句结构实现。 2. **右连接(RIGHT JOIN)**:与左连接相反,右连接返回的是右表的所有记录,即使左表中没有匹配,也会显示NULL值。使用`right join departments using (department_id)`实现。 3. **全外连接(FULL OUTER JOIN)**:同时包含左连接和右连接的结果,如果两边都没有匹配,则返回NULL。通过`full outer join departments using (department_id)`来执行全外连接查询。 4. **子查询(Subquery)**:子查询可以在一个查询内部嵌套另一个查询,用于获取所需的数据。例如,`select * from emp where sal > (select sal from emp where empno = 7566)`是使用子查询来比较员工薪水。 5. **条件运算符**:在`WHERE`子句中,`<`, `>`, `>=`, `<`, `<=`, `<>`等操作符用于比较两个值。例如,筛选出薪水高于部门平均薪水的员工。 6. **聚合函数**:如`AVG()`,用于计算指定字段的平均值,如`select avg(sal) from emp group by deptno`,可以用来计算每个部门的平均薪水。 7. **排序(ORDER BY)**:`ORDER BY`用于对结果集按特定列进行排序,`DESC`关键字表示降序,而`ASC`默认为升序。例如,`ORDER BY sal DESC`按薪水降序排列。 8. **分组(GROUP BY)**:`GROUP BY`用于将数据按照一个或多个列进行分组,常与聚合函数一起使用。如上例中的`group by deptno`。 9. **IN, ANY, ALL 运算符**:这些用于检查某个值是否存在于一组值中。`IN`表示在某个范围或集合内查找,`ANY`检查是否有任意一个满足条件,`ALL`则检查所有条件都满足。例如,`sal > any(select avg(sal)`检查某个员工的薪水是否大于任何其他部门的平均薪水。 这份笔记提供了一套基础且实用的SQL操作指南,适用于初学者理解和掌握Oracle SQL语言的核心概念和常用技巧。通过这些内容,读者可以快速上手并有效地处理各种数据库查询任务。