数据库

简介: 嵌套查询、集合查询以及基于派生表的查询

1 嵌套查询

(不)相关子查询

1.不相关子查询

特点:由子向父执行(子 -> 父),且父查询和子查询可以轻松分开单独处理

父子查询仅有查询结果直接的关系(父用子的结果),而查询条件之间无依赖,则为不相关子查询

2.相关子查询

特点:

  1. 父查询和子查询使用一些相同的查询条件,所以不易分开处理
  2. 相关子查询不能一次就求解出子查询的结果,必须反复求值 (重点)
  3. 相关子查询事先规定了执行规则,有固定处理顺序

执行规则:

  1. 外层查询条件的表中取出一个元组传送给内层
  2. 执行内层查询,得到一个结果,返送给外层
  3. 执行外层查询,得到一个结果,作为这一次查询结果
  4. 执行步骤1,直到外层查询条件的表的元组全部取完
1.带有IN谓词的子查询

子查询的结果为一个集合时,往往使用IN。

where 属性 IN(子查询)

属性在哪个集合当中

2.带有比较运算符的子查询
where 属性=、>、<、>=、<=、!= (子查询)
找出每个学生超过他自己选修课程平均成绩的课程号
select Sno,Cno
from SC x        //别名
where Grade>=(select avg(Grade)
             from SC y           //别名
             where y.Sno=x.Sno)        //子查询的学生和父查询比较的是同一个人
    (相关子查询)
3.带有ANY(SOME)或ALL谓词的子查询
any:任意

all:全部

使用比较运算符+any / all。

一般可以用聚集函数代替。

= != < <= > >=
any IN <MAX <=MAX >MIN >=MIN
all NOT IN <MIN <=MIN >MAX >=MAX
4.带有exists的子查询
exists:存在

not exists:不存在

带有exists谓词的子查询 不返回任何数据,只产生逻辑真值 “true” 或逻辑假值 “false” 。

若子查询结果非空,则外层的where子句返回“true”,否则返回“false”。

exists子查询不能被其他形式的子查询所替换。

其他三种都能用exists子查询等价替换。

SQL中没有全称量词,只能用存在量词等价替换

全部做某事==不存在一个不做某事的。

2 集合查询

并操作:union 用union合并时,系统会自动去掉重复元组。保留用 union all 操作符

交操作:intersect

差操作:except 可以用 条件1 AND 取反条件2 代替

两个查询块之间用union , intersect , except

3 基于派生表的查询

子查询不仅出现在where子句中,还可以出现在from子句中,

这是子查询生成的临时派生表成为主查询的查询对象。

在派生表后面必须指定一个别名,方便在下面where语句中使用派生表其属性

如果派生表中有聚集函数列,在其别名时需加上(属性列,聚集函数的别名)

目录
相关文章
|
9天前
|
机器人 API 调度
基于 DMS Dify+Notebook+Airflow 实现 Agent 的一站式开发
本文提出“DMS Dify + Notebook + Airflow”三位一体架构,解决 Dify 在代码执行与定时调度上的局限。通过 Notebook 扩展 Python 环境,Airflow实现任务调度,构建可扩展、可运维的企业级智能 Agent 系统,提升大模型应用的工程化能力。
|
人工智能 前端开发 API
前端接入通义千问(Qwen)API:5 分钟实现你的 AI 问答助手
本文介绍如何在5分钟内通过前端接入通义千问(Qwen)API,快速打造一个AI问答助手。涵盖API配置、界面设计、流式响应、历史管理、错误重试等核心功能,并提供安全与性能优化建议,助你轻松集成智能对话能力到前端应用中。
689 154
|
15天前
|
人工智能 数据可视化 Java
Spring AI Alibaba、Dify、LangGraph 与 LangChain 综合对比分析报告
本报告对比Spring AI Alibaba、Dify、LangGraph与LangChain四大AI开发框架,涵盖架构、性能、生态及适用场景。数据截至2025年10月,基于公开资料分析,实际发展可能随技术演进调整。
960 152
|
负载均衡 Java 微服务
OpenFeign:让微服务调用像本地方法一样简单
OpenFeign是Spring Cloud中声明式微服务调用组件,通过接口注解简化远程调用,支持负载均衡、服务发现、熔断降级、自定义拦截器与编解码,提升微服务间通信开发效率与系统稳定性。
360 156
|
7天前
|
分布式计算 监控 API
DMS Airflow:企业级数据工作流编排平台的专业实践
DMS Airflow 是基于 Apache Airflow 构建的企业级数据工作流编排平台,通过深度集成阿里云 DMS(Data Management Service)系统的各项能力,为数据团队提供了强大的工作流调度、监控和管理能力。本文将从 Airflow 的高级编排能力、DMS 集成的特殊能力,以及 DMS Airflow 的使用示例三个方面,全面介绍 DMS Airflow 的技术架构与实践应用。
|
8天前
|
人工智能 自然语言处理 前端开发
Qoder全栈开发实战指南:开启AI驱动的下一代编程范式
Qoder是阿里巴巴于2025年发布的AI编程平台,首创“智能代理式编程”,支持自然语言驱动的全栈开发。通过仓库级理解、多智能体协同与云端沙箱执行,实现从需求到上线的端到端自动化,大幅提升研发效率,重塑程序员角色,引领AI原生开发新范式。
485 2