经常有职场新人刚从事数据分析。他们问我做数据分析应该学什么,怎么规划自己的学习路径。我会告诉他:如果你还是用不好Excel,那就先学Excel。当你用Excel对一些小数据集的处理和分析没有问题的时候(具体表现为:熟悉常用的函数公式、透视表、筛选、排序、图表绘制),可以学习SQL语言,然后使用BI进行分析,熟悉业务。然后到了某个阶段,就可以启动R或者Python了。以后如果能更进一步,可以了解一下Spark等一些大数据框架。
为什么要学Excel?
首先,Excel是我们最常用的数据分析处理工具。Excel的函数非常丰富,基本可以涵盖我们在其他软件(SQL,BI,Python,R)中会学到的那些函数。
可能有人会问,既然Excel这么强大,为什么还要学习其他工具呢?这是因为Excel是以菜单的形式操作的,很难实现自动化和功能复用。当然,你也可以通过VBA来实现,这意味着编程。但是因为VBA已经学会了只能在办公软件中使用,学习的投入成本与产出收益不成比例,所以不建议学习。这是客观原因之一;另外,Excel性能差,处理大数据集时经常死机。(虽然Excel2013及以上版本宣称可以容纳100万+条记录,但数万条数据开始卡死)。
为什么学了Excel还要学SQL?
客观原因是大部分数据分析岗位都有SQL技能的要求。为了保证数据的安全性和管理的方便性,数据全部存储在数据库中。需要使用SQL语言从数据库中提取和查询数据,甚至有些公司使用SQL语言做数据分析。
还有一个原因是,即使你先学了其他工具,比如R、Python甚至Spark等大数据框架,你会发现最后还是要学SQL。如果先学习SQL,在学习R、Python、Spark等更复杂的工具之前,可以搞清楚很多概念。对以后的学习有帮助。就像盖房子,先打好地基,再一层一层盖好楼。
SQL的学习在Excel之后,在其他工具之前。另一个重要原因是,SQL可以在一定程度上帮助Excel解决大数据集的问题,同时搭建起通往其他工具的桥梁。
数据库和SQL的学习也分为两部分。第一部分讲述了数据库和表的概念。第二部分是SQL语句的掌握和数据库的操作。
一、数据库基础知识先说说我对数据库的理解。顾名思义,数据库是数据的集合,由数据表组成。
在物理实体上,就是写在磁盘上的一堆文件,文件里有数据。这些基本数据组成了一个表格,我们把它想象成一个Excel表,如下所示:
每个表都有一个唯一的标识符,即主键,即ID。ID是数据库中的一个重要概念,称为唯一标识符/主键,用来表示数据的唯一性。相当于我们的身份证,独一无二。有了身份证,我们就知道数据在哪里。
ID通常没有业务意义,也就是一个唯一的标识符。每个表只能有一个主键,主键通常是整数。一旦建立了主键,通常不允许修改该值。
数据库是表的集合。您可以在一个数据库中放置多个表。我们给每个表命名,这些表可以相互连接。也就是说,可以相应地匹配联系人数据。正式名称是join,对应的操作是Join。我们把它想象成Excel中的vlookup。
比如上面两张图,左图是学生信息表,右图是教师信息表。左边的主键是学号,右边的主键是老师号。细心的读者可能会发现,右图中还有一个学生证。这里的学号是专门用来加入用户表的,并不是主键。只有两个表通过学生ID的唯一信息相关联。
但是两个表之间的关联并不是一一对应的信息,也会有空缺失的时候,比如:
两个表之间的连接将变成:
理解了上面的概念,你就知道什么是关系数据库了。简单来说就是由几个二维的行列表组成的数据库,这些表可以相互连接。在准备数据时,我们通常会建立表关联进行分析。
关系数据库是基于关系代数模型发展起来的。常用的关系数据库有SQL Server、MySQL、Oracle、DB2等。这个要看企业的使用情况,我们后续的学习主要基于MySQL。
所有关系数据库(如果不感兴趣,请跳过):
DB2:关系数据库,适合大规模分布式应用系统,真的是非常好的数据库。无论其稳定性、安全性、可恢复性等。,无可挑剔,非常适合小规模到大规模的应用。但是使用起来非常繁琐,需要大量的安装。许多软件可能与DB2冲突。通常,DB2安装在小型机或服务器上,所以在PC上安装它需要做大量的工作。建立一个新的图书馆,你需要设置许多东西,分配各种存储空房间。
Oracle:是目前市场份额最大的数据库。我在学习SSH的时候,用的是Oracle。安装起来很麻烦,而且有多达3G的程序文件...使用起来非常方便。对于我这样的初学者来说,它的配置非常简单,对于要求苛刻的企业级应用,它的配置和管理方式也非常复杂。它有强大的数据字典,可以说是最实用的数据库,但是查了一下,价格不菲。...
MS SQL:刚开始用的是2000版和2005版。这两个版本差别很大。2000是一个中型数据库,程序小,操作简单,功能齐全。我的毕业设计是用MS SQL 2000做的。2005年增加了很多功能,复杂了很多,有了大型数据库的风范,价格也提高了。个人认为除非用Window Server系统或者微软的产品,否则还是用Oracle比较好。
MYSQL: MySQL是非常好的关系数据库,免费,功能全,程序小,安装简单。现在很多网站都用MySQL,只是字段约束差了点,其他都不错,类似MS SQL用的。
Access:典型的桌面数据库。我觉得做单机系统也可以,比如记账,记笔记。在局域网中运行一个小系统是很困难的。数据源连接非常简单。因为是Office数据库,所以Windows自带数据源。
要了解更多关于数据库的信息,读一读《数据库系统导论》就足够了。
二、尝试使用MySQL数据库如果你还没有接触过数据库或者SQL,建议你下载安装MySQL数据试试。MySQL数据库易于下载和安装,安装后即可使用。
可以访问MySQL官网下载,网址如下(这里是Windows版的下载地址):
"链接"
下载MySQL时,需要免费注册。注册页面是英文的。下载完工具后,点击运行,这个程序就可以在线为你安装MySQL并自动配置了。安装过程中需要设置密码,自己设置登录密码,记得下次登录MySQL时需要这个密码。
解压后没有我截图里加的my.ini文件(我的端口设置3308)。
命令行:
执行MySQL安装目录的bin目录下的命令:
mysqld -初始化-控制台
结果如下:
看到警告,查了mysql,建议用utf8mb4。
修改my.ini文件
没有警告,默认密码印在上面:NJ >: uUJkpH4/I
然后,安装服务:
mysqld -安装MySQL8.0
因为这是电脑上的第二个mysql,所以服务名改成了MySQL8.0。
启动服务:
net start MySQL8.0
修改初始密码
登录mysql后执行:
通过“123456”更改用mysql_native_password标识的用户“root”@“localhost”;
用Excel或其他数据分析工具连接MySQL。
默认情况下,有一个插件允许MySQL数据库与Excel连接。想象一下,我们通过SQL语言对MySQL数据库中的大量数据进行处理和计算,将计算结果存储在特定的数据表中,然后通过Excel连接MySQL数据库,将数据读入Excel,用Excel进行分析和绘制图表,免去了从数据库导出数据再导入Excel的麻烦。我们能提高效率吗?
后面我会分享一个通过ODBC驱动连接一些report \BI工具做分析的操作。