综合练习(一)

目录

列出薪金高于部门 30 的所有员工薪金的员工姓名和薪金、部门名称、部门人数

列出与 ALLEN从事相同工作的所有员工及他们的部门名称、部门人数、领导姓名


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

列出薪金高于部门 30 的所有员工薪金的员工姓名和薪金、部门名称、部门人数

● 确定要使用的数据表

emp 表:员工姓名和薪金。

dept 表:部门名称。

emp 表:统计出部门人数。

● 确定已知的关联字段

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

第一步:找到部门 30 所有员工的薪金

SQL> select sal2  from emp3  where deptno=30;SAL
----------16001250125028501500950已选择 6 行。

第二步:以上查询中返回的是多行单列的数据,

那么此时就可以使用 3 种判断符判断:IN、ANY、ALL。

根据要求需要找到所有员工,因此使用“>ALL”。

SQL> select e.ename,e.sal2  from emp e3  where e.sal > all(4      select sal from emp where deptno=30);ENAME                       SAL
-------------------- ----------
JONES                      2975
FORD                       3000
KING                       5000

第三步:要找到部门的信息,自然在 from子句之后引入 dept 表,而后要消除笛卡尔积。用内连接

SQL> select e.ename,e.sal,d.dname2  from emp e,dept d3  where e.sal > all(4      select sal from emp where deptno=30)5      and e.deptno=d.deptno;ENAME                       SAL DNAME
-------------------- ---------- ----------------------------
JONES                      2975 RESEARCH
FORD                       3000 RESEARCH
KING                       5000 ACCOUNTING

第四步:需要统计出部门人数的信息

思考如下。

如果要进行部门的人数统计,那么一定要按照部门分组

在使用分组的时候,SELECT 子句只能够出现分组字段与统计函数

此时就出现了一个矛盾,因为 select 子句里面有其他字段,所以不可能直接使用 group by 分组,所以可以考虑利用子查询分组,即在 from子句之后使用子查询先进行分组统计,而后将临时表继续采用多表查询操作

select e.ename,e.sal,d.dname,temp.count
from emp e,dept d,(select deptno dno,count(empno) countfrom empgroup by deptno) temp
where e.sal > all(select sal from emp where deptno=30)and e.deptno=d.deptnoand d.deptno=temp.dno;

结果如下 

SQL> select e.ename,e.sal,d.dname,temp.count2  from emp e,dept d,(3  select deptno dno,count(empno) count4      from emp5      group by deptno) temp6  where e.sal > all(7      select sal from emp where deptno=30)8      and e.deptno=d.deptno9      and d.deptno=temp.dno;ENAME                       SAL DNAME                             COUNT
-------------------- ---------- ---------------------------- ----------
FORD                       3000 RESEARCH                              3
JONES                      2975 RESEARCH                              3
KING                       5000 ACCOUNTING                            3

列出与 ALLEN从事相同工作的所有员工及他们的部门名称、部门人数、领导姓名

确定要使用的数据表

emp 表:员工信息

dept 表:部门名称

emp 表:领导信息

确定已知的关联字段

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

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

 第一步:没有 ALLEN的工作就无法知道哪个员工满足条件,需要找到 ALLEN的工作

SQL> select job2  from emp3  where ename='ALLEN';JOB
------------------
SALESMAN

第二步:以上的查询返回的是单行单列,所以只能够在 where子句或者是 having子句中使用,根据现在的需求需在 where子句中使用,对所有的员工信息进行筛选

SQL> select e.empno,e.ename,e.job2  from emp e3  where job=(4  select job from emp where ename='ALLEN');EMPNO ENAME                JOB
---------- -------------------- ------------------7499 ALLEN                SALESMAN7521 WARD                 SALESMAN7654 MARTIN               SALESMAN7844 TURNER               SALESMAN

第三步:如果不需要重复信息,可以删除 ALLEN

SQL> select e.empno,e.ename,e.job2  from emp e3  where job=(4  select job from emp where ename='ALLEN')5  and e.ename<>'ALLEN';EMPNO ENAME                JOB
---------- -------------------- ------------------7521 WARD                 SALESMAN7654 MARTIN               SALESMAN7844 TURNER               SALESMAN

第四步:部门名称只需要加入 dept 表即可

SQL> select e.empno,e.ename,e.job,d.dname2  from emp e,dept d3  where job=(4  select job from emp where ename='ALLEN')5  and e.ename<>'ALLEN'6  and e.deptno=d.deptno;EMPNO ENAME                JOB                DNAME
---------- -------------------- ------------------ ----------------------------7521 WARD                 SALESMAN           SALES7654 MARTIN               SALESMAN           SALES7844 TURNER               SALESMAN           SALES

第五步:此时的查询不可能直接使用 group by 进行分组,所以需要使用子查询实现分组

SQL> select e.empno,e.ename,e.job,d.dname,temp.count2  from emp e,dept d,(3  select deptno dno,count(empno) count4  from emp5  group by deptno) temp6  where job=(7  select job from emp where ename='ALLEN')8  and e.ename<>'ALLEN'9  and e.deptno=d.deptno10  and d.deptno=temp.dno;EMPNO ENAME                JOB                DNAME                             COUNT
---------- -------------------- ------------------ ---------------------------- ----------7521 WARD                 SALESMAN           SALES                                 67654 MARTIN               SALESMAN           SALES                                 67844 TURNER               SALESMAN           SALES                                 6

第六步:找到对应的领导信息,直接使用自身关联

SQL> select e.empno,e.ename,e.job,d.dname,temp.count,m.ename2  from emp e,dept d,(3  select deptno dno,count(empno) count4  from emp5  group by deptno) temp,emp m6  where e.job=(7  select job from emp where ename='ALLEN')8  and e.ename<>'ALLEN'9  and e.deptno=d.deptno10  and d.deptno=temp.dno11  and e.mgr=m.empno;EMPNO ENAME                JOB                DNAME                             COUNT ENAME
---------- -------------------- ------------------ ---------------------------- ---------- --------------------7654 MARTIN               SALESMAN           SALES                                 6 BLAKE7521 WARD                 SALESMAN           SALES                                 6 BLAKE7844 TURNER               SALESMAN           SALES                                 6 BLAKE

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

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

相关文章

搭建LNMP环境并配置个人博客系统

LNMP是Linux&#xff08;操作系统&#xff09;、Nginx&#xff08;Web服务器&#xff09;、MySQL&#xff08;数据库&#xff09;和PHP&#xff08;脚本解释器&#xff09;的组合&#xff0c;常用于部署高性能的动态网站&#xff0c;如WordPress等博客平台 一、安装Linux操作系…

【论文精读】DINOv2

摘要 学习与特定任务无关的预训练表示已经成为自然语言处理的标准&#xff0c;这些表示不进行微调&#xff0c;即可在下游任务上明显优于特定任务模型的性能。其主要得益于使用无监督语言建模目标对大量原始文本进行预训练。 遵循NLP中的这种范式转变&#xff0c;以探索计算机视…

【文生视频】Diffusion Transformer:OpenAI Sora 原理、Stable Diffusion 3 同源技术

文生视频 Diffusion Transformer&#xff1a;Sora 核心架构、Stable Diffusion 3 同源技术 Sora 网络结构提出背景输入输出生成流程变换器的引入Diffusion Transformer (DiT)架构Diffusion Transformer (DiT)总结 OpenAI Sora 设计思路阶段1: 数据准备和预处理阶段2: 架构设计阶…

单片机精进之路-9ds18b20温度传感器

ds18b20复位时序图&#xff0c;先将b20的数据引脚拉低至少480us&#xff0c;然后再将数据引脚拉高15-60us&#xff0c;再去将测传感器的数据引脚是不是变低电平并保持60-240us&#xff0c;如果是&#xff0c;则说明检测到温度传感器&#xff0c;并正常工作。需要在240us后才能检…

K8S存储卷与PV,PVC

一、前言 Kubernetes&#xff08;K8s&#xff09;中的存储卷是用于在容器之间共享数据的一种机制。存储卷可以在多个Pod之间共享数据&#xff0c;并且可以保持数据的持久性&#xff0c;即使Pod被重新调度或者删除&#xff0c;数据也不会丢失。 Kubernetes支持多种类型的存储卷…

宝塔FTP服务设置并结合cpolar内网穿透实现远程传输文件

文章目录 1. Linux安装Cpolar2. 创建FTP公网地址3. 宝塔FTP服务设置4. FTP服务远程连接小结 5. 固定FTP公网地址6. 固定FTP地址连接 宝塔FTP是宝塔面板中的一项功能&#xff0c;用于设置和管理FTP服务。通过宝塔FTP&#xff0c;用户可以创建FTP账号&#xff0c;配置FTP用户权限…

免费的Git图形界面工具sourceTree介绍

阅读本文同时请参阅-----代码库管理工具Git介绍 sourceTree是一款免费的Git图形界面工具&#xff0c;它简化了Git的使用过程&#xff0c;使得开发者可以更加方便地下载代码、更新代码、提交代码和处理冲突。下面我将详细介绍如何使用sourceTree进行这些操作。 1.下载和…

【Vue3】学习computed计算属性

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

WEB漏洞 逻辑越权之支付数据篡改安全

水平越权 概述&#xff1a;攻击者尝试访问与他拥有相同权限的用户的资源 测试方法&#xff1a;能否通过A用户操作影响到B用户 案例&#xff1a;pikachu-本地水平垂直越权演示-漏洞成因 1&#xff09;可以看到kobe很多的敏感信息 2&#xff09;burp抓包&#xff0c;更改user…

光伏预测 | Matlab基于CNN-SE-Attention-ITCN的多特征变量光伏预测

光伏预测 | Matlab基于CNN-SE-Attention-ITCN的多特征变量光伏预测 目录 光伏预测 | Matlab基于CNN-SE-Attention-ITCN的多特征变量光伏预测预测效果基本描述模型简介程序设计参考资料 预测效果 基本描述 Matlab基于CNN-SE-Attention-ITCN的多特征变量光伏预测 运行环境: Matla…

【rust】10 project、crate、mod、pub、use、项目目录层级组织、概念和实战

文章目录 一、项目目录层级组织概念1.1 cargo new 创建同名 的 Project 和 crate1.2 多 crate 的 package1.3 mod 模块1.3.1 创建嵌套 mod1.3.2 mod 树1.3.3 用路径引用 mod1.3.3.1 使用绝对还是相对? 1.3.4 代码可见性1.3.4.1 pub 关键字1.3.4.2 用 super 引用 mod1.3.4.3 用…

[MYSQL数据库]--mysql的基础知识

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、数据库…

linux 文本编辑命令【重点】

目录 vi&vim介绍 vim安装 vim使用 查找命令 find grep 文本编辑的命令&#xff0c;主要包含两个: vi 和 vim vi&vim介绍 作用: vi命令是Linux系统提供的一个文本编辑工具&#xff0c;可以对文件内容进行编辑&#xff0c;类似于Windows中的记事本 语法: vi file…

android开发书籍推荐,android面试复习

笼统来说&#xff0c;中年程序员容易被淘汰的原因其实不外乎三点。 1、输出能力已到顶点。这个人奋斗十来年了&#xff0c;依旧碌碌无为&#xff0c;很明显这人的天花板就这样了&#xff0c;说白了&#xff0c;天赋就这样。 2、适应能力越来越差。年纪大&#xff0c;有家庭&…

双指针问题(Java编写)

日升时奋斗&#xff0c;日落时自省 目录 一、移动零 二、盛水最多的容器 三、快乐数 四、复写零 五、三数之和 六、有效三角形的个数 七、四数之和 一、移动零 题目来源&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目主要内容就是将数组中所有的零移动到…

【Go-Zero】测试API查询信息无法返回数据库信息与api、rpc文件编写规范

【Go-Zero】测试API查询信息无法返回数据库信息与api、rpc文件编写规范 大家好 我是寸铁&#x1f44a; 总结了一篇测试API查询信息无法返回数据库信息与api、rpc文件编写规范的文章✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 问题背景 大家好&#xff0c;我是寸铁&#xff01…

浅析扩散模型与图像生成【应用篇】(二)——ADM

2. Diffusion Models Beat GANs on Image Synthesis 该文基于扩散模型主要做了两方面的工作&#xff1a;一是通过多种方式优化改进了UNet网络结构以提升扩散模型的生成效果&#xff1b;二是提出一种类别引导的条件生成方法&#xff0c;通过在多个数据集上的实验结果表明&#x…

NerfStudio安装及第一个场景重建

NerfStudio文档是写在windows和linux上安装&#xff0c;本文记录Linux安装的过程&#xff0c;且我的cuda是11.7 创建环境 conda create --name nerfstudio -y python3.8 conda activate nerfstudio python -m pip install --upgrade pip Pytorch要求2.0.1之后的,文档推荐cud…

【论文阅读】深度学习在过冷沸腾气泡动力学分割中的应用

Application of deep learning for segmentation of bubble dynamics in subcooled boiling 深度学习在过冷沸腾气泡动力学分割中的应用 期刊信息&#xff1a;International Journal of Multiphase Flow 2023 级别&#xff1a;EI检索 SCI升级版工程技术2区 SCI基础版工程技术3区…

代码随想录刷题笔记-Day25

1. 分割回文串 131. 分割回文串https://leetcode.cn/problems/palindrome-partitioning/ 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 示例 1&#xf…