“SQL 被低估了!”

【CSDN编者按】一直以来,结构化查询语言 SQL 凭借着快速、无需编码、可移植性、明确界定标准等特性深受开发者喜爱。且自从被加入 TIOBE 编程语言排行榜以

【CSDN编者按】一直以来,结构化查询语言 SQL 凭借着快速、无需编码、可移植性、明确界定标准等特性深受开发者喜爱。且自从被加入 TIOBE 编程语言排行榜以来,SQL 就一直保持在 Top 10 的范围内。

在本文中,作者 Craig Kerstiens 发布了一则名为《SQL: One of the Most Valuable Skills》的博文,引起无数网友共鸣,其纷纷表示,SQL 确实是一门被低估的语言。

对此,你怎么看?

作者 | Craig Kerstiens,云技术工程师@citusdata

译者 | 弯月

责编 | 屠敏

出品 | CSDN(ID:CSDNNews)

以下为译文:

在我的职业生涯中我学习了很多技术,但是我觉得最实用的技术当属 SQL。对我来说,SQL 是最有价值的技术,原因有以下几个方面:

  • SQL 在不同的职责和学科中都很有价值。
  • 只需学习一次,一劳永逸。
  • 你可以成为超级英雄。掌握这门技术,会让你变得非常强大,因为很多人都没能熟练掌握这门技术。
  • SQL 是一个可以随处使用的工具

    无论你的职责是什么,你都可以通过 SQL 让你工作变得更轻松。目前作为一名产品经理,我的工作重心在于查看数据、分析我们在产品方面的影响以及塑造产品规划蓝图。如果我们刚刚发布了一个新功能,那么相关的数据(比如是否有人查看这个功能等)可能都保存在关系数据库中。如果我正在追踪一些关键性的指标(例如月度增长),那么很可能这些数据也保存在关系数据库中。另外,我们所有的工作(例如系统记录)都需要使用 SQL。掌握如何使用 SQL 可以为我节省大量的工作,因为我无需向他人询问具体的数字。

    但是,即使在成为产品经理之前,我也会使用 SQL 来了解系统内部的情况。作为一名工程师,通常我可以通过 SQL 更快地获取我想要的信息,而无需使用 Ruby 或 Python 编写脚本。当我的 webapp 变得非常迟缓时,我必然需要了解其所执行的 SQL 以及优化的方法。当然,这远远超出了对 SQL 基本的理解……但是为查询添加索引就可以解决问题,而无需增加缓存,这还是非常值得花费额外的时间学习。

    SQL 的知识具有持久性

    我记得大约在20年前,我创建了第一个网页。我感觉非常欣喜,还加入了一些 Javascript 来强化页面,提示用户点击是/否或提供一些输入。后来,大约在10年前,jQuery 问世了,虽然有时它很冗长,但是学习新功能可以让页面整体上更加美观,所以我重新学习了 JS 的 jQuery 方法。再到后来,Angular – > React / Ember 相继出现,现在为了将基本的 Javascript 引入我的网站,我需要一整套的流程,而现实情况是我所做的仍然只是让用户点击是/否——与20年前一样。

    相反,SQL 却没有太多改变。虽然它已经发生了改变——成为了现代的 SQL,但是我仍然认为与其他技术相比,这点变化几乎微不足道。没错,每隔几年就会一个新的标准问世,偶尔还有新的内容(比如支持窗口函数或CTE),但是 SQL 的基础知识始终如一。只需学习一次 SQL,你就可以在工作中反复使用,而无需重新学习。请不要误会,我喜欢学习新的东西,但我宁愿学习一些真正的新东西,而不仅仅是完成同样任务的另一种方法。

    SQL 的独一无二

    大多数应用程序开发人员都未能熟练地掌握 SQL,他们没有认真学习这项技术。正因为真正掌握 SQL 的人非常少,所以可能你看起来更加出众。我原来的公司拥有数百名的工程师,每周都有好多人(从初级工程师到高级首席工程师)来问我:“你能帮我看看这个查询该怎么写吗?”因为你掌握了某项很少人掌握的技术,所以你可以帮助别人,而当你遇到困难需要他们帮助时,他们也会义不容辞。

    如果你还未能精通 SQL 的话,或许可以马上行动起来。

    你怎么看?

    对此,网友们也各抒己见:

    评论1:

    SQL 是我见过的最令人叹为观止的一个概念。它有将近五十年的历史,而且没有丝毫要被取代的迹象。我们创造无数的其他技术来存储和处理数据,但似乎我们总是在设法利用这些技术(例如 Hive,Presto,KSQL等)重建 SQL。

    我在经营一家创业公司,为客户构建分析基础架构。我们非常重视 SQL,而本文的内容非常真实。

    与普通的软件工程师相比,分析师和数据科学家在工作中编写的 SQL 越来越多。

    MMP 数据仓库(redshift,bigquery,snowflake等)的出现,使得即使预算有限的公司也能够使用 SQL 来存储和查询大量数据。SQL 比以往任何时候都更强大,更有价值。

    如果注意观察某个普通的企业,你会发现大多数软件工程师都不擅长 SQL。他们怎么能这样?大多数复杂查询都是分析查询。ORM 可以处理应用程序代码需要处理的大多数基本功能。

    但是,本文没有提到一点:许多后台的工程师已经抽象出了 SQL,当然还有前端和移动。所以即便你不太了解 SQL 也可以成为一名优秀的开发人员。

    另一方面,拥有初级或中级分布式文件系统、流媒体数据或各种其他 NoSQL技术知识的“数据工程师”涌现了出来。通常他们对原始 SQL 的了解甚至比初级工程师更少,因为 SQL 位于他们强大的数据工具的底层。

    但是,如果你真正掌握了 SQL,再加上如今掌握这项技术的少之又少,所以你可以拥有巨大的权力。可能比以往任何时候都强大。

    评论2:

    众所周知,SQL 是关系数据库语言,其基础是关系代数与集合论,因为有了这样强大的后盾与坚固的基础,所以 SQL 可以经受住时间的考验而长久不衰。也正是因为这个原因,历经多年乃至在不同的职责下你也不需要重新学习。

    但是,这并不是说 SQL 就是完美的,事实上 SQL 距离“完美”还差得非常远。因为 SQL 还有很多未能很好地支持,甚至背离关系模型之处。

    举个最简单的例子,关系模型基于二值逻辑(即真/假),而 SQL 是三值逻辑:真、假、NULL。平白多出一个 NULL,其引发的问题也非常多,例如:

    (A = B) OR (A<>B)

    很显然这是一个恒真表达式,要么相等,要么不相等,还有第三种选择吗?有!在 SQL 中,如果 A 为 NULL 或 B 为 NULL,则这个表达式的结果为 NULL。

    除此之外,还有 SQL 中有重复数据,但是集合论中没有,重复的数据在集合中会被视作一个。

    最后再说一个,集合中的数据项没有顺序,而 SQL 表中的列有从左到右的顺序。

    所以,我们希望 SQL 能够紧紧围绕关系代数与集合论,取得更好的成长与发展。

    原文:http://www.craigkerstiens.com/2019/02/12/sql-most-valuable-skill/

    本文为 CSDN 翻译,如需转载,请注明来源出处。作者独立观点,不代表 CSDN 立场。

    原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/80023.html

    Like (0)
    小条的头像小条
    Previous 2024年5月31日
    Next 2024年5月31日

    相关推荐

    • seo外链做什么

      SEO外链,作为搜索引擎优化的重要手段,一直备受关注。但是,你知道SEO外链到底是做什么的吗?它究竟有什么作用和优势?如何选择合适的SEO外链策略?在实践中又有哪些方法和注意事项需…

      行业资讯 2024年3月29日
      0
    • 免费防火墙软件有哪些(完整版)

      网络安全问题一直备受关注,随着互联网的发展,越来越多的人开始意识到保护自己的网络安全的重要性。而防火墙软件作为一种常见的网络安全工具,也备受大家关注。但是市面上的防火墙软件种类繁多…

      行业资讯 2024年4月14日
      0
    • 如何选择最优的韩国代理服务器?

      网络安全加速行业是当今信息时代不可或缺的重要组成部分,而韩国代理服务器在其中扮演着至关重要的角色。但是,如何选择最优的韩国代理服务器却是一个让人头痛的问题。今天,我们就来探讨一下什…

      行业资讯 2024年4月14日
      0
    • gpu服务器报价和配置怎么选择的

      你是否曾经遇到过在选择GPU服务器时无从下手的困扰?不知道如何去配置和选择,又担心价格过高?别担心,今天我们就来为您解析这个问题!什么是GPU服务器?它的配置和性能特点有哪些?价格…

      行业资讯 2024年4月5日
      0

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注