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

DQL 查询命令总览

命令作用是否单独使用常与谁配合企业使用频率示例
SELECT指定查询哪些字段FROM⭐⭐⭐⭐⭐SELECT name, age
FROM指定查询哪张表SELECT⭐⭐⭐⭐⭐FROM student
WHERE过滤满足条件的行SELECT、JOIN⭐⭐⭐⭐⭐WHERE age > 18
ORDER BY对结果排序LIMIT⭐⭐⭐⭐⭐ORDER BY score DESC
LIMIT限制返回的数据数量(分页)ORDER BY⭐⭐⭐⭐⭐LIMIT 10
GROUP BY按字段分组聚合函数、HAVING⭐⭐⭐⭐GROUP BY gender
HAVING对分组后的结果过滤GROUP BY⭐⭐⭐HAVING COUNT(*) > 5
JOIN多表关联查询ON、WHERE⭐⭐⭐⭐⭐JOIN orders ON ...
ON指定 JOIN 的关联条件JOIN⭐⭐⭐⭐⭐ON u.id = o.user_id
INNER JOIN只返回匹配成功的数据ON⭐⭐⭐⭐INNER JOIN orders
LEFT JOIN保留左表所有数据ON⭐⭐⭐⭐⭐LEFT JOIN orders
RIGHT JOIN保留右表所有数据ON⭐⭐RIGHT JOIN orders
DISTINCT去除重复数据SELECT⭐⭐⭐SELECT DISTINCT gender
AS给字段或表起别名SELECT、FROM⭐⭐⭐⭐name AS username
UNION合并两个查询结果并去重SELECT⭐⭐SELECT ... UNION SELECT ...
UNION ALL合并两个查询结果,不去重SELECT⭐⭐UNION ALL

WHERE 中常用的条件运算符

运算符作用示例
=等于age = 18
>大于score > 90
<小于age < 20
>=大于等于age >= 18
<=小于等于score <= 60
<>/!=不等于gender <> 'M'
BETWEEN ... AND ...范围查询(包含边界)BETWEEN 18 AND 25
IN (...)在指定集合中IN (1,2,3)
LIKE模糊查询LIKE 'Tom%'
IS NULL判断为空IS NULL
IS NOT NULL判断不为空IS NOT NULL
AND并且age > 18 AND score > 80
OR或者gender='F' OR score>90
NOT取反NOT gender='M'

聚合函数

函数作用示例
COUNT()统计数量COUNT(*)
SUM()求和SUM(score)
AVG()平均值AVG(score)
MAX()最大值MAX(score)
MIN()最小值MIN(score)

JOIN 类型

JOIN 类型返回结果
INNER JOIN两张表都有的数据
LEFT JOIN左表全部 + 右表匹配的数据
RIGHT JOIN右表全部 + 左表匹配的数据

例如:

用户(user) Tom Jack Lucy 订单(order) Tom Jack
  • INNER JOIN
Tom Jack
  • LEFT JOIN
Tom Jack Lucy
  • RIGHT JOIN
Tom Jack

一个完整 SQL 的组成

企业开发中,一条完整 SQL 通常按下面的顺序书写:

SELECT 字段 FROM 表 JOIN 其他表 ON 关联条件 WHERE 行过滤 GROUP BY 分组 HAVING 分组过滤 ORDER BY 排序 LIMIT 分页;

例如:

SELECT u.name, COUNT(o.id) AS order_count FROM user u LEFT JOIN orders o ON u.id = o.user_id WHERE u.age >= 18 GROUP BY u.name HAVING COUNT(o.id) > 1 ORDER BY order_count DESC LIMIT 10;

SQL 的执行顺序(非常重要)

虽然 SQL 是这样写的:

SELECT FROM JOIN ON WHERE GROUP BY HAVING ORDER BY LIMIT

MySQL 实际执行顺序更接近:

执行顺序子句作用
FROM确定查询的数据来源
JOIN连接多张表
ON根据关联条件匹配数据
WHERE过滤原始数据
GROUP BY对数据分组
HAVING过滤分组后的结果
SELECT选择最终输出的字段
DISTINCT去除重复记录(如果使用)
ORDER BY排序
LIMIT返回指定数量的数据

⭐ 最后送你一句企业里经常用来理解 DQL 的口诀

SELECT:查什么 FROM:从哪查 JOIN:和谁查 ON:怎么关联 WHERE:筛选谁 GROUP BY:怎么分组 HAVING:筛选哪些组 ORDER BY:怎么排序 LIMIT:返回多少条

这套口诀基本覆盖了 DQL 的全部核心内容。以后看到一条复杂 SQL,你都可以按这几个步骤去理解,它会比死记语法更容易掌握。

http://www.jsqmd.com/news/1148033/

相关文章:

  • 【噪声系数】什么时候可以用58公式?
  • TDA7468音频处理器与MK51DN512CLQ10微控制器协同设计指南
  • 高精度ADC ADS127L11与MCU的工业测量方案
  • ICML 2026 公布最佳论文奖项,10 篇获奖成果涵盖 AI 多领域!
  • 如何优雅地从四个方面加深对深度学习的理解
  • 高精度ADC ADS127L11与PIC18LF4610的工业测量应用
  • 看完这篇,你就知道为什么Vue、React都偏爱函数表达式了!
  • 当Golang遇见LLM:构建高并发推理服务的工程实践
  • JetBrains Hub三连CVE实战修复教程:CVE-2026-56141/56142/50242账户接管漏洞检测脚本+DevOps全链路安全加固清单
  • 如何5分钟完成Beyond Compare 5激活:两种高效密钥生成方案
  • 高压隔离技术:ISOM8710与PIC18F86K90的安全设计
  • 如何让 AI 快速搭建一套生产级 Agent?全面理解 Agent 架构
  • AD7490与PIC18F4550构建高速数据采集系统
  • 5分钟创建专业图表:Mermaid Live Editor让可视化变得简单高效
  • AI前沿与软件主流差距巨大:Anthropic人均算力支出达200万美元,未来成本走向几何?
  • 面向高效多智能体协同的回报保持型通信遗忘
  • AI 初创公司无营收却靠分批融资获天价估值,背后隐秘套路几何?
  • 蓝奏云直链解析终极指南:3分钟获取稳定下载地址
  • ROS 参数服务器通信实战详解|参数服务增删改查完整代码实现(含运行终端输出 + 原理分析)
  • 485有线方案在酒店客控中的应用强电485混合架构设计
  • 2026年无锡干细胞机构如何考量?解析行业布局与合规焦点
  • Windows应急响应实战:从D盾依赖到全链路攻击痕迹排查指南
  • 全参数微调 vs 参数高效微调:何时选择何种方案?
  • J-space:Claude的意识起源,它已经注意到自己正在被测试了!
  • STM32与ADS1262实现高精度工业测量方案
  • 三种浮游生物监测方法的系统比较与适用性分析
  • 网络安全工程师需要考什么证吗?
  • 芯片dft覆盖率
  • SQL Server 分页查询性能对比:ROW_NUMBER vs OFFSET FETCH vs TOP 3方案实测
  • MCP3428与PIC32MZ高精度数据采集方案详解