产品经理学SQL(一)一个小时上手SQL

14 评论 37984 浏览 321 收藏 7 分钟

在没有实习练手机会的情况下,如何在短时间快速上手SQL对于在校学生或者非技术人员都是相当重要的。本文将介绍SQL是什么、如何快速入手以及后续学习,enjoy~

前言

写这篇文章之前,我距离第一次使用SQL也不到一年。

严格来说:SQL并不是一门编程语言,只是一个取数工具,与它的原意(结构化查询语言)比较贴切。和很多初学者一样,我学习SQL最大的门槛并非这门语言本身的难易,而是缺乏一个科学有效的学习路径。

我尝试过看书(《Head First  SQL》,《SQL必知必会》等系统性的书籍),也在一个月内准备并通过了数据库二级、三级的计算机等级考试,更看过形形色色的SQL题目。

然而这些都不能让我通过美团外卖部门商业分析师的二面SQL技术面,后来我在其他公司实习中每天都需要写大量的SQL,技术几乎瞬间就提上去了。在没有实习练手机会的情况下,如何在短时间快速上手SQL对于在校学生或者非技术人员都是相当重要的。

一、学会SQL,你能做什么

1. 通过R或者Excel调用SQL,从而高效处理数据

除了数据小哥,产品经理应该是与业务数据打交道最多的人了。各种数据透视表、Vlookup和可视化想必难不倒产品经理,但是如何从多张表执行繁杂的“连接”操作和“分组”后“选择”需要的字段,可能在excel里面是复杂的操作,但是SQL只需要一句查询。

2. 减少和技术人员的沟通壁垒

技多不压身,学会SQL也能保证自己的竞争力,毕竟我实习的两个公司产品小姐姐都懂一点SQL,和数据小哥沟通也能减少沟通壁垒。相信很多产品经理都有和数据小哥提需求的经历,经常由于不懂SQL跪舔技术小哥,而技术小哥完全掌握定DeadLine的主动权,毕竟你也不知道需要多久。

3. 为转型技术产品经理作储备

二十一世纪是人工智能高速发展的世纪,作为互联网的产品经理,机器学习也是必须了解的一块。机器学习绕不开的就是SQL,一切机器学习都需要大量的数据,而大部分数据的来源都是公司的数据仓库,SQL语言能帮你理解机器学习的指标体系构建和特征提取。

二、一个小时上手SQL

1. 通过一个例子逐步理解SQL语法(单表查询)

学生表student结构:

先看一个查询例子:查询表中所有学号小于8的男学生的学号和姓名;

  • select
  • sid,sname                             ##需要查询出来的字段
  • from student                            ##从哪张表中取数
  • where ssex=’男’ and sid<8       ##设置查询的条件,两个条件用and(和)/or(或)连接

暂时我们没有对字段做处理,如果你需要对选择出来的结果进行处理,需要使用函数和order by,再看一个例子:查询每个男性学生的学号、姓名和年龄,并按照学号降序排列。

  • select
  • sid,sname
  • ,year(curdate())-year(sage) as age ##当前年份减去出生年份得到年龄
  • from student
  • where ssex=’男’
  • order by sid desc                              ##order by 按照字段排序,desc 表示降序

其他常用的函数和where条件:查询学号非空,姓”张”的学生,按照sid升序并取前三条。

  • select
  • sid,sname
  • from student
  • where sname like ‘张%’                  ##通过like和通配符%进行模糊匹配
  • and sid is not null                          ##学号非空
  • order by sid
  • limit 3                                            ##只取前三条

2. 多表查询

学生表student:

成绩表sc:

通过join连接两张表:查询每个赵雷每门课的成绩。

  • select
  • sname,cid,score
  • from student
  • left join sc
  • on student.sid=sc.sid
  • where sc.sname=’赵雷’

三、后续学习

1. 善于使用百度和询问技术小哥

其实理解函数的用途之后并不用短时间内掌握全部的函数,比方说你觉得最后导出来的结果小数位过多,想要减少小数位。直接搜百度就可以找到对应的函数round。你想知道怎么求日期类型的年份、月份和周数也是可以通过百度找到对应的日期函数的。

2. 多实践

只是掌握了SQL的语法然而不经常使用的话很快就会荒废的,所以这篇文章应该面向有意进入互联网工作的在校学生或者想掌握SQL处理数据和沟通需求的产品经理。

3. 刷题

刷题其实对于入门之后还是有必要的,但是刷一套完整的题目要好过刷多套题目。我手头上正好有一套互联网经典的面试题,包括单表查询和多表查询等基本上大部分实务中用到的SQL逻辑,整理一下后会附上链接。

 

本文由 @Tomocat 原创发布于人人都是产品经理,未经许可,禁止转载。

题图来自 Unsplash,基于CC0协议。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 可以去牛客网刷题

    来自北京 回复
    1. hhhh看到这条我笑出了声

      来自广东 回复
    2. 牛!!哈哈哈哈哈哈

      来自北京 回复
  2. 这个是MySQL还是SQL Server哇?感觉有的语句好相似,请问po主推荐新手用哪个呢

    回复
    1. 主要是现在出于成本和效率,很多互联网公司用的都是分布式计算的hive,所以推荐用hive

      回复
  3. 第二篇SQL教程已经提交审核了,估计这两天内会发布出来,敬请期待~

    来自北京 回复
  4. 第二次看到你,同样的话 😈

    来自广东 回复
  5. 感谢,小白觉得看起来很OK

    来自江苏 回复
    1. グッ!(๑•̀ㅂ•́)و✧加油

      回复
    2. 00

      来自浙江 回复
  6. 我也是初步学习,坐等连接。

    来自上海 回复
    1. 第二篇预告:系统入门sql,帮助解决产品经理80%的sql查询。
      具体是条件子句,分组查询,排序,连表查询和子查询。

      回复
  7. 坐等啦。。哈哈哈

    来自广东 回复
    1. 近期会准备第二篇,会有一些sql栗子帮助读者实现业务问题的sql入门的~

      回复