热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

oracle练习题emp表

–用SQL完成以下问题列表:–1.列出至少有一个员工的所有部门。–2.列出薪金比“SMITH”多的所有员工。–3.列出所有员工的姓名及其直接上级的姓名。–4.
–用SQL完成以下问题列表:

–1.列出至少有一个员工的所有部门。

–2.列出薪金比“SMITH”多的所有员工。

–3.列出所有员工的姓名及其直接上级的姓名。

–4.列出受雇日期早于其直接上级的所有员工。

–5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门

–6.列出所有“CLERK”(办事员)的姓名及其部门名称。

–7.列出最低薪金大于1500的各种工作。

–8.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。

–9.列出薪金高于公司平均薪金的所有员工。

–10.列出与“SCOTT”从事相同工作的所有员工。

–11.列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。

–12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。

–13.列出在每个部门工作的员工数量、平均工资和平均服务期限。

–14.列出所有员工的姓名、部门名称和工资。

–15.列出所有部门的详细信息和部门人数。

–16.列出各种工作的最低工资。

–17.列出各个部门的MANAGER(经理)的最低薪金。

–18.列出所有员工的年工资,按年薪从低到高排序。

–19 查询雇员表中,姓名为SMITH的雇员,截止到今天共工作了多少周,则可以使用如下的SQL语句

–20 查询各部门的最高薪水、最低薪水、平均薪水….

1、列出至少有一个员工的所有部门。

select dname from dept where deptno in(select deptno from emp group by deptno having count(deptno) >=1);

执行结果如下:
在这里插入图片描述
2、列出薪金比“SMITH”多的所有员工。

select * from emp where sal > (select sal from emp where ename = 'SMITH');
--首先将姓名为小写得部分变为大写
update emp set ename=replace(ename,substr (ename,length(ename),length(ename)),upper(substr(ename,length(ename),length(ename))));
--查询是否变更;
select * from emp;
--最后进行查询
select * from emp where sal > (select sal from emp where ename = 'SMITH');

*由于之前练习将ename中最后一个字母变为小写,所以查不到SMITH,因此得先将小写变为大写后,在进行查询
执行结果如下:
在这里插入图片描述
在这里插入图片描述
3、列出所有员工的姓名及其直接上级的姓名。

select a.ename,(select ename from emp b where b.empno=a.mgr) as boss_name from emp a;

执行结果如下:
在这里插入图片描述
4、列出受雇日期早于其直接上级的所有员工。

select a.ename from emp a where a.hiredate<(select hiredate from emp b where b.empno&#61;a.mgr);

执行结果如下&#xff1a;
在这里插入图片描述
5、列出部门名称和这些部门的员工信息&#xff0c;同时列出那些没有员工的部门。

select a.dname,b.empno,b.ename,b.job,b.mgr,b.hiredate,b.sal,b.deptno from dept a left join emp b on a.deptno&#61;b.deptno;

执行结果如下&#xff1a;
在这里插入图片描述
6、列出所有“CLERK”(办事员)的姓名及其部门名称。

select a.ename,b.dname from emp a join dept b on a.deptno&#61;b.deptno and a.job&#61;&#39;CLERK&#39;;

执行结果如下&#xff1a;
在这里插入图片描述
7、列出最低薪金大于1500的各种工作。

select distinct job as HighSalJob from emp group by job having min(sal)>1500;

执行结果如下&#xff1a;
在这里插入图片描述
8、列出在部门“SALES”(销售部)工作的员工的姓名&#xff0c;假定不知道销售部的部门编号。

select ename from emp where deptno&#61;(select deptno from dept where dname&#61;&#39;SALES&#39;);

执行结果如下&#xff1a;
在这里插入图片描述
9、列出薪金高于公司平均薪金的所有员工。

select ename from emp where sal>(select avg(sal) from emp);

执行结果如下&#xff1a;
在这里插入图片描述
10、列出与“SMITH”从事相同工作的所有员工。

select ename from emp where job&#61;(select job from emp where ename&#61;&#39;SMITH&#39;);

执行结果如下&#xff1a;
在这里插入图片描述
11、列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。

select ename,sal from empwhere sal in (select sal from emp where deptno&#61;30);

执行结果如下&#xff1a;
在这里插入图片描述
12、列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。

select ename,sal from emp where sal>(select max(sal) from emp where deptno&#61;30);

执行结果如下&#xff1a;
在这里插入图片描述
13、列出在每个部门工作的员工数量、平均工资和平均服务期限。

select deptno,count(*),avg(a.sal),avg(sysdate-HIREDATE) from emp a group by deptno;

执行结果如下&#xff1a;
在这里插入图片描述
14、列出所有员工的姓名、部门名称和工资。

select ename,(select dname from dept a where a.deptno&#61;b.deptno)as dname,sal from emp b;

执行结果如下&#xff1a;
在这里插入图片描述
15、列出所有部门的详细信息和部门人数。

select * from dept a left join (select deptno,count(*) from emp group by deptno) b on a.deptno&#61;b.deptno;

执行结果如下&#xff1a;
在这里插入图片描述
16、列出各种工作的最低工资。

select job,min(sal) from emp group by job;

执行结果如下&#xff1a;
在这里插入图片描述
17、列出各个部门的MANAGER(经理)的最低薪金。

select deptno,min(sal) from emp where job&#61;&#39;MANAGER&#39; group by deptno;

执行结果如下&#xff1a;
在这里插入图片描述
18、列出所有员工的年工资,按年薪从低到高排序。

select ename,(sal&#43;nvl(comm,0))*12 as salpersal from emp order by salpersal;

执行结果如下&#xff1a;
在这里插入图片描述
19、查询雇员表中&#xff0c;姓名为SMITH的雇员&#xff0c;截止到今天共工作了多少周&#xff0c;则可以使用如下的SQL语句。

select round((sysdate-hiredate)/7) as "Weeks" from emp where ename&#61;&#39;SMITH&#39;;

执行结果如下&#xff1a;
在这里插入图片描述
20、查询各部门的最高薪水、最低薪水、平均薪水…

select deptno,max(sal),min(sal),avg(sal) from emp group by deptno;

执行结果如下&#xff1a;
在这里插入图片描述


推荐阅读
  • 本文探讨了在Oracle数据库中,动态SQL语句的执行及其对事务管理的影响,特别是关于回滚操作的有效性。重点讨论了一个具体场景:将预警短信从当前表迁移到历史表时遇到的字段长度不匹配问题及相应的异常处理。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 探讨如何从数据库中按分组获取最大N条记录的方法,并分享新年祝福。本文提供多种解决方案,适用于不同数据库系统,如MySQL、Oracle等。 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • 使用Pandas高效读取SQL脚本中的数据
    本文详细介绍了如何利用Pandas直接读取和解析SQL脚本,提供了一种高效的数据处理方法。该方法适用于各种数据库导出的SQL脚本,并且能够显著提升数据导入的速度和效率。 ... [详细]
  • 本文介绍了如何在 Oracle 数据库中结合使用 UPDATE 和 SELECT 语句,以实现复杂的数据更新操作。首先准备测试环境和数据表,然后通过嵌套查询的方式从其他表中获取需要更新的值,最后执行更新操作并验证结果。 ... [详细]
  • 本文详细介绍了在 MySQL、SQL Server 和 Oracle 数据库中如何使用分组和排序功能。涵盖了聚集函数的应用、HAVING 子句的作用以及特定数据库中的独特方法,如 SQL Server 的 ROW_NUMBER() 函数和 Oracle 的相关特性。 ... [详细]
  • 在使用 DataGridView 时,如果在当前单元格中输入内容但光标未移开,点击保存按钮后,输入的内容可能无法保存。只有当光标离开单元格后,才能成功保存数据。本文将探讨如何通过调用 DataGridView 的内置方法解决此问题。 ... [详细]
  • 利用存储过程构建年度日历表的详细指南
    本文将介绍如何使用SQL存储过程创建一个完整的年度日历表。通过实例演示,帮助读者掌握存储过程的应用技巧,并提供详细的代码解析和执行步骤。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 在使用SQL Server进行动态SQL查询时,如果遇到LIKE语句无法正确返回预期结果的情况,通常是因为参数传递方式不当。本文将详细探讨这一问题,并提供解决方案及相关的技术背景。 ... [详细]
  • 本文介绍如何通过创建替代插入触发器,使对视图的插入操作能够正确更新相关的基本表。涉及的表包括:飞机(Aircraft)、员工(Employee)和认证(Certification)。 ... [详细]
  • openGauss每日一练:第6天 - 模式的创建、修改与删除
    本篇笔记记录了openGauss数据库中关于模式(Schema)的创建、修改和删除操作。通过这些操作,用户可以更好地管理和控制数据库对象。实验环境为openGauss 2.0.0,并使用由墨天轮提供的线上环境。 ... [详细]
author-avatar
我是小钞票
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有