作为一名数据分析师,我整天编写SQL查询。我的任务之一是充当公司数据库和需要随时使用数据的同事之间的翻译。根据他们的需求定制提取的数据后,他们就能够进行自己的分析并得出面向业务的结论。与对数据一无所知的同事一起工作,我发现拥有SQL的基本知识——或者在工作中获得它——通常会让他们受益。
如果你处于类似的职位,比如与负责公司数据库的数据分析师或技术团队打交道,或者如果你认识这样的人并且想更多地了解SQL是什么,以及为什么它在数据处理中如此重要,那么本文就是为您准备的。
SQL简介
SQL代表结构化查询语言。它是一种用于管理存储在关系数据库管理系统(RDBMS)中的数据的编程语言。在本文中,我将重点关注查询,这是SQL中最常见的操作。他们的职责是翻译诸如“您能告诉我昨天与该客户进行的交易吗?”之类的说明。提取(可能非常大)数据库的摘录。
这里有一个例子。假设我的公司的数据库由5个表组成:
- “交易表”记录了我公司每天所做的所有交易
- “卫生产品表”和“食品产品表”列出了我们销售的产品
- “个人客户表”和“专业客户表”是客户登记册
要回答“杰克在2020年11月买了什么?”我需要通过组合这五个表来找到必要的信息。
那么,为什么要学习SQL呢?
在数据分析中变得更加自主
虽然使用Microsoft Excel或谷歌Sheets就足以处理有限的数据,但也许您已经遇到过这样的情况:由于处理的数据量过大,电子表格软件假死了。事实上,SQL的第一个优点是,它可以从数据库中提取和操作大量数据,而不必逐个打开Excel表来浏览数据库。
回到上一个例子,你将有两个选项来回答这个问题:
转到每个表并查看可用的字段。要专门查找Jack和他购买的物品,您需要过滤这些表中的提取内容,以查找Jack对应的client_id,以及他购买的物品对应的产品。编写一个SQL查询(或使用您喜欢的数据分析师编写的模板)来直接将所有5个表连接在一起。然后在WHERE子句中指定搜索条件。
这里的SQL查询看起来像这样:
SELECT*FROMtransactionsAStLEFTJOINhygiene_productsAShpONt.product_id=hp.product_idLEFTJOINfood_productsASfpONt.product_id=fp.product_idLEFTJOINindiv_customersASicONt.client_id=ic.client_idLEFTJOINprof_customersASpcONt.client_id=pc.client_idWHERE (ic.client_name='Jack'ORpc.client_name='Jack') ANDt.purchase_dateBETWEEN'2020-11-01'AND'2020-11-30'
更好地组织你的思想
即使您自己不打算成为一名数据分析师,学习SQL也是一个很好的练习,可以更好地理解您公司的数据是如何结构化的,以及通过组合各种数据源可以实现什么。SQL具有相当简单的结构(至少与其他编程语言相比),但它可以执行复杂的查询。通过自己编写查询,您将能够检索到更多的信息,最重要的是,这些信息将以一种您可以立即使用来回答问题的方式进行结构化。
在与数据分析师或技术团队的交互中,更好地理解数据库的架构,更好地理解SQL查询背后的逻辑,将使您节省宝贵的时间。在表示对数据提取的特定需求时,如果您已经知道需要什么类型的数据,那么您将赢得时间。
使用我前面的例子,有两种方法可以让你的同事检索你分析所需的数据:
“我需要一个Jack的信息,他在2020年11月买了一些产品,你能把他所有的购买清单发给我吗?”
“我需要个人客户Jack的信息,他在2020年11月购买了卫生产品,你能给我一份他的购买清单吗?”
你可以想象第二个选择可能会帮助你的同事更快地找到答案。为了说明我的例子,这是你得到这个答案的思维过程:
培养新的专业技能
根据Stack Overflow在2020年进行的一项调查,SQL是第三大最常用的编程语言。也就是说,SQL已经得到了广泛的传播,而且它很可能会继续传播,因为它是数据库管理的头号语言。无论你的公司使用的数据库技术(MySQL, PostgreSQL, Microsoft SQL Server…),他们都使用SQL或这种语言的衍生。
正如Dataquest所解释的那样,根据2021年1月在Indeed求职门户网站上进行的一项分析,SQL是数据类职位最受欢迎的技能。即使你不打算将职业重心转向全职的数据工作,更好地了解这些工作背后的内容也只会对你有所帮助——这为未来在数据领域或其他领域的机会打开了一扇门。
总结:让我们开始吧!
作为本文的结尾,我想添加最后一个参数(也是一些好消息):学习SQL是免费的。
其中,MySQL是一个开源的RDBMS,可以免费下载和安装。然后,你可以从在线课程开始——或者让你的数据分析师同事给你一个关于这个主题的快速入门课程!