SQL 查询语句的顺序详解

SQL 查询语句的顺序详解

在 SQL 中,编写查询语句时,了解各个部分的执行顺序非常重要。尽管我们在写查询时通常会按照从上到下的顺序书写,但 SQL 引擎的实际执行顺序却有所不同。以下是常用部分的顺序:

  1. FROM:首先确定数据来源,选择要查询的表格。
  2. WHERE:应用筛选条件,从而限制从表中选出的行。
  3. GROUP BY:对查询结果进行分组,通常与聚合函数(如 COUNT、SUM 等)一起使用。
  4. HAVING:对分组后的数据进行进一步的筛选,通常用在 GROUP BY 后面。
  5. ORDER BY:对最终结果进行排序。
  6. LIMIT:限制结果集的行数,常用于只获取前几条记录。

示例

假设我们有一个名为 sales 的表,记录了不同产品的销售情况。我们希望查询每个产品的总销售额,并找出销售额大于 1000 的产品,按销售额降序排列,并只显示前 5 个结果。以下是相应的 SQL 查询:

sql 复制代码
SELECT product, SUM(amount) AS total_sales
FROM sales
WHERE date >= '2023-01-01'
GROUP BY product
HAVING total_sales > 1000
ORDER BY total_sales DESC
LIMIT 5;
相关推荐
stein_java21 分钟前
Mybatis-7 XML映射器
数据库·sql·mybatis
xhbh6661 小时前
开发效率翻倍:资深DBA都在用的MySQL客户端利器
数据库·mysql·数据库连接工具·mysql 连接工具
LJC_Superman1 小时前
Web与Nginx网站服务
运维·服务器·前端·网络·数据库·nginx·vim
java水泥工1 小时前
校园管理系统|基于SpringBoot和Vue的校园管理系统(源码+数据库+文档)
数据库·vue.js·spring boot
高山有多高2 小时前
详解文件操作
c语言·开发语言·数据库·c++·算法
盒马coding2 小时前
PostgreSQL与Greenplum常见连接客户端
数据库·postgresql
言之。2 小时前
Django get_or_create 方法详解
数据库·django·sqlite
罗光记3 小时前
腾讯混元游戏视觉生成平台正式发布2.0版本
数据库·经验分享·百度·facebook·开闭原则
我科绝伦(Huanhuan Zhou)3 小时前
达梦数据守护集群监视器详解与应用指南
数据库
CoderYanger4 小时前
MySQL数据库——3.2.1 表的增删查改-查询部分(全列+指定列+去重)
java·开发语言·数据库·mysql·面试·职场和发展