Oracle基础查询与关联查询实战指南

版权申诉
0 下载量 196 浏览量 更新于2024-07-06 收藏 621KB DOCX 举报
"Oracle基础查询关联查询练习题包含多个关于Oracle数据库查询的示例,涵盖了基础查询、关联查询和分组查询。练习题涉及到对职员表(emp)和部门表(dept)的数据操作,旨在帮助学习者掌握如何通过SQL语句获取特定信息。" 在Oracle数据库中,查询操作是数据库管理的基础,以下是对题目中给出的查询示例的详细解释: 1. 查询在20和30号部门工作的员工姓名和部门号。这可以通过`WHERE`子句和`IN`操作符实现,如下所示: ```sql SELECT ename, deptno FROM emp WHERE deptno IN (20, 30); ``` 2. 查询没有管理者的员工姓名及职位,并按职位排序。`WHERE`子句与`IS NULL`一起用于查找字段值为空的情况,`ORDER BY`用于排序: ```sql SELECT ename, job FROM emp WHERE mgr IS NULL ORDER BY job; ``` 3. 查询有绩效的员工姓名、薪资和绩效,并按工资倒序排列。`ORDER BY`与`DESC`结合用于降序排序: ```sql SELECT ename, sal, comm FROM emp ORDER BY sal DESC; ``` 4. 查询员工姓名的第三个字母是A的员工姓名。`LIKE`操作符配合通配符`%`用于模糊匹配: ```sql SELECT ename FROM emp WHERE ename LIKE '_a%'; ``` 5. 将员工的名字、职位、薪资以指定格式显示。`||`操作符用于字符串连接,`AS`关键字用于重命名列: ```sql SELECT ename || ',' || job || ',' || sal AS OUT_PUT FROM emp; ``` 6. 查询员工号、姓名、工资,以及工资提高20%的结果。乘法运算符`*`用于计算工资的增加: ```sql SELECT empno, ename, sal, sal * 1.2 AS new_sal FROM emp; ``` 7. 查询工资大于1200的员工姓名和工资,按入职时间升序排列。`WHERE`子句筛选条件,`ORDER BY`按时间排序: ```sql SELECT ename, sal FROM emp WHERE sal > 1200 ORDER BY hiredate ASC; ``` 8. 查询非"ACCOUNT"部门的部门编号、名称和所在地。`NOT IN`操作符用于排除特定值: ```sql SELECT deptno, dname, loc FROM dept WHERE dname NOT IN ('ACCOUNTING'); ``` 对于分组查询示例: 1. 查询每个部门中每个职位的最高薪水。`GROUP BY`子句用于分组,`MAX`函数获取最大值: ```sql SELECT MAX(sal), deptno, job FROM emp GROUP BY deptno, job; ``` 这些练习题覆盖了Oracle SQL查询的基础知识,包括选择、过滤、排序、连接、分组和聚合操作,有助于提升对Oracle数据库操作的理解和技能。