学习SQL的最佳方法 - 翻译DATAQUEST

一.欢迎来到我的酒馆

        在本章节讨论学习SQL的最佳方法。现在关于SQL的资源非常多,学习SQL的正确方式却变得很难。找到一条学习SQL的最好的途径是一门艺术,因为每个人的学习方式不一样。但是,在接触了不同的人群后,我们整理出了几条非常简单的步骤,下面分享这些步骤。

目录

    • 一.欢迎来到我的酒馆
    • 第一步:为什么要学习SQL
    • 第二步:学习基本语法
    • 第三步:开始在指导项目上工作
    • 第四步:熟悉有用的SQL资源
    • 第五步:创建你自己的SQL项目
    • 第六步:创建更多高级的项目
    • 关于SQL频繁的问题

第一步:为什么要学习SQL

        在你选择学习SQL之前,问问自己为什么要学习SQL ?这是因为学习SQL并不太难,而学习的路程没有一直是平坦的,你可能会遇到挫折和困惑。如果你没有一个好的理由去学习SQL,那么你在学习SQL的过程中很容易放弃。
        对于这个问题没有标准的答案,但是,有一些最普遍的理由来学习SQL:

  • 你觉得Excel是个瓶颈,而且你厌倦了VLOOKUP。
  • 你希望能够轻松地按需访问公司的数据。
  • 你希望能够快速地处理更大地数据。
  • 你想要获得一份数据分析师,或数据工程师的工作。
  • 你希望创建透明、可重复的数据流程,以减少重复的任务。

        当然,上面罗列的是一小部分理由。你需要找到一个你自己的理由。它可能是非常具体的东西,就像是一个你想要回答客户的问题,或者是一个你想要创建的dashboard。
        你可以使用 SQL创建一个dashboard吗?这个我们稍后再谈。

第二步:学习基本语法

        通常,学习基本语法不是人们在学习编程中最喜欢的一部分,但是这无法避免。在没有学习到一些基本知识之前,你无法达到SQL基础级别,就像下面这样的,你不知道它做了什么:

SELECT c.name capital_city, f.name country
FROM facts f
INNER JOIN (
        SELECT * FROM cities
                WHERE capital = 1
                ) c ON c.facts_id = f.id
LIMIT 10;

        然而,学习比你想象的要容易得多!乍看,上面的SQL看起来很复杂也很困惑,但是SQL语法实际上相当简单。上面列出的SQL命令(所有大写的单词,像SELECT)你会在基础中使用到它。
这一步成功的关键是尽你的可能快速浏览一遍基础知识,你可以挑选一个课程,留出足够的时间来浏览这些基础知识。
        这里最重要的是,你不用仔细研究这些基础知识,你应该尽可能快的达到实际使用SQL的程度。因为深入学习和找到答案是一个非常强大的学习动机。这会一直使你保持动力,因此,我们建议你在学习基础知识的时候尽可能地快。

第三步:开始在指导项目上工作

        一旦你学习了SQL基础知识,这时,你应该深入研究使用SQL的项目。我们下一个最好的建议是:指导项目和教程。你需要找到一些会给你大量结构化的指导,因为在这个阶段,尝试从头构建一个完整的SQL项目的过程可能会让人沮丧。你应该做一些尝试,你自己可以做的事情,但是,当你棘手的时候,结构化的指导会给你一些建议,建议你下一步该怎么做。
例如,这里提供了一个join的案例,这非常适合用来练手,但是建议你自己浏览一遍。在你写了你自己的查询语句之后,检查代码片段很重要。这里要记住的是,这里的目标是按照指导项目做,以此来增加你的独立性,如果你只是复制粘贴代码,你学到的东西会很少,因此在你检查自己的回答之前,确保你已经付出了足够多的努力。

第四步:熟悉有用的SQL资源

        在你浏览一遍完指导项目后,是时候该你自己决定方向了,好消息是,你可以和你想要的数据工作,去回答你想要回答的问题,这多么激动!坏消息是:当你自己着手做的时候,已经没有了标准答案,因此在你开始你的第一个项目的之前,收集一些有用的SQL资源对你有很大的帮助。用浏览器搜索答案并不可耻,因为即使是最有经验的SQL开发者,也经常这样做。
        有用的SQL资源:

  • Learning SQL 2nd Edition(PDF) 这是一个免费的PDF格式的SQL教程,这是一个很好的参考。
  • StackOverflow SQL question 有关SQL的任何问题都在这里回答了
  • Github 如果SQL是你学习编程的第一个语言,你可能对这个网站不是很熟悉,如果是的话,你应该开始着手学习如何使用它!Github是一个非常庞大的分享SQL项目的地方,而且在上面你可以找到别人的一些非常棒的代码。
  • The Dataquest community 这个社区很活跃,而且友好,可以帮助你解决一些SQL问题。

第五步:创建你自己的SQL项目

        现在,当你棘手的时候,你知道去哪里寻找帮助。是时候开始你自己的项目了。这就是你在步骤一中得到的答案真正开始发挥作用的地方。知道了为什么要学习SQL将会帮助你回答下面这个问题:我应该做一个什么样的项目?

        简单的回答是,做一个你关心的项目。如果你是因为Excel拖慢了你的工作速度,那么你的第一个项目应该是弄清楚如何使用SQL更有效的完成这些工作任务。
        如果你学习SQL是为了得到一份工作,你应该在SQL项目上工作,尽可能接近得到工作后实际要做的工作。如果你的目标是处理数据,帮助减少碳排放,提高能源效率,那么你可能会着手于相关的项目。
        这里要注意的是:如果你还没有在一家公司工作过,那么创建一个SQL项目会有一些难度。或者你不想要使用公司的数据到你的项目上。找到一个所有人都可以免费使用的SQL数据库,其中包含你想要处理的数据很苦难,这取决于你的目标。但是不要害怕,这可能需要一些努力,可以将CSV格式的任何可下载的数据转换为SQL数据格式。无论是什么数据,你应该找到一种使用SQL的方式。不要忘记了在你的GitHub上分享你的SQL项目,当你学习到了某些新的知识,在上面更新。

第六步:创建更多高级的项目

        最后一步是基于第五步,只要你喜欢你可以重复这个步骤。这里继续学习的关键是你想要加大挑战难度。一旦你知道如何创建一个令自己激动的SQL项目后,你可能会写一些查询语句来代替旧的Excel。沿着同样的路线继续做项目会很有动力。重复做一件事情会提高你的熟练度,但也会阻碍你的进步。最好确保在每个新项目中,你都在学习会尝试至少一件新事物,一些你还不知道的事情。这也意味着你接手了一个全新的项目,或者这意味着可以浏览旧的项目并用一种新的方式实现。
        这同样意味着新的挑战,你之前没有想到过的。例如:

  • 你可以集成你的SQL技能为一个工具并生产出一个dashboard?
  • 你可以教别人使用SQL如何查询你公司的数据库?

在此基础上,你需要使用SQL做一些或多或少的工作。不是因为你知道如何做每件事情,而是因为你创建项目的流程教会了你如何找到答案。

关于SQL频繁的问题

1.SQL很难学吗?
        这个问题因人而异。对一个人来说很容易,而对于另一个人来说很难。然而,大部分的人都发现SQL很容易学习,特别是相比较于像Python或R之类的编程语言。
        不像其它一些编程语言,SQL是一门查询语言。它专门是为RDBMS而设计的,例如:Microsoft SQL Server,Oracle,SQLite,MySQL等。基于这些原因,SQL没有很多内容要学,在更全面的编程语言中必然存在的一些更复杂的概念,但在SQL中不存在。也就是说,大多数人认为SQL相对容易学习这一事实并不意味着你也会这样认为。或者当你遇到一些有挑战你会感到棘手,特别是如果你是第一次踏入编程的世界,你应该为这些挑战做好准备。但是不必担心,无论你的基础怎么样,你完全可以学习SQL。
2.SQL或Python:哪一个更容易学习?
        要回答这个问题取决于你的目标。它们是不同的事情。SQL是一门查询语言,它实际上只适用于与数据库中的数据进行交互、过滤和简单分析。在处理数据方面,它提供了非常强大的功能,但是它不能做像Python这样完整编程语言能做的所有事情。Python是一门编程语言。学习它有一定的难度,但也同样意味着它能做更多的事情。你可以使用Python做数据分析,但是你同样可以使用Python创建机器学习模型,或者创建游戏,或者是一个机器人程序,或者是一个设计艺术。
        如果你经常和数据工作,如果你每天打开电子表格,那么你会知道什么是VLOOKUP。你可能从学习这两门语言中受益。
3.可以自学SQL吗?
        可以。我们已经观察过了成千上万的学生自学SQL,他们在自己的时间浏览可交互的SQL课程。即使你不使用Dataquest,你也可以自学SQL。
4.学习SQL可以有多快?
        简短的回答是:非常快。复杂一点的回答是,你可以非常快地学习基本知识,甚至是兼职学习(例如,在全职工作结束后晚上学习SQL)。许多以前从未编码过的学习者可以在短短几个月内实现他们的目标并完成独立的SQL项目。如果你有一些编程经验或者你乐意花费一些时间来学习,你可以学习足够的SQL来更快地实现你的目标。
        话虽如此,学习SQL就像学习任何语言一样,没有真正的终点。即使是有经验的每天都使用SQL工作的人,他们也会每天在学习。学习任何的编程语言应该当成一个长期的旅程,而不是在几个月内开始和结束的事情。

你可能感兴趣的:(SQL,学习,sql,数据库)