数据库指南:一文让你浅显易懂地了解数据库

15 评论 32812 浏览 222 收藏 9 分钟

在数据分析的技能中,数据库与SQL会是性价比最高的技能之一。

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

数据表的抽象概念如上图。

ID是数据库中重要的概念,叫做唯一标识符/主键,用来表示数据的唯一性。我们把它理解成数据的身份证号。我知道身份证,也就知道数据在哪里了。

ID不会有现实的业务意义,就是一串单纯的数字,每张表只能有一个主键。

数据库是表的集合,一个数据库中可以放多张表,我们给每张表命名,表与表之间能互相联系。

联系就是数据能够对应匹配,正式名称叫联接,对应的操作叫做Join,我们想象成Excel中的vlookup。

上面就是两张表,用户和教育背景,看上去能够使用姓名进行匹配,可是这里出现了两个张三,一个是北京大学,一个是上海大学,究竟哪个张三才能和用户表的张三对应上?都不能。

也许清华大学还有张三,复旦大学,交通大学也有,毕竟全中国姓名相同的人那么多。正确的用法应该是使用ID联接,而不是姓名。ID是产品、运营和数据人员们在工作中接触最多的内容之一,用户ID文章ID商品ID等,如果大家还不了解,这里需要掌握。

上图就是正确的用法,用户表和教育表能够通过ID联接,可能有人疑问,用户ID为1和6的,还是不能对应呀?这个不要紧,因为在数据库中,不是所有的表都能一一对应,存在部分匹配的可能性,也许那个叫秦路的,他没读过书,教育背景表中自然没有记录了。

当然,数据库的设计还要更严谨,一般每张表都会有主键(主键不是必须,但是从效率优化上肯定会加),这个主键也不能是其他表的主键,防止产生冲突。

这样就靠谱了,用户ID是用户表的主键,教育背景ID是教育背景表的主键,我们在教育背景表中加入一个字段叫用户ID,它是专门用来联接用户表的,它不是主键。

是不是有点绕?实际上,并不是所有名字带ID的都叫主键,这一点要搞清楚。

数据库中,表的名字和字段应该是英文。如果是主键,只要叫id即可,你要关联其他表,则以「表名_id」作为联接。

关联后的逻辑如下,这种方式叫全联接,匹配不上的都用Null表示,匹配上的我用橙色表示。联接是关系型数据库中的核心概念,是操作的基础,现在迷糊不要紧,多练习几次就好了。

如果现在我有一张新的表,需要关联education,聪明的你也一定想到方法了吧。

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

关系型数据库是基于关系代数模型发展而来。常用的数据库有SQL Server、MySQL、Oracle等,我们后续学习都以MySQL为主。

接下来是安装MySQL。

我们去MySQL的官网下载,版本5.6以上即可。

按照教程完成后,我们通过命令行查询知否成功,Win和Mac的操作不一样。

我们当然不会在这么丑的界面上操作MySQL啦,我们还需要安装GUI,这是为我们提供操作界面的。

Mac用户推荐SequealPro,Win用户推荐WorkBench。后续我会在SequealPro操作。MySQL的默认用户名和密码均是root,建议重新设置一下。

如果大家有疑问,可以去网上搜索相关教程,不安装MySQL也是可以的。因为数据分析师大多数情况是用在线数据查询平台操作,安装只是为了方便演示。不想要安装的同学,可以在SQLZoo练习,以后我也会讲解。

输入账号密码后进入操作界面,数据库我命名为qin。左侧栏是数据库中的Table列表,现在为空。右侧是表相关的操作和信息。

因为现在没有数据,我们需要加载数据,选择以前爬虫爬下来的数据加载。数据分析不需要学习如何创建删除增改表的操作,因为用不到,我只会讲解查询,大家有兴趣可以自行了解。

任何MySQL的GUI工具,都能加载CSV,一般叫import。

Encoding选择Autodetect,其余按默认。

接下来需要设置各字段的数据类型,系统会帮我们自动选上,这里不用改动。int代表整数数值,varchar代表字符串(中文英文标点符号这类),括号里面的数字是允许存储字节,这块也不要深入理解,只要知道常用的字段类型即可。

给表取个名字,载入后,就将CSV成功导入到数据库了,能够进行数据查询的操作。

这张表没有设置主键,主要是练习,所以跳过了这一步骤。

大家可能会遇到导入的数据是乱码,这是系统编码之间的差异,是utf8和gbk之间的冲突,网上有相关解答,搜索关键词即可。

到这里,大家已经成功地在自己电脑上创建了数据库。接下来可以使用SQL做练习。开启select * from DataAnalyst 的查询。

如果需要原始数据的话,去百度云盘下载:下载  密码:6x2v,是5000条数据分析师的岗位数据。

 

作者:秦路,微信公众号ID:tracykanc

本文由 @秦路 原创发布于人人都是产品经理。未经许可,禁止转载。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 应该是教育背景id放到用户表里做关联。你弄错了

    来自阿联酋 回复
  2. 比我上大学时老师讲的还要易懂,很赞,但是这些都是很基础的内容

    来自湖南 回复
  3. 之前分享的原始数据的链接已经失效了(百度网盘)

    楼主能分享下吗

    来自广东 回复
  4. 之前分享的原始数据的链接已经失效了(百度网盘)楼主能分享下吗

    来自北京 回复
  5. 有价值

    来自北京 回复
  6. 科普了

    来自上海 回复
  7. 感谢楼主,对我们小白太有用了,已点赞并关注,期待你的更多分享

    回复
  8. mac 版本的怎么下载啊

    来自上海 回复
  9. 对于我这种数据库小白,还是有用的,谢谢楼主

    来自北京 回复
  10. 这个文章题目应该改成:一文让你浅显易懂地了解mysql

    来自上海 回复
  11. 我以为是讲解各种数据库类型的功能与区别呢,误入了。

    来自河南 回复
    1. 这个就不会放在这里了,这个是很新人的

      来自上海 回复
    2. 同意123的评论。

      来自河南 回复
  12. 此文实在没意义,通过mysql用户手册就可了解的东西,专门写个文章干嘛呢?顺便说一下用户手册就是说明书

    回复
    1. 对于我这种刚开始了解数据库相关的人来说,就有意义~ 😉

      来自湖南 回复