综合练习(二)

目录

列出薪金比 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 sal2  from emp3  where ename in('SMITH','ALLEN');SAL
----------8001600

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

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

SQL> select e.empno,e.ename,e.sal2  from emp e3  where e.sal>any(4  select sal5  from emp6      where ename in('SMITH','ALLEN'))7      and e.ename not in('SMITH','ALLEN');EMPNO ENAME                       SAL
---------- -------------------- ----------7839 KING                       50007902 FORD                       30007566 JONES                      29757698 BLAKE                      28507782 CLARK                      24507844 TURNER                     15007934 MILLER                     13007654 MARTIN                     12507521 WARD                       12507900 JAMES                       950已选择 10 行。

第三步:找到部门名称

SQL> select e.empno,e.ename,e.sal,d.dname2  from emp e,dept d3  where e.sal>any(4  select sal5  from emp6      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 ACCOUNTING7902 FORD                       3000 RESEARCH7566 JONES                      2975 RESEARCH7698 BLAKE                      2850 SALES7782 CLARK                      2450 ACCOUNTING7844 TURNER                     1500 SALES7934 MILLER                     1300 ACCOUNTING7521 WARD                       1250 SALES7654 MARTIN                     1250 SALES7900 JAMES                       950 SALES

第四步:找到领导信息

SQL> select e.empno,e.ename,e.sal,d.dname,m.ename2  from emp e,dept d,emp m3  where e.sal>any(4  select sal5  from emp6      where ename in('SMITH','ALLEN'))7      and e.ename not in('SMITH','ALLEN')8      and e.deptno=d.deptno9      and e.mgr=m.empno(+);EMPNO ENAME                       SAL DNAME                        ENAME
---------- -------------------- ---------- ---------------------------- --------------------7902 FORD                       3000 RESEARCH                     JONES7844 TURNER                     1500 SALES                        BLAKE7521 WARD                       1250 SALES                        BLAKE7654 MARTIN                     1250 SALES                        BLAKE7900 JAMES                       950 SALES                        BLAKE7934 MILLER                     1300 ACCOUNTING                   CLARK7566 JONES                      2975 RESEARCH                     KING7698 BLAKE                      2850 SALES                        KING7782 CLARK                      2450 ACCOUNTING                   KING7839 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.min2  from emp e,dept d,emp m,(3  select deptno dno,count(empno) count,avg(sal) avg,max(sal) max,min(sal) min4      from emp5      group by deptno) temp6  where e.sal>any(7  select sal8  from emp9      where ename in('SMITH','ALLEN'))10      and e.ename not in('SMITH','ALLEN')11      and e.deptno=d.deptno12      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        8007844 TURNER                     1500 SALES                        BLAKE                         6 1566.66667       2850        9507654 MARTIN                     1250 SALES                        BLAKE                         6 1566.66667       2850        9507521 WARD                       1250 SALES                        BLAKE                         6 1566.66667       2850        9507900 JAMES                       950 SALES                        BLAKE                         6 1566.66667       2850        9507934 MILLER                     1300 ACCOUNTING                   CLARK                         3 2916.66667       5000       13007566 JONES                      2975 RESEARCH                     KING                          3 2258.33333       3000        8007698 BLAKE                      2850 SALES                        KING                          6 1566.66667       2850        9507782 CLARK                      2450 ACCOUNTING                   KING                          3 2916.66667       5000       13007839 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                CLERK7499 ALLEN                SALESMAN7521 WARD                 SALESMAN7566 JONES                MANAGER7654 MARTIN               SALESMAN7698 BLAKE                MANAGER7782 CLARK                MANAGER7839 KING                 PRESIDENT7844 TURNER               SALESMAN7900 JAMES                CLERK7902 FORD                 ANALYSTEMPNO ENAME                JOB
---------- -------------------- ------------------7934 MILLER               CLERK8989 HELLO已选择 13 行。SQL> spool off

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32USART串口数据包

文章目录 前言一、介绍部分数据包两种包装方式(分割数据)HEX数据包文本数据包 数据包的收发流程数据包的发送数据包的接收固定包长的hex数据包接收可变包长的文本数据包接收 二、实例部分固定包长的hex数据包接收连接线路代码实现 可变包长的文本数据包接…

【InternLM 实战营笔记】基于 InternLM 和 LangChain 搭建你的知识库

准备环境 bash /root/share/install_conda_env_internlm_base.sh InternLM升级PIP # 升级pip python -m pip install --upgrade pippip install modelscope1.9.5 pip install transformers4.35.2 pip install streamlit1.24.0 pip install sentencepiece0.1.99 pip install a…

MySQL 多表查询 连接查询 外连接

介绍 MySQL 多表查询 连接查询 内连接 外连接分为两种,左外和右外连接, 左外:相当于查询表1(左表)的所有数据 包含 表1和表2交集部分的数据,完全包含左表的数据 右外:相当于查询表2(右表)的所有数据 包含 表1和表2交集部分的数据…

比特币暴涨逼近历史最高点;阿里云全线降价20%丨 RTE 开发者日报 Vol.155

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE (Real Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

C++的晨曦之旅:开启编程的新篇章

个人主页:日刷百题 系列专栏:〖C/C小游戏〗〖Linux〗〖数据结构〗 〖C语言〗 🌎欢迎各位→点赞👍收藏⭐️留言📝 ​ ​ 一、 命名空间 在 C/C 中,变量、函数和后面要学到的类都是大量存在的&#xff0…

div在vue的组件之中如何设置这个字体的颜色和样式大小

在Vue组件中设置<div>的字体颜色和样式大小可以通过两种主要方式实现&#xff1a;通过内联样式&#xff08;inline styles&#xff09;或者通过CSS类&#xff08;CSS classes&#xff09;。 使用内联样式 在Vue模板中直接在元素上使用style属性来设置样式。这种方法适用…

Android Shadow插件化框架分析与集成(一)

一、shadow源码导入及分析 1、下载项目源码 2、导入到Android studio 3、设置jdk及sdk版本 包/应用描述类型sample-constant公共字符串常量libsample-host宿主应用applicationsample-host-lib宿主应用依赖包libsample-manager是插件管理器的动态实现,主要负责加载插件和安装…

【Android开发】01-第一个Android APP

一、改MainActivity class MainActivity : AppCompatActivity() {/*因Android的app有生命周期&#xff0c;故入口是OnCreate而不是main函数*/override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main…

071:vue+cesium 实现下雨效果

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

【笔记】深度学习入门:基于Python的理论与实现(六)

深度学习 深度学习是加深了层的深度神经网络 加深网络 本节我们将这些已经学过的技术汇总起来&#xff0c;创建一个深度网络&#xff0c;挑战 MNIST 数据集的手写数字识别 向更深的网络出发 基于33的小型滤波器的卷积层。激活函数是ReLU。全连接层的后面使用Dropout层。基…

初阶数据结构:栈与队列的扩展补充

目录 1. 栈与队列练习题1.1 栈的括号匹配问题1.2 用队列来实现栈1.3 用栈来实现队列1.4 扩展&#xff1a;循环队列 1. 栈与队列练习题 1.1 栈的括号匹配问题 题目信息&#xff1a; 题目链接&#xff1a; 括号匹配问题 思路&#xff1a; 利用栈的后进先出特性来实现括号的匹配 …

网络编程day3

1.思维导图 2.TCP机械臂测试 tcpCli.c #include<myhead.h> #define SER_IP "192.168.125.162" //服务器IP #define SER_PORT 7777 //服务器端口#define CLI_IP "192.168.159.144" //客户端IP #define CLI_PORT 9999 //客户端端口号int…

底层自行实现——监督学习算法(1线性回归)

1.1 简单线性回归 1. 简介 简单线性回归&#xff08;SLR - Simple Linear Regression&#xff09;模型可以表示为&#xff1a; Y β 0 β 1 X ϵ Y \beta_0 \beta_1X \epsilon Yβ0​β1​Xϵ Y Y Y&#xff1a;因变量或目标变量。 X X X&#xff1a;自变量或解释变量。…

考取ORACLE数据库OCP的必要性 Oracle数据库

OCP证书是什么&#xff1f; OCP&#xff0c;全称Oracle Certified Professional&#xff0c;是Oracle公司的Oracle数据库DBA&#xff08;Database Administrator&#xff0c;数据库管理员)认证课程。这是Oracle公司针对数据库管理领域设立的一项认证课程&#xff0c;旨在评估和…

网盘拉新项目去哪找平台对接?推荐6个一手渠道接单!

在当今这个充满竞争的时代&#xff0c;网盘项目的寻找与对接成为了许多团队关注的焦点。那么&#xff0c;我们应该如何找到那些既靠谱又有潜力的项目呢&#xff1f;经过深入研究和全网检索&#xff0c;我为大家盘点了6个值得一试的接单渠道&#xff0c;助力网盘推广团队高效寻找…

matlab工具包

matlab安装yalmip和cplex出错 - 知乎 (zhihu.com) Cplex的安装和使用实例-CSDN博客 一条龙教程&#xff1a;Matlab下使用yalmip(工具箱)cplex&#xff08;求解器&#xff09;_使用yalmip和cplex求解器进行建模和求解的步骤如下:-CSDN博客 啊啊啊&#xff0c;好开心&#xff…

Mint_21.3 drawing-area和goocanvas的FB笔记(二)

一、goocanvas安装 Linux mint 21.3 库中带有 libgoocanvas-2.0-dev, 用sudo apt install libgoocanvas-2.0-dev 安装&#xff0c;安装完成后&#xff0c;检查一个 /usr/lib/x86_64-linux-gnu 下是否有libgoocanvas.so的软件链接。如果没有&#xff0c;或是 .so.x 等类似后面…

事务Transaction简写为tx的原因

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl Transaction简写的由来 数据库事务Transaction通常被简写为tx。让人疑惑的是&#xff1a;这个单词本身没有字母x为何又将其简写成了tx呢&#xff1f; 第一种可能 Transac…

“平民化”非结构数据处理

在全球信息产业高速发展的背景下&#xff0c;IDC预测&#xff0c;2018 到 2025 年之间&#xff0c;全球产生的数据量将会从 33 ZB 增长到 175 ZB&#xff0c; 复合增长率27%&#xff0c;其中超过 80%的数据都会是处理难度较大的非结构化数据&#xff0c;如文档、文本、图形、图…

javascript中的class基础入门(1)

javascript中的class start 最近在学习&#xff1a;cocos &#xff0c;准备自己制作小游戏。过程中遇到不少疑问&#xff0c;我计划将这些疑问写成一个系列博客&#xff0c;用以记录。这篇文章来了解 class 1. 前言 1. 前言 本文对应版本 Cocos Creator 3.8。Cocos Creato…