热门标签 | 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;
在这里插入图片描述


推荐阅读
  • MySQL锁机制详解
    本文深入探讨了MySQL中的锁机制,包括表级锁、行级锁以及元数据锁,通过实例详细解释了各种锁的工作原理及其应用场景。同时,文章还介绍了如何通过锁来优化数据库性能,避免常见的并发问题。 ... [详细]
  • 本文探讨了如何在Hive(基于Hadoop)环境中编写类似SQL的语句,以去除字段中的空格。特别是在处理邮政编码等数据时,去除特定位置的空格是常见的需求。 ... [详细]
  • 本文探讨了如何利用 Hibernate 进行高效的批量更新和删除操作,包括直接使用 Hibernate API 的方法及其局限性,以及如何通过 JDBC 或存储过程实现更优的性能。 ... [详细]
  • 本文介绍 SQL Server 的基本概念和操作,涵盖系统数据库、常用数据类型、表的创建及增删改查等基础操作。通过实例帮助读者快速上手 SQL Server 数据库管理。 ... [详细]
  • Oracle中NULL、空字符串和空格的处理与区别
    本文探讨了在Oracle数据库中使用NULL、空字符串('')和空格('_')时可能遇到的问题及解决方案。重点解释了它们之间的区别,以及在查询和函数中的行为。 ... [详细]
  • 本文探讨了在 SQL Server 中使用 JDBC 插入数据时遇到的问题。通过详细分析代码和数据库配置,提供了解决方案并解释了潜在的原因。 ... [详细]
  • 优化SQL Server批量数据插入存储过程的实现
    本文介绍了一种改进的SQL Server存储过程,用于生成批量插入语句。该方法不仅提高了性能,还支持单行和多行模式,适用于SQL Server 2005及以上版本。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 本文探讨了如何利用HTML5和JavaScript在浏览器中进行本地文件的读取和写入操作,并介绍了获取本地文件路径的方法。HTML5提供了一系列API,使得这些操作变得更加简便和安全。 ... [详细]
  • 本文详细介绍了如何在Linux系统中创建和管理DB2数据库,包括用户切换、数据库创建、错误处理、连接与断开、表空间和缓冲池的创建,以及用户权限管理和数据导入导出等操作。 ... [详细]
  • Oracle性能提升:深入探讨SQL优化与类型转换的影响
    本文详细分析了在Oracle数据库中如何通过正确的数据类型匹配来避免不必要的类型转换,从而提高SQL查询效率。 ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 本文介绍如何使用SAS根据输入数据集自动生成并执行SQL查询,其中CASE语句依据另一个数据集中的观测值动态调整。 ... [详细]
  • 本文深入探讨了SQL数据库中常见的面试问题,包括如何获取自增字段的当前值、防止SQL注入的方法、游标的作用与使用、索引的形式及其优缺点,以及事务和存储过程的概念。通过详细的解答和示例,帮助读者更好地理解和应对这些技术问题。 ... [详细]
  • Oracle 数据导出为 SQL 脚本的详细步骤
    本文介绍如何使用 PL/SQL Developer 工具将 Oracle 数据库中的数据导出为 SQL 脚本,包括详细的步骤和注意事项。 ... [详细]
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社区 版权所有