转行数据分析师如何开始学习SQL | 工科生三个月转行数据分析学

2022-04-18  本文已影响0人  舟晓南

该篇文章包含以下几个部分:

1.什么是SQL及相关概念

2.数据分析师学习SQL的哪些部分

3.学习资源推荐

4.练习网站推荐


1.什么是SQL及相关概念

在了解SQL之前,先思考一个问题:当我们在浏览网页的时候,页面中的信息,或者说“数据”,来自于哪里?

答案就是页面中的数据来自于公司的数据库。

对于用户来说,其看到的是网页中显示的信息,比如某品牌某型号手机的价格是3999元,页面的感官非常具有设计感,不同的颜色不同的字体以及不同的手机图片,让人忍不住剁手的欲望。

某网购平台页面显示各种手机的信息

而对于数据分析师而言,从公司的数据库中提取的数据的展现形式,是一张张简简单单的记录了所有信息的表格,类似于excel之中的表格。网页采用了这些数据,套用上一个设计好的模板,最终显示给用户。

数据分析师看到的各个手机信息的形式

数据库,Database,是保存着很多数据的一个容器,那么作为数据分析师,需要学习的是如
何从数据库中提取出我们所需要的数据,为了做到这一点,我们使用一种语言,叫做Structured Query Language,即SQL,中文是结构化查询语言。

为了能够方便的使用SQL这种语言,市面上现在存在着很多软件,让你可以通过输入SQL访问数据库,这样的软件,叫做Database Management System,即DBMS,中文是数据库管理系统。

DBMS主要有两个部分组成,即客户机和服务器,用户可以通过客户机提出对数据进行动作的请求,该请求由客户机发送给服务器,服务器接着运行请求,满足用户的需求。

DBMS的组成部分

目前的DBMS可以分为两类,分别是关系型DBMS(Relational DBMS,RDBMS)和非关系型DBMS。

关系型DBMS将数据保存在不同的表中,表与表之间建立有紧密的联系,可以通过表的连接等方式获得请求的数据。

非关系型DBMS则是用键值对的形式存储数据,即每一个值对应一个编号(键),可以通过键找到对应的值。

关系型DBMS和非关系型DBMS

对于关系型DBMS来说,SQL是一种通用的语言,也就是所有关系型DBMS中基础的SQL都是合法的。但对于非关系型DBMS而言,其语言不是互通的。

根据SQL的用途可以将SQL分为五个大类

Data Definition Language(DDL):数据定义语言,用来定义数据库对象。比如创建、修改、删除数据库、表、列等。注意,这里的操作仅针对库、表和列本身,而不针对其中存储的数据。

Data Manipulation Language(DML):数据操作语言,用来定义数据库数据。比如插入、修改、删除数据。

Data Control Language(DCL):数据控制语言,用来定义访问权限和安全级别。比如授予、收回某一用户对数据库的查询、修改、更新等权限。

Data Query Language(DQL):数据查询语言,用来查询数据。

Transaction Control Language(TCL):事务控制语言,用来对事务进行操作的语言。所谓事务,简单来说就是一组SQL语句,这样一组语句不可分割,组成一个完整的事务。

2. 数据分析师应该学习SQL的哪些部分

学习不仅需要持续的努力,还是一种可以练习的技巧,有针对性的学习可以在最短的时间内达到自己定下的目标,这也是我一直在践行,以及一直在改进的学习方式。

那么对于想要转行数据分析岗位的人来说,如何能够做到快速精准地学习SQL呢?

首先,虽然非关系型DBMS可能在特定的情况下性能更好,关系型DBMS仍然在各个行业中被广泛使用,而基础的SQL可以直接套用到所有关系型DBMS之中,因此一开始学习关系型DBMS通用的SQL的性价比更高。

当然,如果希望进入一个明确的行业或是公司,建议还是先对该行业做一个比较全面的了解,至少需要知道他们是否使用SQL,或是否有一个常用的非关系型DBMS,并针对性的学习。

第二,数据分析师的主要工作是找到数据中潜藏的商业价值,也就是说并不需要对数据库中的数据进行修改,更不会涉及到增加和删除的操作,因此主要的学习方向是SQL的数据查询语言(DQL)。

另外,对于初学者而言,也可以了解一些数据定义语言(DDL)和数据操作语言(DML),这样可以在自己的电脑上建立一个简单的数据库,并随时练习DQL。

3. 学习资源推荐

SQL相对来说是一门比较简单的语言,上手还是比较快的,网络上的视频教学资源还是很多的,这里就推荐一个我当时用来学习的SQL资源,从第243集开始看到第326集基本上就能对SQL的DQL有一个基本了解了。

https://www.bilibili.com/video/BV12b411K7Zu?from=search&seid=4481585889569838463www.bilibili.com/video/BV12b411K7Zu?from=search&seid=4481585889569838463

当然,真正在工作中,因为不同的公司使用不同的DBMS,而不同的DBMS除了通用的SQL语言外,还会有一些差异化的语言,比如我之前实习的公司用的是Impala,而其它部门则用的是Oracle,因此有时候还需要将一些函数和语法进行转换,才能在Impala上运行。

所以如果有目标公司,最好是能够调查一下他们具体用的DBMS是什么,再进行更加针对性的学习。



4. 练习网站推荐

这里就推荐一个我最开始学习时用的练习网站:SQLZoo

SQLZOOigs.sqlzoo.net/wiki/SQL_Tutorial

这个网站从最基本的select到join都有习题,全部做完就算入门了。

不过真正工作中的SQL语句比SQLZoo中的练习要复杂得多,因此不要把SQLZoo做完就结束了,因为面试中很可能会让你当场做几道SQL的题,这时熟练程度就极其重要,面试官一眼就能看得出来你是否真的熟悉SQL语句。

当时我做SQLZoo的答案已经记录下来,当然题目可能会有不同的解法,尽量自己做对,实在做不出来再看答案,研究答案中的逻辑。



SQLZoo题目及答案:

上半部分:
舟晓南:SQLZoo题目及答案上半部分 | 数据分析学习历程全记录
包含
select basics;select from world;select from nobel;select in select;sum and count
的题目和答案

下半部分:
舟晓南:SQLZoo题目及答案下半部分 | 数据分析学习历程全记录
包含
sqlzoo join;more join;use NULL;self join
的题目和答案


同名公众号,知乎:舟晓南

对机器学习,深度学习,python感兴趣,欢迎关注,学习笔记已原创70+篇,持续更新中~ ^_^

学习笔记:数据分析,机器学习,深度学习

专栏文章举例:

【机器学习】关于逻辑斯蒂回归,看这一篇就够了!解答绝大部分关于逻辑斯蒂回归的常见问题,以及代码实现 - 知乎 (zhihu.com)

关于 python 二三事

专栏文章举例:

记录一下工作中用到的少有人知的pandas骚操作,提升工作效率 - 知乎 (zhihu.com)

关于切片时不考虑最后一个元素以及为什么从0开始计数的问题 - 知乎 (zhihu.com)

关于转行:

舟晓南:如何转行和学习数据分析 | 工科生三个月成功转行数据分析心得浅谈

舟晓南:求职数据分析师岗位,简历应该如何写?|工科生三个月成功转行数据分析心得浅谈

我建了个数据分析,机器学习,深度学习的群~ 需要学习资料,想要加入社群均可私信~

在群里我会不定期分享各种数据分析相关资源,技能学习技巧和经验等等~

上一篇下一篇

猜你喜欢

热点阅读