子查询

子查询

含义

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

分类

  • 按子查询出现的位置
    ①select后面,仅仅支持标量子查询;
    ②from后面,支持表子查询;
    ③where或having后面,支持标量子查询(单行)、列子查询(多行)、行子查询;
    ④exists后面(相关子查询),支持表子查询
  • 按结果集的行列数不同
    ①标量子查询(结果集只有一行一列)
    ②列子查询(结果集只有一列多行)
    ③行子查询(结果集有一行多列)
    ④表子查询(结果集一般为多行多列,也可为一行一列、一列多行、一行多列)

where或having后面

1、标量子查询(单行子查询)
2、列子查询(多行子查询)
3、行子查询

  • 特点
    ①子查询放在小括号内
    ②子查询一般放在条件的右侧
    ③标量子查询,一般搭配着单行操作符使用
    补充:单行操作符:> < >= <= = <>
    ④列子查询,一般搭配着多行操作符使用
    补充:in、any/some、all
    ⑤子查询的执行优先于主查询执行,主查询的条件用到了子查询的结果
1、标量子查询
  • 案例1
    在这里插入图片描述
  • 案例2(多个条件)
    在这里插入图片描述
    在这里插入图片描述
    补充:多个条件用and连接
  • 案例3(用到分组函数)
    在这里插入图片描述
    在这里插入图片描述
  • 案例4(用到having)
    在这里插入图片描述
    在这里插入图片描述
2、列子查询(多行子查询)

在这里插入图片描述
补充
①<any;>any
②<all相当于min();>all相当于max()
③in相当于=any;not in相当于<>all

  • 案例1
    在这里插入图片描述
  • 案例2
    在这里插入图片描述
    在这里插入图片描述
  • 案例3
    在这里插入图片描述
3、行子查询(一行多列或多行多列)
  • 案例1
    在这里插入图片描述
    补充:多个条件用相同的操作符表示,如以上案例用=操作符

select后面

  • 案例1
    在这里插入图片描述

from后面

  • 案例1
    在这里插入图片描述
    在这里插入图片描述

exists后面(相关子查询)

  • 语法:exists(完整的查询语句)
  • 结果:1或0
  • 特点:先进行主查询,在主查询的基础上进行子查询
  • 案例1
    在这里插入图片描述
  • 案例2
    在这里插入图片描述
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值