详解mysql子查询

6 篇文章 0 订阅
本文详细介绍了数据库查询中的子查询类型,包括标量子查询、列子查询和行子查询,并强调了独立子查询与依赖子查询的区别及优化策略。在子查询的使用位置上,指出select后只能接标量子查询,from后则可接任意子查询。同时提醒开发者避免在where或having后使用影响效率的依赖子查询。
摘要由CSDN通过智能技术生成

按值不同可以分为

1.标量子查询

只有一个值

2.列子查询

一列(一个字段),多个值

3.行子查询(表子查询)

一行多列/多行多列

注意:

1.标量子查询前用单行操作符 >,>=,<,<=,=,等

2.多个值的子查询(列子查询,行子查询)用多行操作符
in/not in
any/some
all

按与外层查询有无关系 ,可以划分为

1.独立子查询
只执行一次 ,不会影响外层查询的效率

2.依赖子查询(实际开发过程中禁止使用)
在每次where或having执行时都会查询一次,浪费内存与时间。

代替方案:使用独立子查询讲依赖子查询查出来的数据读取出来生成一个新的临时表,使用这个临时表与原表连接合并。

各个位置的子查询规则
select后只可以接标量子查询(一个值)
from后可以接任意子查询作为临时表
where 和 having后的规则一致。可以接任意子查询。注意符号即可。

注:建议只在from后使用子查询。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值