文章图片
很多数据分析初学者都被推荐学SQL,SQL是最基础且是必备的技能之一,但是不知道该从何学起,很多课程讲了很多知识点,但是初学的朋友没有对这一领域整体框架的认识,不知道该学哪些知识、有哪些知识、实际工作需要到什么程度,常常会担心自己该用的没学、学了的没理解或不会用等等。这里通过介绍21本学习SQL的经典书籍(可以说几乎所有人们经典书籍都囊括在内,对初学者、从业者都认可和检验的)。
从这些书里,多本书多个角度可以让你知道SQL总共有哪些内容(每本书都有不同和侧重,把所有知识点取并集,就可以知道知识边界在哪里,这是完备性),哪些内容是重要(大部分书都讲,且逻辑清晰的,取交集,就是重点,业务场景会经常使用的,这就是实用性)。
当然这里只针对数据分析师初学和从业的朋友,我们不是数据库管理人员或者开发人员,所以涉及跟linux交互、搭建数据库、主从复制、安全性等数据库管理内容不会过多,跟网站开发、APP开发、高并发、事务等开发内容也不会过多。对于数据分析师来说,一是怎么取出业务分析需要的数据,二在一的基础上怎么优化SQL查询语句以提高效率。
SQL的增删改查语句也不是都重要,很多初学者有个误区,以为增删改的知识学习也很重要,实际上作为数据分析师,往往只有查询的权限,而没有增删改,更没有搭建数据库的权限,所以这些知识点是一次性的,知道怎么回事就行,重点是怎么select取数。
另外鉴于MySQL是最流行也是几乎所有SQL初学者最易学、最易操作的数据库,本篇重点是在MySQL数据库,最后也会介绍SQL server、PostgreSQL、Oracle、Hadoop等其他常用数据库。因此,下面的推荐为基础入门、业务场景、优化与架构、常用数据库四个部分,共计21本电子书,我都有对应电子资源,可关注同名公V。
一、基础入门
基础入门有四本书,妥妥的经典,几乎所有入门的朋友应该都读过其中至少一本,四本书中MySQL必知必会的使用人数最多,其次是SQL基础教程,这两本通俗易懂、侧重不同;另外两本使用人数相对较少一些。通过豆瓣评分就可以知道四本书的受欢迎程度。
文章图片
文章图片
1.深入浅出SQL《Head First SQL》
“深入浅出SQL”实际上是“深入浅出”系列丛书之一,它一贯的风格就是很通俗易懂,用场景、对话、问答、图片编成故事来由浅入深的讲解概念和知识点,正因为如此会显得很啰嗦,你会看的很快也能理解它所讲的,但是偏基础,实用性不强,所以有的人喜欢有的人不喜欢。
不过从使用INSERT和SELECT这些基本的查询语法到使用子查询(subquery)、连接(join)和事务(transaction)这样的核心技术来操作数据库,该囊括的知识点它都囊括,如果你是文科生或者完全没接触过SQL,可以读一读。
文章图片
2.MySQL必知必会《MySQL Crash Course》
这里需要说的是《SQL必知必会》和《MySQL必知必会》是两本书,但是都是同一个作者Ben Forta写的,顾名思义,后者是针对MySQL数据库的,但是《MySQL必知必会》包括了《SQL必知必会》的前20章内容而且多了十章关于MySQL的内容:高级搜索、视图、存储过程、游标、触发器、事务等。
文章图片
《MySQL必知必会》讲解的知识点非常全面,从第4章到13章都在讲select语句里的每个关键字order by、where、正则表达式、计算字段、函数、group by分组等,14到17章讲多表查询(子查询、连接查询、联合查询),18到21章是数据库操纵语言,22到30章就是高级用法了。逻辑非常清晰、有完备的知识体系,无论初学还是工作参考都很方便。
它的讲述方式简单直接,通过代码、分析、备注的方式让你直接明白输入什么代码,会输出什么结果。数据库或者SQL理论讲的比较少,凡是比较理论或抽象的都会简单给你解释。下面是一个演示,整本书基本都是以这种方式讲解。
文章图片
3.SQL基础教程(第2版)
《MySQL必知必会》是典型的技术类书籍,直接讲内容,而SQL基础教程则比较人性化,它跟《深入浅出SQL》差不多,但是又没有那么啰嗦,它会用图片、表格的形式解释文字概念,旁边还会有重点内容突出。
文章图片
这本教程是基于postgreSQL,跟MySQL有一些不同。它的内容也很详尽,基本上《MySQL必知必会》的内容它都有涉及,不过它是以解决问题的方式来对重点进行细致讲解。在讲述方式上也不是像《MySQL必知必会》那样罗列各种语法,解释原理,而是针对问题解释,对不需要知道的不过多解释而加重理解负担。
另外每一节后面还配有练习题,在练习中增进理解,可以说是让你在“使用中学,学中使用”,更加符合学习规律。
文章图片
个人建议,初学者可以先从这本开始学习,之后再用《MySQL必知必会》作为辅助参考工具。
4.Microsoft SQL Server 2008技术内幕:T-SQL语言基础
这本书是基于SQL Server数据库的SQL,T-SQL是基于标准SQL的一种“方言”,用于Microsoft的数据库,如果是想使用SQL Server可以学这个,不过基础SQL都差不多。相比前面三本,它更加偏技术性,会有理论解释(集合论、关系模型、谓词、范式)等,讲述方式以技术逻辑为主线,用文字解释每个概念,有图片但是大都是代码输入和输出,理解起来更加抽象。如果看懂了,你就能对SQL理解更加深入。
书中并非系统地罗列T-SQL的各种语法元素,而是结合实践中的各种问题,教读者如何用SQL作为语言工具来思考问题,揭示基于集合查询的强大威力。它列举的实例具有一定的难度,而且实用性较强,可以把它们作为解决实际问题的标准模板。书中大部分章节后面都提供了练习题目,可以帮助读者更好地掌握所学的内容。
文章图片
二、业务场景
学习SQL当然不仅于满足学会基础的增删改查,还需要面对业务构建取数逻辑,思考怎么用各种关键词和语法编写SQL语句,因此还需要结合业务场景解决问题。下面的基本书籍是SQL的进阶,实践性更强。
5.SQL进阶教程
这本书和SQL基础教程的作者是同一人,风格当然是一样的,可以两本一起买结合着看。它是针对具体的知识点设计一个完整的案例从原理到结果循序渐进的讲透,聚焦性和专业性更强。
文章图片
文章图片
6.SQL解惑第2版
这本书收集了75个与SQL编程相关的有趣问题,涉及数据库应用的许多方面,如财务、投资、旅游、销售、计算等,不一而足。针对每一个谜题,作者给出了基于SQL-99及更新标准的多种解决方案,展示了解题思路。如果没有前面的基础,看这个可能比较费劲,但是真的很好的拓展SQL思路。
这本书的作者跟后面《SQL权威指南(第4版)》是同一个人,数据库方面的专家。
文章图片
7.数据分析技术:使用SQL和EXCEL工具第2版
首先介绍数据挖掘所用的SQL基础知识,如何使用Excel展示结果,以及用于理解数据的简单的统计学概念。逐步从基础查询扩展到复杂的应用,使读者能够学习到某种数据分析的使用原因和时机,如何设计和实现,以及展示数据分析结果的强大方法。每一步都详细解释了业务环境、技术方法以及在所熟悉工具中的具体实现。
还有很多高级知识点,包括如何使用生存分析理解客户任期和变动,以及影响生存率的因素。同时,还会探索到一些方法,包括分析客户的购买模式、分析购物车以及计算关联规则。此外,本书还包含重要的SQL数据挖掘模型(线性回归模型、朴素贝叶斯模型等)、包含累积增量图表和ROC图表、使用SQL的最佳实践、提高查询性能的方法等。
文章图片
文章图片
文章图片
8.SQL CookBook第2版
这本书和后面的《MySQL CookBook第2版》很像,但实际上是两本书。本书不仅介绍知识点原理,也列举很多遇到的实际问题,然后从这些问题里找出共通性和解决方案,它实用性比较强。
文章图片
文章图片
文章图片
三、优化与架构
当掌握了基础的SQL查询语句并且比较熟练,又能够灵活应对各种业务场景和问题后,接下来就需要对所写的SQL进行优化。这里的优化不是设计数据库架构、锁、事务、索引等,而是从查询SQL语句角度优化,怎么可以降低查询的时间和空间成本。
9.MySql-8.0-参考手册官方
官方参考手册里对每个知识点都有详细的解释,它内容太多,不会针对一个问题详细解释,而是需要你自己去找,框架太大内容太多,对于初级中级数据分析师来说不太友好,但是对于想要彻底搞懂并解决难题的人来说,看官方手册和源码是非常有必要的。可以当做参考书。
中文版手册:https://www.mysqlzh.com/
英文版手册:https://dev.mysql.com/doc/refman/8.0/en/
10.高性能MySQL第3版
在基础阶段重点推荐《MySQL必知必会》或《SQL基础教程》之外,这本书是进阶的经典,想你所想,讲得很清楚到位,从底层逻辑到上层优化都有解答,豆瓣评分和使用人数都很高,不做过多解释。
全书共分为16 章和6 个附录,内容涵盖MySQL架构和历史,基准测试和性能剖析,数据库软硬件性能优化,复制、备份和恢复,高可用与高可扩展性,以及云端的MySQL和MySQL相关工具等方面的内容。每一章都是相对独立的主题,读者可以有选择性地单独阅读。
文章图片
11.MySQL管理之道 性能调优、高可用与监控
这本书是国人编写的,可圈可点。内容以实战为导向,所有内容均来自于笔者多年实践经验的总结和对新知识的拓展,同时也针对运维人员 DBA等相关工作者会遇到的有代表性的疑难问题给出了实用的情景模拟,并给出了解决方案。
12.MySQL技术内幕第2版
这本书也是国人编写的,比较受到欢迎。一共10章,首先宏观地介绍了MySQL的体系结构和各种常见的存储引擎以及它们之间的比较;
接着以InnoDB的内部实现为切入点,逐一详细讲解了InnoDB存储引擎内部的各个功能模块的实现原理,包括InnoDB存储引擎的体系结构、内存中的数据结构、基于InnoDB存储引擎的表和页的物理存储、索引与算法、文件、锁、事务、备份与恢复,以及InnoDB的性能调优等重要的知识;
最后对InnoDB存储引擎源代码的编译和调试做了介绍,对大家阅读和理解InnoDB的源代码有重要的指导意义。
文章图片
13.MySQL性能调优与架构设计
这本书也是国人编写的,受众也比较多。主要面向有一定的 MySQL 基础或至少有一定SQL语言基础的读者朋友。
全书共分3篇,基础篇介绍了MySQL软件的基础知识、架构组成、存储引擎、安全管理及基本的备份恢复知识。性能优化篇从影响 MySQL 数据库应用系统性能的因素开始,针对性地对各个影响因素进行调优分析。如 MySQL Schema 设计的技巧,Query 语句的性能优化方式方法及MySQL Server中SQL层和存储引擎层的优化思路。同时还分析了 MySQL 数据库中主要存储引擎的锁定机制。架构设计篇则主要以设计一个高可用可扩展的分布式企业级数据库集群环境为目标,分析介绍了通过 MySQL 实现这一目标的多种架构方式。
文章图片
14.不止SQL优化–抓住SQL的本质
SQL很容易引发性能问题,所以这本书专门抓住SQL优化的问题。首先教你SQL整体优化、快速优化实施、如何读懂执行计划、如何左右执行计划,建立先整体后局部的宏观解决思路;然后介绍体系结构、逻辑结构、表设计、索引设计、表连接五种从数据库架构设计角度优化;最后介绍等价改写、过程包优化、高级SQL、分析函数、需求优化五种从SQL语句角度优化。
文章图片
15.数据库查询优化器的艺术:原理解析与SQL性能
这本书由Oracle公司MySQL全球开发团队、资深专家撰写。全书共19章,分为四个部分:第一篇(第1~4章)对数据库查询优化技术的范围、逻辑查询优化、物理查询优化,以及查询优化器与其他模块的关系做了非常细致、深入的讲解;
第二篇(第5~10章)首先从源码角度对PostgreSQL查询优化器的架构、层次、设计思想、相关数据结构和实现原理进行了深入、系统的分析,然后从功能角度对PostgreSQL的逻辑查询优化、物理查询优化、查询优化器的关键算法,以及PostgreSQL查询优化器与其他模块的关系做了深入的讲解;
第三篇(第11~16章)首先从源码角度对MySQL查询优化器的架构、层次、设计思想、相关数据结构和实现原理进行了深入、系统的分析,然后从功能角度对MySQL的逻辑查询优化、物理查询优化、查询优化器的关键算法,以及MySQL查询优化器与其他模块的关系做了深入的讲解;第四篇(第17~19章)对PostgreSQL与MySQL的逻辑查询优化技术、物理查询优化技术、设计思想和编码规范等各方面进行了深度的比较。
16.高可用MySQL:构建健壮的数据中心
本书由MySQL开发团队亲自执笔,定位于解决MySQL数据库的常见应用瓶颈,在保持MySQL的持续可用性的前提下,挖潜各种提高性能的解决方案。面向的是MySQL专业人士,假设读者已拥有SQL/MySQL管理和操作系统的基础背景知识。
本书分为三个部分。第一部分讲述MySQL复制,包括高可用性和横向扩展,第二部分介绍构建健壮的数据中心时监控和性能方面的问题,第三部分给出其他MySQL相关内容,包括云计算和MySQL集群。
文章图片
17.SQL权威指南第4版
这本书的作者是JoeCelko,同样也是《SQL解惑第2版》的作者。适合中高级SQL编程人员学习参考。阐释了数据库设计、优化和操作的各方面内容,提供了成为SQL编程专业人士所需的技术与技巧、针对新旧挑战性难题的优秀解决方案、专业的思考方式(以保证程序的正确性与高效性),并涉及了数据库设计与规范化、SQL数据类型、查询、分组、集合操作、优化等主题。
18.MySQL CookBook第2版
书的作者Paul DuBois是MySql官方在线参考手册早期的贡献者之一,更加偏向于MySql实用技术。全书只有文字和代码,看着比较费劲,但是内容很全,会对语法的种种方面详细解释,如果只有在处理复杂问题时来参考一下比较有价值。
文章图片
文章图片
文章图片
注意这本书与《SQL CookBook第2版》是两本不同作者的书。
四、常用数据库
19.PostgreSQL9从零开始学
这本书书是专门介绍PostgreSQL,面向PostgreSQL数据库初学者、数据库开发人员。全书共18章,分别介绍了PostgreSQL9的安装与配置、数据库的基本操作、数据表的基本操作、SQL语言基础、轻松掌握SQL语句、认识函数、PostgreSQL数据查询、数据的更新、创建和使用索引、事务和锁、视图操作、触发器、PostgreSQL的安全机制、数据库的备份与恢复、高可用、负载均衡、数据复制、服务器配置、数据库监控以及数据库的内部结构等内容。
20.Oracle11g从入门到精通
这本书是针对Oracle 11g数据库编写的,包括Oracle中的基本概念、非模式对象的管理、对模式对象的管理、数据库的安全与恢复等。同样也是面对数据库初学者、数据库开发等专业人士的,对数据分析师来说并不友好。
21.Hive编程指南
这本书是大数据数据库的经典之作,主要介绍如何使用Hive的SQL方法——HiveQL来汇总、查询和分析存储在Hadoop分布式文件系统上的大数据集合。如果想做大数据分析师,这本书至少应该读一读。基本上也是SQL的内容。
文章图片
文章图片
22.Hadoop实战中文版
这本书也是面向大数据从业人员的书籍,适合需要处理大量离线数据的云计算程序员、架构师和项目经理阅读参考。
Hadoop是一个用Java语言实现的软件框架,在由大量计算机组成的集群中运行海量数据的分布式计算,是实现云计算的重要基石。
《Hadoop实战》分为3个部分,深入浅出地介绍了Hadoop框架、编写和运行Hadoop数据处理程序所需的实践技能及Hadoop之外更大的生态系统。
文章图片
以上就是数据分析师初学入门的推荐书籍,虽然很多,但不是每一本都需要看。个人建议《MySQL必知必会》《SQL基础教程(第2版)》《高性能MySQL第3版》《MySQL技术内幕第2版》《MySQL性能调优与架构设计》基本就可以达到高级了。最重要的是去实践,遇到难题,解决难题,才能使SQL技能突飞猛进。
最后欢迎大家关注我,我是拾陆,搜索公众号“二八Data”,更多技术干货持续奉献。
【应用案例|数据分析初学入门——22本SQL学习书籍推荐】
文章图片
文章图片
推荐阅读
- 数据分析|写给喜欢数据分析的初学者
- 大数据|新型存算一体芯片诞生,利好人工智能应用~
- 数据库|MySQL的四种事务隔离级别
- 数据库|MySQL事务处理与事务隔离(锁机制)
- 面试|Java后台开发面试实战(十)(讲一下redis)
- 牛客网后端项目实战|牛客网后端项目实战(二十五)(Redis入门)
- 大数据|TiDB Operator 准入控制器
- SQL|牛客刷题——题型总结
- 数据分析|SQL牛客网刷题(一)——1、2、3、17、18题解析