当前位置:网站首页>MySQL --- 子查询 - 子查询概念、规范、分类
MySQL --- 子查询 - 子查询概念、规范、分类
2022-07-22 19:19:00 【小雪菜本菜】
子查询概念
子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从 MySQL 4.1 开始引入。现在使用的是 MySQL 8.0.28
在特定情况下,一个查询语句的条件需要另一个查询语句来获取,内层查询(inner query)语句的查询结果,可以为外层查询(outer query)语句提供查询条件。

内层查询即子查询,外层查询即主查询,只是叫法不同而已。
查询需求
查询公司之中工资最低的员工信息
工资最低是多少?
工资最低的员工是谁?
-- 查询公司中工资最低是多少?
SELECT MIN(sal) FROM emp;
-- 工资最低的员工是谁?
SELECT * FROM emp WHERE sal= 800;

-- 查询公司中工资最低的员工信息
SELECT * FROM emp WHERE sal=(SELECT MIN(sal) FROM emp);
子查询规范
子查询必须放在小括号()中
子查询一般放在比较操作符=的右边,以增强代码可读性
子查询可以出现在几乎所有的SELECT字句中(如:SELECT、FROM、WHERE、ORDER BY、HAVING子句)
子查询分类
根据子查询返回的数据分类
标量子查询(scalar subquery):返回 1 行 1 列一个标量(单行单列,返回的是一个值)
行子查询(row subquery):返回的结果是 1 行 N 列(单行多列)
列子查询(column subquery):返回的结果是 N 行 1 列(多行单列)
表子查询(table subquery):返回的结果是 N 行 N 列(多行多列,返回的是一个表)
子查询可以返回一个标量(就一个值)、一个行、一个列或一个表,这些子查询分别称之为标量、行、列和表子查询。
根据子查询和主查询之间是否有条件关联分类
相关子查询:两个查询之间有一定的条件关联(相互联系)
不相关子查询:两个查询之间没有条件关联(相互独立)
为了方便,对于在何处使用子查询给出几点建议
子查询出现在 WHERE 子句中:此时子查询返回的结果一般都是单行单列(标量查询)、单行多列(行子查询)、多行单列(列子查询)
子查询出现在 HAVING 子句中:此时子查询返回的都是单行单列(标量查询),同时为了使用统计函数操作
子查询出现在 FROM子句中:此时子查询返回的结果一般都是多行多列(一张表),可以按照一张数据表(临时表)的形式操作
边栏推荐
- Pay attention to the pitfalls of using enumeration in MySQL!
- STL container -list Simulation Implementation (three kinds of reverse iterators)
- Urllib download (urlretrieve())
- ABAP ALV steps
- Codeforces Round #808 (Div. 2) C,D Codeforces Round #809 (Div. 2) C
- Installation and login installation
- 472-82(22、165、39、剑指 Offer II 078、48. 旋转图像)
- Reflection (loading of classes)
- 以“升舱”之名,谈谈云原生数据仓库 AnalyticDB 的核心技术
- 电磁场与电磁波实验四 熟悉CST Studio软件在电磁领域的应用
猜你喜欢
随机推荐
第九章 使用图像数据
网站禁用f12 禁止调试代码方法
LSA related content in OSPF
How to calculate the time-consuming code gracefully? (glory Collection Edition)
100 行代码透彻解析 RPC 原理
IO流原理及流的分类
MySq 数据库约束
Summer vacation notes 1
强化学习第二章习题
Properties of node process object
mysql之外键操作_级联操作
Win10安装QT(在线安装包)闪退(Crash)的问题与解决
二级倒立摆系统的稳定控制与仿真(Matlab/Simulink)
Introduction and basic use of urllib basic use
电商项目如何解决线上优惠券超发(排错+解决方案)(荣耀典藏)
电磁场与电磁波实验四 熟悉CST Studio软件在电磁领域的应用
IDEA DEBUG启动一直卡着不动解决办法
Support swiftui! Swift image & Video Browser jfherobrowser is online
Difference between SFM and MVs
1. Summary of strengthening learning foundation









