现在的位置: 首页 > 数据库 > 正文

写给新手的数据库入门指南

2019年12月12日 数据库 ⁄ 共 3251字 ⁄ 字号 评论关闭

  经常有刚从事数据分析的萌新们问我,做数据分析工作要学些什么?应该怎样规划学习路径?

  我通常的回答是:如果你Excel还用的不溜的话,就先学学Excel!当你能熟练地用Excel处理和分析一些小数据集之后(具体表现就是:常用函数公式信手拈来,数据透视表,筛选,排序,图表绘制操作熟练),你就可以去学习SQL语言了,然后用BI去分析去熟悉业务。然后到了一定阶段后,你就可以上手R或者Python。后面如果你能更进一步,可以去了解一些Spark等大数据框架。

为什么要学习Excel?

  首先,Excel是我们最常用的数据分析和处理工具,它功能非常丰富,基本可以涵盖我们在之后在其它软件(SQL、BI、Python、R)中要学到的那些功能。

  有的人可能会问,既然Excel这么强大,为什么还要学其它的工具?这是因为Excel是通过菜单的形式来进行操作的,很难实现自动化和功能复用,当然你也可以通过VBA来实现,用VBA也就是编程了,不过因为VBA这种语言学会了基本只能在office软件中使用,学习的投入成本和产出收益不成比例,不推荐学习,这是客观原因之一;另外就是Excel在处理比较大的数据集的时候,性能不好,并且经常崩溃。(虽然Excel2013及以上版本宣称可以容纳100+万条记录,但几万条数据就开始卡顿了)。

为什么Excel学完要学SQL?

  客观原因是绝大部分数据分析岗都有SQL技能的要求。企业里面为了保证数据的安全性和管理的方便,数据都是统一存放在数据库中,从数据库中提取和查询数据需要使用SQL语言,甚至有的公司就是用SQL语言来做数据分析。

  另外一个原因就是即使你先学了其它的工具,比如R,Python,甚至Spark等大数据框架,你会发现最后你还是得学习SQL。如果你先学习SQL,那么很多概念你都能在学习R,Python,Spark等更加复杂的工具之前弄清楚。对于后面的学习会有帮助。这就好比建房子,都是先打地基,然后一层一层的盖。

  SQL语言的学习排在Excel之后,其它工具之前,还有一个很重要的原因就是,SQL可以在一定程度上帮Excel解决大数据集的问题,同时架起一个通往其它工具的桥梁。

这篇文章着重讲解数据库以及表的概念。

一、数据库基础知识

  数据库顾名思义就是数据的集合,是由一张张数据表组成的。

  放在物理实体上,是一堆写在磁盘上的文件,文件中有数据。这些最基础的数组成了表(table),我们把它想象成一张Excel的sheet,如下图:

  每一张表都有一个唯一标识,即主键,也就是ID。

  ID是数据库中重要的概念,叫做唯一标识符/主键,用来表示数据的唯一性。就相当于我们的身份证,是唯一的,有了身份证,就知道数据在哪了。

  ID通常没有业务含义,就是一种唯一标识,每张表只能有一个主键,且主键通常是整数,主键一旦设立,它的值通常不允许修改。

  数据库是表的集合。一个数据库中可以放多张表,我们给每张表命名,表与表之间能互相联系。联系就是数据能够对应匹配,正式名称叫联接,对应的操作叫做Join,我们想象成Excel中的vlookup。

  比如上面两张图,左图是学生信息表,右图是老师信息表。

  左图的主键是学生ID,右图的主键是老师ID。细心的读者可能发现右图还有一个学生ID,这里的学生ID是专门用来联接用户表的,它并不是主键。只不过两张表通过学生ID这个唯一信息来关联。

  但两张表关联也并不是信息能一一对应的,也会存在空缺的时候,比如:

  那两表建立连接就会变成:

  了解上面的概念,你就知道什么叫关系型数据库。简单说,它是由多张能互相联接的二维行列表格组成的数据库。

  在数据准备时,我们通常要建立表关联来分析。

  关系型数据库是基于关系代数模型发展而来,常用的关系型数据库有SQLServer、MySQL、Oracle、DB2等,这个视企业使用为准,我们后续学习都以MySQL为主。

  各关系型数据库(不感兴趣可跳到后面):

  DB2:关系型数据库,适用于大型的分布式应用系统,确实是非常非常好的数据库,无论稳定性,安全性,恢复性等等都无可挑剔,而且从小规模到大规模的应用都非常适合。但是使用起来觉得非常繁琐,安装的时候要求颇多,很多软件都可能和DB2产生冲突,因为一般DB2都是安装在小型机或者服务器上的,所以在PC上安装很费事儿。新建一个库需要设置很多东西,分配各种各样的存储空间。

  Oracle:是目前市场占有率最大的数据库,我在学习SSH的时候用的就是Oracle,安装起来很繁琐,而且居然程序文件有3G之多...用起来非常方便,对于我这样的初学者,有很简单的配置,对于要求很高的企业级应用,也有很复杂的配置和管理方法,有很强大的数据字典,可以说是最实用的数据库了,但是查了一下,价格不菲...

  MSSQL:当初用的是2000和2005版,这两个版本差了很多。2000的数据库做的不错,程序很小,操作简单,功能较全,算是各方面都很中庸的数据库吧,是中型数据库,我的毕业设计就是用MSSQL2000做的。2005中加入了很多功能,复杂多了,有大型数据库的风范了,而且价格也变高了,个人觉得除非用的是WindowServer系统或者针对Microsoft产品,否则不如用Oracle好。

  MySQL:MySQL是一个很好的关系型数据库,免费,而且功能很全,程序又小,安装简单,现在很多网站都用MYSQL,在字段约束上做的差了点儿,其他的都不错,和MSSQL用着差不多。

  Access:典型的桌面数据库,觉得做个单机系统,比如记账,记事儿什么的还成,在局域网里跑个小系统都够呛,数据源连接很简单,因为是Office的数据库,所以Windows自带数据源。

  更多关于数据库的知识,看一本《数据库系统概论》就够了。

二、尝试使用MySQL数据库

  如果还没有接触过数据库或者说SQL,推荐大家下载并安装MySQL数据进行尝试,MySQL数据库的下载安装比较简单,安装完成就可以使用。

  可以访问MySQL官网进行下载,网址如下(这里给出的是Windows版下载地址):

  http://dev.MySQL.com/downloads/MySQL/

  下载MySQL时,需要进行免费注册(注册页面是英文的)。

  下载该工具后,点击运行,这个程序就能够联网自动为你安装MySQL,并自动进行配置。在安装过程中,需要你设置密码,自己设置一个登陆密码,并记住,下次登陆MySQL时,需要这个密码。

  解压之后没有my.ini文件(我的端口设置的3308),截图中是我增加的。

  管理员命令行:

  在MySQL安装目录的bin目录下执行命令:

  mysqld--initialize--console

  得到如下结果:

  看到有个警告,查了一下mysql建议使用utf8mb4

  修改my.ini文件

  警告没有了,上面打印了默认密码:nj>uUJkpH4/I

  然后,安装服务:

  mysqld--installMySQL8.0

  因为这是电脑上第二个mysql所以服务名改成了MySQL8.0

  启动服务:

  netstartMySQL8.0

  修改初始密码

  登录mysql之后执行:

  ALTERUSER'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY'123456';

  将MySQL和Excel或者其它数据分析工具连接起来

  默认安装的情况下,有一个插件允许MySQL数据库和Excel相连接,试想一下,我们在MySQL数据库中通过SQL语言进行大量数据的处理和计算,将计算结果存放在特定的数据表中,再通过Excel连接上MySQL数据库,将数据读取到Excel中,用Excel进行分析并绘制图表,免去了将数据从数据库导出再导入Excel的麻烦,是不是就可以提高效率了呢?

抱歉!评论已关闭.