当前位置: 首页 > news >正文

MySQL的SQL书写顺序和执行顺序

老是忘记执行顺序,记录一下:

1. SQL语句的书写顺序

书写顺序通常是我们编写SQL查询时的顺序,主要包括以下关键字:

  1. SELECT:选择要查询的字段。
  2. FROM:指定数据来源表。
  3. JOIN(可选):对表进行连接。
  4. WHERE(可选):设定行过滤条件。
  5. GROUP BY(可选):设定分组依据。
  6. HAVING(可选):对分组后的数据进一步过滤。
  7. ORDER BY(可选):设定排序。
  8. LIMIT(可选):限制返回的记录数。

书写顺序示例:

SELECT district, SUM(population) 
FROM PopTbl WHERE population > 1000 
GROUP BY district 
HAVING SUM(population) > 5000 
ORDER BY district LIMIT 10;

2. SQL语句的执行顺序

SQL的执行顺序,通常遵循以下逻辑步骤:

  1. FROM:确定查询数据的来源表。
  2. JOIN:如果有多表连接,则执行连接操作。
  3. WHERE:对记录进行行级过滤。
  4. GROUP BY:根据指定的列进行分组。
  5. HAVING:对分组后的数据进行过滤。
  6. SELECT:选择需要输出的字段和聚合结果。
  7. ORDER BY:对结果进行排序。
  8. LIMIT:限制返回的记录数量。

执行顺序比书写顺序更重要,因为它决定了SQL查询的逻辑流程。

示例说明执行顺序

以下示例演示了SQL查询的执行过程:

SELECT district, SUM(population) AS total_population 
FROM PopTbl 
WHERE population > 1000 
GROUP BY district 
HAVING total_population > 5000 
ORDER BY total_population DESC LIMIT 10;
执行过程逐步解释:
  1. FROM:从 PopTbl 表中获取所有记录。
  2. WHERE:应用 population > 1000 的过滤条件,筛选出人口大于1000的记录。
  3. GROUP BY:根据 district 列将筛选后的记录进行分组。
  4. HAVING:对分组结果应用 total_population > 5000 的条件,过滤掉不符合条件的分组。
  5. SELECT:选择 districtSUM(population) 结果(并将其命名为 total_population)。
  6. ORDER BY:按照 total_population 降序排序。
  7. LIMIT:限制返回的结果数为10条。

这样,MySQL会按照执行顺序进行逐步处理,最终返回满足条件的、按总人口降序排列的前10个地区和对应人口总数。

http://www.lryc.cn/news/483917.html

相关文章:

  • 摄像机视频分析软件下载LiteAIServer视频智能分析软件抖动检测的技术实现
  • spring gateway 动态路由
  • 除了 Postman,还有什么好用的 API 管理工具吗?
  • JAVA:探索 EasyExcel 的技术指南
  • 【数字图像处理+MATLAB】对图片进行伽马校正(Gamma Correction):使用幂律变换公式进行伽马变换
  • 算法——螺旋矩阵II(leetcode59)
  • 以往运维岗本人面试真题分享
  • macOS解决U盘装完系统容量变小的问题
  • ORA-00257: archiver error
  • IO技术详解
  • pySpark乱码
  • 【MySQL 保姆级教学】事务的隔离级别(详细)--下(13)
  • SpringBoot(十三)SpringBoot配置webSocket
  • OA系统都有哪些功能?OA办公系统功能大测评
  • 优化布线拥塞
  • 盲盒APP开发,电商模式下盲盒的未知乐趣
  • RocketMQ-02 集群架构部署
  • 处理报文后 展示在qtdesigner界面 ,有大量数据存储 怎样创建临时文件减少内存占用
  • 后端-实现excel的导出功能(超详细讲解)
  • Docker compose部署portainer
  • 【游戏引擎之路】登神长阶(十四)——OpenGL教程:士别三日,当刮目相看
  • 相等日期问题(c++方法解决)
  • 深度学习——优化算法、激活函数、归一化、正则化
  • Android 老项目适配 Compose 混合开发
  • PH热榜 | 2024-11-14
  • 删库跑路,启动!
  • Vue 3 在现代前端开发中的应用
  • 【HarmonyOS】Hdc server port XXXX has been used.Configure environment variable
  • 使用 ts-node 运行 ts文件,启动 nodejs项目
  • scala中的case class