综合练习(二)

目录

列出薪金比 SMITH 或 ALLEN 多的所有员工的编号、姓名、部门名称、领导姓名、部门人数,以及所在部门的平均工资、最高和最低工资

补充

spool


Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645

列出薪金比 SMITH 或 ALLEN 多的所有员工的编号、姓名、部门名称、领导姓名、部门人数,以及所在部门的平均工资、最高和最低工资

 确定要使用的数据表

emp 表:员工的编号、姓名

dept 表:部门名称

emp 表:领导姓名

emp 表:统计信息

确定已知的关联字段

员工与部门:emp.deptno=dept.deptno

员工与领导:emp.mgr=memp.empno

第一步:知道 SMITH 或 ALLEN 的薪金,这个查询返回多行单列(WHERE 中使用)。

SQL> select sal
  2  from emp
  3  where ename in('SMITH','ALLEN');

       SAL
----------
       800
      1600

第二步:应该比里面的任意一个多即可,但是要去掉这两个员工

由于是多行单列子查询,所以使用 >ANY 完成

SQL> select e.empno,e.ename,e.sal
  2  from emp e
  3  where e.sal>any(
  4  select sal
  5  from emp
  6      where ename in('SMITH','ALLEN'))
  7      and e.ename not in('SMITH','ALLEN');

     EMPNO ENAME                       SAL
---------- -------------------- ----------
      7839 KING                       5000
      7902 FORD                       3000
      7566 JONES                      2975
      7698 BLAKE                      2850
      7782 CLARK                      2450
      7844 TURNER                     1500
      7934 MILLER                     1300
      7654 MARTIN                     1250
      7521 WARD                       1250
      7900 JAMES                       950

已选择 10 行。

第三步:找到部门名称

SQL> select e.empno,e.ename,e.sal,d.dname
  2  from emp e,dept d
  3  where e.sal>any(
  4  select sal
  5  from emp
  6      where ename in('SMITH','ALLEN'))
  7      and e.ename not in('SMITH','ALLEN')
  8      and e.deptno=d.deptno;

     EMPNO ENAME                       SAL DNAME
---------- -------------------- ---------- ----------------------------
      7839 KING                       5000 ACCOUNTING
      7902 FORD                       3000 RESEARCH
      7566 JONES                      2975 RESEARCH
      7698 BLAKE                      2850 SALES
      7782 CLARK                      2450 ACCOUNTING
      7844 TURNER                     1500 SALES
      7934 MILLER                     1300 ACCOUNTING
      7521 WARD                       1250 SALES
      7654 MARTIN                     1250 SALES
      7900 JAMES                       950 SALES

第四步:找到领导信息

SQL> select e.empno,e.ename,e.sal,d.dname,m.ename
  2  from emp e,dept d,emp m
  3  where e.sal>any(
  4  select sal
  5  from emp
  6      where ename in('SMITH','ALLEN'))
  7      and e.ename not in('SMITH','ALLEN')
  8      and e.deptno=d.deptno
  9      and e.mgr=m.empno(+);

     EMPNO ENAME                       SAL DNAME                        ENAME
---------- -------------------- ---------- ---------------------------- --------------------
      7902 FORD                       3000 RESEARCH                     JONES
      7844 TURNER                     1500 SALES                        BLAKE
      7521 WARD                       1250 SALES                        BLAKE
      7654 MARTIN                     1250 SALES                        BLAKE
      7900 JAMES                       950 SALES                        BLAKE
      7934 MILLER                     1300 ACCOUNTING                   CLARK
      7566 JONES                      2975 RESEARCH                     KING
      7698 BLAKE                      2850 SALES                        KING
      7782 CLARK                      2450 ACCOUNTING                   KING
      7839 KING                       5000 ACCOUNTING

已选择 10 行。

第五步:得到部门人数,以及部门平均工资、最高和最低工资

整个查询里面不能够直接使用GROUP BY,所以现在应该利用子查询实现统计操作

SQL> select e.empno,e.ename,e.sal,d.dname,m.ename,temp.count,temp.avg,temp.max,temp.min
  2  from emp e,dept d,emp m,(
  3  select deptno dno,count(empno) count,avg(sal) avg,max(sal) max,min(sal) min
  4      from emp
  5      group by deptno) temp
  6  where e.sal>any(
  7  select sal
  8  from emp
  9      where ename in('SMITH','ALLEN'))
 10      and e.ename not in('SMITH','ALLEN')
 11      and e.deptno=d.deptno
 12      and e.mgr=m.empno(+)
 13      and d.deptno=temp.dno;

     EMPNO ENAME                       SAL DNAME                        ENAME                     COUNT        AVG        MAX        MIN
---------- -------------------- ---------- ---------------------------- -------------------- ---------- ---------- ---------- ----------
      7902 FORD                       3000 RESEARCH                     JONES                         3 2258.33333       3000        800
      7844 TURNER                     1500 SALES                        BLAKE                         6 1566.66667       2850        950
      7654 MARTIN                     1250 SALES                        BLAKE                         6 1566.66667       2850        950
      7521 WARD                       1250 SALES                        BLAKE                         6 1566.66667       2850        950
      7900 JAMES                       950 SALES                        BLAKE                         6 1566.66667       2850        950
      7934 MILLER                     1300 ACCOUNTING                   CLARK                         3 2916.66667       5000       1300
      7566 JONES                      2975 RESEARCH                     KING                          3 2258.33333       3000        800
      7698 BLAKE                      2850 SALES                        KING                          6 1566.66667       2850        950
      7782 CLARK                      2450 ACCOUNTING                   KING                          3 2916.66667       5000       1300
      7839 KING                       5000 ACCOUNTING                                                 3 2916.66667       5000       1300

已选择 10 行。

补充

spool

在数据库实际操作中,需要将查询结果输出到指定文件中,此时可以使用 spool 命令 

spool filename [create][replace][append]|OFF|OUT

其中

filename 为输出的文件名称,默认的扩展名为 LST,后面所跟参数作用如下

create 表示创建新的文件,是默认状态

replace 表示替代已经存在的文件

append 表示把查询内容附加到已经存在的文件中

OFF|OUT 表示关闭输出

例如:

下面代码将查询结果输出到 D 盘的 temp.ext 文件中 

SQL> spool d:\temp.txt
SQL> select empno,ename,job from emp;

     EMPNO ENAME                JOB
---------- -------------------- ------------------
      7369 SMITH                CLERK
      7499 ALLEN                SALESMAN
      7521 WARD                 SALESMAN
      7566 JONES                MANAGER
      7654 MARTIN               SALESMAN
      7698 BLAKE                MANAGER
      7782 CLARK                MANAGER
      7839 KING                 PRESIDENT
      7844 TURNER               SALESMAN
      7900 JAMES                CLERK
      7902 FORD                 ANALYST

     EMPNO ENAME                JOB
---------- -------------------- ------------------
      7934 MILLER               CLERK
      8989 HELLO

已选择 13 行。

SQL> spool off

此时,我的D盘就有了这个文件,内容如下 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/419923.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

我国每年研究生的毕业数量统计分享

本数据集详细记录了自1949年至2021年我国每年研究生的毕业数量(包括硕士和博士学位的毕业生)。在2021年,我国的研究生毕业生人数达到了772,761人,此数字比上一年度增加了44,000人。 统计的数据单位使用的是人数。 数据展示&…

C语言--修饰符(auto、extern、static)与变量(局部变量+全局变量)和函数的关系

其中extern功能和用法上,比较特殊。先了解extern修饰全局变量,我总结为以下几点 为了方便描述,我创建了一个工程,工程包含了两个源文件,main.c和database.c **1):database.c中使用extern时用来…

【压缩技巧】zip压缩包太大怎么变小?

Zip压缩包是压缩文件体积,便于保存的文件格式,但是有些文件实在是太大了,即使是压缩之后,体积仍然很大,那么,zip压缩包太大怎么变小呢?今天分享几种方法。 方法一: 适当减少文件内…

antvX6 - Vue自定义节点,并实现多种画布操作,拖拽、缩放、连线、双击、检索等等

一、 首先 antv x6 分为两个版本 低版本和高版本 我这里是使用的2.0版本 并且搭配了相关插件 例如:画布的图形变换、地图等 个人推荐 2.0版本,高版本配置多,可使用相关插件多,但是文档描述小,仍在更新, 低…

openGauss学习笔记-231 openGauss性能调优-系统调优-资源负载管理-资源负载管理概述

文章目录 openGauss学习笔记-231 openGauss性能调优-系统调优-资源负载管理-资源负载管理概述231.1 功能描述231.2 相关概念**231.2.1 资源管理****231.2.2 控制组****231.2.3 资源池** openGauss学习笔记-231 openGauss性能调优-系统调优-资源负载管理-资源负载管理概述 231.…

java009 - Java调试debugger

1、debugger概述 程序的调试工具,用于查看追踪程序的执行流程,也可以调试程序。 2、debugger调试流程 2.1 如何加断点 2.2 如何运行加了断点的程序 在代码区域右键---->debugger执行 2.3 看哪里 看console窗口 2.4 点哪里 点step into(F7)这个箭…

异常处理(黑马学习笔记)

当前问题 登录功能和登录校验功能我们都实现了,下面我们学习下今天最后一块技术点:异常处理。首先我们先来看一下系统出现异常之后会发生什么现象,再来介绍异常处理的方案。 我们打开浏览器,访问系统中的新增部门操作&#xff0…

potplayer安装

官网 解压运行即可

小(2)型土石坝安全监测设施配置详解

小(2)型土石坝的安全监测是确保大坝稳定、安全运行的重要环节。为此,合理配置安全监测设施显得尤为重要。以下是对小(2)型土石坝安全监测设施配置的详细介绍。 一、渗流量监测 渗流量是反映大坝安全状况的关键指标之一。为准确监测渗流量,我们采用仪器量…

DC28V270V转AC36V115V航空逆变器

在当今的航空航天电源行业中,DC28V270V转AC36V115V航空逆变器发挥着至关重要的作用。作为一种关键的逆变器电源设备,DC28V270V转AC36V115V航空逆变器不仅在航空领域有着广泛的应用,还在许多其他领域发挥着重要作用。 一、DC28V270V转AC36V11…

C语言 常量

常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。 常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串字面值,也有枚举常量。 常量就像是常规的变量,只不过常量的…

【前端素材】推荐优质在线高端蜂蜜商城电商网页Beejar平台模板(附源码)

一、需求分析 1、系统定义 在线高端蜂蜜商城是指一个专门销售高品质、高端蜂蜜产品的电子商务平台。这种商城致力于向消费者提供各种经过精心挑选、具有高营养价值和健康功效的蜂蜜产品。 2、功能需求 在线高端蜂蜜商城是指一个专门销售高品质、高端蜂蜜产品的电子商务平台…

JOSEF约瑟 FHP-33Q/4跳位、合位、电源监视综合控制继电器 凸出式板前接线 0.1-10S

FHP-33系列跳位、合位、电源监视综合控制继电器系列型号:FHP-33A/1跳位、合位、电源监视综合控制继电器;FHP-33A/2跳位、合位、电源监视综合控制继电器;FHP-33A/3跳位、合位、电源监视综合控制继电器;FHP-33A/4跳位、合位、电源监…

数据迁移方法论

文章目录 一. 什么是数据迁移1. 数据迁移与数据整合2. 数据迁移和数据复制3. 数据迁移的主要类型1. Storage migration2. 数据库迁移3. 应用迁移4. 数据中心迁移5. Business process migration(业务流程迁移)6. 云迁移 二. 数据迁移方法1.大爆炸式数据迁…

说一说kong日志级别

Kong官网:The Platform Powering the API World | Kong Inc. Kong Gateway:Kong Gateway | Kong Docs Kong Admin API:Admin API - Kong Gateway - v3.4.x | Kong Docs Kong 企业版社区:API Community for Developers and Industr…

Freesia项目目录结构

目录结构 前端目录: (目录结构来自layui-vue-admin) src文件下 api(前端请求后端服务的路由)assert(一些内置或必要的资源文件)layouts(全局框架样式组件)router&…

OPPO打响AI手机第一枪

明敏 发自 凹非寺 量子位 | 公众号 QbitAI 2024开年,AI趋势依旧高歌猛进。 一边,Sora爆火成为现象级AIGC应用,带动AI再度成为春节后全民热议的第一话题。另一边,手机厂商开始大举All in AI,“放弃传统智能手机”、“…

071:vue+cesium 实现下雨效果

第071个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中实现下雨效果,这里使用着色器来实现实例特效。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共120行)着色代码实现心得:专栏目标示例效果

基于java+springboot动物检疫信息管理系统设计和实现

基于java SSM springboot动物检疫信息管理系统设计和实现 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文…

文件基础和文件fd

文章目录 预备知识C语言的文件接口系统调用文件fd 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂,风趣幽默,忍不住分享一下给大家。 点击跳转到网站。 预备知识 我们平时说文件就是说文件里…