最通俗易懂的理解什么是数据库

浏览: 1725

这是《如何学习SQL》的第2篇文章,想知道写作初衷的可以看这里:为什么要学习SQL?

  • 什么是数据库?

你可能会问:我的数据就存储在自己电脑里面的excel表里里,还要数据库干嘛?


Excle的数据的确很方便,但是对于企业来说就不一样了。一个公司里面可能有成千上万的Excel表格,还在不同的电脑上,而他们的员工和客户需要实时看到企业给他们提供的所有数据,这种文件管理的方法就很麻烦,总不能每分钟都把一个新的巨大无比的Excel文件发给所有客户呀。

数据库呢,就是存储数据的地方,就像冰箱是存储食物的地方一样。正是因为有了数据库后,所有人可以直接在这个系统上查找数据和修改数据。例如你每天使用余额宝查看自己的账户收益,就是从后台数据库读取数据后给你的。


再比如,在电影中九头蛇组织将反人类的大招压到了“洞察计划”上。超级古董级计算机存储了索拉博士的大脑,并开发了一种算法,称为索拉算法,该算法能从神盾局的数据库中读取过去世界的数据,预测每个人的未来。


数据库的英文名称叫DB(Database),那么数据库里面有什么东东呢?

其实,数据库通常包含一个或多个表组成。如果你用过Excel,就会知道Excel是一张一张的二维表。每个表都是由列和行组成的,其中每一列都用名字来标识出来。同样的,数据库里存放的也是一张一张的表,只不过各个表之间是有联系的。所以,简单来说:

数据库=多张表+各表之间的关系

其实数据库是逻辑上的概念,它是一堆互相关联的数据,放在物理实体上,是一堆写在磁盘上的文件,文件中有数据。这些最基础的数据组成了表(table)。

那么如何学会数据库呢?学会数据库你需要掌握以下两点:

1)数据库表的结构

2)各表之间的关系

我们接下来分别来看看这两个知识点。

1. 数据库表的结构


表的结构是指要了解数据库每张表长什么样。


数据库中每个表由一个名字标识。表包含带有列名的列,和记录数据的行。我们举个具体的例子就一目了然了。下面是“猴子数据分析社群会员”表(表名),记录了每个会员的闯关进度信息。


上面的表中每一列都有一个名字来标识出该列,行里记录着数据。其中,用“会员ID”用来唯一标识用户,'闯关进度'用来记录每个会员学习到哪一关了。


你可能会问了,为啥要有个用户id来表示数据的唯一性呢,用姓名也可以呀?


其实,姓名是无法唯一确定出一个用户的,注意到下面表中有两个会员都叫“经纬”,这样就无法通过姓名来唯一确定用户了。所以,数据库的表里都会加一个ID的字段用来表示数据的唯一性

ID是数据库中重要的概念,叫做唯一标识符或者主键,用来表示数据的唯一性。其实,在生活中我们也会使用ID来标识数据的唯一性唯一标识,最典型的例子就是国家用身份证来唯一标识一个人,即使你有个双胞胎兄弟,只要你两的身份证号不一样,你们就是两个人。你看,在电视剧《人名的名义》中反贪局就是靠身份证号来查相关贪污犯的。

同样的,数据库中的ID也是这个作用,唯一标识一条数据,只不过在数据库中我们把这样唯一标识数据的ID叫做主键。ID不会有现实的业务意义,就是一串单纯的数字,每张表只能有一个主键。


2. 各表之间的关系


什么是联系呢?你是你爸爸的儿子,你是你的儿子的爸爸。这就是生活中的联系。其实,数据之间也是有联系的。数据库里各个表之间如何建立联系呢?

数据库是表的集合,一个数据库中可以放多张,表与表之间能互相联系。我们看下面两张表(数据分析社群会员表,教育背景表),你能告诉我它们之间有什么联系吗?


下面是表1:数据分析社群会员


下面是表2:教育背景



这两张表通过会员ID关联起来,为了更清楚的看到这两个表的关系,下面的图中我用相同颜色代表同一个会员的信息。例如在会员表里姓名是猴子的会员ID是1,那么我想知道该会员的教育背景,我就可以在教育背景这个表里去查找“会员ID”值是1的行,最后发现这行数据的教育背景ID是2,对应的就找到该会员的教育背景信息了。


通过上面的例子你应该对表之间的联系有了大概了解。现在,我们回过头来具体看下:各个表是如何建立联系的。

联系就是数据能够对应匹配,在数据库中正式名称叫联接,对应的操作叫做join


数据库中,如果你要关联其他表,一般会以「表名_ID」作为联接。就像我们在上面“教育背景”表里加入了“会员的ID”就是将两张表关联起来了。

Join(联接)是关系型数据库中的核心概念,是操作的基础,务必记住这个概念,后面SQL学习中会用到。


上面讲的都是数据库原理方面的基本理论。理论有了,当然的就的有对应的软件实现才能用起来,不然再强大的理论都是一坨无用的屎。这就好比,建筑师如果只有设计草图是无法盖起楼房的,得有具体的施工团队才能盖起楼房。

所以,上面讲的数据库原理就是“设计草图”,那么对应的“施工团队”是谁呢?


实现数据库原理的“施工团队”就是常用的数据库软件,例如MySQL、Oracle、SQL Server等都是实现上面理论的数据库。各个数据库软件的使用差别大同小异,但是因为MySQL是开源的,成为各大公司使用的主流,面试也主要以MySQL为主。

我们总结下这部分的学习内容:


1. 什么是数据库?

数据库=多张表+各表之间的关系

2. 数据库表长什么样?

数据库中每个表由一个名字标识。表包含带有列名的列,和记录数据的行。

ID是数据库中重要的概念,叫做唯一标识符或者主键,用来表示数据的唯一性。

3. 数据库里各个表之间如何建立联系呢?

数据库中,如果你要关联其他表,一般会以「表名_ID」作为联接。

联系就是数据能够对应匹配,在数据库中正式名称叫联接,对应的操作叫做join。

4.数据库和SQL是什么关系?

数据库里面放着数据,而SQL是用来操作数据库里数据的语言(工具)。

例如有一碗米饭(碗就是mysql,里面放的米是数据),你要吃碗里的米饭,拿什么吃?拿筷子(sql)。用筷子(sql)操作碗里(mysql)的米饭(数据)

如果还是不太明白的就直接找一本《SQL基础教程》(作者:Mick)看书中第1章(注意:第0章不需要看,因为我们后面使用的mysql数据库)。

也有人推荐《sql必知必会》,但是对于零基础的朋友来说Mick的《sql基础教程》更容易看懂学会,非常适合入门者学习。如果只推荐一本书的话,我只推荐这本。

电子书在手机上学习还是很方便的,因为路上的碎片化时间随时都可以学习。很快就可以学完。当年我就是在其他人玩手机的路上看完的。



这本书电子书我已放到社群网盘里(后台回复“资料”可以获取到网盘地址)。



下次我们聊聊《如何学习SQL语言》的第3部分:如何安装mysql数据库。

推荐:如何用最短的时间找到初级数据分析师工作?

推荐 1
本文由 猴子聊人物 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册