为什么是 SQL?以及你可能的误区

在转岗数据分析、后端开发或测试的门槛里,SQL 几乎是绕不过去的一道坎。它的独特之处在于“半衰期”极长——几十年前的语法今天依然在用,但这也意味着很多人学完就忘,或者只会写简单的 SELECT * FROM table。

这门课试图解决的核心问题,不是让你背诵语法,而是建立“数据库思维”。很多初学者卡在瓶颈,是因为不理解 DBMS(数据库管理系统)是如何执行一条语句的。如果你只把 SQL 当作查询工具,而忽略了它是如何与底层数据交互的,那么在面对复杂业务场景时,很容易写出性能低下的代码。课程开篇便强调这一点,旨在纠正“只知其然,不知其所以然”的学习状态。

课程核心内容与进阶路径

课程内容从基础语法一路深入到高级应用,适合有一定编程基础但数据库知识零散的学习者,也适合作为转行前的系统性补课。建议的学习顺序并非从头到尾线性阅读,而是根据你的缺口进行针对性强化。

首先,务必扎实掌握第一章的语法基础。这里不仅讲解 SELECT 的多种用法,更重点剖析数据过滤和SQL 函数的使用陷阱。很多开发者在使用函数时并未意识到其对性能的潜在影响,这部分内容能帮你避开常见的坑。接着,进入子查询与连接(Join)的学习。这是 SQL 从“简单检索”迈向“复杂业务逻辑”的分水岭。课程详细对比了 SQL92 与 SQL99 标准中连接语法的区别,理解了这一点,你才能写出语义清晰且兼容性好的多表关联查询。

对于进阶部分,聚集函数的深层应用、视图的工作原理以及存储过程的概念,是区分“会查数”和“懂设计”的关键。特别是存储过程,虽然在现代微服务架构中使用频率有所变化,但理解其封装逻辑对于处理遗留系统和复杂事务依然至关重要。

学完能做什么及资料配合建议

完成本课程后,你应该能够独立应对大多数企业级数据检索需求。具体而言,你能熟练编写包含多表连接、子查询嵌套以及复杂过滤条件的 SQL 语句;能够理解查询执行计划的大致逻辑,从而避免写出拖慢数据库的“慢查询”;同时,你也能初步具备设计和维护视图及基础存储过程的能力,为后续学习索引优化或数据库建模打下坚实基础。

资料包中的习题是检验理解程度的关键。请不要只看视频,务必亲手敲代码。建议在学完每一章后,立即对照资料中的练习进行实操,特别是针对连接查询和子查询的部分,只有通过报错和调试,才能真正内化那些抽象的执行逻辑。记住,SQL 是一门实践学科,眼过千遍不如手过一遍。

课程目录

开篇词 (1讲)

  1. 开篇词丨SQL可能是你掌握的最有用的技能

第一章:SQL语法基础篇 (19讲)

  1. 01丨了解SQL:一门半衰期很长的语言
  2. 02丨DBMS的前世今生
  3. 03丨学会用数据库的方式思考SQL是如何执行的
  4. 04丨使用DDL创建数据库&数据表时需要注意什么?
  5. 05丨检索数据:你还在SELECT _ 么?
  6. 06丨数据过滤:SQL数据过滤都有哪些方法?
  7. 07丨什么是SQL函数?为什么使用SQL函数可能会带来问题?
  8. 08丨什么是SQL的聚集函数,如何利用它们汇总表的数据?
  9. 09丨子查询:子查询的种类都有哪些,如何提高子查询的性能?
  10. 10丨常用的SQL标准有哪些,在SQL92中是如何使用连接的?
  11. 11丨SQL99是如何使用连接的,与SQL92的区别是什么?
  12. 12丨视图在SQL中的作用是什么,它是怎样工作的?
  13. 13丨什么是存储过程,在实际项目中用得多么?
  14. 14丨什么是事务处理,如何使用COMMIT和ROLLBACK进行操作?
  15. 15丨初识事务隔离:隔离的级别有哪些,它们都解决了哪些异常问题?
  16. 16丨游标:当我们需要逐条处理数据时,该怎么做?
  17. 17丨如何使用Python操作MySQL?
  18. 18丨SQLAlchemy:如何使用Python ORM框架来操作MySQL?
  19. 19丨基础篇总结:如何理解查询优化、通配符以及存储过程?

课程迭代 (7讲)

  1. 加餐01|Text to SQL:自然语言写SQL查询
  2. 加餐02|SQL实战:银行场景的数据查询与优化
  3. 加餐03|SQL实战:保险场景的数据查询与优化
  4. 加餐04|SQL实战:证券场景的数据查询与优化
  5. 加餐05|SQL实战:新能源车企的数据查询与优化
  6. 加餐06|SQL实战:快消场景的数据查询与优化
  7. 旅程再启|SQL Copilot:AI时代下的SQL查询与优化

第二章:SQL性能优化篇 (18讲)

  1. 20丨当我们思考数据库调优的时候,都有哪些维度可以选择?
  2. 21丨范式设计:数据表的范式有哪些,3NF指的是什么?
  3. 22丨反范式设计:3NF有什么不足,为什么有时候需要反范式设计?
  4. 23丨索引的概览:用还是不用索引,这是一个问题
  5. 24丨索引的原理:我们为什么用B+树来做索引?
  6. 25丨Hash索引的底层原理是什么?
  7. 26丨索引的使用原则:如何通过索引让SQL查询效率最大化?
  8. 27丨从数据页的角度理解B+树查询
  9. 28丨从磁盘I_O的角度理解SQL查询的成本
  10. 29丨为什么没有理想的索引?
  11. 30丨锁:悲观锁和乐观锁是什么?
  12. 31丨为什么大部分RDBMS都会支持MVCC?
  13. 32丨查询优化器是如何工作的?
  14. 33丨如何使用性能分析工具定位SQL执行慢的原因?
  15. 34丨答疑篇:关于索引以及缓冲池的一些解惑
  16. 35丨数据库主从同步的作用是什么,如何解决数据不一致问题?
  17. 36丨数据库没有备份,没有使用Binlog的情况下,如何恢复数据?
  18. 37丨SQL注入:你的SQL是如何被注入的?

第三章:认识DBMS (7讲)

  1. 38丨如何在Excel中使用SQL语言?
  2. 39丨WebSQL:如何在H5中存储一个本地数据库?
  3. 40丨SQLite:为什么微信用SQLite存储聊天记录?
  4. 41丨初识Redis:Redis为什么会这么快?
  5. 42丨如何使用Redis来实现多用户抢票问题
  6. 43丨如何使用Redis搭建玩家排行榜?
  7. 44丨DBMS篇总结和答疑:用SQLite做词云

第四章:SQL项目实战 (3讲)

  1. 45丨数据清洗:如何使用SQL对数据进行清洗?
  2. 46丨数据集成:如何对各种数据库进行集成和转换?
  3. 47丨如何利用SQL对零售数据进行分析?

结束语&期末测试 (2讲)

  1. 期末测试丨对于SQL的有关内容,你掌握了多少呢?
  2. 结束语 _ 互联网的下半场是数据驱动的时代