基本语法

表达式 θ some(子查询)

表达式 θ all (子查询)

语法中,θ是比较运算符 <,>,>=,<=,=,<>

如果表达式的值至少与子查询的结果的某一个值相比较满足θ关系,则“表达式 θ some(子查询)”的结果便为真;

如果表达式的值与子查询结果的所有值相比都满足θ关系,则表达式θ all(子查询)的结果便为真

找出工资最低的老师

表内容

select * from teacher
+----------------+-----------------+
| Name | Money |
+----------------+-----------------+
| Tom | 1500 |
| David | 1800 |
| Andy | 2560 |
+----------------+-----------------+

利用ThetaAll子查询

Select Name From Teacher
Where Money <= all( Select Money From Teacher ) +----------------+
| Name |
+----------------+
| Tom |
+----------------+

子查询首先找出了所有教师的工资,然后ThetaAll查询工资比所有教师的工资都低的教师姓名。输出为Tom。

找出高等数学课成绩不是最高的学生

表内容

mysql>select * from SC
+---------------+---------------+-----------------+
| SID | CID | Score |
+---------------+---------------+-----------------+
| 001 | 高等数学 | 85 |
| 002 | 高等数学 | 90 |
| 003 | 高等数学 | 60 |
| 004 | 高等数学 | 75 |
+---------------+---------------+-----------------+

利用ThetaSome子查询

select SID from sc
where CID='高等数学' and Score < some( select Score From SC where CID='高等数学' ) +---------------+
| SID |
+---------------+
| 001 |
| 003 |
| 004 |
+---------------+

子查询首先找出了高等数学课所有同学的成绩,然后thetasome查询“高等数学成绩比子查询结果中任意一个成绩小的同学学号”,就找出了成绩不是最高的同学。

找出所有课程都不及格的学生姓名

表内容

SC
+---------------+---------------+-----------------+
| SID | CID | Score |
+---------------+---------------+-----------------+
| S001 | C001 | 40 |
| S001 | C002 | 65 |
| S002 | C001 | 59 |
| S002 | C002 | 45 |
| S002 | C003 | 18 |
+---------------+---------------+-----------------+
student
+---------------+----------------+
| SID | Name |
+---------------+----------------+
| S001 | Tom |
| S002 | David |
+---------------+----------------+

利用thetaAll子查询

select Name from student
where 60 > all(select Score from SC where SID = student.SID )
+----------------+
| Name |
+----------------+
| David |
+----------------+

注意!

表达式 = some(子查询)

表达式 in (子查询)是等价的

但<> some 与 not in不等价!!!

not in 等价于 <> all

ThetaSome_ThetaAll子查询的更多相关文章

  1. 深入理解MySql子查询IN的执行和优化

    IN为什么慢? 在应用程序中使用子查询后,SQL语句的查询性能变得非常糟糕.例如: SELECT driver_id FROM driver where driver_id in (SELECT dr ...

  2. Mysql - 性能优化之子查询

    记得在做项目的时候, 听到过一句话, 尽量不要使用子查询, 那么这一篇就来看一下, 这句话是否是正确的. 那在这之前, 需要介绍一些概念性东西和mysql对语句的大致处理. 当Mysql Server ...

  3. 在SQL Server中为什么不建议使用Not In子查询

        在SQL Server中,子查询可以分为相关子查询和无关子查询,对于无关子查询来说,Not In子句比较常见,但Not In潜在会带来下面两种问题: 结果不准确 查询性能低下       下面 ...

  4. 读书笔记--SQL必知必会11--使用子查询

    11.1 子查询 查询(query),任何SQL语句都是查询.但此术语一般指SELECT语句. SQL还允许创建子查询(subquery),即嵌套在其他查询中的查询. 作为子查询的SELECT语句只能 ...

  5. 你真的会玩SQL吗?无处不在的子查询

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  6. Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等)

    Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等) 子查询 描述:查询订单数超过5的顾客信息 查询句法: var 子查询 = from c i ...

  7. 当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。

    当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式.比如 select * from T_Employee where FNumber not in ( select top 5*  ...

  8. Oracle学习笔记五 SQL命令(三):Group by、排序、连接查询、子查询、分页

    GROUP BY和HAVING子句 GROUP BY子句 用于将信息划分为更小的组每一组行返回针对该组的单个结果 --统计每个部门的人数: Select count(*) from emp group ...

  9. [转]HQL中的子查询

    原文地址:http://blog.csdn.net/xb12369/article/details/8638683 子查询:   子查询是SQL语句中非常重要的功能特性,它可以在SQL语句中利用另外一 ...

随机推荐

  1. 数据库的设计:深入理解 Realm 的多线程处理机制

    你已经阅读过 Realm 关于线程的基础知识.你已经知道了在处理多线程的时候你不需要关心太多东西了,因为强大的 Realm 会帮你处理好这些,但是你还是很想知道更多细节…… 你想知道在 Realm 的 ...

  2. 日志级别的选择:Debug、Info、Warn、Error

    日志信息分类 1.等级由低到高:debug<info<warn<Error: 2.区别: debug 级别最低,可以随意的使用于任何觉得有利于在调试时更详细的了解系统运行状态的东东: ...

  3. PostgreSql扩展Sql-动态加载共享库(C函数)

    基于 psql (PostgreSQL) 10.4 pg_language表定义了函数实现所使用的语言.主要支持了C语言和SQL语句.一些可选的语言包括pl/pgsql.tcl和perl. ligan ...

  4. JavaScript验证输入的字符是否包含表情

    以下是验证代码: function isEmojiCharacter(substring) { for ( var i = 0; i < substring.length; i++) { var ...

  5. 转 vue实现双向数据绑定之原理及实现篇

    转自:https://www.cnblogs.com/canfoo/p/6891868.html vue的双向绑定原理及实现 前言 先上个成果图来吸引各位: 代码:                  ...

  6. vue中使用Base64和md5和rsa

    https://blog.csdn.net/benben513624/article/details/88113459(copy) https://www.cnblogs.com/myfate/p/1 ...

  7. spark-MLlib之协同过滤ALS

    协同过滤与推荐   协同过滤是一种根据用户对各种产品的交互与评分来推荐新产品的推荐系统技术.   协同过滤引入的地方就在于它只需要输入一系列用户/产品的交互记录:   无论是显式的交互(例如在购物网站 ...

  8. ReSharper 2017破解详细方法:

    VS里面,打开ReSharper的注册窗口:ReSharper ——> Help ——> License Information... Use License Server,右侧加号,点击 ...

  9. centos7之添加开机启动服务/脚本

    一.添加开机启动脚本 #!/bin/bash # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # It is highly advisable to ...

  10. fifo 实现问题

    AR# 63960 FIFO Generator v12.0 - [Common 17-55] 'get_property' expects at least one object.[axis_fif ...