猜你喜欢
对比Excel,轻松学习SQL数据分析

对比Excel,轻松学习SQL数据分析

书籍作者:张俊红 ISBN:9787121390029
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:6560
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书是《对比Excel,轻松学习Python 数据分析》的姊妹篇,同样采用对比的方法,降低学习门槛,提高学习效率。全书分为3 篇:第1 篇主要介绍数据分析的基础知识,包括数据分析的基本概念、为什么要进行数据分析及常规的数据分析流程,使读者对数据分析有一个整体的认识;第2 篇主要围绕数据分析的整个流程来介绍与SQL 语法相关的知识,包括如何选取一列数据、如何对数据进行分组运算等基础知识,还包括窗口函数等进阶知识;第3 篇主要介绍SQL 数据分析实战,都是一些比较常规的业务场景实战。

本书适合零基础学习 SQL 的人员,包括数据分析师、产品经理、数据运营人员、市场营销人员、应届毕业生等所有需要利用SQL 查询数据的人员。


作者简介

张俊红:某互联网公司高级数据分析师,畅销书《对比Excel,轻松学习Python数据分析》作者。喜欢分享,致力于做一个数据科学路上的终身学习者、实践者、分享者。公众号“俊红的数据分析之路”运营人。


编辑推荐

《对比Excel,轻松学习Python 数据分析》姊妹篇,同样采用对比的方法,降低学习门槛,提高学习效率。

学习SQL 的主要原因是工作需要。网上关于数据相关岗位的招聘都要求有熟练使用SQL 这一条,为什么会这样呢?这是因为我们负责的是与数据相关的工作,而获取数据是我们工作的第一步,比如,你要通过数据做决策,但是现在公司的数据基本上不存储在本地Excel 表中,而是存储在数据库中,想要从数据库中获取数据就需要使用SQL,所以熟练使用SQL 成了数据相关从业者入职的必要条件。本书的所有代码和函数均以MySQL 8.0 为主。



前言

前言

为什么要写这本书

《对比 Excel,轻松学习Python 数据分析》在出版后收到了不少读者和同行的评论,说写作角度很独特,对新手很友好,笔者印象最深刻的一条评论是:“一本书的好坏足以影响一个人要不要继续在这条路上走下去。”如果能够让读者意识到学习这门知识并不难,并且愿意继续学下去,哪怕这本书不能让读者完全掌握这门技能,但是至少让读者有了走下去的信心,笔者觉得也是极好的。

基于以上原因,笔者重新审视了一下自己,又去看了看市面上与 SQL 相关的书,发现目前市面上与 SQL 相关的书主要有两类:一类是讲解基础知识的;另一类是讲解数据库底层知识的。专门面向数据分析师的 SQL 的书并没有。学过数据库的读者应该都知道,数据库的基本功能是增、删、改、查,做过数据分析工作的读者基本上也知道,数据分析师基本不需要进行增、删、改操作,只需要进行查操作。说到查,大部分人都会觉得很简单,不就是 select * from t 吗?select 本身没什么难度,随便在网上搜一篇教程或者找一本讲查询基础知识的书,一天基本就可以学会了。

但是为什么我们学会了select,在面试或者刚参加工作接到一个需求的时候,还是不知道怎么用select 呢?这是因为书里面讲的基础知识都是一步一步拆解完的,在实际工作中你需要进行组装,没有一个现成的表格让你select 一下就出结果了,你需要进行各种各样的join、group by 等操作,然后才能得到想要的结果。如何组装每一步操作才是利用SQL 进行数据分析的难点。但这部分知识目前市面上的书中几乎都没有讲,所以,笔者决定再写一本读者呼声比较大的、与SQL 相关的书——《对比Excel,轻松学习SQL 数据分析》。

为什么要学习 SQL

学习SQL 的主要原因是工作需要。网上关于数据相关岗位的招聘都要求有熟练使用SQL 这一条,为什么会这样呢?这是因为我们负责的是与数据相关的工作,而获取数据是我们工作的第一步,比如,你要通过数据做决策,但是现在公司的数据基本上不存储在本地Excel 表中,而是存储在数据库中,想要从数据库中获取数据就需要使用SQL,所以熟练使用SQL 成了数据相关从业者入职的必要条件。

为什么要对比 Excel 学习SQL

不知道读者还记不记得,上学的时候背元素周期表、背三角定理、背单词等,老师是不是教了很多顺口溜?

想一下为什么老师要教我们顺口溜,或者我们为什么要通过所谓的方法学习或记忆知识呢?笔者觉得所有的方法都是为了让我们的学习更有效率,更容易掌握所学的知识。

对比学习是一种学习方法,而且《对比 Excel,轻松学习Python 数据分析》的读者对此方法反响很好,为了尽可能地降低读者的学习门槛,笔者打算继续沿用这种写作风格。

本书学习建议

本书的前半部分主要介绍 SQL 的一些基础知识,后半部分主要介绍实战,读者在学完前面基础知识以后对后面的实战部分一定要多看几遍,在看解析之前尽量先自己独立思考,如果现在让你做,你会怎么做?因为前面说过,学习 SQL 的难点在于思维,所以读者一定要重点通过后面的实战部分来锻炼自己的思维。

本书写了什么

全书分为 3 篇:第1 篇主要介绍数据分析的基础知识,包括数据分析的基本概念、为什么要进行数据分析及常规的数据分析流程,使读者对数据分析有一个整体的认识;第2 篇主要围绕数据分析的整个流程来介绍与 SQL 语法相关的知识,包括如何选取一列数据、如何对数据进行分组运算等基础知识,还包括窗口函数等进阶知识;第3 篇主要介绍SQL 数据分析实战,都是一些比较常规的业务场景实战。

本书读者对象

本书适合零基础学习 SQL 的人员,包括数据分析师、产品经理、数据运营人员、市场营销人员、应届毕业生等所有需要利用SQL 查询数据的人员。

本书说明

本书的所有代码和函数均以MySQL 8.0 为主,MySQL 的其他版本与8.0 差不多,只是个别函数有差别,读者如果遇到其他版本与本版本不同的函数使用,可以上网查询。


目录

目录

入门篇

第1章 数据分析基础介绍 2

1.1 数据分析是什么 2

1.2 为什么要进行数据分析 2

1.2.1 现状分析 3

1.2.2 原因分析 3

1.2.3 预测分析 4

1.3 数据分析究竟在分析什么 5

1.3.1 总体概览指标 5

1.3.2 对比性指标 5

1.3.3 集中趋势指标 6

1.3.4 离散程度指标 6

1.3.5 相关性指标 7

1.3.6 相关与因果 7

1.4 数据分析的常规分析流程7

1.4.1 熟悉工具8

1.4.2 明确目的 8

1.4.3 获取数据 8

1.4.4 熟悉数据 8

1.4.5 处理数据 8

1.4.6 分析数据 9

1.4.7 得出结论 9

1.4.8 验证结论 9

1.4.9 展现结论 9

1.5 数据分析工具 9

1.5.1 Excel 与SQL 9

1.5.2 SQL 与Python 10

知识篇

第2章 数据库基础知识 12

2.1 数据库的发展及组成 12

2.1.1 数据库的发展 12

2.1.2 数据库的组成 . 13

2.2 SQL 是什么 . 13

2.3 SQL 的基本功能 . 14

2.3.1 数据定义 . 15

2.3.2 数据操纵 . 15

2.3.3 数据控制 . 15

2.4 SQL 查询的处理步骤 . 15

2.4.1 查询分析 . 15

2.4.2 查询检查 . 15

2.4.3 查询优化 . 16

2.4.4 查询执行 . 16

2.5 不同数据库的比较 . 16


第3章 数据库工具准备 17

3.1 认识MySQL 官方网站 17

3.2 MySQL 的下载与安装 . 19

3.2.1 基于Windows 的下载与安装 19

3.2.2 基于macOS 的下载与安装 . 27

3.3 DBeaver 的下载与安装 33

3.3.1 基于Windows 的下载与安装 33

3.3.2 基于macOS 的下载与安装 . 38

3.4 DBeaver 使用说明 42

3.4.1 新建表结构 . 42

3.4.2 导入外部数据 . 44

3.4.3 代码执行 . 46

3.4.4 导出结果数据 . 47

3.5 写下第一行SQL 语句 49


第4章 数据源的获取 50

4.1 外部数据 . 50

4.2 公司现有数据 . 50

4.3 新建数据 . 50

4.4 熟悉数据 . 50

4.4.1 了解数据库信息 . 52

4.4.2 了解数据表信息 . 52

4.4.3 了解列信息 . 52


第5章 数据的获取 54

5.1 获取列 . 54

5.1.1 获取全部列 . 55

5.1.2 获取特定的列 . 55

5.2 获取想要的行 . 56

5.2.1 获取全部行 . 56

5.2.2 获取前几行 . 56

5.2.3 获取满足单一条件的行 . 57

5.2.4 获取满足多个条件的行 . 58

5.3 行列同时获取 . 59

5.4 插入一列固定值 . 60

5.5 JSON 列解析 . 61

5.6 对结果进行排序 . 62


第6章 数据预处理 65

6.1 缺失值处理 . 65

6.2 重复值处理 . 68

6.3 数据类型转换 . 70

6.4 重命名 . 72


第7章 数据运算 74

7.1 算术运算 . 74

7.2 比较运算 . 76

7.3 逻辑运算 . 78

7.4 数学运算 . 80

7.4.1 求绝对值 . 80

7.4.2 求最小整数值 . 81

7.4.3 求最大整数值 . 81

7.4.4 随机数生成 . 81

7.4.5 小数点位数调整 . 83

7.4.6 正负判断 . 83

7.5 字符串运算 . 84

7.5.1 字符串替换 . 84

7.5.2 字符串合并 . 85

7.5.3 字符串截取 . 86

7.5.4 字符串匹配 . 86

7.5.5 字符串计数 . 87

7.5.6 去除字符串空格 . 88

7.5.7 字符串重复 . 89

7.6 聚合运算 . 89

7.6.1 count()计数 . 89

7.6.2 sum()求和 90

7.6.3 avg()求平均值 90

7.6.4 max()求最大值 . 90

7.6.5 min()求最小值 91

7.6.6 求方差 . 91

7.6.7 求标准差 . 92

7.6.8 聚合函数之间的运算 . 92


第8章 控制函数 94

8.1 if()函数 94

8.2 case when 函数 96


第9章 日期和时间函数 99

9.1 获取当前时刻的数据 . 99

9.1.1 获取当前时刻的日期和时间 . 99

9.1.2 获取当前时刻的日期 . 99

9.1.3 获取当前时刻的时间 . 100

9.1.4 获取当前时刻所属的周数 . 101

9.1.5 获取当前时刻所属的季度 . 102

9.2 日期和时间格式转换 . 102

9.3 日期和时间运算 . 104

9.3.1 向后偏移日期和时间 . 104

9.3.2 向前偏移日期和时间 . 105

9.3.3 两个日期之间做差 . 106

9.3.4 两个日期之间的比较 . 107


第10章 数据分组与数据透视表 108

10.1 group by 的底层原理 108

10.2 对分组后的数据进行聚合运算 . 109

10.3 对聚合后的数据进行条件筛选 111

10.4 group_concat()函数 112

10.5 rollup. 113

10.6 数据透视表实现 115


第11章 窗口函数 . 117

11.1 什么是窗口函数 117

11.2 聚合函数+over()函数 117

11.3 partition by 子句 . 118

11.4 order by 子句 . 120

11.5 序列函数 . 121

11.5.1 ntile()函数 . 121

11.5.2 row_number()函数 123

11.5.3 lag()和lead()函数 . 124

11.5.4 first_value()和last_value()函数 . 126


第12章 多表连接 127

12.1 表的横向连接 . 127

12.1.1 表连接的方式 . 128

12.1.2 表连接的类型 . 132

12.1.3 多张表连接 . 134

12.2 表的纵向连接 . 135

12.3 横向连接的底层原理 . 135

12.3.1 Simple Nested-Loop Join 136

12.3.2 Index Nested-Loop Join 136

12.3.3 Block Nested-Loop Join 137


第13章 子查询 139

13.1 子查询的概念 . 139

13.2 子查询的分类 . 139

13.2.1 select 子查询 . 140

13.2.2 from 子查询 141

13.2.3 where 子查询 142

13.3 with 建立临时表 . 144


实战篇

第14章 SQL中的其他话题 . 150

14.1 SQL 查询的执行顺序. 150

14.2 变量设置 . 152

14.3 分区表 . 153

14.4 宽表与窄表 . 154

14.5 全量表,增量表,快照表,拉链表,流水表 . 154

14.6 数据回溯 . 156

14.7 数据仓库的基本分层 . 157

14.8 SQL 语句的代码规范157

14.9 如何快速梳理数据库逻辑 159

14.10 如何快速读懂别人的代码 160

14.11 编辑器 161

14.11.1 软件安装 161

14.11.2 常用功能设置 162

14.11.3 常用快捷键 166

14.12 创建表 167

14.12.1 创建一张表 167

14.12.2 向表中插入数据 168

14.12.3 修改表中的数据169

14.12.4 删除表 169


第15章 SQL 数据分析实战 170

15.1 查询每个区域的用户数 170

15.2 查询每个区域的男女用户数 171

15.3 查询姓张的用户数 171

15.4 筛选出id3~id5 的用户 172

15.5 筛选出绩效不达标的员工 172

15.6 筛选出姓张的且绩效不达标的员工 173

15.7 查询获得销售冠军超过两次的人 174

15.8 查询某部门一年的月销售额最高涨幅 175

15.9 查询每个季度绩效得分大于70 分的员工 175

15.10 删除重复值 176

15.11 行列互换 177

15.12 多列比较 178

15.13 对成绩进行分组179

15.14 周累计数据获取 180

15.15 周环比数据获取 181

15.16 查询获奖员工信息 182

15.17 计算用户留存情况 183

15.18 筛选最受欢迎的课程 185

15.19 筛选出每个年级最受欢迎的三门课程 186

15.20 求累积和 187

15.21 获取新增用户数 189

15.22 获取用户首次购买时间 190

15.23 同时获取用户和订单数据 191

15.24 随机抽样 192

15.25 获取沉默用户数 193

15.26 获取新用户的订单数 193

15.27 获取借款到期名单 194

15.28 获取即将到期的借款信息 195

15.29 获取历史逾期借款信息 196

15.30 综合实战 196


第16章 SQL中常见的报错 198

16.1 DBeaver 相关报错 198

16.1.1 时区错误 198

16.1.2 Public Key Retrieval 199

16.1.3 connect error 200

16.1.4 加密方式错误 201

16.2 MySQL 配置相关报错 202

16.2.1 MySQL 安装失败 202

16.2.2 MySQL 客户端闪退 206

16.2.3 访问被拒绝 206

16.3 语法相关报错 206

16.3.1 表名错误 206

16.3.2 列名错误 206

16.3.3 group by 错误 206

16.3.4 权限错误 207

16.3.5 逗号错误 207

16.3.6 括号错误 208


短评

学习一下 挺不错的 好评

2020-05-29 10:18:50

产品特色