复合查询

2023-10-31

复合查询

 

1、单表查询

  • 查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J

        select empno,ename,sal,job from emp 

        where (sal > 500 or job='MANAGER') and ename like 'J%';

  • 按照部门号升序而雇员的工资降序排序

        select deptno,sal,ename from emp 

        order by deptno asc, sal desc;

  • 使用年薪进行降序排序

        select ename, sal*12+ifnull(comm, 0) as nianxin from emp 

        order by nianxin desc;

  • 显示工资最高的员工的名字和工作岗位

        select ename, job, sal from emp 

        where sal = (select max(sal) from emp);

  • 显示工资高于平均工资的员工信息

        select ename, job, sal from emp 

        where sal > (select avg(sal) from emp);

  • 显示每个部门的平均工资和最高工资

        select max(sal), format(avg(sal), 2), deptno from emp 

        group by deptno;

  • 显示平均工资低于2000的部门号和它的平均工资

        select deptno, avg(sal) from emp 

        group by deptno having avg(sal) < 2000;

  • 显示每种岗位的雇员总数,平均工资

        select count(empno), avg(sal), job from emp 

        group by job;

 

2、多表查询

  有三张表EMP,DEPT,SALGRADE

  • 自连接--自连接是指在同一张表连接查询

    • 显示雇员名、雇员工资以及所在部门的名字

            select emp.ename, emp.sal, dept.dname from emp, dept 

            where emp.deptno=dept.deptno;

  • 显示部门号为10的部门名,员工名和工资

            select dept.dname, dept.deptno, emp.ename, emp.sal from emp, dept 

            where emp.deptno=dept.deptno and emp.deptno = 10;

  • 显示各个员工的姓名,工资,及工资级别

            select  emp.ename, emp.sal, salgrade.grade from emp, salgrade     

            where sal between losal and hisal;    

  • 显示员工FORD的上级领导的编号和姓名(mgr是员工领导的编号--empno)

            1.select empno, ename from emp 

                where empno=(select mgr from emp where ename='FORD');    

            2.select l.empno, l.ename from emp as l, emp as w 

                where l.empno=w.mgr and  w.ename='FORD';

  • 子查询---子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询

  •  单行子查询---返回一行记录的子查询

    • 显示SMITH同一部门的员工姓名,工作,编号,工资和部门号

                        select ename,job,empno,sal,deptno from emp 

                        where deptno=(select deptno from emp where ename='SMITH');

 

  • 多行子查询---返回多行记录的子查询,使用关键字in,all,any

    • in关键字---查询和10号部门的工作相同的雇员的名字,岗位,工资,部门号,但是不包含10自己的

                        select ename, job, sal, deptno from emp 

                        where job in (select job from emp where deptno=10);

    • all关键字---显示工资比部门30的所有员工的工资高的员工的姓名、工资和部门号

                        1.select ename,sal,deptno from emp 

                            where sal > all(select sal from emp where deptno=30);            //子查询单行

                        2.select ename,sal,deptno from emp 

                            where sal > (select max(sal) from emp where deptno=30);        //子查询多行

    • any关键字---显示工资比部门30的任意员工的工资高的员工的姓名、工资和部门号

                        1.select ename,sal,deptno from emp 

                            where sal > any(select sal from emp where deptno=30);

                        2.select ename,sal,deptno from emp 

                            where sal > (select min(sal) from emp where deptno=30);

 

  • 多列子查询---查询返回多个列数据的子查询语句

    • 查询和SMITH的部门和岗位完全相同的所有雇员,不含SMITH本人

                        select ename,sal,empno,deptno,job from emp 

                        where (deptno, job)=

                        (select deptno,job from emp where ename='SMITH' and ename<>'SIMTH');

 

  •  在from子句中使用子查询---把一个子查询当做一个临时表使用

    • 显示高于自己部门平均工资的员工的姓名、部门、工资、平均工资

                    每个部门的平均工资表select deptno dt, avg(sal) lsal from emp group by deptno;        //临时表

                        select emp.ename, emp.deptno, emp.sal,  tmp.lsal

                        from emp, (select deptno dt, avg(sal) lsal from emp group by deptno)  tmp

                        where emp.deptno=tmp.dt and sal > tmp.lsal;

    • 查找每个部门工资最高的人的姓名、工资、部门、最高工资

                 每个部门的最高工资表:select deptno dt, max(sal) msal from emp group by deptno;        //临时表

                        select emp.ename, emp.deptno, emp.sal,  tmp.msal

                        from emp, (select deptno dt, max(sal) msal from emp group by deptno)  tmp

                        where emp.deptno=tmp.dt and sal = tmp.msal;

    • 显示每个部门的信息(部门名,编号,地址)和人员数量

           每个部门的人员数量表:select deptno, count(empno) tatal from emp group by deptno;         //临时表

                    1.select dept.dname, dept.deptno, dept.loc, tmp.tatal 

                        from dept, (select deptno, count(empno) tatal from emp group by deptno)  tmp

                        where dept.deptno=tmp.deptno;

                    // 多表查询

                    2.select dept.dname, dept.loc, dept.deptno, count(*) from dept, emp

                        where dept.deptno=emp.deptno

                        group by dept.dname, dept.deptno, dept.loc;        

  • 合并查询

    • 将工资大于2500或职位是MANAGER的人找出来

                select ename from emp where sal > 2500 or job='MANAGER';

                // 1.union all 不去重

                    select ename from emp where sal > 2500 

                    union all

                    select ename from emp where  job='MANAGER';

                // 2.union 去重.当使用该操作符时,会自动去掉结果集中的重复行。

                    select ename from emp where sal > 2500 

                    union 

                    select ename from emp where  job='MANAGER';

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

复合查询 的相关文章

  • 游戏数据存储的四种常用方式

    原文地址 http blog csdn net xiaominghimi article details 6948046 首先向大家说句抱歉 可能一些童鞋看到我的微薄了 我说突然不想写博客了 是Himi的错 我不该发微薄让大家担心的 Him
  • 彻底搞懂JDBC的运行过程

    转载自 https blog csdn net y277an article details 96937010 JDBC的作用 JDBC的全称是Java DataBase Connection 也就是Java数据库连接 我们可以用它来操作关
  • MySql安装版安装最新教程(附错误解决 )

    目录 1 安装版自定义安装 2 问题总结 1 安装版自定义安装 如果需要安装版安装 可参考另一篇博客 MySql压缩版安装最新教程 附错误解决 链接 MySql官网 滑到最下面 上面的是企业版下载 需要付费 我们下载开源的社区版 在这里我下
  • 分页(Paging) / SQL Server / Oracle

    分页 Paging SQL Server Oracle 虽然 DataGrid 控件自己带了一个分页处理机制 但它是将符合查询条件的所有记录读入内存 然后进行分页显示的 随着符合条件的记录数目增多 就会出现运行效率问题 或者至少是资源的利用
  • mysql8安装以及配置、参数优化

    1 配置bin到path 2 mysql解压版本在根目录创建my ini 3 初始化数据库 mysqld initialize console 这里会生成一个初始密码 需要记录下来 否则需要删除datadir目录重新初始化 D dev my
  • MySQL JDBC URL参数

    参数清单 属性名 定义 要求 默认值 版本 Connection Authentication 连接 鉴定 user 连接的用户 No 全部 password 连接时使用的密码 No 全部 socketFactory 驱动程序用于创建与服务
  • 常用数据库 validationQuery 语句

    在配置数据库连接池的时候 有一个选项validationQuery 该选项用来验证数据库连接的有效性 下表是从网上收集的常用数据库的validationQuery语句 数据库 validationQuery Oracle select 1
  • 数据库 SQL 遍历父子关系表(二叉树)获得所有子节点 所有父节点

    数据库 SQL 遍历父子关系表 二叉树 获得所有子节点 所有父节点 创建表 Create Table A IDInt fatherIDInt NameVarchar 10 Insert A Select 1 NULL tt Union Al
  • SQL中根据经纬度计算两点之间的直线距离

    最近接到一个需求获取当前用户的经纬度 然后计算与目标地的的距离 我自己也是看别人的博客学习 自己也做个记录吧 直接放出计算的公式 不想浪费时间的 直接看公式套进去就成 依次是纬度 纬度 经度 round 6378 138 2 ASIN SQ
  • 数据库复习(4) 实体关系模型

    实体集 Entity Sets 是实际存在的事物 可以是抽象的 具有属性 attributes 实体集是具有共同性质的同类实体的集合 实体集的属性类型划分 简单的和复合的 conposite 如名字等等 单值的 多值的 如电话号码等 直接的
  • 你知道什么是DBA吗?

    数据库管理员 英文是Database Administrator 简称DBA 这个职位对不同的人意味着不同的意义 一个小的软件开发工作室和一个分工高度明细的大公司相比 DBA的职责来得更加宽泛一些 一个公司 不管它是自己开发应用软件 还是购
  • 【SQLServer】查询SQLServer执行过的SQL记录

    直接贴代码 SELECT TOP 1000 创建时间 QS creation time 查询语句 SUBSTRING ST text QS statement start offset 2 1 CASE QS statement end o
  • SQL--多表查询(多表联查,如:LEFT JOIN、LEFT JOIN、LEFT JOIN、UNION ALL等)

    1 常见多表连接的三种方式 LEFT JOIN 左连接 查询左表所有数据和右表与左表属性值相等的记录 SELECT FROM TABELONE A LEFT JOIN TABELTWO B ON A id B id RIGHT JOIN 右
  • Oracle数据单实例多实例服务示例

    在我们工作时 有时需要一个oracle实例被不同网段的ip访问 从而需要开通2个或以上的实例服务 如下为例子 listener ora文件内容 listener ora Network Configuration File oracle a
  • 啥是ddl?

    我们在安装软件的时候 经常出现某一个dll文件丢失 无法安装 让人头痛不已 那么到底啥是ddl 还是有度娘好呀 下面是百度百科的词条 数据库模式定义语言DDL Data Definition Language 是用于描述数据库中要存储的现实
  • 什么叫持久化? 为什么持久化?(转)

    1 应用程序层次结构演变 这里本来应该有张描述应用程序结构演变的图 可是CSDN在这里上传不了 所以没有传上来 纵观几十年的计算机应用软件的演变过程 应用程序逐渐由单层体系结构发展为多层体系结构 最初应用软件只是在大型机上的单层应用程序 大
  • Python数据库操作手册

    数据库的操作在现在的Python里面已经变得十分的好用 有了一套API标准 下面的就是讲讲如何的去使用这套框架定义 此框架包含以下部分 模块接口 连接对象 游标对象 DBI辅助对象 数据类型与定义 如何实现的提示 从1 0到2 0的变化 例
  • 【oracle】oracle查询表存储大小和表空间大小

    目录 查看表分配的物理空间大小 查看表实际存储空间大小 查看每个表空间的大小 查看表空间大小及使用率 查看数据库中数据文件信息 查看临时表空间信息 oracle表大小有两种含义 即表分配的空间大小和实际占用的物理空间大小 分配的物理空间大小
  • 【SQL基础】SQL查询语句实例

    参考自 https www w3school com cn sql index asp 下面举实例 员工表 部门表 薪资等级表 附上sql语句 薪资等级表SALGRADE 部门表DEPT 员工表EMP CREATE TABLE DEPT D
  • (转载)我们需要什么样的字段类型

    数据库定义到char类型的字段时 不知道大家是否会犹豫一下 到底选char nchar varchar nvarchar text ntext中哪一种呢 结果很可能是两种 一种是节俭人士的选择 最好是用定长的 感觉比变长能省些空间 而且处理

随机推荐

  • 2023河南ccpc省赛总结(附带部分题题解)

    前言 本人大一萌新 第一次打ccpc线下赛 和队友A3题 收获铜牌一枚 感受到了老师所说的氛围感 因为F题滑动窗口优化不会写 坤础忘了 痛失银牌 来年再战 题目链接 Dashboard 2023 CCPC Henan Provincial
  • Windows 11 首次开机OOBE阶段跳过连接网络及登录微软账户,使用本地账号登录的方法

    2022 11 25更新 以下方法最新版本的Win11 22H1上已失效 最新的方法是在第二步呼出cmd窗口 输入oobe bypassnro 电脑会重启 再次来到连接网络的页面时选择 我没有Internet连接 的选项 就可以跳过联网了
  • Python 装饰器的八种写法

    Hello 装饰器 装饰器的使用方法很固定 先定义一个装饰器 帽子 再定义你的业务函数或者类 人 最后把这装饰器 帽子 扣在这个函数 人 头上 就像下面这样子 def decorator func def wrapper args kw r
  • linux:DOCKERFILE拷贝上级目录无效

    说明 DOCKERFILE中COPY无法识别 所以只能识别当前目录下的路径或者绝对路径 参考 Dockerfile复制上级目录文件 南瓜慢说知识库
  • Linux技巧(一): 查看系统内核/操作系统版本详解

    前言 常规操作 uname r uname a 然后就没有然后了 一起来看一下更全的操作命令吧 一 内核版本查看 1 1 uname r 仅查看内核版本 1 2 uname a 查看内核的详细信息 包含系统别名 创建日期 1 3 cat p
  • KaLi入门基础

    我的博客链接 blog kbai cc 学习KaLi 郑重声明 此文章可能会包含敏感以及危险的命令 命令有风险 回车需谨慎 此文章仅供学习交流与参考使用 禁止运用于任何非法行动或测试中 若有预期之外的后果 将不承担任何责任 再次进行警告与提
  • C++数据结构X篇_10_C++栈的应用-中缀转后缀

    中缀表达式就是我们平时运算表达式 其特点是运算符总是处于两个运算对象之间 但是该表达式计算机处理起来较为麻烦 会将其转写成后缀表达式 后缀表达式也叫逆波兰表达式 后缀表达式的特点是每个运算符都置于两个运算对象之后 此篇的部分内容参考博文地址
  • java求出最长平台的长度,华为机试题目-多最长子串筛选

    问题描述和解决方案 java import java util Scanner 最长平台问题 衍生版 问题描述 给定一个字符串 有字符连续出现 请寻找这些连续字符串中最长的字符串 如果最长的串有多个 请输出ascii最小的 解决方案 先按照
  • 一阶系统开环传递函数表达式_15. 闭环系统的频域性能指标

    时域中我们有几个性能指标 如上升时间 峰值时间 调节时间 超调量等等 进行时域分析和设计我们同样需要知道频域指标 之前讲的Bode plot Nyquist plot 包括根轨迹 都是通过开环传递函数来分析闭环传递函数的稳定性和频率特性 也
  • 计算机网络连接设备的有什么,常用网络连接设备有哪些?

    满意答案 zhjing2107 2014 05 05 采纳率 53 等级 8 已帮助 9962人 网络设备的种类繁多 且与日俱增 基本的网络设备有 计算机 无论其为个人电脑或服务器 集线器 交换机 网桥 路由器 网关 网络接口卡 NIC 无
  • DataWorks 全新发布:增强分析/数据建模个人版等新能力

    阿里云ODPS系列产品以MaxCompute DataWorks Hologres为核心 致力于解决用户多元化数据的计算需求问题 实现存储 调度 元数据管理上的一体化架构融合 支撑交通 金融 科研 等多场景数据的高效处理 是目前国内最早自研
  • 苹果11系统app无法连接服务器地址,iPhone11无法连接app store怎么办?iPhone11连接不上app store解决方法...

    很多网友都遇到过突然自己的app store无法连接 今天给大家介绍一下怎么解决这个问题 主要原因无非3个方面 网络问题 日期问题 网路设置问题 一起了解一下 iPhone11连接不上app store解决方法 将你的手机网络在数据和wif
  • x系列服务器,X系列服务器.xls

    X系列服务器 ibmx系列服务器 ibmx3850x5服务器 xmeye绑定服务器失败 ibmx系列服务器 ibmx3650服务器 x86服务器 我的世界1 8 x服务器 我的世界0 11 x服务器 xshell连接服务器 Power 6
  • 淘宝API开发系列:item_search_shop-获得店铺的所有商品

    为了进行淘宝的API开发 首先我们需要做下面几件事情 1 开发者注册一个账号 2 然后为每个淘宝应用注册一个应用程序键 App Key 3 下载淘宝API的SDK并掌握基本的API基础知识和调用 4 利用SDK接口和对象 传入AppKey或
  • J-Link 安装和配置

    一 安装驱动 直接安装驱动包 JLink Windows V616a exe 安装完成后插入J Link硬件 可以在硬件设备中 USB那看到J Link 二 KEIL配置 1 target 那右键进入option 2 debug选项中use
  • python对数据库操作——executemany

    1 executemany 方法 pymysql的executemany 方法 在一次数据库的IO操作中 可以插入多条记录 在大量数据传输中 它相比于execute 方法 不仅方便 而且提高了效率 2 语法 executemany sql
  • 使用python3编译并部署solidity合约

    我c了 Mac配置半天一直报错 windows随便配置就ok Os Windows PythonVersion 3 9 8 python3 10会报错 建议不要使用python3 10 1 安装py solc pip3 install py
  • 企业微信客户端调试

    1 下载企业微信电脑端 2 下载调试工具 调试工具 名称 devtools resources pak 不能改变 3 将调试工具放入企业微信对应目录 4 打开企业微信 快捷键 ctrl alt shift D 开启调试模式后进入网页
  • 将excel数据格式转成tableau

    import pandas as pd data pd read excel 世界各国人口统计数据 2000 2020 世界银行 xlsx data head print data columns tolist 将上面显示出来的列名列表 选
  • 复合查询

    复合查询 1 单表查询 查询工资高于500或岗位为MANAGER的雇员 同时还要满足他们的姓名首字母为大写的J select empno ename sal job from emp where sal gt 500 or job MANA