百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

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

toyiye 2024-06-21 12:35 11 浏览 0 评论

此文是《10周入门数据分析》系列的第5篇。

想了解学习路线,可以先行阅读“10周计划”

公中号上已更新到第11篇,详情可见文末。


上周更新了两篇Excel学习,有读者反映写得不够实操。这里解释下,文字真的很难将每一步细化,不然真的要出一本书。文章更多是一个引路,告诉大家为什么要学这个,主要学什么,怎么学?深入的操作,还需大家业余加餐啊,已经尽量给大家留了材料了。

也有人提议,出个视频,不错!很赞!明年计划下。即使没有时间,我也会推荐一些我认为OK的视频让大家学习。

年底了,近几个晚上都在苦熬年终报告,各位写好了么?

好了,回到正文,本篇讲数据库知识:

经常有刚从事数据分析的职场萌新,问我做数据分析工作要学些什么,应该怎样规划学习路径。我会告诉他:如果你Excel还用的不溜的话,就先学学Excel,当你用Excel处理和分析一些小数据集没有问题的时候(具体表现就是:常用函数公式信手拈来,数据透视表,筛选,排序,图表绘制操作熟练),你就去学习SQL语言,然后用BI去分析去熟悉业务。然后到了一定阶段,你可以上手R或者Python。后面如果你能更进一步,可以去了解一些Spark等大数据框架。

为什么要学习Excel?

首先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解决大数据集的问题,同时架起一个通往其它工具的桥梁。

关于数据库和SQL的学习,也是分为两篇,第一篇讲数据库以及表的概念。第二篇是SQL语句的掌握和数据库的操作。

一、数据库基础知识

先谈一下我对数据库的理解。数据库顾名思义就是数据的集合,是由一张张数据表组成的。

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

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

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

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

比如上面两张图,左图是学生信息表,右图是老师信息表。左图的主键是学生ID,右图的主键是老师ID。细心的读者可能发现右图还有一个学生ID,这里的学生ID是专门用来联接用户表的,它并不是主键。只不过两张表通过学生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 系统或者针对Microsoft产品, 否则不如用Oracle好。

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

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

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

二、尝试使用MySQL数据库

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

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

「链接」

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

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

管理员命令行:

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

mysqld --initialize --console

得到如下结果:

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

修改my.ini文件

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

然后,安装服务:

mysqld --install MySQL8.0

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

启动服务:

net start MySQL8.0

修改初始密码

登录mysql之后执行:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

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

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

后面会分享一篇通过ODBC驱动程序连接一些报表\BI工具来做分析的操作。

关于MySQL的学习推荐书籍《MySQL必知必会》。

关于学习计划

近期,我的公众号【数据分析不是个事儿】在策划《10周入门数据分析》系列文章,教课书式手把手教大家入门数据分析。

本文是系列中的第5篇,公中号上已更新到第11篇。

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

相关推荐

熬夜会造成神经衰弱,别再熬夜了(熬夜会加重神经衰弱吗)

长时间熬夜会出现神经衰弱,皮肤受损,超重肥胖,记忆力下降等现象……熬夜了能补回来吗?每天少睡一两个小时算熬夜吗?必须上夜班怎么办?如何减少熬夜伤害?戳图转给爱熬夜的TA!via央视新闻来源:河北省文...

落叶知秋的图片爬取(落叶知秋的图片有哪些?)

importrequestsfrombs4importBeautifulSoupimporttimeimportjsonpathimportjsonfromurllib.parsei...

小心有毒!长沙海关查获藏匿在“巧克力威化涂层”中的大麻

来源:海关发布近日,长沙黄花机场海关对一票申报为“巧克力威化涂层”的进境快件进行机检查验时,在包裹内查获封装于各独立威化饼干包装袋中的大麻230克。另从其他申报为“巧克力、儿童早餐谷物”的快件中查获藏...

钧正平:编造传播这种谣言,荒谬(钧正公司)

来源:钧正平工作室官方微博【钧评编造传播这种谣言,荒谬!】目前,乌克兰安全形势还在迅速变化之中,各方面安全风险上升。相关事件网上热度极高,倍受瞩目。然而,有一些人却借机大肆制造散播一些低级谣言,比如...

幸运角色过去了,谈一谈DNF起源的元素

总的来说伤害比上个版本强太多了,打卢克每日和团本明显能感觉的到。目前打团B套+圣耀稍微打造下应该都能随便二拖了。组队基本上都是秒秒秒(以前得强力辅助,现在随便带个毒奶都行)。单刷除了王座和顶能源阿斯兰...

DNF元素超大凉打桩测试(把括号的伤害加起来好像比较正常)

最近修练场的二觉老是很奇怪,发现以前都是习惯性先减抗然后丢二觉,结果伤害。。。直接丢二觉就正常了下面是其他技能伤害,没达到BUG线,估计问题不大。装备打造方面:全身红字加起来353(41*5+74*2...

ANSYS接触和出图技巧(ansys rough接触)

1.ANSYS后处理时如何按灰度输出云图?1)你可以到utilitymenu-plotctrls-style-colors-windowcolors试试2)直接utilitymenu-plotctr...

ANSYS有限元使用经验总结-后处理(4)

28.求塑性极限荷载时,结构的变形应该较大,建议把大变形打开。...

CFopen21.1、CFopen21.2都来了(cfile open)

[呲牙][赞][加油]

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

取消回复欢迎 发表评论:

请填写验证码