MySQL-----子查询

子查询

出现在其他语句中的select语句,成为子查询或内查询
外部出现的查询语句,称为主查询或外查询

分类
按子查询出现的位置:
select后:(仅仅支持标量子查询)
from后面(支持表子查询)
where或者having后(支持标量子查询列子查询、行子查询)
exists后(相关子查询)(支持表子查询)
按功能不同(结果集的行列数不同):
标量子查询(结果集只有一行一列)
列子查询(结果集只有一列多行)
行子查询(结果集有多行多列)
表子查询(结果集多行多列)

一、where或having后面
1、标量子查询(单行子查询)
2、列子查询(多行子查询)
3、行子查询(多行多列)

特点
1、子查询放在小括号内
2、子查询一般放在条件右侧
3、表量子查询一般搭配单行操作符<>>= <= <>
列子 查询一般搭配多行操作符使用:in,any/some,all
4、子查询优先于主查询

1、标量子查询
查询结果是一行一列在这里插入图片描述

2、列子查询
用多行子查询(或者列子查询)需要搭配多行比较操作符使用
常见的多行比较操作符:
IN/NOT IN 等于列表中的任意一个 ※重要
ANY/SOME 和子查询返回的某一个值比较
ALL 和子查询返回的所有值比较

3、行子查询

二、放 select后
一般可以被其它代替,弱化
一般select仅仅支持表量子查询

三、from后面
将子查询结果充当一张表,要求必须起别名

四、放在exists后面(相关子查询)
Boolean类型,只能查询有没有(结果0/1)
语法:
exists(完整的查询语句)
结果:
0或1

能用exists查询的一般都可以被其他替代,所以不常用
能用exists的一定可以用in
在这里插入图片描述
在这里插入图片描述
结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值