avatar

一条在知识海洋的咸鱼

这个家伙很懒,啥也没有留下😋

  • 首页
  • Linux
  • OCJP
  • Java核心技术卷
  • J2EE相关标准
  • 深入理解Java虚拟机
  • NIO与SOcket编程技术指南
  • Java多线程编程核心技术
  • Redis开发与运维
  • Spring Cloud Alibaba 微服务原理与实践
  • DevOps
  • Docker
  • MySQL必知必会
  • AI自学路线
  • Spring Boot 编程思想(核心篇)
主页 第十四章 使用子查询
文章

第十四章 使用子查询

发表于 2021-06-30 更新于 2026-06- 10
作者 Administrator
4~6 分钟 阅读
  • 子查询
  • 利用子查询进行过滤
    • 注意
  • 作为计算字段使用子查询
    • 注意

子查询

除了单个数据库表中检索数据的单条语句外,SQL允许创建子查询,即嵌套在其他查询中的查询

利用子查询进行过滤

在SELECT语句中,自查询总是从内向外处理。对于嵌套的子查询的数目没有限制,在实际使用时由于性能的限制,不能嵌套太多的子查询。

SELECT
	cust_name,
	cust_contact 
FROM
	customers 
WHERE
	cust_id IN (
	SELECT
		cust_id 
	FROM
		orders 
WHERE
	order_num IN ( SELECT order_num FROM orderitems WHERE prod_id = "TNT2" ));

上述SQL语句表示列出订购物品TNT2的所有客户。
image.png

注意

  • 格式化SQL
    包含子查询的SELECT语句难以阅读和调试,特别是他们较为复杂时更是如此。应适当把子查询分解为多行并且适当地进行缩进
  • 子查询和性能
    使用子查询并不是检索数据的最有效方式

作为计算字段使用子查询

创建字段计算,将子查询到的结果作为一个字段使用

SELECT
	cust_name,
	cust_state,(
	SELECT
		COUNT(*) 
	FROM
		orders 
	WHERE
		orders.cust_id = customers.cust_id 
	) AS orders 
FROM
	customers 
ORDER BY
	cust_name;

image.png

注意

涉及到外部的子查询要使用表名.列名的语法,放置歧义

MySQL必知必会
SQL
许可协议: 
分享

相关文章

7月 6, 2021

第二十九章 数据库维护

7月 6, 2021

第二十八章 安全管理

确保数据的安全和完整需要利用访问控制访问控制root账户不要使用root管理用户创建用户账号简单创建一个新用户账号使用GRANT或INSERT创建重命名用户账号删除用户账号设置访问权限访问控制用户需要对其数据具有适当的访问权,既不能过多,也不能过少,例如多数用户需要对表进行读写,少数用户需要创建和删

7月 6, 2021

第二十七章 全球化和本地化

MySQL处理不同字符集和语言的基础知识字符集和校对顺序校对的重要性使用字符集和校对顺序字符集和校对顺序数据库表被用来存储和检索数据。不同的语言和字符集需要以不同的方式存储和检索MySQL需要适应不同的字符集(字母和字符),应应不同的排序和检索数据的方法字符集:字母和符号的集合编码:某个字符集成员的

下一篇

第十五章 联结表JOIN

上一篇

第十三章 分组数据

最近更新

  • 55 异常兜底:工具失败、非法输出、空检索与超时
  • 54 Agent Memory:短期记忆、用户上下文与摘要
  • 53 Human-in-the-loop:让关键动作暂停、确认与恢复
  • 52 工单 Tool:字段校验、创建结果与失败补偿
  • 51 订单 Tool:Mock、鉴权、状态解析与脱敏

热门标签

java基础 微服务 maven Spring Tomcat DDD Linux Linux基础 SQL基础 数据结构算法

目录

©2026 一条在知识海洋的咸鱼. 保留部分权利。

使用 Halo 主题 Chirpy