互联网企业如BAT(百度阿里腾讯),在经过漫长的用户积累后都形成了自己的数据库。

在大数据时代下,将不断更新的数据库整理、加工和排序所形成的有效信息,能为公司的产品、运营甚至是高层战略提供第一手的参考资料,从而帮助他们更为科学和高效地解决用户痛点。

2020年,SQL已经成为数据库语言的“民间标准”和程序猿的“生存技能”。

sql数据分析技巧(数据分析渐成标配)(1)

一直以来,我在咨询工作中发现一些互联网大厂(如谷歌),以及四大会计事务所之一的德勤,在招聘数据分析的工作时,均要求考核者熟练掌握SQL(Structured Query Language:结构化查询语言)。

有趣的是,这些处于“风口浪尖”上的互联网、咨询巨头,由于行业对高价值信息敏感的特性,往往在数据管理上走在时代的前列;他们在优势领域的招聘要求就像是风向标,被众多同类的中小公司参考和使用。

而这就带动以互联网和信息产业为基础,整个“社会大工厂”对SQL应用和相关人才的需求。

sql数据分析技巧(数据分析渐成标配)(2)

考虑到大环境下SQL的发展潜力,以及目前应用人才市场对资深SQL人员“求贤若渴”的现状,从现在起学习SQL,掌握基本操作,能为我们简历加分、职业增分。

不过SQL的专业范围也限制了感兴趣的同学对它的了解程度,所以我特别准备了从零到入门的SQL解析,来帮助将来在互联网技术岗从业的“SQL小白”,掌握SQL基础操作。

- I -

SQL是什么

SQL:Structured Query Language即结构化查询语言。是目前数据库领域使用最为广泛的数据读取和编辑自动化语言,语法近似于英语,还能跟其他编辑语言对接。

简单地说,就是一个能快速读取“超大版Excel和特定文件“的数据库编辑工具,它非常善于存取和组织数据,在2020年和我们的日常生活联系日趋紧密。

sql数据分析技巧(数据分析渐成标配)(3)

它的作用就像是大家中午点开外卖平台,首页跳出的”热销产品“;下班打开某音,滑到的”推荐达人“;睡觉前浏览微信”看一看“,转出的“3 朋友在看”,这些都是基于用户喜好和反馈、内容质量和点击率等数据指标排出来的“产品推荐”。

而其中涉及到的成千上万家外卖商家、能歌善舞的俊男美女、各大领域的无数自媒体工作者每天产生的各类数据,经过识别、筛选、加工、排序后产生的最终结果,就是SQL的成果。

SQL在这里产生的价值是:通过数据读取和组织抓住关键信息,完成筛选和排序。

例如从配送范围、历史订单中帮助我们“搜索”到某个店家,从常看类型、口味喜好中引导我们“滑到”某个达人,从热门10W 、浏览记录里推荐我们“浏览”某篇公众号的文章,都是SQL的手段。

- II -

为什么用SQL

SQL作为关系数据库语言,在1980年10月就被作为美国作为相关标准并经国际标准化组织认可,发展相对成熟;而且在相关社区有一大批人才持续互动交流。

成长中的它稳定可靠、上手容易,互联网小白几天就能入门,并能够做出查询数据等基本操作

sql数据分析技巧(数据分析渐成标配)(4)

sql数据分析技巧(数据分析渐成标配)(5)

而更为重要的是,许多语言(如VB、VFP、C等)都可以通过SQL各种数据库,不管你是由哪种DBMS(SQL Server、Oracle、MySQL、ACcess等)生成的数据库。实现了语言无关性和DBMS无关性。

这意味着无论你是C语言精通者,还是VB资深用户,都能在数据库语言这块和SQL匹配,“海阔天高任鸟飞”,兼容性极强的SQL能让不同起点和轨道的用户,在数据库上完美对接。

而值得注意的是,2020年的SQL数据库普及度极高,已经为其自身的成长构筑了一个良性循环。各大公司,如BAT(百度,阿里巴巴,腾讯),外企,国企都会用SQL来筛选和整理自己的数据库。

在现实中,SQL是相对稳定成熟而又处在“用户上升期”的数据库语言,未来有良好的发展潜力。

- III -

SQL怎么用

先来看看SQL的基本结构:

如图所示,名为“grace”的数据库里包含了5张表。

sql数据分析技巧(数据分析渐成标配)(6)

因为在该案例中只涉及到两张表product(产品表),sales(销售表),所以先为大家展示这两张表里包含的字段:

产品表:

sql数据分析技巧(数据分析渐成标配)(7)

销售表:

sql数据分析技巧(数据分析渐成标配)(8)

现在我们需要汇总不同产品大类、小类的销售总金额,并按照从大到小的顺序进行排列。(代码如下所示)

sql数据分析技巧(数据分析渐成标配)(9)

我们需要的字段为产品大类( base_category)、产品小类(category)和销售总金额(SUM(amount) )。

1)首先看第四、五行。

第四行:FROM sales s :把sales表命名为s

完整语句应为 SELECT*FROM sales s(出于简便省略了SELECT)

即:选择sales表(SELECT),并把sales表命名为s(命名用FROM

把小明命名为老王:SELECT*FROM 小明 老王,简称FROM 小明 老王

当然,小明和老王在SQL中要用字母代替,所以

同理,把A命名为B:SELECT*FROM A B,简称FROM A B

第五行:NNER JOIN product p ON s.product_id = p.product_id

我们把它拆分为三个部分,分别是 命名 、关联 、内连接

第一部分:命名

与第四行同理,我们把product 命名为p

在原语句中直接省略SELECT 和 FROM

第二部分:关联

sql数据分析技巧(数据分析渐成标配)(10)

[表] INNER JOIN [表]...ON...[关联条件] ,这是两张表关联的固定语法

这里第四行的sales表作为第一个【表】,INNER JOIN 后衔接第二个【表】即

INNER JOIN product ON

因为又把product表命名为p,所以是INNER JOIN product p ON

第三部分:内连接

拆分到最后我们发现还剩下s.product_id = p.product_id ,其实就是

sales表和product表通过共同的字段:产品ID (即:product_id)进行内连接。

注:内连接是指找出每个表中的符合条件的共存记录

所以第五行完整的意思是:将销售表sales(简称s)和产品表(命名为p)以相对的产品编号连接(product为产品,id为商品编号)

2)第六行。GROUP BY base_category,category意思是使用 GROUP BY 将数据按照产品大类 、产品小类进行分组。

值得注意的是,在SQL中的语法的大小写都能被识别,所以GROUP BY 和 group by都可以用。

3)再看第一、二、三行。

SELECT的意思是进行查询选择,后面接上的p. base_category,p.category表示选择产品表中的产品大类,产品小类。

在SUM (s.amount) AS total中,AS是“重命名”的意思,所以sum(s.amount)表示计算销售总额并重命名为 total。

Select p. base_category,p.category,sum(s.amount)完整的意思也就是选择输出产品大类,产品小类以及经过计算重命名后的toal。

4)最后一行。ORDER BY total DESC意思是使用ORDER BY将数据按照销售总额即命名后的total进行排序。(SQL里的默认排序方式为升序,加上DESC则表示降序)

sql数据分析技巧(数据分析渐成标配)(11)

这就是一个通过SQL语句对数据库进行查询的例子,看起来是不是很简单?

但如果是人工从成百上千上完条数据中筛选,这个工作量可能还是很大的。

从这个例子中大家能看出,在SQL中语句的书写顺序和执行顺序是不同的,语句的执行通常按照FROM--WHERE--GROUP BY--HAVING--SELECT--ORDER BY的顺序。

而在具体执行的先后顺序上:ON--WHERE--HAVING。

这里的WHERE与HAVING也是常用的数据提取语句,均用来进行数据筛选。但是WHERE语句只可以筛选原始数据,HAVING语句则可以用来筛选原始数据和计算后的数据。

sql数据分析技巧(数据分析渐成标配)(12)

除了上面所用到的最基本的语句外,根据指令种类的不同,SQL 语句可以分为以下三类:

1)DDL(Data Definition Language,数据定义语言) 用来创建或者删除存储数据用的数据库以及数据库中的表等对象。DDL 包含以下几种指令。

CREATE: 创建数据库和表等对象

DROP: 删除数据库和表等对象

ALTER: 修改数据库和表等对象的结构

2)DML(Data Manipulation Language,数据操纵语言) 用来查询或者变更表中的记录。DML 包含以下几种指令。

SELECT:查询表中的数据

INSERT:向表中插入新数据

UPDATE:更新表中的数据

DELETE:删除表中的数据

3)DCL(Data Control Language,数据控制语言) 用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对RDBMS 的用户是否有权限操作数据库中的对象(数据库表等)进行设定。DCL 包含以下几种指令。

COMMIT: 确认对数据库中的数据进行的变更

ROLLBACK: 取消对数据库中的数据进行的变更

GRANT: 赋予用户操作权限REVOKE: 取消用户的操作权限

SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作(“有手就行”)。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式。

SQL按照用途可分为6种语言:数据查询、数据操作、事务控制、数据控制、数据定义、指针控制语言,语法近似于英语,稍加摸索便能入门。

- IV -

学会SQL的用处

对于意愿从事互联网工作的程序猿来讲,很现实的用处是职业需求。

一是不会SQL在竞争中受限,二是学会SQL薪资可观。

21世纪高新技术产业蓬勃发展,数据分析正在成为相关从业人员的基本生存技能;数据分析师的岗位也变得炙手可热,有1到3年经验的数据分析师薪资普遍不低于10k,而工作3到5年薪资普遍不低于15K,大环境下的数据分析师有着相当可观的薪资待遇

更多的复合型跨行岗位要求掌握SQL,比如产品/运营/战略 数据分析。掌握数据分析不仅能在求职时加分,还能极大提升工作效率。这点,从国内外“互联网巨头、咨询大头”等公司对于数据分析人才的招聘筛选上,就能看出一些睥睨。

阿里巴巴:(数据分析师)

sql数据分析技巧(数据分析渐成标配)(13)

谷歌:(分析主管)

sql数据分析技巧(数据分析渐成标配)(14)

德勤:(经理)

sql数据分析技巧(数据分析渐成标配)(15)

可想而知,在可预见的未来,熟练掌控SQL在互联网公司招聘上会更多地成为“硬性指标”。

在“时代大风向”下,花不多的时间看看SQL,能帮程序猿在简历上“添砖加瓦”,在职场中获得更多的晋升机会;对于准备在数据分析领域长期发展的小伙伴,SQL则是未来发展的“必备技能”。

—— 关于Etesian ——

前战略咨询顾问

现BAT战略分析经理

先后服务过大型央企、民企、500强外企、PE基金等各类客户

担任过面试官

也负责为咨询新人做培训

专注个人发展

这里有干货的咨询技能

也有职场感悟

点击“阅读原文”关注Eteisian成长指南

收获真正的成长

,