13.MySQL之子查询的概念

本节主要讲述子查询的概念

子查询
  1. 概念
    • 子查询简单理解就是在sql中嵌套了select查询子句。
    • 更官方一点理解就是如果一个select语句能过返回单个值或者一列值,且该select语句嵌套在另一个SQL语句(例如select语句、insert语句、update语句或者delete语句中)中,那么该select语句就称为“子查询”,子查询也叫内层查询。
    • 包含查询子句的SQL语句称为“主查询”,也叫外层查询。
    • 子查询的优点在于它的可读性会比较高(相比写join和union)
  2. 分类
    1. 按位置分
      • where 子查询:子查询在where条件中
      • from 子查询:子查询在from后面
      • exists子查询:子查询在exists中
    2. 按查询结果分为
      • 标量子查询:查询结果有一行一列
      • 列子查询:查询结果有一列多行
      • 行子查询:查询结果有一行多列或多行多列
      •  表子查询:查询结果有多行多列并且出现的位置在from之后
    3. 按是否相关分类
      • 相关子查询:执行依赖于外部查询的数据,外部查询执行一行,子查询就执行一次。
      • 非相关子查询:独立于外部查询的子查询,子查询总共执行一次,执行完毕后将值传递给外部查询。
  3. tips
    • 为了标记子查询与主查询之间的关系,通常将子查询写在小括号内。就像这样:
mysql> select cust_id from orders where order_num in (
    ->  select order_num from orderitems where prod_id = 'TNT2');

如果想看其他有关于MySQL数据库的文章,请跳转到到MySQL自学目录

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值