SQL必知必会
陈旸
清华大学计算机博士
立即订阅
10179 人已学习
课程目录
已完结 49 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词丨SQL可能是你掌握的最有用的技能
免费
第一章:SQL语法基础篇 (19讲)
01丨了解SQL:一门半衰期很长的语言
02丨DBMS的前世今生
03丨学会用数据库的方式思考SQL是如何执行的
04丨使用DDL创建数据库&数据表时需要注意什么?
05丨检索数据:你还在SELECT * 么?
06丨数据过滤:SQL数据过滤都有哪些方法?
07丨什么是SQL函数?为什么使用SQL函数可能会带来问题?
08丨什么是SQL的聚集函数,如何利用它们汇总表的数据?
09丨子查询:子查询的种类都有哪些,如何提高子查询的性能?
10丨常用的SQL标准有哪些,在SQL92中是如何使用连接的?
11丨SQL99是如何使用连接的,与SQL92的区别是什么?
12丨视图在SQL中的作用是什么,它是怎样工作的?
13丨什么是存储过程,在实际项目中用得多么?
14丨什么是事务处理,如何使用COMMIT和ROLLBACK进行操作?
15丨初识事务隔离:隔离的级别有哪些,它们都解决了哪些异常问题?
16丨游标:当我们需要逐条处理数据时,该怎么做?
17丨如何使用Python操作MySQL?
18丨SQLAlchemy:如何使用Python ORM框架来操作MySQL?
19丨基础篇总结:如何理解查询优化、通配符以及存储过程?
第二章:SQL性能优化篇 (18讲)
20丨当我们思考数据库调优的时候,都有哪些维度可以选择?
21丨范式设计:数据表的范式有哪些,3NF指的是什么?
22丨反范式设计:3NF有什么不足,为什么有时候需要反范式设计?
23丨索引的概览:用还是不用索引,这是一个问题
24丨索引的原理:我们为什么用B+树来做索引?
25丨Hash索引的底层原理是什么?
26丨索引的使用原则:如何通过索引让SQL查询效率最大化?
27丨从数据页的角度理解B+树查询
28丨从磁盘I/O的角度理解SQL查询的成本
29丨为什么没有理想的索引?
30丨锁:悲观锁和乐观锁是什么?
31丨为什么大部分RDBMS都会支持MVCC?
32丨查询优化器是如何工作的?
33丨如何使用性能分析工具定位SQL执行慢的原因?
34丨答疑篇:关于索引以及缓冲池的一些解惑
35丨数据库主从同步的作用是什么,如何解决数据不一致问题?
36丨数据库没有备份,没有使用Binlog的情况下,如何恢复数据?
37丨SQL注入:你的SQL是如何被注入的?
第三章:认识DBMS (7讲)
38丨如何在Excel中使用SQL语言?
39丨WebSQL:如何在H5中存储一个本地数据库?
40丨SQLite:为什么微信用SQLite存储聊天记录?
41丨初识Redis:Redis为什么会这么快?
42丨如何使用Redis来实现多用户抢票问题
43丨如何使用Redis搭建玩家排行榜?
44丨DBMS篇总结和答疑:用SQLite做词云
第四章:SQL项目实战 (3讲)
45丨数据清洗:如何使用SQL对数据进行清洗?
46丨数据集成:如何对各种数据库进行集成和转换?
47丨如何利用SQL对零售数据进行分析?
结束语 (1讲)
结束语 | 互联网的下半场是数据驱动的时代
SQL必知必会
登录|注册

44丨DBMS篇总结和答疑:用SQLite做词云

陈旸 2019-09-20
在认识 DBMS 篇中,我们讲解了 Excel+SQL、WebSQL、SQLite 以及 Redis 的使用,这些 DBMS 有自己适用的领域,我们可以根据需求选择适合的 DBMS。我总结了一些大家常见的问题,希望能对你有所帮助。

关于 Excel+SQL

答疑 1:关于 mysql-for-excel 的安装

Excel 是我们常用的办公软件,使用 SQL 做数据分析的同学也可以使用 Excel+SQL 作为报表工具,通过它们提取一些指定条件的数据,形成数据透视表或者数据透视图。
但是有同学在安装 mysql-for-excel-1.3.8.msi 时报错,这里感谢同学莫弹弹给出了解答。解决这个问题的办法是在安装时需要 Visual Studio 2010 Tools for Office Runtime 才能运行。

关于 WebSQL

我在讲解 WebSQL 操作本地存储时,可以使用浏览器中的 Clear Storage 功能。有同学问到:这里只能用户手动删除才可以吗?
事实上,除了在浏览器里手动删除以外,我们完全可以通过程序来控制本地的 SQLite。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《SQL必知必会》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(6)

  • Demon.Lee
    1、这里,排行榜中如果要显示用户名称,需要放到有序集合中,这样就不需要再通过 MySQL 查询一次。这种需要实时排名计算的,通过 Redis 解决更适合。
    ----老师,这里不明白,有序集合里面不是已经存放了userId,如何再存放userName

    2、第二个问题是,我们使用 Redis 作为 MySQL 的缓存,假设 MySQL 存储了 1000 万的数据,Redis 只保存有限的数据,比如 10 万数据量,如何保证 Redis 存储的数据都是热点数据呢?
    ----把查询到的数据保存一份到redis,使用有序集合,每次如果从redis获取到,则score+1,超过10w条数据,则删除。(好像也有问题)
    2019-09-20
    1
  • 雪飞鸿
    根据业务来预判哪些数据是热数据,可提前写入redis。后续再根据访问频次(如,用有序集合记录访问次数)动态调整redis中缓存的数据。网上许多讨论热点Key的文章,所谈讨的情况还是比较复杂的。
    2019-11-13
  • 爱思考的仙人球
    热点数据就是访问率高的那些数据吧,我有一个笨方法,就是增加一个热点数据表,首先记录所有1000万数据的id,访问次数默认为0,然后每访问一次,次数+1,倒序排名,取前10万条。
    2019-10-28
    1
  • jxs1211
    有些复杂的sql语句,如何转换成对应的sqlalchemy语句,有什么好的工具和方法吗

    作者回复: 常见的SQL语句,基本上都可以通过sqlalchemy来实现,如果查询太复杂,你可以使用存储过程,直接使用SQL也是可以的

    2019-09-20
  • 往事随风,顺其自然
    通过redis 的得分来进行存储热点数据
    2019-09-20
  • 蒙开强
    老师,你好,用redis做缓存,那么如何保证与MySQL数据库数据一致呢,先存redis和先存mysql都会有问题
    2019-09-20
收起评论
6
返回
顶部