冒险:我学习SQL的方法

当我开始学习SQL时,我无法告诉您。 如果我说我从去年开始白手起家,那年我决定转为开发者拥护者的角色,那我将是一个错误的陈述。 在Google的过去几年中,我经常遇到SQL,甚至改编和编辑了现有的SQL查询。 去年发生的变化是,我决定主动学习SQL。 我研究了学习资源,制定了计划和时间表(在一个非常凌乱的文档中),并竭尽全力执行上述计划。 为了节省您的文档,我在这里分享其摘要。 我希望它可以为您自己的学习工作带来价值。

如果您决定学习SQL,那么您的第一个天赋就是了解这是什么坏笑话。

学习基础

我知道学习基础知识很无聊-我保证这并不像您想的那样糟糕! 我会承认,当我学习法语时,语法和动词缀合课程并不是最令人振奋的。 但是有一个基线很有帮助,这样您至少可以理解该语言的结构和上下文,例如:它是从左到右编写的吗? 有性别案例吗? 使用哪种字母?

我使用了三个主要资源来学习SQL的基础知识:

  • Codecademy SQL (在线课程)

本课程是入门的简便方法。 我在Codecademy的云环境中完成了所有课程,这意味着无需安装或连接任何内容。 我从注册该课程到在几分钟之内编写SQL都免费了。

  • Sams在10分钟内自学SQL (本书)

Codecademy课程结束后,我想学习一些更复杂的概念。 尽管这本书不会在10分钟内教授SQL(更糟!),但它确实比Codecademy课程在一些更高级的主题上有很多精彩的课程。 我还发现它是持续不断的有用资源。

如果您想使用示例数据库表来学习这些课程,建议您将它们加载到BigQuery中,然后在BigQuery控制台中编写和运行SQL。 这篇博客文章介绍了如何开始使用BigQuery和上传CSV文件。 BigQuery比某些替代方法*更简单,并且具有免费层,为您提供了足够的空间来进行这些练习。 这本书不是免费的(30美元),但可以在您的书架上找到或以折扣价使用。

*我首先通过将表加载到Cloud SQL中并将Cloud SQL连接到MySQL Workbench的桌面版本进行了尝试。 设置时间过多,查询时间不足!

  • 使用GCP从数据到见解 (在线课程)

该“专业化”课程包括四门课程,重点是使用Google Cloud分析和可视化数据。 如果您有兴趣将数据准备,分析和可视化结合在一起,那么这是一个不错的系列。 由于我专注于使用Google Cloud进行数据分析,因此非常适合。 一个好处是,我最终学习和实践了更多的SQL。

虽然有付费版本的专业化课程,但是您可以免费单独“审核”四门课程中的每门课程。

开始练习

如果您没有阅读我的关于选择学习哪种编程语言的文章,我重申,我坚信您应该选择学习可以帮助您解决实际工作中问题的技术。 而且越早越好!

在我开始学习SQL之后不久,Google Cloud和NCAA宣布了合作关系。 随之而来的是通过分析NCAA提供的数据来做一些很棒的事情。 我抓住了加入竞选团队的机会,尤其是我写了一些查询来支持各种分析。 这个项目给了我一个查询的理由! 它也伴随着令人赞叹的队友,我可以指望他们,他们教给我许多新的SQL概念。

您的项目不必一定要进行为期数月的合作活动,这可以是一个简单的问题。 例如,大约在同一时间,我正在从事一个项目,该项目涉及使用来自大型CSV文件的数据,该数据太大而无法导入Google表格。 SQL为我提供了另一种方法,可以将CSV文件过滤到可以加载到Sheets中的大小,我在一个简短的博客系列中对此做了记录。

感觉还没有项目吗? 您可以组成一个项目,我保证这不会一无所有。 随着您对SQL可以解决的问题的类型更加熟悉,您将了解可以使用它的所有地方! 以下是一些将SQL实践添加到您的生活中的想法:

  • 公共数据集计划

寻找一些要查询的真实数据 ? Google云端有一个公共数据集程序,其中包括1937年以来的美国婴儿名字数据和NOAA的每日天气数据。 GCP Marketplace中列出了所有数据集,并且许多数据集都有文档,包括示例问题和查询。 开始问自己一些问题,例如“我出生的那年有多少个婴儿被赋予相同的名字?”,然后使用SQL进行回答。 BigQuery中的免费层允许您每月查询多达1TB的数据。

我的队友Felipe Hoffa定期发布有关如何从开放数据集(例如GCP公开数据集)中获取惊人见解的中型示例,并且当我有时间查看SQL时,我总是会学到一些新知识。

  • Google表格中的QUERY函数

承认,电子表格统治着我们的生活! QUERY函数是在电子表格中开始使用类似于SQL的语言的好方法。 我非常喜欢Ben Collins的Sheets学习内容,并且他在使用QUERY函数方面有出色的帖子和视频。

旅程继续

我可能永远不会学过SQL(直到我退休后再休闲)。 同时,您有没有喜欢的SQL学习资源? 如果是这样,请在下面分享!