Oracle SQL教程:HAVING子句限定分组函数结果

需积分: 50 5 下载量 33 浏览量 更新于2024-08-15 收藏 444KB PPT 举报
"这篇教程介绍了如何在Oracle SQL中使用HAVING子句来限定分组函数的结果值。HAVING子句通常用于在GROUP BY语句之后,对聚合函数(如SUM, AVG等)的结果进行条件筛选。文章通过一个示例展示了如何筛选出平均薪资大于2000的部门和职位组合。" 在SQL中,HAVING子句是一个关键的概念,特别是在执行分组查询时。它允许我们在对数据进行分组后,基于分组函数的结果应用条件过滤。这是因为WHERE子句不能直接处理分组函数,而HAVING子句则弥补了这一限制。 例如,教程中的SQL查询: ```sql SELECT DEPTNO, JOB, SUM(SAL), AVG(SAL) FROM EMP GROUP BY DEPTNO, JOB HAVING AVG(SAL) > 2000; ``` 这个查询首先按照部门号(DEPTNO)和职位(JOB)对员工表(EMP)进行分组,然后计算每个组的薪水总和(SUM(SAL))和平均薪水(AVG(SAL))。HAVING子句确保只有那些平均薪水大于2000的组被返回,结果展示的是满足条件的部门和职位,以及它们的薪水总和和平均值。 Oracle SQL是数据库管理系统Oracle中的查询语言,它遵循SQL标准,并在其基础上提供了许多扩展特性。SQL的发展历程可以追溯到1974年,由Boyce和Chamberlin提出,随后在IBM的System R上实现。随着时间的推移,SQL经历了一系列的标准化过程,如SQL-86, SQL-89, SQL-92等,不断添加新功能和增强其表达能力。 SQL的特点包括:一体化(DDL, DML, DCL集成)、面向集合的操作、高度非过程化、两种使用方式(自含式和嵌入式)以及简洁易学的语法。它主要用于数据查询、定义、操纵和控制,例如,使用SELECT进行查询,CREATE, ALTER, DROP进行数据定义,INSERT, UPDATE, DELETE进行数据操纵,以及GRANT, REVOKE进行数据控制。 在实际学习和使用Oracle SQL时,通常会借助工具如SQLPLUS进行练习,创建和管理用户以及数据库对象。像SCOTT这样的示例用户,在不同版本的Oracle数据库中可能需要手动创建。 HAVING子句在SQL中扮演着重要的角色,它使得我们能够基于聚合函数的结果对数据进行更复杂的过滤,这对于数据分析和报表生成尤其有用。同时,理解Oracle SQL的基础知识,包括其历史、标准化过程以及主要功能,对于任何想要深入掌握数据库管理的人来说都是必不可少的。