【数据库学习】11 子查询

本文详细介绍了数据库中的子查询概念,包括含义、分类及其在where或having、select、from后面的应用。讲解了标量子查询、列子查询和行子查询的特点,并通过多个案例分析了如何使用这些子查询来解决实际问题。
摘要由CSDN通过智能技术生成

含义

出现在其他语句中的select语句,称为子查询或内查询。

例如下面的代码就属于子查询:

SELECT first_name from employees where
    department_id in(
        select department_id from departments
        where location_id=1700
    ) 

在条件当中又插入一个条件,插入的条件可以单独执行。

分类

按子查询出现的位置:

  • select后面:仅仅支持标量子查询
  • from后面:支持表子查询
  • where或having后面:★ 

              标量子查询(单行)

              列子查询  (多行) √

              行子查询

  • exists后面(相关子查询)

              表子查询

按结果集的行列数不同:

  • 标量子查询(结果集只有一行一列)
  • 列子查询(结果集只有一列多行)
  • 行子查询(结果集有一行多列)
  • 表子查询(结果集一般为多行多列)

一、where或having后面

1、标量子查询(单行子查询)

2、列子查询(多行子查询)

3、行子查询(多列多行)

特点:
①子查询放在小括号内
②子查询一般放在条件的右侧
③标量子查询,一般搭配着单行操作符使用(例如:> < >= <= = <>)

④列子查询,一般搭配着多行操作符使用(例如:in、any/some、all)

⑤子查询的执行优先于主查询执行,主查询的条件用到了子查询的结果

标量子查询(单行子查询)

案例1:谁的工资比 Abel 高?

应该首先查询Abel的工资,然后查询比她工资高的人

①查询Abel的工资

SELECT salary
FROM employees
WHERE last_name = 'Abel'

查询的结果只有一行一列,所以称为标量子查询 。

②查询员工的名字,满足 salary>①结果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程芝士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值