
命令作用是否单独使用常与谁配合企业使用频率示例SELECT指定查询哪些字段✅FROM⭐⭐⭐⭐⭐SELECT name, ageFROM指定查询哪张表❌SELECT⭐⭐⭐⭐⭐FROM studentWHERE过滤满足条件的行❌SELECT、JOIN⭐⭐⭐⭐⭐WHERE age 18ORDER BY对结果排序❌LIMIT⭐⭐⭐⭐⭐ORDER BY score DESCLIMIT限制返回的数据数量分页❌ORDER BY⭐⭐⭐⭐⭐LIMIT 10GROUP BY按字段分组❌聚合函数、HAVING⭐⭐⭐⭐GROUP BY genderHAVING对分组后的结果过滤❌GROUP BY⭐⭐⭐HAVING COUNT(*) 5JOIN多表关联查询❌ON、WHERE⭐⭐⭐⭐⭐JOIN orders ON ...ON指定 JOIN 的关联条件❌JOIN⭐⭐⭐⭐⭐ON u.id o.user_idINNER JOIN只返回匹配成功的数据❌ON⭐⭐⭐⭐INNER JOIN ordersLEFT JOIN保留左表所有数据❌ON⭐⭐⭐⭐⭐LEFT JOIN ordersRIGHT JOIN保留右表所有数据❌ON⭐⭐RIGHT JOIN ordersDISTINCT去除重复数据❌SELECT⭐⭐⭐SELECT DISTINCT genderAS给字段或表起别名❌SELECT、FROM⭐⭐⭐⭐name AS usernameUNION合并两个查询结果并去重❌SELECT⭐⭐SELECT ... UNION SELECT ...UNION ALL合并两个查询结果不去重❌SELECT⭐⭐UNION ALLWHERE 中常用的条件运算符运算符作用示例等于age 18大于score 90小于age 20大于等于age 18小于等于score 60/!不等于gender MBETWEEN ... AND ...范围查询包含边界BETWEEN 18 AND 25IN (...)在指定集合中IN (1,2,3)LIKE模糊查询LIKE Tom%IS NULL判断为空IS NULLIS NOT NULL判断不为空IS NOT NULLAND并且age 18 AND score 80OR或者genderF OR score90NOT取反NOT genderM聚合函数函数作用示例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 JackINNER JOINTom JackLEFT JOINTom Jack LucyRIGHT JOINTom 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你都可以按这几个步骤去理解它会比死记语法更容易掌握。