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必知必会
登录|注册

45丨数据清洗:如何使用SQL对数据进行清洗?

陈旸 2019-09-23
SQL 可以帮我们进行数据处理,总的来说可以分成 OLTP 和 OLAP 两种方式。
OLTP 称之为联机事务处理,我们之前讲解的对数据进行增删改查,SQL 查询优化,事务处理等就属于 OLTP 的范畴。它对实时性要求高,需要将用户的数据有效地存储到数据库中,同时有时候针对互联网应用的需求,我们还需要设置数据库的主从架构保证数据库的高并发和高可用性。
OLAP 称之为联机分析处理,它是对已经存储在数据库中的数据进行分析,帮我们得出报表,指导业务。它对数据的实时性要求不高,但数据量往往很大,存储在数据库(数据仓库)中的数据可能还存在数据质量的问题,比如数据重复、数据中有缺失值,或者单位不统一等,因此在进行数据分析之前,首要任务就是对收集的数据进行清洗,从而保证数据质量。
对于数据分析工作来说,好的数据质量才是至关重要的,它决定了后期数据分析和挖掘的结果上限。数据挖掘模型选择得再好,也只能最大化地将数据特征挖掘出来。
高质量的数据清洗,才有高质量的数据。今天我们就来看下,如何用 SQL 对数据进行清洗。
想要进行数据清洗有怎样的准则呢?
如何使用 SQL 对数据进行清洗?
如何对清洗之后的数据进行可视化?

数据清洗的准则

我在《数据分析实战 45 讲》里专门讲到过数据清洗的原则,这里为了方便你理解,我用一个数据集实例讲一遍。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《SQL必知必会》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(7)

  • ttttt
    # Mac只能用Python了
    import pandas as pd
    import matplotlib.pyplot as plt

    # 读入清洗好的数据
    df = pd.read_csv('./titanic_train.csv')

    # 数据透视表用到的数据 df_temp
    df_temp = df[['Embarked', 'Survived']]

    # 生成数据透视表
    ## 方法1
    table = pd.pivot_table(df_temp, index=['Embarked'], columns=['Survived'], aggfunc=len)
    table = pd.pivot_table(df_temp, index=['Embarked'], columns=['Survived'], aggfunc=len)
    ## 方法2 数据交叉表
    table = pd.crosstab(df.Embarked, df.Survived)

    # 画图
    table.plot(kind='bar')
    plt.show()

    ----------------分割线 上面是code------------------
    talbe
    # 输出结果
    Survived 0 1
    Embarked
    C 75 93
    Q 47 30
    S 427 219
    2019-09-23
    5
  • 海洋
    检查全面性修改字段类型时,直接使用Navicat的设计表格功能修改,更快,只不过不利于新手锻炼SQL代码能力,同时可视化这块,一般清洗后,直接导出,然后使用Python或者BI软件进行进一步分析可视化
    2019-09-23
    1
  • ABC
    WPS同样可以使用,这种方式很方便.所需下载的文件我放到网盘了,地址: 链接: https://pan.baidu.com/s/1Wrq7VcypQiofKp70YaQLBA 提取码: 2avt

    看了这一课,忽然想去买数据分析的课学习一下.

    作者回复: 感谢 数据分析也很实用,包括Kaggle比赛的场景

    2019-11-30
  • Venom
    找不到数据集的人,这里能下,我也是刚找到。https://download.csdn.net/download/qq_44851287/11142360

    作者回复: 感谢Venom的分享

    2019-11-12
  • Elliot
    https://www.kaggle.com/c/titanic/data 这个属于github的吗?

    作者回复: 可以从kaggle上下载,也可以从github上下载 https://github.com/cystanford/Titanic_Data

    2019-10-27
    1
  • ttttt
    我的Python代码github地址
    https://github.com/LearningChanging/sql_must_konw/tree/master/45-%E6%95%B0%E6%8D%AE%E6%B8%85%E6%B4%97%EF%BC%9A%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8SQL%E5%AF%B9%E6%95%B0%E6%8D%AE%E8%BF%9B%E8%A1%8C%E6%B8%85%E6%B4%97%EF%BC%9F

    作者回复: 加油 感谢分享

    2019-09-23
  • ttttt
    仅对某一列缺失值处理
    时序数据:线性插值
    频谱数据:重采样
    ……
    2019-09-23
收起评论
7
返回
顶部