你将获得
- 熟练掌握 SQL 语法;
- 实战 SQL 性能优化;
- 玩转 6 大常用数据库;
- 基于 SQL 分析王者荣耀数据。
课程介绍
你一定听说过大名鼎鼎的 Oracle、MySQL、MongoDB 等,这些数据库管理系统虽然各有各的特色,但都是基于一个语言标准发展起来的,那就是 SQL。
作为一门数据库语言,SQL 可以帮我们在日常工作中处理各种数据,比如删除某一列数据、创建一个表、合并多个表格等。
如果你是程序员、产品经理或者是运营,在工作中,你可能会经常与数据打交道,比如处理以下问题:
- 如何又快又准确地提取数据?
- 如何评判产品改版在 A/B 测试中的留存率和点击率?
- 新活动上线后,如何分析不同时间段的点击率和转化率?
这些问题统统与数据有关,SQL 语言可以轻松地帮你搞定。从这个意义上来说,没有什么比学习一门 SQL 语言更具性价比了,它有可能是你掌握的最有用的技能。
SQL 语言的语法与英语类似,这意味着你不需要有多高深的编程知识和数学基础,同样可以掌握这门数据库语言。它可以让你的工作效率翻倍,在职场中更具竞争力。
陈旸,清华大学计算机博士,“数据分析实战 45 讲”作者。前 IBM 中国研究院工程师。IEEE & ACM Member,中国人工智能协会成员,中国计算机协会 CCF 大数据专委。
在这个专栏里,他将从最基础的语法开始讲起,带你一步步走进 SQL 的世界。SQL 入门简单,也就意味着初期学习的时候,很多人会不拘小节,往往忽略了语句编写带来的性能问题。作者会从日常工作中常见的问题出发,带你编写高性能的 SQL 语句,最终学会在项目中使用 SQL。
专栏模块
专栏分为 4 大模块。
基础篇
以 NBA 球队球员数据和王者荣耀数据为案例基础,全面讲解 SQL 语言的基础语法知识,在实际操作中加深理解。
进阶篇
不同的 SQL 语句,为什么执行的效率就是不一样?本模块从实际出发,拆解日常工作中常见的 SQL 性能问题,教你写出高效率的 SQL 语句。
高级篇
SQL 语言是关系型数据库管理系统(RDBMS)的通用语言。在工作中,我们就是通过各种各样的 DBMS 处理数据的。本模块将重点介绍使用频率较高的 DBMS,带你了解 SQL 语言的使用场景和平台。
实战篇
从实战角度出发,将前几个模块的内容系统整合,讲解如何用 SQL 完成数据分析中具体的项目,比如数据清洗、数据集成等。
├── 01-开篇词 (1讲)/
│ ├── 00丨开篇词丨SQL可能是你掌握的最有用的技能.html
│ ├── 00丨开篇词丨SQL可能是你掌握的最有用的技能.mp3
│ └── 00丨开篇词丨SQL可能是你掌握的最有用的技能.pdf
├── 02-第一章:SQL语法基础篇 (6讲)/
│ ├── 01丨了解SQL:一门半衰期很长的语言.html
│ ├── 01丨了解SQL:一门半衰期很长的语言.mp3
│ ├── 01丨了解SQL:一门半衰期很长的语言.pdf
│ ├── 02丨DBMS的前世今生.html
│ ├── 02丨DBMS的前世今生.mp3
│ ├── 02丨DBMS的前世今生.pdf
│ ├── 03丨学会用数据库的方式思考SQL是如何执行的.html
│ ├── 03丨学会用数据库的方式思考SQL是如何执行的.mp3
│ ├── 03丨学会用数据库的方式思考SQL是如何执行的.pdf
│ ├── 04丨使用DDL创建数据库&数据表时需要注意什么?.html
│ ├── 04丨使用DDL创建数据库&数据表时需要注意什么?.mp3
│ ├── 04丨使用DDL创建数据库&数据表时需要注意什么?.pdf
│ ├── 05丨检索数据:你还在SELECT 么?.html
│ ├── 05丨检索数据:你还在SELECT 么?.mp3
│ ├── 05丨检索数据:你还在SELECT 么?.pdf
│ ├── 06丨数据过滤:SQL数据过滤都有哪些方法?.html
│ ├── 06丨数据过滤:SQL数据过滤都有哪些方法?.mp3
│ ├── 06丨数据过滤:SQL数据过滤都有哪些方法?.pdf
│ ├── 07丨什么是SQL函数?为什么使用SQL函数可能会带来问题?.html
│ ├── 07丨什么是SQL函数?为什么使用SQL函数可能会带来问题?.mp3
│ ├── 07丨什么是SQL函数?为什么使用SQL函数可能会带来问题?.pdf
│ ├── 08丨什么是SQL的聚集函数,如何利用它们汇总表的数据?.html
│ ├── 08丨什么是SQL的聚集函数,如何利用它们汇总表的数据?.mp3
│ ├── 08丨什么是SQL的聚集函数,如何利用它们汇总表的数据?.pdf
│ ├── 09丨子查询:子查询的种类都有哪些,如何提高子查询的性能?.html
│ ├── 09丨子查询:子查询的种类都有哪些,如何提高子查询的性能?.mp3
│ ├── 09丨子查询:子查询的种类都有哪些,如何提高子查询的性能?.pdf
│ ├── 10丨常用的SQL标准有哪些,在SQL92中是如何使用连接的?.html
│ ├── 10丨常用的SQL标准有哪些,在SQL92中是如何使用连接的?.mp3
│ ├── 10丨常用的SQL标准有哪些,在SQL92中是如何使用连接的?.pdf
│ ├── 11丨SQL99是如何使用连接的,与SQL92的区别是什么?.html
│ ├── 11丨SQL99是如何使用连接的,与SQL92的区别是什么?.mp3
│ ├── 11丨SQL99是如何使用连接的,与SQL92的区别是什么?.pdf
│ ├── 12丨视图在SQL中的作用是什么,它是怎样工作的?.html
│ ├── 12丨视图在SQL中的作用是什么,它是怎样工作的?.mp3
│ ├── 12丨视图在SQL中的作用是什么,它是怎样工作的?.pdf
│ ├── 13丨什么是存储过程,在实际项目中用得多么?.html
│ ├── 13丨什么是存储过程,在实际项目中用得多么?.mp3
│ ├── 13丨什么是存储过程,在实际项目中用得多么?.pdf
│ ├── 14丨什么是事务处理,如何使用COMMIT和ROLLBACK进行操作?.html
│ ├── 14丨什么是事务处理,如何使用COMMIT和ROLLBACK进行操作?.mp3
│ ├── 14丨什么是事务处理,如何使用COMMIT和ROLLBACK进行操作?.pdf
│ ├── 15丨初识事务隔离:隔离的级别有哪些,它们都解决了哪些异常问题?.html
│ ├── 15丨初识事务隔离:隔离的级别有哪些,它们都解决了哪些异常问题?.mp3
│ ├── 15丨初识事务隔离:隔离的级别有哪些,它们都解决了哪些异常问题?.pdf
│ ├── 16丨游标:当我们需要逐条处理数据时,该怎么做?.html
│ ├── 16丨游标:当我们需要逐条处理数据时,该怎么做?.mp4
│ ├── 16丨游标:当我们需要逐条处理数据时,该怎么做?.pdf
│ ├── 17丨如何使用Python操作MySQL?.html
│ ├── 17丨如何使用Python操作MySQL?.mp4
│ ├── 17丨如何使用Python操作MySQL?.pdf
│ ├── 18丨SQLAlchemy:如何使用PythonORM框架来操作MySQL?.html
│ ├── 18丨SQLAlchemy:如何使用PythonORM框架来操作MySQL?.mp3
│ ├── 18丨SQLAlchemy:如何使用PythonORM框架来操作MySQL?.pdf
│ ├── 19丨基础篇总结:如何理解查询优化、通配符以及存储过程?.html
│ ├── 19丨基础篇总结:如何理解查询优化、通配符以及存储过程?.mp3
│ └── 19丨基础篇总结:如何理解查询优化、通配符以及存储过程?.pdf
├── 03-第二章:SQL性能优化篇 (18讲)/
│ ├── 20丨当我们思考数据库调优的时候,都有哪些维度可以选择?.html
│ ├── 20丨当我们思考数据库调优的时候,都有哪些维度可以选择?.mp3
│ ├── 20丨当我们思考数据库调优的时候,都有哪些维度可以选择?.pdf
│ ├── 21丨范式设计:数据表的范式有哪些,3NF指的是什么?.html
│ ├── 21丨范式设计:数据表的范式有哪些,3NF指的是什么?.mp3
│ ├── 21丨范式设计:数据表的范式有哪些,3NF指的是什么?.pdf
│ ├── 22丨反范式设计:3NF有什么不足,为什么有时候需要反范式设计?.html
│ ├── 22丨反范式设计:3NF有什么不足,为什么有时候需要反范式设计?.mp3
│ ├── 22丨反范式设计:3NF有什么不足,为什么有时候需要反范式设计?.pdf
│ ├── 23丨索引的概览:用还是不用索引,这是一个问题.html
│ ├── 23丨索引的概览:用还是不用索引,这是一个问题.mp3
│ ├── 23丨索引的概览:用还是不用索引,这是一个问题.pdf
│ ├── 24丨索引的原理:我们为什么用B+树来做索引?.html
│ ├── 24丨索引的原理:我们为什么用B+树来做索引?.mp3
│ ├── 24丨索引的原理:我们为什么用B+树来做索引?.pdf
│ ├── 25丨Hash索引的底层原理是什么?.html
│ ├── 25丨Hash索引的底层原理是什么?.mp3
│ ├── 25丨Hash索引的底层原理是什么?.pdf
│ ├── 26丨索引的使用原则:如何通过索引让SQL查询效率最大化?.html
│ ├── 26丨索引的使用原则:如何通过索引让SQL查询效率最大化?.mp3
│ ├── 26丨索引的使用原则:如何通过索引让SQL查询效率最大化?.pdf
│ ├── 27丨从数据页的角度理解B+树查询.html
│ ├── 27丨从数据页的角度理解B+树查询.mp3
│ ├── 27丨从数据页的角度理解B+树查询.pdf
│ ├── 28丨从磁盘I-O的角度理解SQL查询的成本.html
│ ├── 28丨从磁盘I-O的角度理解SQL查询的成本.mp3
│ ├── 28丨从磁盘I-O的角度理解SQL查询的成本.pdf
│ ├── 29丨为什么没有理想的索引?.html
│ ├── 29丨为什么没有理想的索引?.mp3
│ ├── 29丨为什么没有理想的索引?.pdf
│ ├── 30丨锁:悲观锁和乐观锁是什么?.html
│ ├── 30丨锁:悲观锁和乐观锁是什么?.mp3
│ ├── 30丨锁:悲观锁和乐观锁是什么?.pdf
│ ├── 31丨为什么大部分RDBMS都会支持MVCC?.html
│ ├── 31丨为什么大部分RDBMS都会支持MVCC?.mp3
│ ├── 31丨为什么大部分RDBMS都会支持MVCC?.pdf
│ ├── 32丨查询优化器是如何工作的?.html
│ ├── 32丨查询优化器是如何工作的?.mp3
│ ├── 32丨查询优化器是如何工作的?.pdf
│ ├── 33丨如何使用性能分析工具定位SQL执行慢的原因?.html
│ ├── 33丨如何使用性能分析工具定位SQL执行慢的原因?.mp3
│ ├── 33丨如何使用性能分析工具定位SQL执行慢的原因?.pdf
│ ├── 34丨答疑篇:关于索引以及缓冲池的一些解惑.html
│ ├── 34丨答疑篇:关于索引以及缓冲池的一些解惑.mp3
│ ├── 34丨答疑篇:关于索引以及缓冲池的一些解惑.pdf
│ ├── 35丨如何在Excel中使用SQL语言?.html
│ ├── 35丨如何在Excel中使用SQL语言?.mp3
│ ├── 35丨如何在Excel中使用SQL语言?.mp4
│ ├── 35丨如何在Excel中使用SQL语言?.pdf
│ ├── 35丨如何在Excel中使用SQL语言?2.mp4
│ ├── 36丨WebSQL:如何在H5中存储一个本地数据库?.html
│ ├── 36丨WebSQL:如何在H5中存储一个本地数据库?.mp3
│ ├── 36丨WebSQL:如何在H5中存储一个本地数据库?.pdf
│ ├── 37丨SQLite:为什么微信用SQLite存储聊天记录?.html
│ ├── 37丨SQLite:为什么微信用SQLite存储聊天记录?.m4a
│ └── 37丨SQLite:为什么微信用SQLite存储聊天记录?.pdf
├── 04-第三章:认识DBMS (7讲)/
│ ├── 38丨初识Redis:Redis为什么会这么快?.html
│ ├── 38丨初识Redis:Redis为什么会这么快?.m4a
│ ├── 38丨初识Redis:Redis为什么会这么快?.pdf
│ ├── 39丨如何使用Redis来实现多用户抢票问题.html
│ ├── 39丨如何使用Redis来实现多用户抢票问题.m4a
│ ├── 39丨如何使用Redis来实现多用户抢票问题.pdf
│ ├── 40丨初识Redis:Redis为什么会这么快?.html
│ ├── 40丨初识Redis:Redis为什么会这么快?.m4a
│ ├── 40丨初识Redis:Redis为什么会这么快?.pdf
│ ├── 41丨如何使用Redis来实现多用户抢票问题.html
│ ├── 41丨如何使用Redis来实现多用户抢票问题.m4a
│ ├── 41丨如何使用Redis来实现多用户抢票问题.pdf
│ ├── 42丨如何使用Redis搭建玩家排行榜?.html
│ ├── 42丨如何使用Redis搭建玩家排行榜?.m4a
│ ├── 42丨如何使用Redis搭建玩家排行榜?.pdf
│ ├── 43丨如何使用Redis搭建玩家排行榜?.html
│ ├── 43丨如何使用Redis搭建玩家排行榜?.m4a
│ ├── 43丨如何使用Redis搭建玩家排行榜?.pdf
│ ├── 44丨DBMS篇总结和答疑:用SQLite做词云.html
│ ├── 44丨DBMS篇总结和答疑:用SQLite做词云.m4a
│ └── 44丨DBMS篇总结和答疑:用SQLite做词云`.pdf
├── 05-第四章:SQL项目实战 (3讲)/
│ ├── 45丨数据清洗:如何使用SQL对数据进行清洗?.html
│ ├── 45丨数据清洗:如何使用SQL对数据进行清洗?.m4a
│ ├── 45丨数据清洗:如何使用SQL对数据进行清洗?.pdf
│ ├── 46丨数据集成:如何对各种数据库进行集成和转换?.html
│ ├── 46丨数据集成:如何对各种数据库进行集成和转换?.m4a
│ ├── 46丨数据集成:如何对各种数据库进行集成和转换?.pdf
│ ├── 47丨如何利用SQL对零售数据进行分析?.html
│ ├── 47丨如何利用SQL对零售数据进行分析?.m4a
│ └── 47丨如何利用SQL对零售数据进行分析?.pdf
├── 06-结束语 (1讲)/
│ ├── 结束语丨互联网的下半场是数据驱动的时代.html
│ ├── 结束语丨互联网的下半场是数据驱动的时代.m4a
│ └── 结束语丨互联网的下半场是数据驱动的时代.pdf
├── 35丨数据库主从同步的作用是什么,如何解决数据不一致问题?.html
├── 35丨数据库主从同步的作用是什么,如何解决数据不一致问题?.m4a
├── 35丨数据库主从同步的作用是什么,如何解决数据不一致问题?.pdf
├── 36丨数据库没有备份,没有使用Binlog的情况下,如何恢复数据?.html
├── 36丨数据库没有备份,没有使用Binlog的情况下,如何恢复数据?.m4a
├── 36丨数据库没有备份,没有使用Binlog的情况下,如何恢复数据?.pdf
├── 37丨SQL注入:你的SQL是如何被注入的?.html
├── 37丨SQL注入:你的SQL是如何被注入的?.m4a
└── 37丨SQL注入:你的SQL是如何被注入的?.pdf
免责声明:
评论0