MySQL——复合查询+表的内外连接

news2024/11/20 10:30:38

文章目录

  • 复合查询
    • 基本查询
    • 多表查询
    • 自连接
    • 子查询
      • 1、单行子查询
      • 2、多行子查询
      • 3、多列子查询
      • 4、在from子句中使用子查询😊
      • 5、合并查询结果
        • union
        • union all
  • 表的内连和外连
    • 内连接
    • 外连接
      • 左外连接
      • 右外连接

复合查询

接下来我们就要进行的是多张表里进行查询操作,这也是实际的应用场景使用最多的!

基本查询

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

在这里插入图片描述

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

在这里插入图片描述

  • 使用年薪进行降序排序
    记住要加上奖金哦!

在这里插入图片描述

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

分步查询:
在这里插入图片描述

结合子查询:
在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

多表查询

在这里插入图片描述

在这里插入图片描述

  • 显示雇员名、雇员工资以及所在部门的名字
    因为上面的数据来自EMP和DEPT表,因此要联合查询。

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

自连接

自连接是指在同一张表连接查询
案例:
显示员工FORD的上级领导的编号和姓名(mgr是员工领导的编号–empno)

  • 子查询

在这里插入图片描述

  • 自查询

在这里插入图片描述

子查询

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

1、单行子查询

  • 显示SMITH同一部门的员工

在这里插入图片描述

2、多行子查询

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

3、多列子查询

单行子查询是指子查询只返回单列,单行数据;多行子查询是指返回单列多行数据,都是针对单列而言的,而多列子查询则是指查询返回多个列数据的子查询语句。
案例:查询和SMITH的部门和岗位完全相同的所有雇员,不含SMITH本人。
在这里插入图片描述

4、在from子句中使用子查询😊

子查询语句出现在from子句中。这里要用到数据查询的技巧,把一个子查询当做一个临时表使用。

5、合并查询结果

在实际应用中,为了合并多个select的执行结果,可以使用集合操作符 union,union all。

union

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

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

两种写法:
在这里插入图片描述

union all

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

案例:将工资大于25000或职位是MANAGER的人找出来。
在这里插入图片描述

表的内连和外连

内连接

内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询。

语法:select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件;
备注:前面学习的都是内连接

案例:显示SMITH的名字和部门名称。

前面所学的写法:
在这里插入图片描述

标准的内连接写法:
在这里插入图片描述

外连接

左外连接

如果联合查询,左侧的表完全显示,我们就说是左外连接。
语法:select 字段名 from 表名1 left join 表名2 on 连接条件

案例:

-- 建两张表
create table stux (id int, name varchar(30)); -- 学生表
insert into stux values(1,'jack'),(2,'tom'),(3,'kity'),(4,'nono');

create table exam (id int, grade int); -- 成绩表
insert into exam values(1, 56),(2,76),(11, 8);

查询所有学生的成绩,如果这个学生没有成绩,也要将学生的个人信息显示出来:
在这里插入图片描述

右外连接

如果联合查询,右侧的表完全显示我们就说是右外连接。
语法:select 字段 from 表名1 right join 表名2 on 连接条件;

对stux表和exam表联合查询,把所有的成绩都显示出来,即使这个成绩没有学生与它对应,也要显示出来:
在这里插入图片描述

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

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

相关文章

大数据相关面试题

linux 常见linux高级命令? top、iotopnetstatdf -hjmap -heaptarrpmps -efshell 用过的shell工具? awk Awk 命令详解 - 简书 awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来…

MySQL中的Join连接查询

目录JoinJoin的分类笛卡尔积笛卡尔积出现的原因为什么不推荐有笛卡尔积出现那应该怎么做多表连接Join的使用小表驱动大表小表驱动大表是什么小表驱动大表的好处如何区分哪一个是驱动表和被驱动表Join原理及算法NLJ算法BNLJ算法总结:如何写入高性能的连接查询为什么M…

一阶低通滤波介绍及simulink模型

一阶低通滤波 背景介绍 低通滤波是一种过滤方式,规定低频信号能正常通过,而超过设定临界值的高频信号则被阻隔、减弱。低通滤波可以简单的认为:设定一个频率点,当信号频率高于这个频率时不能通过,在数字信号中&#…

对象图实例解析

总目录链接>> AutoSAR入门和实战系列总目录 文章目录更快、更好、更轻松地学习 UML对象图的目的对象图一览类到对象图示例 - 订单系统基本对象图符号和符号类图与对象图对象图 - 通过示例学习对象图示例 I - 公司结构对象图示例 II - POS对象图示例 III - Writer对象结构…

Java中的Comparator 与 Comparable详解

Comparator VS Comparable1. Comparator1.1 对一维数组进行排序1.2 对二维数组进行排序1.3 对对象数组进行排序2. Comparable3. 二者区别1. Comparator 通过源码发现Comparator是一个接口。 根据compare方法中的注释可以发现方法返回三种类型的值,正数、零、负数&a…

4.1 路由器(华硕 官改/梅林 华为 小米 路由) 使用花生壳 实现远程管理

最近添置了一台华硕的八爪鱼GT AC5300,到手后刷了官改,而里面软件中就提供了花生壳程序,想到花生壳为每个用户提供了两条免费映射(带宽为1mbs,流量为1g/月),所以就打算利用来做一个远程访问。具…

开发手册——一、编程规约_7.控制语句

这篇文章主要梳理了在java的实际开发过程中的编程规范问题。本篇文章主要借鉴于《阿里巴巴java开发手册终极版》 下面我们一起来看一下吧。 1. 【强制】在一个 switch 块内,每个 case 要么通过 break / return 等来终止,要么注释说明程序将继续执行到哪…

CSGO服务器配置全贴纸插件方法教程

CSGO服务器配置全贴纸插件方法教程 关于插件的警告 一定要了解V社对于CSGO社区服务器的规定,全皮肤插件/全手套插件等,在设置了GSLT的情况下,是有可能被封禁GSLT账号的(所以慎用) 配置好服务器之后呢,想安…

uniapp+uView2.0实现自定义动态tabbar

1.需求说明 2.实现原理说明 3.实现过程 3.1集成uView2.0 3.2 自定义tabbar 3.3 vuex定义tabbar共享信息 3.4 tabbar显示个数控制 1.需求说明 要求不同时间显示不同的tabbar.点击不同的tabbar跳转到不同的页面,能随时…

【2021.9.7】记一次exe手动添加shellcode

【2021.9.7】记一次exe手动添加shellcode 文章目录【2021.9.7】记一次exe手动添加shellcode0.大致思路1.获取MessageBox的真实地址VA2.通过OD在代码段添加shellcode3.dump出数据,设置程序OEP4.测试dump出来的exe5.方法总结测试的exe和添加了shellcode的exe:链接&…

【论文简述】PVSNet: Pixelwise Visibility-Aware Multi-ViewStereo Network(arxiv 2020)

一、论文简述 1. 第一作者:Qingshan Xu 2. 发表年份:2020 3. 发表期刊:arxiv 4. 关键词:MVS、3D重建、可见性、代价体、训练策略 5. 探索动机:ETH3D基准测试提供的图像包含强烈的视图变化,这就要求MVS…

刷题笔记4 | 24. 两两交换链表中的节点、19. 删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II

24. 两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 输入:head [1,2,3,4] 输出&#xff1a…

JDBC概述二(JDBC编程+案例展示)

一(JDBC的编程步骤) 1.加载数据库驱动 加载数据库驱动通常使用class类的静态方法forName()来实现,具体实现方式如下: Class.forName(“DriverName”),DriverName就是数…

RuoYi-Flowable-Plus(代码生成)

RuoYi-Flowable-Plus搭建 若依所有扩展项目的代码生成功能都是一样的&#xff0c;RuoYi-Flowable-Plus为例来演示。 模块创建 1.创建新模块ruoyi-student2.编辑RuoYi-Flowable-Plus\pom.xml <dependency><groupId>com.ruoyi</groupId><artifactId>ruoy…

搭建Java环境

使用Java语言开发首先必须搭建好开发环境。 以windows 10为例&#xff0c;进行Java环境搭建分为以下几个步骤 1、下载并安装JDK 2、配置环境变量 1、下载并安装JDK 可以访问网站http://www.oracle.com/index.html进行SDK的下载&#xff08;因网站经常改版&#xff0c;这里就…

python 操作word库docx 增强接口

前言用python 的docx 库操作word完成一些自动化的文档生成工作&#xff0c;但有时候会遇到docx库提供的操作无法直接满足业务上的需求&#xff0c;需要对其进行一些扩展。接口完善实现在指定的文字后面插入指定的文字任务&#xff1a;以下示例需要在文档中的所有 "人生苦短…

Swing进度条演示(传输真实文件)

目录 GIF演示 代码 此示例涵盖的知识点&#xff1a;线程、IO流、File、Swing、Listener、JFrame、JFileDialog、JOptionPane、JProgressBar、Timer GIF演示 代码 package psn.exer.progress;import javax.swing.*; import java.awt.*; import java.io.*; import java.util.U…

【PyTorch】P1 简介

PyTorch 基础PyTorch 简介机器学习框架PyTorch 与 TensorFlow 的核心之争PyTorch生态PyTorch能做什么开发环境选择Pytorch Cuda 安装与疑难解答PyTorch 简介 2002年提出 torch 框架&#xff0c;是通用的机器学习计算框架&#xff0c;支持GPU加速运算&#xff1b; 2011年推出 to…

k-Tree(DP)

k-Tree1、问题2、思路&#xff08;DP&#xff09;3、代码1、问题 2、思路&#xff08;DP&#xff09; 这道题翻译过来就是说&#xff0c;给我们一个k叉树&#xff0c;然后每个点到子节点的边的边权从左到右依次为1到k。然后我们从根节点出发&#xff0c;向下走&#xff0c;我们…

@RequestParam和@PathVariable的用法与区别

PathVariable PathVariable 映射 URL 绑定的占位符带占位符的 URL 是 Spring3.0 新增的功能&#xff0c;该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义通过 PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中&#xff1a;URL 中的 {xxx} 占…