30天学SQL

skillgohub.com 中文指南 | 中文版

30天学SQL

SQL 是数据世界里最接近"超能力"的技能——数据是现代业务的生命线,而 SQL 就是读取它的语言。30 天学会 SQL 不是痴人说梦,只要你聚焦正确概念、跳过无关内容,它完全现实。这 30 天不是让你背语法,而是帮你建立理解关系型数据库如何思考的思维模型。下面是务实的、一天天推进的策略,让你一个月内从零到能像初级分析师一样写查询。

为什么 30 天是最合适的长度(以及没计划你一定会失败)

很多线上课程把 SQL 拖成 40 多个小时的视频,但你不需要看别人敲那么久的代码——你需要自己写。30 天的冲刺会逼你进入"学一个概念→立刻应用→改坏→修好"的节奏。初学者最大的错误,是想死记 SELECTJOIN 这些命令却不理解背后的逻辑。如果你只花 30 天吃透"五大金刚"(SELECT、FROM、WHERE、GROUP BY、ORDER BY),就已经覆盖了数据分析师日常工作的九成。下面计划偏紧凑但可行,它假设你每天能投入 1-2 小时;时间少就拉长各周,但别改动顺序。

Learn Sql In 30 Days - featured image

第一周:打地基(数据类型与筛选)

前 7 天专注熟悉原材料,先别碰连接(JOIN)。目标是练熟 WHERE 子句,直到它像你的手指一样听话。

Learn Sql In 30 Days comparison and review

第 1-2 天:SELECT 语句与数据类型。从最基础的 SELECT 列名 FROM 表名 开始,更重要的是搞懂数据类型:price 存的是整数、小数还是字符串?用字符串去过滤数值列会报错。多写只返回指定列(而非 SELECT *)的查询,后者只适合初步探索。

第 3-4 天:用 WHERE 与运算符过滤。学会 =<>><,以及做模糊匹配的 LIKE。重点练 BETWEEN 处理日期区间、IN 处理列表。此刻你开始向数据提问:"把金额大于 100 的所有订单显示出来。"

第 5-7 天:排序与 NULL 处理ORDER BY 排序简单,但 NULL 很棘手——它不等于零,而是"值缺失"。多练 IS NULLIS NOT NULL。第一周结束,你应该能写出"筛选、排序、单拎空值"一条龙查询。

第二周:聚合与分组(分析师的看家本领)

这周你从"看行"升级到"汇总数据",SQL 开始显得强大——你不再只是取数,而是在计算。

Learn Sql In 30 Days step by step guide

第 8-10 天:聚合函数。学 COUNT()SUM()AVG()MIN()MAX(),并练 COUNT(DISTINCT 列) 去统计不同值。这很关键——统计唯一客户数和统计订单数是两回事。

第 11-14 天:GROUP BY 与 HAVING。这一周是初学者和进阶者的分水岭。GROUP BY 把多行折叠成汇总统计;诀窍是记住,SELECT 里任何不是聚合函数的列都必须出现在 GROUP BY 里。再用 HAVING 过滤这些分组(注意:聚合结果上不能用 WHERE)。小技巧:动手敲之前先在纸上写一遍查询,能帮你理清执行顺序。

第三周:连接与关系(SQL 存在的意义)

关系型数据库就是建立在关系之上的。跳过这周,你还不如直接用 Excel。

Learn Sql In 30 Days cost and pricing analysis

第 15-18 天:INNER JOIN 与 LEFT JOININNER JOIN 只返回两边匹配的行,LEFT JOIN 返回左表所有行加右侧的匹配。练着把"用户表"和"订单表"连起来。语法简单,但"哪张表当主表"的逻辑需要时间琢磨。

第 19-21 天:自连接与多表连接。现实中你很少只连两张表,要学会串联多个 JOIN。还要理解"自连接"(一张表连它自己,常用于员工/经理层级)。这是本月最难的一天——卡住了就多看看讲解"连接顺序"和"连接谓词"的视频。掌握这类结构化拆解问题的方法,可以参考高效学习法里的分块思路。

第四周:子查询、CTE 与性能优化

最后一周,学怎么写既干净又高效的复杂查询——从"能跑"进阶到"跑得好"。

Learn Sql In 30 Days tools and features overview

第 22-25 天:子查询。学会在查询里嵌套查询(例如 SELECT * FROM 订单 WHERE 客户ID IN (SELECT id FROM 客户 WHERE 注册日期 > '2026-01-01'))。子查询功能强但可能变慢,只用于连接难以表达的逻辑。

第 26-28 天:公用表表达式(WITH 子句)。CTE 是你的好帮手,能把庞大的查询拆成可读的小块。与其裹成一团嵌套,不如写成 WITH 近期订单 AS (SELECT ...) SELECT * FROM 近期订单。这项技能能让别人(以及未来的你)读得懂你的代码。

第 29-30 天:索引与查询性能。你不需要当 DBA,但要理解查询为什么慢。索引就像书的目录,帮数据库无需扫描每一行就能定位数据。EXPLAIN 能让你看到查询如何执行。最后一天做个练习考试,或从零搭一个小项目。

学习工具对比(2026 年价格)

你不需要花钱才能起步,但结构化平台能加速进程。下面是当前主流选择的诚实对比。

工具(中英对照) 最适合 价格 优点 缺点
DataCamp 数据营 浏览器内交互写码 约 ¥93/月(年付)/ ¥279/月 游戏化、即时反馈,对新手友好。 偏重复;对逻辑背后"为什么"讲得浅。
Mode Analytics 真实场景 SQL 练习 免费(公开);付费自定义报价 用真实数据集,适合做作品集项目。 界面杂乱;无引导式课程。
LeetCode 力扣 面试准备 免费(基础)/约 ¥250/月(高级) 模拟大厂风格的高难题目。 对绝对新手太难,无手把手引导。
SQLZoo 快速查阅与刷题 免费 零成本、无需注册,适合查特定语法。 界面老旧;概念讲解有限。
Udemy(如 SQL 训练营) 视频式学习 约 ¥70-140(常打折) 全面、项目驱动、终身有效。 视频易变被动;容易拖延。

结论:预算紧张就选 Mode Analytics + SQLZoo;只有需要结构化手把手辅导时才值得为 DataCamp 付费。

常见问题

零编程经验,30 天真的够吗?

够,但你必须自律。SQL 是声明式的:你告诉数据库"要什么",而不是"怎么拿"。这比 Python、Java 好上手得多。计划假设你从零开始,但要求每天练习——连断三天你就会掉队。

该装 MySQL、PostgreSQL 还是 SQLite?

学习阶段什么都不用装。直接用一个在线环境,比如 SQLite Online 或 Mode Analytics。装环境浪费的时间能绕地球一圈。理解语法后,三种系统在基础查询上差异极小。PostgreSQL 更利于日后求职,但 SQLite 最好上手。

SQL 最难学的是哪部分?

连接和子查询,尤其是分不清该用 LEFT JOIN 还是 INNER JOIN,以及 HAVINGWHERE 的取舍。别灰心——这些概念往往在你写错几次之后才"咔哒"一下打通。

没有现成数据库,怎么练习?

有大量公开数据集可用。Google BigQuery 公开数据(免费层)或 Kaggle 都行。更简单的办法:把自己的银行流水 CSV 或某平台的浏览历史导进本地 SQLite。用自己关心的数据,学习立刻变得有趣多了。

会 SQL 就能当数据分析师吗?

SQL 是必要地基,但不是全部。你还需要 Excel(做报表)和一款可视化工具(Tableau 或 Power BI)。但 SQL 是"门槛"——SQL 面试不过,工作就黄。这个 30 天计划给你考过这道门槛的核心能力。等你开始把结果讲给别人听,可以搭配快速掌握汇报表达,让数据真正驱动决策。

想继续往数据方向深入?可以先读我们的数据分析入门指南,用 SQL 结合 Excel 做报表时再看Excel 高效用法,两条路都指向更系统的数据能力。

第 30 天的收官项目

别用"看视频"来结束这一个月。第 30 天你必须亲自搭一个东西。作业如下:下载一个含 500+ 行的销售数据集,写三条查询回答:1) 各区域总收入(用 GROUP BY);2) 按购买频次排名前五的客户(用 JOINCOUNT);3) 列出半年内未消费的客户(用子查询或带日期函数的 CTE)。可以把练习拆进一个个专注时段,配合番茄工作法防止大脑过载。如果你不翻笔记就能写完这三条,恭喜——你已经正式学会了 SQL。

📌 Pinterest 🐦 Twitter 📘 Facebook