章节摘要:SELECT 是 SQL 里最常用、最重要的语句。本章从语句结构、条件过滤、排序、分页四个方面,把基础查询讲透,让你能写出日常 80% 的查询。
阅读完本章,你应当能够:
SELECT 是 SQL 的核心,基础打牢后面高级查询才顺。
SELECT/FROM/WHERE 等子句的写法和逻辑执行顺序。
比较、逻辑、特殊运算符,过滤行。
按列排序,升降序,多列排序。
限制返回行数,分页查询。
3.1 结构(骨架) ↓ 加 3.2 WHERE(过滤行) ↓ 加 3.3 ORDER BY(排序) ↓ 加 3.4 LIMIT(分页)
从骨架到逐层加子句,构成一条完整查询。
本章开始动手写 SQL,是本教程最核心的一章。建议逐节练习,每节至少自己敲 5 条查询。
建议准备一张练习表(如客户表),插入 20 行左右数据,把本章所有子句组合练习一遍。练习时故意写错几次(比如 WHERE 里用聚合函数、SELECT 别名放在 WHERE),看报错信息,能极大加深对执行顺序的理解。学完本章,你应该能独立写出一条带过滤、排序、分页的查询——这是最日常的 SQL 需求。
学完本章,请尝试独立完成下面几个任务:
第一个任务:写一条查询,从订单表里取出指定客户的订单,按金额从高到低排列,只返回前五条。
第二个任务:写一条查询,筛选出某个日期之后、金额在某个范围内的记录,并排除掉金额为空的记录。
第三个任务:写一条查询,按城市分组统计客户数量,只显示客户数超过三人的城市,并按数量降序排列。
第四个任务:说出你写的每条查询里,各子句执行的先后顺序,并能指出过滤阶段、分组阶段、选择阶段各自能做什么、不能做什么。
这四个任务覆盖了本章的全部核心技能。能独立完成第一到第三个任务,说明基础查询已经上手;能顺利说出第四个任务的执行顺序,说明理解已经到位。如果哪个任务卡壳,回到对应小节补一补再继续。
本章的查询能力是第 4 章高级查询的地基:分组聚合会用到过滤和排序,多表连接会用到列别名,子查询会用到完整的查询语法。基础打得越扎实,后面的路越顺。