数据库教程

本文是为期10周的介绍性数据分析系列的第五篇。

想了解学习路线,可以先看一下“10周计划”。

第11章已在公号和中号更新,详情见文末。

上周更新了两篇Excel研究,有读者反映不够实用。这里说明一下,文本的每一步都要细化确实很难,否则真的会出一本书。文章更多的是一个引导,告诉大家为什么要学这个,学什么,怎么学。深度运营,需要在业余时间加餐。我已经尽力给你留材料了。

也有人建议拍个视频,不错!太好了!明年计划。就算没时间,我也会推荐一些我觉得还可以的视频给大家学习。

又到年底了,最近几个晚上都在为年终报表努力。你写了吗?

好了,回到正文,这篇文章讲的是数据库知识:

经常有刚从事数据分析的新人。他们问我数据分析需要学习什么,如何规划自己的学习路径。我会告诉他:如果你还在用Excel,先学Excel。当你用Excel对一些小数据集的处理分析没有问题的时候(具体来说就是熟悉透视表的操作、筛选、排序、图表绘制),你就会学习SQL语言,然后用BI进行分析,熟悉业务。然后到了一定阶段,就可以用R或者Python了。如果以后能更进一步,可以了解一下Spark等一些大数据框架。

为什么要学Excel?

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

可能有人会问,既然Excel这么强大,为什么还要学习其他工具呢?这是因为Excel是以菜单的形式操作,难以实现自动化和功能复用。当然,你也可以通过VBA来实现,这意味着编程。但由于VBA是一种只能在办公软件中使用的语言,学习的投入成本和产出收益不成比例,所以不建议学习。另外,在处理大型数据集时,Excel性能很差,经常死机。(虽然Excel2013及以上宣称可以容纳100万+1万条记录,但是几万条数据开始卡死)。

为什么学了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年,增加了很多功能,复杂了很多,看起来像个大数据库,价格也变高了。个人认为Oracle比Window Server好,除非用于微软产品。

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 & gtuUJkpH4/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工具做分析的操作。

学习MySQL的推荐书籍《MySQL会知道的东西都会知道》。

关于学习计划

最近我的微信官方账号【数据分析不是东西】正在策划“10周入门数据分析”系列文章,手把手教你入门数据分析。

本文是系列的第五篇,在公号和中号已经更新到第十一篇了。

可以戳“了解更多”关注。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论