综合练习(二)
目录
列出薪金比 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盘就有了这个文件,内容如下


相关文章:
综合练习(二)
目录 列出薪金比 SMITH 或 ALLEN 多的所有员工的编号、姓名、部门名称、领导姓名、部门人数,以及所在部门的平均工资、最高和最低工资 补充 spool Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 列出薪金比 SMITH 或 AL…...
sql-labs第46关(order by盲注脚本)
一、环境 网上有自己找 二、解释 order by 注入我们看他的true和false来进行注入出来 二、实操 让我们用sort 看看源码 最终我们的id是放到order by后面了 如果我们直接用列去排序 ?sortusername/password username: password: 可以看到顺序是不…...
13款可以轻松上手画图软件推荐
在当今的数字世界里,我们有各种各样的创作工具,尤其是画图软件。所以问题来了:我们应该如何选择许多免费的绘画软件?为了回答这个问题,我们将在本文中分享10个领先的画图软件。每一个都有其独特的特点和优势࿰…...
vue实现商品评分效果(通过插件实现)
Vue.js 实现了一个简单的商品评分功能。用户可以通过点击星星来修改商品的评分,并且评分显示了相应的星星数。 废话不多说,直接上代码 方法一: <template><div><avue-form :model"formData"><avue-form-it…...
SpringBoot 手写 Starter
spring-boot-starter 模块 1.介绍 SpringBoot中的starter是一种非常重要的机制,能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配…...
C++ 学习笔记(Structured bindings)
C 学习笔记(Structured bindings) 这个特性是 C17 引入的,个人认为主要是解决如何让函数返回多个值的问题。在这之前,我们一般用 std::pair 或者 std::tuple 来返回多个值。比如下面的例子: std::tuple<int, int …...
K8S常用kubectl命令汇总(持续更新中)
天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...
加密和签名的区别及应用场景
原文网址:加密和签名的区别及应用场景_IT利刃出鞘的博客-CSDN博客 简介 本文介绍加密和签名的区别及应用场景。 RSA是一种非对称加密算法, 可生成一对密钥(私钥和公钥)。(RSA可以同时支持加密和签名)。 …...
双非二本找实习前的准备day3
学习目标: 每天2-3到简单sql(刷完即止),每天复习代码随想录上的题目3道算法(时间充足可以继续),背诵的八股的问题也在这里记录了 今日碎碎念: 1)偶尔还是贪玩游戏&…...
又挖到宝了!国人团队研发的AI视频工具PixVerse,这么好用居然还完全免费!(强烈推荐)
昨天发了一款国产免费的 AI 绘画工具 Dreamina 的介绍: 居然才发现!字节跳动旗下国产AI绘画工具Dreamina,这么好用居然还免费!(强烈推荐) 发现大家对国产 AI 工具还挺感兴趣的。今天继续帮大家挖国产的 A…...
勒索病毒普通用户防范建议
勒索病毒普通用户防范建议 定期备份存储在计算机上的数据,这样勒索软件感染不会永远破坏您的个人数据。 最好创建两个备份副本:一个存储在云中(记住使用一个自动备份文件的服务),另一个物理存储(便携式硬…...
Zabbix“专家坐诊”第231期问答
问题一 Q:用docker-compose部署zabbix,部署完后如果要修改zabbix的配置应该要改docker-compose文件里的环境变量吧?改了环境变量之后只能重建容器才能生效吗?能不能在不影响已经配好的那些监控项的情况下让新的环境变量生效&#…...
【.NET Core】深入理解IO - FileSteam流
【.NET Core】深入理解IO - FileSteam流 文章目录 【.NET Core】深入理解IO - FileSteam流一、IO流概述二、文件流FileStream2.1 FileStream概述2.2 FileStream检测流位置更改2.3 FileStream构造函数2.4 FileStream常用属性2.5 FileStream.Read方法2.6 FileStream.Write方法2.7…...
CentOS7 Mysql 忘记密码或临时密码进不去时怎么跳过密码进去然后再更改密码
CentOS7 Mysql 忘记密码或临时密码进不去时怎么跳过密码进去然后再更改密码 1、进文件 vi /etc/my.cnf2、加skip-grant-tables设置跳过密码 在[mysqld]下面加 skip-grant-tables3、mysql -u root -p直接回车无密码进去mysql mysql -u root -p3、先更新,不执行这…...
深度学习 精选笔记(8)梯度消失和梯度爆炸
学习参考: 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增),以达到集多方教程的精华于一文的目的。 ③非常推荐上面(学习参考&#x…...
linux操作docker
docker地址 官方地址 centos7安装docker 卸载旧版本docker sudo //在前面表示以管理员权限操作yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine安装docker //安装所需资…...
k8s Pod 进阶(资源限制,健康检查探针详解,启动退出,pod生命周期,)
目录 资源限制 查看资源控制字段 Pod 资源限制方式 Pod 和容器中定义资源请求和限制的具体字段 CPU资源单位 内存资源单位 示例 健康检查(探针) 探针的三种规则 存活探针(Liveness Probe) 就绪探针(Readines…...
SpringBoot整合ActiveMQ步骤
SpringBoot整合ActiveMQ主要涉及以下几个步骤: 添加依赖:在SpringBoot项目的pom.xml文件中添加ActiveMQ的依赖。 <dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-spring</artifactId><ver…...
MySQL的单表和多表查询
我们在前面曾构建过三个用于实验的表格,下面将基于这三个表进行实践。 # 建立一个用于实验的三个表格 mysql> create table emp (-> empno varchar(10),-> ename varchar(50),-> job varchar(50),-> mgr int,-> hiredate timestamp,-&…...
攻防世界例题wp
1.看到_wakeup()函数第一反应要么触发,要么绕过在这里绕过 2.构造payload实例化一个对象后反序列化 3构造脚本如下: 4.因为它是一个绕过的方法所以我们要使用绕过的方法。 5.继续构造payload将上图的1换成2进行绕过 最终的payload为 O:4:"xctf…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...
