iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql支持子查询吗
  • 467
分享到

mysql支持子查询吗

2024-04-02 19:04:59 467人浏览 薄情痞子
摘要

这篇文章主要介绍了Mysql支持子查询吗的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql支持子查询吗文章都会有所收获,下面我们一起来看看吧。

这篇文章主要介绍了Mysql支持子查询吗的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql支持子查询吗文章都会有所收获,下面我们一起来看看吧。

mysql支持子查询。子查询是指将一个查询语句嵌套在另一个查询语句中,它是MySQL中比较常用的查询方法,通过子查询可以实现多表查询。子查询可以在SELECT、UPDATE和DELETE语句中使用,而且可以进行多层嵌套;在实际开发时,子查询经常出现在WHERE子句中,语法为“WHERE <表达式> <操作符> (子查询)”,子查询必须在括号中关闭。

mysql支持子查询吗

教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

mysql支持子查询。

MySQL中的子查询

子查询是 MySQL 中比较常用的查询方法,通过子查询可以实现多表查询。子查询指将一个查询语句嵌套在另一个查询语句中。子查询可以在 SELECT、UPDATE 和 DELETE 语句中使用,而且可以进行多层嵌套。在实际开发时,子查询经常出现在 WHERE 子句中。

子查询在 WHERE 中的语法格式如下:

WHERE <表达式> <操作符> (子查询)

其中,操作符可以是比较运算符和 IN、NOT IN、EXISTS、NOT EXISTS 等关键字;子查询必须在括号中关闭

1)IN | NOT IN

当表达式与子查询返回的结果集中的某个值相等时,返回 TRUE,否则返回 FALSE;若使用关键字 NOT,则返回值正好相反。

2)EXISTS | NOT EXISTS

用于判断子查询的结果集是否为空,若子查询的结果集不为空,返回 TRUE,否则返回 FALSE;若使用关键字 NOT,则返回的值正好相反。

例 1

使用子查询在 tb_students_info 表和 tb_course 表中查询学习 Java 课程的学生姓名

mysql> SELECT name FROM tb_students_info 
    -> WHERE course_id IN (SELECT id FROM tb_course WHERE course_name = 'Java');

mysql支持子查询吗

结果显示,学习 Java 课程的只有 Dany 和 Henry。上述查询过程也可以分为以下 2 步执行,实现效果是相同的。

1)首先单独执行内查询,查询出 tb_course 表中课程为 Java 的 id,SQL 语句和运行结果如下。

mysql> SELECT id FROM tb_course 
    -> WHERE course_name = 'Java';

mysql支持子查询吗

可以看到,符合条件的 id 字段的值为 1。

2)然后执行外层查询,在 tb_students_info 表中查询 course_id 等于 1 的学生姓名。SQL 语句和运行结果如下。

mysql> SELECT name FROM tb_students_info 
    -> WHERE course_id IN (1);

mysql支持子查询吗

习惯上,外层的 SELECT 查询称为父查询,圆括号中嵌入的查询称为子查询(子查询必须放在圆括号内)。MySQL 在处理上例的 SELECT 语句时,执行流程为:先执行子查询,再执行父查询。

例 2

与例 1 类似,在 SELECT 语句中使用 NOT IN 关键字,查询没有学习 Java 课程的学生姓名,SQL 语句和运行结果如下。

mysql> SELECT name FROM tb_students_info 
    -> WHERE course_id NOT IN (SELECT id FROM tb_course WHERE course_name = 'Java');

mysql支持子查询吗

可以看出,运行结果与例 1 刚好相反,没有学习 Java 课程的是除了 Dany 和 Henry 之外的学生。

例 3

使用=运算符,在 tb_course 表和 tb_students_info 表中查询出所有学习 python 课程的学生姓名,SQL 语句和运行结果如下。

mysql> SELECT name FROM tb_students_info
    -> WHERE course_id = (SELECT id FROM tb_course WHERE course_name = 'Python');

mysql支持子查询吗

结果显示,学习 Python 课程的学生只有 Jane。

例 4

使用<>运算符,在 tb_course 表和 tb_students_info 表中查询出没有学习 Python 课程的学生姓名,SQL 语句和运行结果如下。

mysql> SELECT name FROM tb_students_info
    -> WHERE course_id <> (SELECT id FROM tb_course WHERE course_name = 'Python');

mysql支持子查询吗

可以看出,运行结果与例 3 刚好相反,没有学习 Python 课程的是除了 Jane 之外的学生。

例 5

查询 tb_course 表中是否存在 id=1 的课程,如果存在,就查询出 tb_students_info 表中的记录,SQL 语句和运行结果如下。

mysql> SELECT * FROM tb_students_info
    -> WHERE EXISTS(SELECT course_name FROM tb_course WHERE id=1);

mysql支持子查询吗

由结果可以看到,tb_course 表中存在 id=1 的记录,因此 EXISTS 表达式返回 TRUE,外层查询语句接收 TRUE 之后对表 tb_students_info 进行查询,返回所有的记录。

EXISTS 关键字可以和其它查询条件一起使用,条件表达式与 EXISTS 关键字之间用 AND 和 OR 连接。

例 6

查询 tb_course 表中是否存在 id=1 的课程,如果存在,就查询出 tb_students_info 表中 age 字段大于 24 的记录,SQL 语句和运行结果如下。

mysql> SELECT * FROM tb_students_info
    -> WHERE age>24 AND EXISTS(SELECT course_name FROM tb_course WHERE id=1);

mysql支持子查询吗

结果显示,从 tb_students_info 表中查询出了一条记录,这条记录的 age 字段取值为 25。内层查询语句从 tb_course 表中查询到记录,返回 TRUE。外层查询语句开始进行查询。根据查询条件,从 tb_students_info 表中查询 age 大于 24 的记录。

拓展

子查询的功能也可以通过表连接完成,但是子查询会使 SQL 语句更容易阅读和编写。

一般来说,表连接(内连接和外连接等)都可以用子查询替换,但反过来却不一定,有的子查询不能用表连接来替换。子查询比较灵活、方便、形式多样,适合作为查询的筛选条件,而表连接更适合于查看连接表的数据。

关于“mysql支持子查询吗”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“mysql支持子查询吗”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: mysql支持子查询吗

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql支持子查询吗
    这篇文章主要介绍了mysql支持子查询吗的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql支持子查询吗文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2022-10-19
  • PHP支持MySQL吗
    这篇文章主要讲解了“PHP支持MySQL吗”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP支持MySQL吗”吧!PHP支持MySQL;MySQL是与PHP搭配使用最多的数据库,它们常被称...
    99+
    2023-07-02
  • MySQL子查询
    子查询(嵌套查询) 子查询是指一个查询语句嵌套在另一个查询语句的内部的查询 eg:要查询员工工资比‘Abel’高的员工名字 SELECT name,salary #外查询(主查询) FROM employees WHER&...
    99+
    2021-02-10
    MySQL子查询
  • MYSQL——子查询
       MYSQL的子查询1   求平均值   SELECT AVG (字段 如good_price) FROM  tdb_表名;...
    99+
    2022-10-18
  • redis支持原子操作吗
    redis支持原子操作吗?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。         ...
    99+
    2022-10-18
  • MYSQL查询--子查询,合并查询
    子查询 带IN关键字的子查询 只有子查询返回的结果列包含一个值时,比较运算符才适用。假如一个子查询返回的结果集是值的列表,这时比较运算符就必须用IN运算符代替。IN运算符可以检测结果集中是否存在某个特定的...
    99+
    2022-10-18
  • Mysql---子查询的三种查询方式( 表子查询,条件子查询,列中子查询)
    mysql子查询 子查询分为: 列中子查询 单列单行表子查询 必须有别名条件子查询 单行单列 多行单列 下列示例表结构: grade表: result表: student表: subject表:...
    99+
    2023-09-04
    mysql sql 数据库
  • MySQL子查询详解(单行子查询、多行子查询与相关子查询)
    目录0.概念1.需求分析与问题解决1.1提出具体问题:1.2 子查询的基本使用: 子查询的基本语法结构:1.3 子查询的分类2.单行子查询2.1实例:2.2空值问题2.3非法使用子查...
    99+
    2022-11-13
  • MySQL子查询(嵌套查询)
    子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从 MySQL 4.1 开始引入。 在SELECT 子句中先计算子查询,子查询结果作为外层另一个查询的过滤条件,查询可以基于一 个表或者多个表。子查询中常用的操作符有 AN...
    99+
    2023-09-04
    mysql 数据库 sql Powered by 金山文档
  • mysql支持分区吗
    这篇文章主要介绍“mysql支持分区吗”,在日常操作中,相信很多人在mysql支持分区吗问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql支持分区吗”的疑惑有所帮助!接...
    99+
    2022-10-19
  • mysql支持外键吗
    本篇内容主要讲解“mysql支持外键吗”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql支持外键吗”吧! mysql支持外键。...
    99+
    2022-10-19
  • MySQL 子查询和分组查询
    概述 子查询是SQL查询中的重要一块,是我们基于多表之间进行数据聚合和判断的一种手段,使得我们的处理复杂数据更加的便捷,这一节我们主要来了解一下子查询。 先做一下数据准备,这边建立三张表:班级、学生、毕业成绩表,用...
    99+
    2022-05-12
    MySQL 子查询 mysql 分组查询
  • MySQL中怎么设置慢查询支持毫秒
    这篇文章将为大家详细讲解有关MySQL中怎么设置慢查询支持毫秒,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。MySQL慢查询支持毫秒的设置 &nb...
    99+
    2022-10-18
  • MySQL之连接查询和子查询
    多表连接的基本语法 多表连接,就是将几张表拼接为一张表,然后进行查询 select 字段1, 字段2, ... from 表1 {inner|lift|right} join 表2 on 连接条件; 有如下两张表:部门表和员工...
    99+
    2015-01-24
    MySQL之连接查询和子查询
  • mysql的in+子查询
    【mysql最糟糕的子查询:in+子查询】 select * from film where film_id in (select film_id from film_actor where acto...
    99+
    2023-08-18
    mysql
  • MySQL基础-子查询
    文章目录 MySQL基础-子查询一、子查询概念1、什么是子查询2、子查询的分类 二、单行子查询1、单行比较操作符2、基本子查询3、HAVING 子查询4、CASE中的子查询5、子查询其他问题 三、多行子查询1、多...
    99+
    2023-12-22
    mysql 数据库 sql
  • MongoDB 如何支持类 SQL 查询
    看来,这确实是非常难得一件事!否则官方也早该把对 SQL 的支持内置了;即便没内置,众多的开源贡献者也应该在外面给出了可用的补丁。 关系数据库数据模型简单,都是行列分明的单层二维表;所以描述它的计算的语言(SQL)就相对简单;而 Mong...
    99+
    2017-05-15
    MongoDB 如何支持类 SQL 查询
  • LINQ查询支持哪些语法
    这篇文章主要介绍“LINQ查询支持哪些语法”,在日常操作中,相信很多人在LINQ查询支持哪些语法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”LINQ查询支持哪些语法”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-17
  • MySql的回顾六:子查询(内查询)
      西北望乡何处是,东南见月几回圆。        月亮又慢悠悠的挂上了天空,趁着睡前梦呓,我就带领各位可爱的读者们探索MySql最后的子查询部分。       说明:有些查询结果出来结果截图与题目要求不一样会出现多余的字段是为了...
    99+
    2018-07-12
    MySql的回顾六:子查询(内查询)
  • MySQL教程80-MySQL子查询
    子查询是 MySQL 中比较常用的查询方法,通过子查询可以实现多表查询。子查询指将一个查询语句嵌套在另一个查询语句中。子查询可以在 SELECT、UPDATE 和 DELETE 语句中使用,而且可以进行多层嵌套。在实际开发时,子查询...
    99+
    2020-09-04
    MySQL教程80-MySQL子查询 数据库入门 数据库基础教程 数据库 mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作