基本语法

表达式 θ 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. jq轮播图插件—手写

    <!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" ...

  2. python之并发编程

    一 背景知识 顾名思义,进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统的其他所 ...

  3. vue webpack打包

    webpack构建流程 从启动webpack构建到输出结果经历了一系列过程,它们是: 解析webpack配置参数,合并从shell传入和webpack.config.js文件里配置的参数,生产最后的配 ...

  4. codeforces gym #102082C Emergency Evacuation(贪心Orz)

    题目链接: https://codeforces.com/gym/102082 题意: 在一个客车里面有$r$排座位,每排座位有$2s$个座位,中间一条走廊 有$p$个人在车内,求出所有人走出客车的最 ...

  5. 使用埃拉托色尼筛选法(the Sieve of Eratosthenes)在一定范围内求素数及反素数(Emirp)

    Programming 1.3 In this problem, you'll be asked to find all the prime numbers from 1 to 1000. Prime ...

  6. 如何给CentOS 安装Vmware Tools

    1.打开电脑中的VMware  Workstation 软件,并启动安装了CentOS6.9系统的虚拟机         2.点击“”other”,在Username中输入root,在Password ...

  7. C#中字符串的字面值(转义序列)

    在程序开发中,经常会碰到在字符串中字面值中使用转义序列,下面表格收集了下转义序列的完整列表,以便大家查看引用: 转义序列列表 转义序列 产生的字符 字符的Unicode值 \' 单引号 0x0027 ...

  8. c语言提高(第二次作业)

    1. 画出字符串一级指针内存四区模型 #include <stdio.h> #include <string.h> int main(void) { char buf[20]= ...

  9. python xlwt模块生成excel文件并写入数据 xlrd读取数据

    python中一般使用 xlwt (excel write)来生成Excel文件(可以控制单元格格式),用 xlrd 来读取Excel文件,用xlrd读取excel是不能对其进行操作的. 1.xlrd ...

  10. Python——装饰器

    1.装饰器形成的过程 2.装饰器的作用 3.原则:开放封闭原则 开放:对扩展是开放的 封闭:对修改是封闭的 4.装饰器的固定模式 def func(): time.sleep(0.01) ') def ...