返回顶部
首页 > 资讯 > 数据库 >MySQL子查询的使用详解上篇
  • 569
分享到

MySQL子查询的使用详解上篇

2024-04-02 19:04:59 569人浏览 安东尼
摘要

目录前言需求分析与问题解决子查询的基本使用子查询的分类单行子查询HAVING中的子查询非法使用子查询多行子查询前言 子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从Mysql 4.1开始引入。 sq

前言

子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从Mysql 4.1开始引入。

sql 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要从结果集中获取数据,或者 需要从同一个表中先计算得出一个数据结果,然后与这个数据结果(可能是某个标量,也可能是某个集 合)进行比较。

需求分析与问题解决

MySQL子查询的使用详解上篇

#方式一:
SELECT salary
FROM employees
WHERE last_name = 'Abel';
SELECT last_name , salary
FROM employees
WHERE salary > 1 1 000 ;
#方式二:自连接
SELECT e2 .last_name , e2 . salary
FROM employees e1 , employees e2
WHERE e1.last_name = ' Abel '
AND e1. ` salary ` < e2. ` salary `
#方式三:子查询
SELECT last_name,salary
FROM employees
WHERE salary > (
SELECT salary
FROM employees
WHERE last_name = 'Abel'
);

子查询的基本使用

子查询的基本语法结构

MySQL子查询的使用详解上篇

子查询(内查询)在主查询之前一次执行完成。

子查询的结果被主查询(外查询)使用 。

注意事项

子查询要包含在括号内

将子查询放在比较条件的右侧

单行操作符对应单行子查询,多行操作符对应多行子查询

子查询的分类

分类方式1:

我们按内查询的结果返回一条还是多条记录,将子查询分为 单行子查询 、 多行子查询 。

MySQL子查询的使用详解上篇

分类方式2:

我们按内查询是否被执行多次,将子查询划分为 相关(或关联)子查询 和 不相关(或非关联)子查询 。子查询从数据表中查询了数据结果,如果这个数据结果只执行一次,然后这个数据结果作为主查询的条件进行执行,那么这样的子查询叫做不相关子查询。

同样,如果子查询需要执行多次,即采用循环的方式,先从外部查询开始,每次都传入子查询进行查询,然后再将结果反馈给外部,这种嵌套的执行方式就称为相关子查询。

单行子查询

MySQL子查询的使用详解上篇

代码示例

题目:查询工资大于149号员工工资的员工的信息

MySQL子查询的使用详解上篇

题目:返回job_id与141号员工相同,salary比143号员工多的员工姓名,job_id和工资

SELECT last_name, job_id, salary
FROM employees
WHERE job_id =
        (SELECT job_id
        FROM employees
        WHERE employee_id = 141)
AND salary >
        (SELECT salary
        FROM employees
        WHERE employee_id = 143);

题目:返回公司工资最少的员工的last_name,job_id和salary

SELECT last_name, job_id, salary
FROM employees
WHERE salary =
(SELECT MIN(salary)
FROM employees);

HAVING中的子查询

显式员工的employee_id,last_name和location。其中,若员工department_id与location_id为1800的department_id相同,则location为’Canada’,其余则为’USA’。

SELECT employee_id, last_name,
(CASE department_id
WHEN
(SELECT department_id FROM departments
WHERE location_id = 1800)
THEN 'Canada' ELSE 'USA' END) location
FROM employees;

非法使用子查询

SELECT employee_id, last_name
FROM employees
WHERE salary =
(SELECT MIN(salary)
FROM employees
GROUP BY department_id);

MySQL子查询的使用详解上篇

多行子查询

也称为集合比较子查询

内查询返回多行

使用多行比较操作符

多行比较操作符

MySQL子查询的使用详解上篇

代码示例

题目:返回其它job_id中比job_id为‘IT_PROG’部门任一工资低的员工的员工号、姓名、job_id 以及salary

MySQL子查询的使用详解上篇

题目:返回其它job_id中比job_id为‘IT_PROG’部门所有工资都低的员工的员工号、姓名、job_id以及id

MySQL子查询的使用详解上篇

题目:查询平均工资最低的部门id

SELECT department_id
FROM employees
GROUP BY department_id
HAVING AVG(salary) <= ALL (
        SELECT AVG(salary) avg_sal
        FROM employees
        GROUP BY department_id)
SELECT department_id
FROM employees
GROUP BY department_id
HAVING AVG(salary) = (
SELECT MIN(avg_sal)
FROM (
        SELECT AVG(salary) avg_sal
        FROM employees
        GROUP BY department_id
        ) dept_avg_sal
)

到此这篇关于mysql子查询的使用详解上篇的文章就介绍到这了,更多相关MySQL子查询内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL子查询的使用详解上篇

本文链接: https://lsjlt.com/news/33927.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL子查询的使用详解上篇
    目录前言需求分析与问题解决子查询的基本使用子查询的分类单行子查询HAVING中的子查询非法使用子查询多行子查询前言 子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从mysql 4.1开始引入。 SQ...
    99+
    2024-04-02
  • MySQL子查询的使用详解下篇
    目录相关子查询EXISTS与NOT EXISTS关键字相关子查询 相关子查询执行流程 如果子查询的执行依赖于外部查询,通常情况下都是因为子查询中的表用到了外部的表,并进行了条件关联,因此每执行一次外部查询,子查询都要重新...
    99+
    2024-04-02
  • MySQL子查询详解(单行子查询、多行子查询与相关子查询)
    目录0.概念1.需求分析与问题解决1.1提出具体问题:1.2 子查询的基本使用: 子查询的基本语法结构:1.3 子查询的分类2.单行子查询2.1实例:2.2空值问题2.3非法使用子查...
    99+
    2024-04-02
  • mysql详细分析讲解子查询的使用
    出现在其他语句中的 select 语句,称为子查询或内查询;外部的查询语句,称为主查询或 外查询 .  -- 子查询 -- 查询的条件来自于另一查询的结果 SEL...
    99+
    2024-04-02
  • 实例详解mysql子查询
    子查询分类 按返回结果集分类 子查询按返回结果集的不同分为4种:表子查询,行子查询,列子查询和标量子查询。 表子查询:返回的结果集是一个行的集合,N行N列(N>=1)。表子查询经常用于父查询的FROM子句中。 ...
    99+
    2022-05-19
    MySQL 查询 MySQL 子查询
  • MySQL:子查询(全面详解)
    MySQL:子查询 前言一、需求分析与问题解决1、实际问题2、子查询的基本使用3、子查询的分类 二、单行子查询1、单行比较操作符2、代码示例3、HAVING 中的子查询4、CASE中的子查询5、子查询中的空值问题6、非法...
    99+
    2023-08-16
    mysql 数据库
  • MySql中子查询内查询示例详解
      西北望乡何处是,东南见月几回圆。 月亮又慢悠悠的挂上了天空,趁着睡前梦呓,我就带领各位可爱的读者们探索MySql最后的子查询部分。 说明:有些查询结果出来结果截图与题目要求不一样会出现多余的字段是为了方便展示结果...
    99+
    2022-05-25
    MySql子查询 mysql 内查询
  • MySQL基础篇 | 连接查询、子查询(嵌套)
    ✅作者简介:大家好我是@每天都要敲代码,希望一起努力,一起进步! 📃个人主页:@每天都要敲代码的个人主页 🔥系列专栏:MySQL专栏 目录 一:连接查询 1. 连接查询原理以及笛卡尔积现象 2. 内连接...
    99+
    2023-10-23
    数据库 sql
  • MySQL实例讲解子查询的使用
    目录子查询-嵌套查询原始查询方法自连接子查询子查询分类单行子查询子查询的编写思路HAVING中的子查询CASE中的子查询子查询中的空值问题多行子查询多行比较操作符相关子查询EXISTS与NOT EXISTS 关键...
    99+
    2023-03-02
    MySQL子查询语句 MySQL子查询写法
  • SQLServer的子查询详解
    目录一、子查询基础知识二、子查询规则三、限定子查询中的列名四、子查询的多层嵌套五、相关子查询六、子查询类型总结一、子查询基础知识 子查询是嵌套在SELECT、INSERT、U...
    99+
    2023-05-15
    SQL Server子查询语句 SQL Server子查询
  • 详解MySQL子查询(嵌套查询)、联结表、组合查询
    一、子查询 MySQL 4.1版本及以上支持子查询 子查询:嵌套在其他查询中的查询。 子查询的作用: 1、进行过滤: 实例1:检索订购物品TNT2的所有客户的ID = + 一般,在WHERE...
    99+
    2024-04-02
  • mysql子查询怎么使用
    这篇文章主要讲解了“mysql子查询怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql子查询怎么使用”吧!出现在其他语句中的 select 语句,称为子查询或内查询;...
    99+
    2023-06-30
  • MySQL如何在查询中使用子查询
    MySQL中可以在查询中使用子查询来实现更复杂的查询逻辑。子查询是一个嵌套在主查询中的查询语句,通常用于获取主查询中某些条件的结果,...
    99+
    2024-03-06
    MySQL
  • MySQL总结(十一)子查询-详解
    子查询 1. 什么是子查询 -- 需求:查询开发部中有哪些员工 select * from emp; -- 通过两条语句查询 select id from dept where name="开发部" ; ...
    99+
    2020-06-24
    MySQL总结(十一)子查询-详解
  • MySQL子查询操作实例详解
    本文实例总结了MySQL子查询操作。分享给大家供大家参考,具体如下: 定义两个表tb1和tb2 CREATE table tbl1 ( num1 INT NOT NULL); CREATE table ...
    99+
    2024-04-02
  • MySQL教程子查询示例详解
    目录1、什么是子查询?2、子查询可以出现的位置有哪些?3、where子查询4、from后面使用子查询。(太重要了)1、什么是子查询? 当一个查询是另外一个查询的一部分时,我...
    99+
    2024-04-02
  • SQL Server的子查询详解
    目录一、子查询基础知识二、子查询规则三、限定子查询中的列名四、子查询的多层嵌套五、相关子查询六、子查询类型总结一、子查询基础知识 子查询是嵌套在SELECT、INSERT、UPDATE、DELETE语句中或另一个...
    99+
    2023-04-12
    SQL Server子查询语句 SQL Server子查询
  • Mysql---子查询的三种查询方式( 表子查询,条件子查询,列中子查询)
    mysql子查询 子查询分为: 列中子查询 单列单行表子查询 必须有别名条件子查询 单行单列 多行单列 下列示例表结构: grade表: result表: student表: subject表:...
    99+
    2023-09-04
    mysql sql 数据库
  • mysql连接查询、联合查询、子查询原理与用法实例详解
    本文实例讲述了mysql连接查询、联合查询、子查询原理与用法。分享给大家供大家参考,具体如下: 本文内容: 连接查询 联合查询 子查询 from子查询 where子查询 ...
    99+
    2022-05-12
    mysql 连接查询 联合查询 子查询
  • 如何使用mysql连接查询、联合查询、子查询
    这篇文章主要讲解了如何使用mysql连接查询、联合查询、子查询,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。连接查询:连接查询就是将多个表联合起来查询,连接查询方式有内连接、外...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作