- 课程目录
- 课程介绍
-
在线阅读:开篇词丨SQL可能是你掌握的最有用的技能
SQL的实用和强大远远不止体现在IT技术领域,在产品和运营方面,SQL更是发挥了它强大的威力。
-
01丨了解SQL:一门半衰期很长的语言
按照功能,我们把SQL分成四个部分:DDL、DML、DCL、DQL。它们的功能都是什么呢?
-
02丨DBMS的前世今生
今天我们先从SQL语言中跳脱出来,来分析下常见的DBMS。
-
03丨学会用数据库的方式思考SQL是如何执行的
在RDBMS中,SQL的实现方式是有差别的。在Oracle和MySQL中,SQL是如何被执行的?
-
04丨使用DDL创建数据库&数据表时需要注意什么?
DDL是DBMS的核心组件,也是SQL的重要组成部分,使用它的时候我们应该注意什么?
-
05丨检索数据:你还在SELECT * 么?
SELECT可以说是SQL中最常用的语句,那么在使用它的时候,我们又该注意什么呢?
-
06丨数据过滤:SQL数据过滤都有哪些方法?
WHERE子句是过滤数据的重要方法,那么针对检索条件,都有哪几种方式可以进行过滤呢?
-
07丨什么是SQL函数?为什么使用SQL函数可能会带来问题?
函数在计算机语言的使用中贯穿始终,在SQL中我们也可以使用函数对检索出来的数据进行函数操作。
-
08丨什么是SQL的聚集函数,如何利用它们汇总表的数据?
上一篇文章中,我们讲到了SQL的函数,事实上,SQL还有另一种函数叫做聚集函数,它又有什么作用呢?
-
09丨子查询:子查询的种类都有哪些,如何提高子查询的性能?
之前讲的内容都是围绕单个表的SELECT查询展开的,实际上SQL还可以嵌套在查询中进行查询。
-
10丨常用的SQL标准有哪些,在SQL92中是如何使用连接的?
SQL有两个重要标准,一个是SQL92,一个是SQL99。今天我们先讲一下SQL92。
-
11丨SQL99是如何使用连接的,与SQL92的区别是什么?
上节课我们讲解了SQL92标准,在它之后又提出了SQL99标准。
-
12丨视图在SQL中的作用是什么,它是怎样工作的?
今天我们来看下如何对视图进行查询。视图,也就是我们今天要讲的虚拟表。
-
13丨什么是存储过程,在实际项目中用得多么?
SQL的存储过程和视图一样,都是对SQL代码进行封装,可以反复利用。
-
14丨什么是事务处理,如何使用COMMIT和ROLLBACK进行操作?
现实生活中,我们可能会面对交了钱却拿不到商品的烦恼,如果线下的交易也能支持事务就不会出现这种情况了。
-
15丨初识事务隔离:隔离的级别有哪些,它们都解决了哪些异常问题?
我们今天讲解一下4种隔离级别,以及对应的要解决的三种异常问题。
-
16丨游标:当我们需要逐条处理数据时,该怎么做?
游标是一种面向过程的编程方式,与面向集合的思考方式有很大区别。我们该如何理解游标呢?
-
17丨如何使用Python操作MySQL?
除了直接在DBMS里面对SQL进行操作以外,我们还可以通过后端语言进行同样的操作。
-
18丨SQLAlchemy:如何使用Python ORM框架来操作MySQL?
在mysql-connector不够用的情况下,我们可以采用ORM框架与MySQL进行交互。
-
19丨基础篇总结:如何理解查询优化、通配符以及存储过程?
我总结了一些基础篇的常见问题进行解答,希望能对你有所帮助。
-
20丨当我们思考数据库调优的时候,都有哪些维度可以选择?
我们今天从整体的角度认识一下数据库调优这件事,看看优化SQL的时候,我们都需要做哪些工作。
-
21丨范式设计:数据表的范式有哪些,3NF指的是什么?
范式是数据表设计的基本原则,又很容易被忽略,在开始设置数据库的时候,我们需要重视数据表的设计。
-
22丨反范式设计:3NF有什么不足,为什么有时候需要反范式设计?
范式本身没有优劣之分,只有适用场景不同。反范式设计与范式设计的区别又是什么呢?
-
23丨索引的概览:用还是不用索引,这是一个问题
我们可以简单地把优化SQL理解为优化索引,那么该如何优化索引呢?同时又要注意哪些问题呢?
-
24丨索引的原理:我们为什么用B+树来做索引?
今天我们来看下索引的数据结构究竟是怎样的?
-
25丨Hash索引的底层原理是什么?
Hash本身是一个函数,又被称为散列函数,它可以帮助我们大幅提升检索数据的效率。
-
26丨索引的使用原则:如何通过索引让SQL查询效率最大化?
既然我们的目标是提升SQL的查询效率,那么该如何通过索引让效率最大化呢?
-
27丨从数据页的角度理解B+树查询
对数据库的存储结构以及页结构的底层进行了解,可以加深我们对索引运行机制的认识。
-
28丨从磁盘I/O的角度理解SQL查询的成本
为了更好地理解SQL查询效率是怎么一回事,今天我们就来看看磁盘I/O是如何加载数据的。
-
29丨为什么没有理想的索引?
在实际工作中理想的索引往往会带来更多的资源消耗,这是为什么呢?
-
30丨锁:悲观锁和乐观锁是什么?
事务的隔离级别的实现都是通过锁来完成的,你可以思考下为什么我们需要给数据加锁呢?
-
31丨为什么大部分RDBMS都会支持MVCC?
今天我们来看下MVCC,它是采用乐观锁思想实现的一种方式。那么它到底有什么用呢?
-
32丨查询优化器是如何工作的?
如果我们想要知道如何获取更高的SQL查询性能,最好的方式就是理解数据库是如何进行查询优化和执行的。
-
33丨如何使用性能分析工具定位SQL执行慢的原因?
从哪里定位SQL查询慢的问题呢?索引设计?服务器参数配置还是需要增加缓存?
-
34丨答疑篇:关于索引以及缓冲池的一些解惑
今天答疑的内容主要包括了索引原则、自适应Hash、缓冲池机制和存储引擎等。
-
35丨数据库主从同步的作用是什么,如何解决数据不一致问题?
读写分离可以提升数据库的并发处理能力,但主从架构的作用不止于此,它还有什么作用呢?
-
36丨数据库没有备份,没有使用Binlog的情况下,如何恢复数据?
我们今天要讨论一个特殊的情况,也就是在没做数据库备份,没有开启使用Binlog的情况下,如何尽可能地找回数据?
-
37丨SQL注入:你的SQL是如何被注入的?
我们能经常看到用户信息被泄露,这种情况很大程度上和SQL注入有关,了解SQL注入的原理以及防范是非常有必要的。
-
38丨如何在Excel中使用SQL语言?
事实上,Excel的某些部分同样支持我们使用SQL语言,那么具体该如何操作呢?
-
39丨WebSQL:如何在H5中存储一个本地数据库?
WebSQL是一种操作本地数据库的网页API接口,通过它,我们就可以操作客户端的本地存储。
-
40丨SQLite:为什么微信用SQLite存储聊天记录?
当我们在Chrome、Safari和Firefox等浏览器客户端中使用WebSQL时,会直接操作SQLite。
-
41丨初识Redis:Redis为什么会这么快?
Redis属于键值(key-value)数据库,键值数据库会使用哈希表存储键值和数据。
-
42丨如何使用Redis来实现多用户抢票问题
今天我们来更加深入地了解一下Redis的原理,比如Redis的事务处理机制是怎样的?
-
43丨如何使用Redis搭建玩家排行榜?
假设一个服务器存储了10万名玩家的数据,该怎么用Redis给这个区上的玩家做个全区的排名呢?
-
44丨DBMS篇总结和答疑:用SQLite做词云
我总结了一些大家常见的问题,希望能对你有所帮助。
-
45丨数据清洗:如何使用SQL对数据进行清洗?
高质量的数据清洗,才有高质量的数据。今天我们就来看下,如何用SQL对数据进行清洗。
-
46丨数据集成:如何对各种数据库进行集成和转换?
数据集成是数据分析之前非常重要的工作,它将不同来源、不同规范以及不同质量的数据进行统一收集和整理。
-
47丨如何利用SQL对零售数据进行分析?
我们之前已经学会了如何对数据进行清洗和集成,今天我们来看下如何使用SQL分析数据。
-
结束语 | 互联网的下半场是数据驱动的时代
我希望这个专栏可以帮你打开数据的大门,从而通过数据发现更多的宝藏。
-
在线阅读:期末测试丨对于SQL的有关内容,你掌握了多少呢?
快来检测一下吧!
课程介绍
你将获得 熟练掌握SQL语法; 实战SQL性能优化; 玩转6大常用数据库; 基于SQL分析王者荣耀数据。 讲师介绍 课程介绍 如果你是程序员、产品经理或者是运营,在工作中,你可能会经常与数据打交道,比如处理以下问题:...你将获得
- 熟练掌握SQL语法;
- 实战SQL性能优化;
- 玩转6大常用数据库;
- 基于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完成数据分析中具体的项目,比如数据清洗、数据集成等。
课程目录


