子查询

本文详细介绍了SQL中的子查询用法,包括在WHERE、HAVING、SELECT和FROM子句中的应用。重点讨论了子查询返回单行单列、单行多列和多行单列的情况,如IN、ANY、ALL操作符以及exists()函数的使用。此外,文章还比较了子查询与多表查询在性能上的差异,强调了子查询在解决特定查询问题时的优势。
摘要由CSDN通过智能技术生成

子查询

在整个SQL查询语句的过程之中,子查询并不是具备特殊的语法,也就是说在整个SQL查询操作里面子句:SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY.如果非要给出子查询的语法,那么只能进行拼凑了。

所有可能出现的子查询都需要使用“()”声明。

子查询语法实际上是查询嵌套

SELECT [DISTINCT] * | 字段 [别名] | 统计函数, (

​ SELECT [DISTINCT] * | 字段 [别名] | 统计函数,

​ FROM 表 [别名], 表 [别名],…

​ [WHERE 条件(s)]

​ [GROUP BY 分组字段,分组字段,…]

​ [HAVING 分组过滤]

​ [ORDER BY 排序 []ASC | DESC], 排序 [ASE | DESC],…]

FROM 表 [别名], 表 [别名],…(

​ SELECT [DISTINCT] * | 字段 [别名] | 统计函数,

​ FROM 表 [别名], 表 [别名],…

​ [WHERE 条件(s)]

​ [GROUP BY 分组字段,分组字段,…]

​ [HAVING 分组过滤]

​ [ORDER BY 排序 []ASC | DESC], 排序 [ASE | DESC],…]

)

[WHERE 条件(s)](

​ SELECT [DISTINCT] * | 字段 [别名] | 统计函数,

​ FROM 表 [别名], 表 [别名],…

​ [WHERE 条件(s)]

​ [GROUP BY 分组字段,分组字段,…]

​ [HAVING 分组过滤]

​ [ORDER BY 排序 []ASC | DESC], 排序 [ASE | DESC],…]

)

[GROUP BY 分组字段,分组字段,…]

[HAVING 分组过滤](

​ SELECT [DISTINCT] * | 字段 [别名] | 统计函数,

​ FROM 表 [别名], 表 [别名],…

​ [WHERE 条件(s)]

​ [GROUP BY 分组字段,分组字段,…]

​ [HAVING 分组过滤]

​ [ORDER BY 排序 []ASC | DESC], 排序 [ASE | DESC],…]

)

[ORDER BY 排序 []ASC | DESC], 排序 [ASE | DESC],…]

查询子句的任意位置上都可以随意出现子查询,出现子查询最多的位置:WHERE、FROM 、HAVING参考使用方案

  • WHERE子句:子查询返回单行单列、单行多列、多行单列;
  • HAVING子句:子查询返回单行单列,而且要使用统计函数过滤;
  • FROM 子句:子查询返回的是多行多列;
  • SELECT子句:一般返回单行单列,而且需要某些查询的时候使用;

1.在WHERE子句中使用子查询

WHERE子句主要是进行数据的筛选,通过分析发现,单行单列、多行单列、单行多列都可以在WHERE子句中出现。

1.子查询返回单行单列

范例:要求查询出公司工资最低的雇员信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值