Oracle常用SQL查询语句大全:emp表查询、多表连接查询、复杂查询
需积分: 3 196 浏览量
更新于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 数据库提供了丰富的查询语言来操作和管理数据,包括基本查询、多表连接查询、复杂查询等。这些查询语句可以灵活地应用于各种业务场景,帮助用户快速、高效地检索和处理数据。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-01-19 上传
2010-10-20 上传
2009-04-13 上传
2010-05-26 上传
2019-03-18 上传
busuandelizi
- 粉丝: 0
- 资源: 1