前段时间,我的领导突然发消息给我:
大 BOSS 想要知道,最近公司上线了促销功能后
产品的销量表现如何?有没有带来新用户增长?对同类产品的销量有没有促进作用?
刚收到消息时,我的内心是这样的:

▲图片来源:Google

这应该是业务运营团队提供的好不好?!虽然内心拒绝,但身体还是很诚实。我在确认需求之后,马上就写好了相关 SQL 查询,并且很快拿到了线上运行结果,生成 EXCEL 报表发给了领导。

之后我得知,由于新产品的图形报表分析功能还没有上线,所以不会用 SQL 语句拿数据的业务分析人员就吃了苦头。在运营团队被 BOSS 一通批评之后,这个任务就转到了我们开发部门。最后,BOSS 要求他们学会自己从数据库获取数据进行分析,而我们可以提供支持。

事情虽然已经过去,但是我对此却有一些思考。我们是一家技术公司,岗位包括设计、开发、测试以及产品和运营,但主要由技术人员组成。虽然不是所有人都需要整天写代码,但处理和分析数据是不同岗位都需要的基本技能,因此我们都可以算作广义上的程序员。

我们都知道,数据库是目前企业存储数据的主要方式。当前主流的数据库包括 Oracle、MySQL、SQL Server 等。

尽管各种数据库有所不同,但是访问和操作数据库的 SQL 却是大家通用的语言。于是乎,以下工作岗位都不可避免需要用到 SQL 语句的数据处理功能:

  • 数据分析师:显然这是一群依靠分析数据为生的人,与数据库打交道是必不可少的,SQL 是他们必备技能之一。
  • 数据科学家:与数据分析师一样,数据科学家的日常工作也离不开数据的处理,不可避免需要使用 SQL。
  • 数据库开发工程师:这个职位的主要任务就是写 SQL 代码,实现业务逻辑。
  • 数据库管理员:也就是 DBA,主要职责是管理和维护数据库,除了会写 SQL,还需要负责审核开发人员编写的 SQL 代码。
  • 后端工程师:后端开发必然需要涉及数据的处理,需要通过 SQL 与数据库进行交互。
  • 全栈工程师:既然是全栈,自然包括后端数据的处理。
  • 移动开发工程师:作为一名移动开发工程师,一定对 SQLite 数据库不会陌生,它是在移动设备中普遍存在的嵌入式数据库。
  • 产品经理:产品经理需要了解产品的情况,而数据是最好的说明方式,了解 SQL 非常有利于对产品的把握。

在 Stack Overflow 发布的 2019 年最受欢迎的编程语言中,SQL 排在了第 3 名超过一半的开发者在工作中需要使用 SQL,这就是 SQL 语句的普遍适用性
普遍适用性的好处就是,当你想要调换岗位或者工作时,会用 SQL 将成为你的资本;反过来说,如果不会 SQL,你将可能处在被动的位置上。不过不用担心,因为 SQL 相当简单易学。 

著名的技术问答网站 Stack Overflow 发布的 2019 年度开发者调查报告(猜猜他们的结果数据是用什么语言统计出来的?)

SQL 在设计之初就考虑了非技术人员的使用需求。SQL 语句全是由简单的英语单词组成,我们只需要说明自己想要的结果,将具体的实现交给数据库。可以说,SQL 是一种非常人性化的编程语言。

为了给大家提供一个系统化学习 SQL 和交流心得的平台,我在 GitChat 推出了技术专栏《SQL 从入门到精通》。

扫码了解《SQL 从入门到精通》专栏详情

希望大家通过本专栏的学习,能够掌握各种 SQL 技能以及背后的设计思想,在工作中成长为一道重要的主菜而不是可有可无的咸菜。
专栏内容
本专栏主要讨论 SQL 编程技术和思想,分为四个部分:基础篇、进阶篇、开发篇以及扩展篇。 
第一部分:基础篇。首先介绍数据库领域的最新发展,回顾数据库和 SQL 的核心概念;然后讨论如何使用 SELECT 语句查询数据,过滤数据、对结果进行排序、实现排行榜与分页效果;同时还会介绍常见的 SQL 函数、CASE 表达式以及数据的分组汇总;最后是一个分析世界银行全球 GDP 数据的实战案例。
第二部分:进阶篇。主要包括 SQL 数据分析的一些高级功能:空值的问题、多表连接查询、子查询、集合运算、通用表表达式与递归查询、高级分组与多维度交叉分析、窗口函数与高级报表以及基于行模式识别的数据流分析等。

第三部分:开发篇。讲述数据库设计与开发过程中涉及到的一些实用知识。包括如何设计规范化的数据库、如何管理数据库对象、如何对数据进行增删改、数据库事务的概念、索引的原理;同时还会介绍视图的概念、如何使用存储过程实现业务逻辑以及如何利用触发器实现用户操作的审计。

第四部分:扩展篇。我们将分析 SQL 语句的执行计划与查询语句的优化、使用 SQL 处理 JSON 数据、在 Python 和 Java 中执行 SQL 语句,并介绍动态语句和 SQL 注入攻击的预防。在专栏的最后,我们将探讨一下 SQL 编程中的道与术。

如果是初学者,建议按照顺序阅读;如果你已经具有一定的 SQL 基础,也可以针对感兴趣的部分单独学习。

专栏亮点

  • 零基础学习:通过简单易懂的示意图和案例分析,透彻讲解每个 SQL 知识点;
  • 内容全面覆盖:从基础查询到高级分析,从数据库设计到查询优化,全面介绍 SQL 必备技巧;
  • 基于最新标准:紧跟产业发展的最新趋势,解锁最前沿的 SQL 技能;
  • 4 种主流数据库的语法实现:提供并解读 Oracle、MySQL、SQL Server 以及 PostgreSQL 实现代码。
希望通过本专栏的学习,大家能够掌握各种 SQL 技能以及背后的设计思想,在工作中成为一道重要的主菜,而不是可有可无的咸菜。
最后送给大家一句话:有的人 25 岁就已经失业了,只是 35 岁才被辞退!

专栏作者:董旭阳

数据架构师,毕业于北京航空航天大学,拥有十余年数据库管理与开发经验。目前在一家全球性的博彩企业负责数据库架构设计和开发工作。

擅长各种数据库管理与 SQL 开发,包括 Oracle、MySQL、PostgreSQL 等,拥有 Oracle OCP 证书和 Redhat RHCE 证书。

点击阅读原文,了解 SQL 专栏

还有不会用 SQL 的程序员吗?相关推荐

  1. 因为一条SQL,程序员差点被祭天......

    来源:鄙人薛某  作者:很懒的程序员 上周四午休时分,我正在工位上小憩,睡梦中仿佛看到了自己拿着李白在荣耀峡谷里大杀四方的情景,就在我刚拿完五杀准备带领队友推对面水晶的时候,一句慌乱急促的" ...

  2. 不会 SQL 的程序员有多难?可能工作都找不到!

    今天,CSDN 要向你推荐一门适合所有程序员学习的课程:MySQL从入门到精通实战. 直接点:就是带你快速掌握程序员必备的MySQL. 根据<2019-2020年中国开发者调查报告>显示, ...

  3. sql -高级程序员必修课

    --创建表 create table T_STUDENT(sno NUMBER not null,  sname VARCHAR2(30),  sdree VARCHAR2(50),  sage  N ...

  4. 程序员必修课--sql思维举重训练

    写sql是程序员基本功课,找工作面试一般必有sql题,实际工作中对sql的需求更是千变万化,所以掌握好sql对于一个程序员来说是件非常重要的事情.本文通过一个简单易懂的关系(学生/课程/成绩关系)尽量 ...

  5. 高级程序员必修课--sql思维举重训练

    出处:http://blog.csdn.net/lk_blog/article/details/7585540 写sql是程序员基本功课,找工作面试一般必有sql题,实际工作中对sql的需求更是千变万 ...

  6. 高级程序员必修课--sql思维举重训练 .

    写sql是程序员基本功课,找工作面试一般必有sql题,实际工作中对sql的需求更是千变万化,所以掌握好sql对于一个程序 员来说是件非常重要的事情.本文通过一个简单易懂的关系(学生/课程/成绩关系)尽 ...

  7. 程序员必修课-sql语句

    sql是硬伤,以下这篇文章于我真是饕餮大餐,享受之余转来分享~~ 写sql是程序员基本功课,找工作面试一般必有sql题,实际工作中对sql的需求更是千变万化,所以掌握好sql对于一个程序员来说是件非常 ...

  8. java的xml面试题_Java程序员的10个XML面试问答

    java的xml面试题 XML面试问题在各种编程工作面试中非常受欢迎,包括针对Web开发人员的Java面试 . XML是一项成熟的技术,通常用作从一个平台传输数据的标准. XML面试问题包含来自各种X ...

  9. Java程序员的10个XML面试问答

    XML面试问题在各种编程工作面试中非常受欢迎,包括针对Web开发人员的Java面试 . XML是一项成熟的技术,通常用作从一个平台传输数据的标准. XML面试问题包含来自各种XML技术的问题,例如XS ...

最新文章

  1. PacificA 一致性协议解读
  2. oracle 服务器硬盘满了,【案例】Oracle服务器diag进程占据了12g的磁盘空间分析解决办法...
  3. 学python推荐书籍-零基础学python推荐几本python学习的书籍
  4. CSS3实战开发:使用CSS3实现photoshop的过滤效果
  5. WebGL on iOS8 最终等到了这一天
  6. FluentAspects -- 基于 Fluent API 的 Aop
  7. linux ptrace 内核源码分析,linux 3.5.4 ptrace源码分析分析(系列一)
  8. IntelliJ IDEA 学习笔记
  9. mysql数据库之运行时其他报错
  10. css3直线运动_CSS3中如何使元素曲线运动
  11. mysql中的函数与存储过程
  12. 网络编程入门(代码很详细)
  13. linux软件安装与卸载
  14. 揭开Java上传下载功能的神秘面纱
  15. ubuntu python3.5安装_ubuntu12.04安装python3.5及pip3和setuptools
  16. 电脑做照片视频的软件用哪个?3步制作高清照片视频,超多酷炫转场效果
  17. 【JMS】JMS支持的模式讲解
  18. 添加VBA控件按钮及操作提示框
  19. 基于Java的师生交流系统
  20. 热敏电阻和温度转换公式和程序

热门文章

  1. 列表显示新闻等信息,添加新消息图标
  2. IE、firefox下怎样获得自定义属性的值
  3. Linux下让Eclipse支持Python
  4. 关于如何解决特定场景下WPF4.0中“XamlWriter.Save序列化限制”问题的一种思路
  5. 大话设计模式读书笔记10----外观模式(Facade)
  6. python如何实时查询oracle_python针对Oracle常见查询操作实例分析
  7. Web ,Servlet,jsp技术
  8. keyshot环境素材文件_超赞|15个不翻墙免费可商用矢量素材下载网站推荐
  9. 机器学习hierarchical clustering_材料学+AI:非监督学习预测新型固态锂离子导体材料...
  10. lua笔记1 基础概念