Oracle常用SQL查询语句大全:emp表查询、多表连接查询、复杂查询

需积分: 3 6 下载量 96 浏览量 更新于2024-07-25 收藏 1.63MB DOC 举报
Oracle 常用 SQL 查询语句部分集合 Oracle 数据库是一个功能强大且广泛应用的关系数据库管理系统,提供了丰富的查询语言来操作和管理数据。在本资源中,我们将讨论 Oracle 中的一些常用 SQL 查询语句,包括基本查询、多表连接查询、复杂查询等。 一、基本查询 基本查询是 Oracle 数据库中最基本的查询类型,用于从数据库中检索数据。例如,以下查询语句用于从 emp 表中检索所有记录: SELECT * FROM scott.emp; 这条语句将从 emp 表中检索所有记录,并显示所有字段的值。 二、多表连接查询 多表连接查询是指从多个表中检索数据,并将它们连接起来。例如,以下查询语句用于从 emp 和 dept 表中检索数据,并将它们连接起来: SELECT * FROM scott.emp JOIN scott.dept ON emp.deptno = dept.deptno; 这条语句将从 emp 和 dept 表中检索数据,并将它们连接起来,显示所有字段的值。 三、复杂查询 复杂查询是指使用分析函数和窗口函数来进行数据分析和处理。例如,以下查询语句用于查找每个部门工资最高的前三名员工信息: SELECT * FROM ( SELECT deptno, ename, sal, DENSE_RANK() OVER (PARTITION BY deptno ORDER BY sal DESC) a FROM scott.emp ) WHERE a <= 3 ORDER BY deptno ASC, sal DESC; 这条语句使用了 DENSE_RANK() 分析函数来计算每个部门工资最高的排名,并从中检索出前三名员工信息。 四、分析函数 分析函数是 Oracle 数据库中的一种特殊函数,用于进行数据分析和处理。例如,以下查询语句用于使用 RANK() 分析函数来查找每个部门工资最高的前三名员工信息: SELECT * FROM ( SELECT deptno, ename, sal, RANK() OVER (PARTITION BY deptno ORDER BY sal DESC) a FROM scott.emp ) WHERE a <= 3 ORDER BY deptno ASC, sal DESC; 这条语句使用了 RANK() 分析函数来计算每个部门工资最高的排名,并从中检索出前三名员工信息。 五、窗口函数 窗口函数是 Oracle 数据库中的一种特殊函数,用于在查询结果中计算聚合值。例如,以下查询语句用于使用 ROW_NUMBER() 窗口函数来查找每个部门工资最高的前三名员工信息: SELECT * FROM ( SELECT deptno, ename, sal, ROW_NUMBER() OVER (PARTITION BY deptno ORDER BY sal DESC) a FROM scott.emp ) WHERE a <= 3 ORDER BY deptno ASC, sal DESC; 这条语句使用了 ROW_NUMBER() 窗口函数来计算每个部门工资最高的排名,并从中检索出前三名员工信息。 六、rows 和 range 窗口函数 rows 和 range 窗口函数是 Oracle 数据库中的一种特殊函数,用于在查询结果中计算聚合值。例如,以下查询语句用于使用 SUM() 窗口函数来计算每个部门的积累工资总和: SELECT deptno, sal, SUM(sal) OVER (ORDER BY deptno ASC ROWS UNBOUNDED PRECEDING) 积累工资总和 FROM scott.emp; 这条语句使用了 SUM() 窗口函数来计算每个部门的积累工资总和。 七、rows 和 range preceding 窗口函数 rows 和 range preceding 窗口函数是 Oracle 数据库中的一种特殊函数,用于在查询结果中计算聚合值。例如,以下查询语句用于使用 SUM() 窗口函数来计算每个部门的积累工资总和: SELECT deptno, sal, SUM(sal) OVER (ORDER BY deptno ASC ROWS 3 PRECEDING) 每4汇总值 FROM scott.emp; 这条语句使用了 SUM() 窗口函数来计算每个部门的积累工资总和。 八、rows 和 range between 窗口函数 rows 和 range between 窗口函数是 Oracle 数据库中的一种特殊函数,用于在查询结果中计算聚合值。例如,以下查询语句用于使用 SUM() 窗口函数来计算每个部门的积累工资总和: SELECT deptno, ename, sal, SUM(sal) OVER (ORDER BY deptno ASC ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) 汇总值 FROM scott.emp; 这条语句使用了 SUM() 窗口函数来计算每个部门的积累工资总和。 Oracle 数据库提供了丰富的查询语言来操作和管理数据,包括基本查询、多表连接查询、复杂查询等。这些查询语句可以灵活地应用于各种业务场景,帮助用户快速、高效地检索和处理数据。