【Hello mysql】 mysql的复合查询 (重点)

2023-11-07

Mysql专栏:@Mysql
本篇博客简介:介绍mysql的复合查询

mysql的复合查询

基本查询回顾

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

在这里插入图片描述

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

在这里插入图片描述

使用年薪进行降序排序

在这里插入图片描述

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

在这里插入图片描述
我们这里使用了两个select语句查询 实际上我们也可以将它们分开先使用一个select语句查询到最高工资是多少 再使用一个语句找和最高工资相同的记录

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

多表查询

在讲解多表查询的具体操作之前 我们首先要明确一个概念

许多张表合并在一起之后会变成什么呢?

答案就是 会变成一张很大的表 本质还是一张表

也就是说 我们的多表查询其实就是在一个比较大的单表里面查询数据罢了

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

在这里插入图片描述

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

在这里插入图片描述

自连接

自连接指的是在同一张表中进行连接查询

我们在某些情况下 需要将一张相同的表进行笛卡尔积

下面是实例

显示员工FORD的上级领导的编号和姓名

思路 我们可以将原本的两张员工表使用笛卡尔积拼接形成一张大的表

之后找到该员工为雇员的记录并且寻找到第一张表中的领导等于第二张表中的雇员的记录

该条记录就记录着ford的上级领导还有编号

在这里插入图片描述

子查询

单行子查询

显示SMITH同一部门的员工

在这里插入图片描述

多行子查询

关于多列子查询主要有三个关键字需要我们理解下 in all any

下面我们用三个题目去理解这三个关键字

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

在这里插入图片描述

总结下 in关键字表示其中有一个相同就符合筛选条件

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

在这里插入图片描述
总结下 all关键字就是比集合里面的所有数据都要高 我们可以理解为大于最大值

  • any关键字;显示工资比部门30的任意员工的工资高的员工的姓名、工资和部门号(包含自己部门
    的员工)

在这里插入图片描述

多列子查询

单行子查询是指子查询只返回单列,单行数据;多行子查询是指返回单列多行数据,都是针对单列而言的,而多列子查询则是指查询返回多个列数据的子查询语句

实际上多列子查询和多行子查询的总体思路几乎没有区别 唯一的区别可能就是语法上 where要加上括号

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

在这里插入图片描述

在from子句中使用子查询

我们在前面介绍过一个概念 由很多张表组成的笛卡尔积 本质上还是一张表

这里还有一个新的概念 我们使用select子句筛选出来的表 本质也是一张表

也就是说之前对于表的各种操作 对筛选出来的表依然适用

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

在这里插入图片描述

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

在这里插入图片描述

合并查询

union

该操作符用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中的重复行。

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

在这里插入图片描述

union all

该操作符用于取得两个结果集的并集。当使用该操作符时,不会去掉重复行。

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

在这里插入图片描述

总结

在这里插入图片描述

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

【Hello mysql】 mysql的复合查询 (重点) 的相关文章

  • mysql 密码 使用 PHP 连接到 MySQL

    在使用 PHP 连接到 MySQL 的教程中 您会看到类似于以下内容的内容 pdo new PDO mysql host localhost dbname mydb myuser mypassword 我在本地主机上有一个以这种方式工作的连
  • 绕过外键约束强制删除mysql

    我试图从数据库中删除除一个表之外的所有表 最终出现以下错误 无法删除或更新父行 外键约束失败 当然 我可以反复试验来看看这些关键约束是什么 并最终删除所有表 但我想知道是否有一种快速方法来强制删除所有表 因为我将能够重新插入那些我想要的表
  • 连接错误 - SQLSTATE[HY000] [2002] 操作超时

    我在从 Windows 2008 R2 应用程序服务器连接到也在 Windows 2008 R2 上运行的 MySQL 服务器时遇到问题 Laravel 应用程序报告错误 exception PDOException with messag
  • 在 MySQL 中查找 varchar 是否包含百分号

    找不到这个问题的答案 在 MySQL 中 如何选择特定列 varchar 包含百分号 的行 where col like escape
  • 如何正确转义 mysql“搜索/喜欢”查询?

    Summary 我目前正在使用 search field LIKE this gt db gt escape like str search string 逃避动态创建的搜索查询 创建的 SQL 语句结果不会产生任何错误 也不会产生任何结果
  • MySQL 中电话号码的最佳数据类型是什么?它的 Java 类型映射应该是什么?

    我正在将 MySQL 与 Spring JDBC 模板一起用于我的 Web 应用程序 我需要存储仅包含数字的电话号码 10 我对使用数据类型的数据类型有点困惑 MySQL 中最适合它的数据类型是什么 为此 Bean POJO 类中的 Jav
  • MySQL将多个表中的记录插入到新表中

    我正在尝试使用另外 2 个表中的记录填充一个新表 period states 是新的 空的 period states id period id sla id period 包含 15 条记录 periods id slas 包含 84 条
  • 无法在 MySQL 中运行查询语法错误意外

    我正在运行工作台 5 2 47 我写了一个很长的程序 用于基本数据检查 如果数据库中不存在记录 则将插入该记录 该过程保存时没有任何问题 但当我尝试运行它时 MySQL 5 5 抛出错误 它很长 里面有很多公司敏感数据 或者我会把它发布在这
  • 'SQLSTATE[HY093]:参数数量无效:绑定变量的数量与令牌数量不匹配'[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我收到 SQLSTATE HY093 的错误 参数编号无效 绑定变量的数量与标记的数量不匹配 if isset POST cada
  • ECHO MYSQL 结果显示空白页 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我知道这一定很简单 但我做不到 我需
  • FIND_IN_SET 具有多个值[重复]

    这个问题在这里已经有答案了 我想从数据库字段搜索多个值 以下是我的查询 SELECT FROM tablename WHERE FIND IN SET 12 13 15 15 category id 我如何搜索它对我不起作用 FIND IN
  • 如何获取列中每个不同值的计数? [复制]

    这个问题在这里已经有答案了 我有一个名为 posts 的 SQL 表 如下所示 id category 1 3 2 1 3 4 4 2 5 1 6 1 7 2 每个类别编号对应一个类别 我将如何计算每个类别出现在帖子中的次数一条 SQL 查
  • 在不使用 PHP 的情况下将 MYSQL 中的表字段更新为其值加上常量

    我想表演一个UPDATE in MYSQL其中我获取一个字段值 添加一个常量并将新值保存在同一字段中 假设我们有一个名为OldValue在一个名为aTable 伪代码可能是 UPDATE aTable SET OldValue OldVal
  • MySQL 和 PHP:多关键字搜索

    我有一个包含逗号分隔关键字的字符串 例如 keywords keyword1 keyword2 keyword3 我的表架构 名为tbl address是这样的 简化的 id INT 11 PRIMARY KEY AUTO INCREMEN
  • PDO 如何在执行 rollBack() 函数之前回滚查询?

    这是我的脚本 try dbh con gt beginTransaction stmt1 dbh conn gt prepare UPDATE activate account num SET num num 1 stmt1 gt exec
  • 无法在 mysql 表中的值中使用破折号(-)[重复]

    这个问题在这里已经有答案了 我一直在尝试从 python 将数据插入 MYSQL 表 我的sql表中的字段是id token start time end time和no of trans 我想存储使用生成的令牌uuid4在令牌栏中 但由于
  • PHP strtotime返回Mysql UNIX_TIMESTAMP的不同值

    我在 stackoverflow 上搜索过帖子 发现了一些类似的帖子 但我认为这是一篇不同的帖子 我的 PHP 和 Mysql 服务器的时区全部设置为 UTC 在表中我使用时间戳字段 值为 2010 11 08 02 54 15 我使用这样
  • Mysql:my.cnf中的修改不生效

    我已经更新了my cnf我的数据库文件包含以下行 max connections 200 之后我停止并启动 mysql 服务以使更改生效 但由于某种原因 此更改不会影响数据库 因为如果我运行 mysql gt select max conn
  • varchar(20) 和 varchar(50) 相同吗?

    我看到评论 如果 varchar 20 列中有 5000 万个 10 到 15 个字符之间的值 而 varchar 50 列中有同样的 5000 万个值 它们将占用完全相同的空间 这就是重点varchar 而不是 char 有人可以告诉我原
  • html 下钻下拉所选值未插入 MYSQL

    我有两个下拉列表 首先从数据库下拉填充 根据第一个下拉列表的选定值从数据库填充第二个下拉列表 document ready function c change function var c1 c selected text if c1 aj

随机推荐

  • 深度学习------tensorflow2.0,keras实现CNN(mnist、cifar2、cifar10:ResNet-34、ResNet-18)

    1 ResNet 34卷积神经网络 cifar10 随着网络的加深 出现了训练集准确率下降 错误率上升的现象 就是所谓的 退化 问题 按理说更深的模型不应当比它浅的模型产生更高的错误率 这不是由于过拟合产生的 而是由于模型复杂时 SGD的优
  • qt day 5

    实现局域网的网络聊天室功能 1 gt 服务器代码 widget h ifndef WIDGET H define WIDGET H include
  • IDEA安装教程(多图预警)

    简介 关于IDEA的介绍 引用自百度百科 IDEA全称 IntelliJ IDEA 是java编程语言开发的集成环境 IntelliJ在业界被公认为最好的java开发工具 尤其在智能代码助手 代码自动提示 重构 J2EE支持 各类版本工具
  • 集简云简化流程模板,轻松实现工作流程自动化

    集简云平台内置大量自动化流程模板 用户可以在 模板中心 搜索应用名称 选择适合自己的场景 直接使用 本期分享集简云自动化工作流程 模板推荐 模板1 小鹅通新增订单后同步到seatable并更新微伴助手用户信息 集成应用 小鹅通 SeaTab
  • [终端配色方案]

    配色方案 一 Iterm2 设置Color Preferences gt Profiles gt Colors Brighten bold text去掉 选择solarized 选择xterm 256color 二 Iterm2 Shell
  • Restful风格

    文章目录 前言 一 Restful风格是什么 二 Restful风格里面的请求方式 1 Get 2 POST 3 PUT 4 DELETE 这四个在项目接口中分别代表的是查 增 改 删 三 Restful风格的Controller如何实现
  • django静态文件无法访问解决方案

    nginx配置如下 For more information on configuration see Official English Documentation http nginx org en docs Official Russi
  • 开发日记2021-17、20周

    2021 4 19 温习了下观察者模式 学习了状态模式 但是感觉状态模式不是太能把握透彻 代码结构不太一样 理解起来有些偏差 写着写着就陷入到了沉思中 总会忘记要把想法记下来 这里就是草稿就是思路演练场 这里写下的东西不需要完美 只要记录下
  • 【Clion+CubeMX开发STM32】(二)创建自己的工程

    目录 新建工程 修改芯片型号 添加自己的文件 将自己的文件添加Cmake项目 修改CMakeLists template txt 烧录程序 编写 cfg文件 编写 cfg文件 新建工程 打开你的Clion 点击新建工程 在左侧找到STM32
  • 期货开户寻找交易确定性

    1 寻找确定性 都说金融是概率游戏 大家都是说胜率有多少 没有谁敢说行情能100 确定 但傅海棠却提出 在特定情况下 能找到100 确定的行情 他的这个观点也一度引起了广泛的争议 傅海棠说 物极必反 必 是100 不是概率 关键是找到那个
  • Unity3D之sprite动画(Animation)的制作

    实例说明 忍者跑酷的player动画制作 这些都是用Sprite做的动画 在prioject面板里的一组sprite里面点击 之后看属性面板的Sprite Editor对这组Sprite进行编辑 下面先编辑一个idle状态的动画 首先选择第
  • 贝叶斯推断及其互联网应用(一)

    贝叶斯推断及其互联网应用 一 投递人 itwriter 发布于 2011 08 25 14 03 评论 6 有1981人阅读 原文链接 收藏 一年前的这个时候 我正在翻译Paul Graham的 黑客与画家 那本书大部分谈的是技术哲学 但是
  • 二、水平管道中CO2气液两相的流量研究

    水平管道中CO2气液两相的流量研究 3 1 引言 在CCS系统的CO2管道运输过程中 由于传输距离较长且受到管道周围环境的影响 管道中的CO2不可避免的会发生相态的改变 产生气液两相CO2流 因此 本研究基于多传感器系统的测量方法 对水平管
  • android hwcomposer 抓取各个显示图层的raw显示数据

    amlogic 平台 void fill color void vaddr int cnt unsigned int p data p data unsigned int vaddr for int i 0x00 i lt 256 1920
  • 服务器---session理论知识

    1 session理论知识 1 1 session何时创建 1 2 session何时销毁 1 session何时创建 Session 机制 session机制是一种服务器端的机制 用来在无状态的HTTP协议下越过多个请求页面来维持状态和识
  • Mac上Pycharm中安装anaconda的pandas和numpy的方法

    1 点击PyCharm菜单栏下的Preferences 2 选择需要安装的project中的Project Interpreter选项 3 选择一个python版本 如红框1 下面会列出已经安装了的Package 这时点击红框2的anaco
  • 【Mac】Mac下SSH免密登录localhost

    1 背景 问题起因参考 mac下ssh 报错 localhost ssh connect to host localhost port 22 Connection refused 为了在MAC上搭建Hadoop standalone 需要配
  • gtx1050ti最稳定的驱动_更新PC电脑的蓝牙驱动方法

    有时候我们需要更新自己的电脑蓝牙版本使我们在特定环境下更好的使用 下面就来讲讲怎么更新蓝牙版本 一 首先我们要查看自己电脑的蓝牙版本 1 右键点击左下方的开始菜单 找到设备管理器 M 2 点开设备管理器 找到蓝牙并右键属性 并查看驱动程序
  • Vue3 中的 @Options,是做什么的?

    Vue3 中的 Options 是做什么的 Options 是个啥 为什么我的项目中会有 Options 或 Component 啥是 类语法风格的组件 Class Style Component Vue Class Component 更
  • 【Hello mysql】 mysql的复合查询 (重点)

    Mysql专栏 Mysql 本篇博客简介 介绍mysql的复合查询 mysql的复合查询 基本查询回顾 查询工资高于500或岗位为MANAGER的雇员 同时还要满足他们的姓名首字母为大写的J 按照部门号升序而雇员的工资降序排序 使用年薪进行