`

MySQL 子查询谓词

 
阅读更多

 

 

MySQL 子查询分类

  可以查看item_subselect.h中的定义:

  enum subs_type {UNKNOWN_SUBS, SINGLEROW_SUBS,

 EXISTS_SUBS, IN_SUBS, ALL_SUBS, ANY_SUBS};

 

子查询类型详解:

  UNKNOWN_SUBS: 

 

  SINGLEROW_SUBS :

       a) SELECT * FROM t1 WHERE t1.a = (<single row subquery>) 

       b) SELECT a, (<single row subquery) FROM t1

   

  EXISTS_SUBS:

       EXISTS 子查询的条件返回true or false

       a) SELECT c.CustomerId, CompanyName FROM Customers c  WHERE EXISTS( SELECT OrderID FROM Orders o  WHERE o.CustomerID = cu.CustomerID)  

       b) SELECT c.CustomerId, CompanyName FROM Customers c  WHERE not EXISTS( SELECT OrderID FROM Orders o  WHERE o.CustomerID = cu.CustomerID)  

 

   IN_SUBS:

      a) SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=0)

      b) SELECT * FROM article WHERE uid not IN(SELECT uid FROM user WHERE status=0)

 

   ALL_SUBS:

       s1 必须大于所有s2的元素

       a) SELECT s1 FROM table1 WHERE s1 > ALL(SELECT s2 FROM table2)

 

  ANY_SUBS:

       s1 大于任意s2的元素即可

       a) SELECT s1 FROM table1 WHERE s1 > ANY(SELECT s2 FROM table2)

 

 

 

 

  

  

分享到:
评论

相关推荐

    SQL复习-EXISTS谓词

    在SQL查询中,EXISTS谓词是一个非常关键的子句,用于判断子查询是否返回至少一行数据。这个知识点对于数据库查询优化和复杂条件筛选至关重要。本文将深入探讨EXISTS谓词的工作原理、用法以及其与IN和JOIN操作符的...

    mysql数据查询操作-实验训练2.docx

    MySQL 数据查询操作实验训练 2 本实验训练涵盖了 MySQL ...* 了解如何使用子查询进行数据过滤 * 了解如何使用子查询进行数据聚合 通过本实验训练,可以掌握 MySQL 数据查询操作的基本技能,提高数据分析和处理能力。

    MySQL数据库查询优化

    从实践看,MySQL的子查询优化技术的内容和范围,明确掌握子查询优化手段 预计时间2小时,每小时一个课程段(子查询是SQL查询优化的重点内容,务必掌握好) 第5课 查询优化技术理论与MySQL实践(三)------视图重写...

    mysql第五章.pdf

    5. 子查询:子查询是嵌套在SELECT、INSERT、UPDATE或DELETE语句中的查询。子查询通常用在WHERE子句中,作为查询条件。它们从内层向外层逐层处理,处理完最内层的子查询后,将结果用于外层查询的条件中。 6. 排序与...

    MySQL多表查询

    这里的`IN`谓词用于判断`uid`是否存在于子查询结果中。 #### 六、嵌套查询在查询统计中的应用 在进行多表查询时,还可以使用`ANY`, `SOME`, 和 `ALL`等谓词来进行比较运算。 - **ANY/SOME**:至少有一个值满足...

    mysql基本常用操作

    4. **嵌套查询(子查询)**:子查询是嵌套在其他 SQL 语句中的 `SELECT` 语句,用于返回单个值。它可以作为 `WHERE` 子句的一部分,或者在 `IN`, `NOT IN`, `ANY`, `SOME`, `ALL` 等比较运算符中使用。例如,`SELECT...

    MYSQL基本查询操作命令笔记

    - `NOT EXISTS`:检查子查询是否没有返回任何记录。 例如: ```sql SELECT * FROM Orders WHERE EXISTS (SELECT * FROM OrderDetails WHERE OrderID = Orders.OrderID); ``` 12. **量词转化** 将子查询转换...

    MySQL命令大全

    MYSQL常用命令 1.导出整个数据库 mysqldump -u 用名 -p –default-character-set=latin1 数据库名 &gt; 导出的文件名(数据库默认编码是latin1) mysqldump -u wcnc -p smgp_apps_wcnc &gt; wcnc.sql 2.导出一个表 ...

    MySQL数据库调优技术大全

    - **子查询的物化**:通过预先计算子查询的结果并将其存储为一个临时表或视图,可以在后续查询中重复使用这些结果。 #### 七、控制查询优化器 - **使用提示**:MySQL提供了查询提示功能,允许用户直接告诉优化器...

    数据库课本例题(数据查询)

    - **带有ANY(SOME)或ALL谓词的子查询**:未给出,这些用于比较子查询结果集中的值与外部查询中的值。 - **带有EXISTS谓词的子查询**:例中未给出,判断是否存在满足子查询条件的记录。 4. 集合查询: - **并...

    数据库实验5嵌套查询.doc

    在本实验中,我们使用了多种嵌套查询,如子查询、派生表等。这些嵌套查询可以帮助我们对数据库中的数据进行复杂的查询和分析,如查询由上海客户订购的且订购数量大于 200 套的所有客户编号、产品编号、联系人和订购...

    基于SQL的森林资源数据库查询优化.pdf

    5. 子查询优化:考虑使用连接(JOIN)代替子查询,或者将子查询转换为存在的谓词(EXISTS),以减少数据处理的复杂性。 6. 分区策略:对于大规模数据,可以采用分区策略,将大表分割成小块,按需访问,提高查询效率...

    第三章SQL数据查询单表查询优秀文档.ppt

    嵌套查询可以使用子查询来实现。 3.4.4 集合查询 集合查询是指从多个表中提取数据的查询操作,并将结果集合起来。集合查询可以使用UNION、INTERSECT、EXCEPT等语句来实现。 在数据查询中,我们可以使用各种函数和...

    Mysql数据库索引(2)- 为select设计索引- 自学笔记

    2. **困难谓词**:某些复杂的查询条件(如模糊匹配、子查询等)可能会导致索引失效,需要特别关注。 #### 五、被动式索引设计 被动式索引设计是指通过监控系统运行状态来动态调整索引策略的一种方法,主要包括: ...

    数据库上机报告 sql server

    适合初学者参考 sql语言 掌握通过SQL对数据库进行操作,主要包括表定义、数据更新操作、简单查询(单表...进一步掌握用SQL命令进行复杂查询,包括相关子查询,带有ANY、ALL谓词的查询等。掌握存储过程、触发器的设计。

    通过分析SQL语句的执行计划优化SQL(总结)

    子查询可能会导致额外的扫描和临时表创建,优化子查询可能包括转换为连接操作或者使用存在性谓词。 8. **并行执行**: 对于大型数据集,数据库系统可能支持并行执行计划,通过多个处理器同时处理任务来加速查询。...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例013 安装MySQL数据库服务器 26 实例014 安装PHP.50 28 实例015 第4个PHP程序 30 1.5 XAMPP——Linux版PHP集成化安装包 31 实例016 XAMPP——Linux下PHP开发环境的集成化 31 实例017 Linux操作系统下启动XAMPP 32...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例013 安装MySQL数据库服务器 26 实例014 安装PHP.50 28 实例015 第4个PHP程序 30 1.5 XAMPP——Linux版PHP集成化安装包 31 实例016 XAMPP——Linux下PHP开发环境的集成化 31 实例017 Linux操作系统下启动XAMPP 32...

Global site tag (gtag.js) - Google Analytics