產(chǎn)品經(jīng)理學(xué)SQL(一)一個小時上手SQL

14 評論 40109 瀏覽 332 收藏 7 分鐘

在沒有實習(xí)練手機會的情況下,如何在短時間快速上手SQL對于在校學(xué)生或者非技術(shù)人員都是相當(dāng)重要的。本文將介紹SQL是什么、如何快速入手以及后續(xù)學(xué)習(xí),enjoy~

前言

寫這篇文章之前,我距離第一次使用SQL也不到一年。

嚴格來說:SQL并不是一門編程語言,只是一個取數(shù)工具,與它的原意(結(jié)構(gòu)化查詢語言)比較貼切。和很多初學(xué)者一樣,我學(xué)習(xí)SQL最大的門檻并非這門語言本身的難易,而是缺乏一個科學(xué)有效的學(xué)習(xí)路徑。

我嘗試過看書(《Head First? SQL》,《SQL必知必會》等系統(tǒng)性的書籍),也在一個月內(nèi)準(zhǔn)備并通過了數(shù)據(jù)庫二級、三級的計算機等級考試,更看過形形色色的SQL題目。

然而這些都不能讓我通過美團外賣部門商業(yè)分析師的二面SQL技術(shù)面,后來我在其他公司實習(xí)中每天都需要寫大量的SQL,技術(shù)幾乎瞬間就提上去了。在沒有實習(xí)練手機會的情況下,如何在短時間快速上手SQL對于在校學(xué)生或者非技術(shù)人員都是相當(dāng)重要的。

一、學(xué)會SQL,你能做什么

1. 通過R或者Excel調(diào)用SQL,從而高效處理數(shù)據(jù)

除了數(shù)據(jù)小哥,產(chǎn)品經(jīng)理應(yīng)該是與業(yè)務(wù)數(shù)據(jù)打交道最多的人了。各種數(shù)據(jù)透視表、Vlookup和可視化想必難不倒產(chǎn)品經(jīng)理,但是如何從多張表執(zhí)行繁雜的“連接”操作和“分組”后“選擇”需要的字段,可能在excel里面是復(fù)雜的操作,但是SQL只需要一句查詢。

2. 減少和技術(shù)人員的溝通壁壘

技多不壓身,學(xué)會SQL也能保證自己的競爭力,畢竟我實習(xí)的兩個公司產(chǎn)品小姐姐都懂一點SQL,和數(shù)據(jù)小哥溝通也能減少溝通壁壘。相信很多產(chǎn)品經(jīng)理都有和數(shù)據(jù)小哥提需求的經(jīng)歷,經(jīng)常由于不懂SQL跪舔技術(shù)小哥,而技術(shù)小哥完全掌握定DeadLine的主動權(quán),畢竟你也不知道需要多久。

3. 為轉(zhuǎn)型技術(shù)產(chǎn)品經(jīng)理作儲備

二十一世紀(jì)是人工智能高速發(fā)展的世紀(jì),作為互聯(lián)網(wǎng)的產(chǎn)品經(jīng)理,機器學(xué)習(xí)也是必須了解的一塊。機器學(xué)習(xí)繞不開的就是SQL,一切機器學(xué)習(xí)都需要大量的數(shù)據(jù),而大部分數(shù)據(jù)的來源都是公司的數(shù)據(jù)倉庫,SQL語言能幫你理解機器學(xué)習(xí)的指標(biāo)體系構(gòu)建和特征提取。

二、一個小時上手SQL

1. 通過一個例子逐步理解SQL語法(單表查詢)

學(xué)生表student結(jié)構(gòu):

先看一個查詢例子:查詢表中所有學(xué)號小于8的男學(xué)生的學(xué)號和姓名;

  • select
  • sid,sname? ? ? ? ? ? ? ? ? ? ? ? ? ? ?##需要查詢出來的字段
  • from student? ? ? ? ? ? ? ? ? ? ? ? ? ? ##從哪張表中取數(shù)
  • where ssex=’男’ and sid<8? ? ? ?##設(shè)置查詢的條件,兩個條件用and(和)/or(或)連接

暫時我們沒有對字段做處理,如果你需要對選擇出來的結(jié)果進行處理,需要使用函數(shù)和order by,再看一個例子:查詢每個男性學(xué)生的學(xué)號、姓名和年齡,并按照學(xué)號降序排列。

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

其他常用的函數(shù)和where條件:查詢學(xué)號非空,姓”張”的學(xué)生,按照sid升序并取前三條。

  • select
  • sid,sname
  • from student
  • where sname like ‘張%’? ? ? ? ? ? ? ? ? ##通過like和通配符%進行模糊匹配
  • and sid is not null? ? ? ? ? ? ? ? ? ? ? ? ? ##學(xué)號非空
  • order by sid
  • limit 3? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ##只取前三條

2. 多表查詢

學(xué)生表student:

成績表sc:

通過join連接兩張表:查詢每個趙雷每門課的成績。

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

三、后續(xù)學(xué)習(xí)

1. 善于使用百度和詢問技術(shù)小哥

其實理解函數(shù)的用途之后并不用短時間內(nèi)掌握全部的函數(shù),比方說你覺得最后導(dǎo)出來的結(jié)果小數(shù)位過多,想要減少小數(shù)位。直接搜百度就可以找到對應(yīng)的函數(shù)round。你想知道怎么求日期類型的年份、月份和周數(shù)也是可以通過百度找到對應(yīng)的日期函數(shù)的。

2. 多實踐

只是掌握了SQL的語法然而不經(jīng)常使用的話很快就會荒廢的,所以這篇文章應(yīng)該面向有意進入互聯(lián)網(wǎng)工作的在校學(xué)生或者想掌握SQL處理數(shù)據(jù)和溝通需求的產(chǎn)品經(jīng)理。

3. 刷題

刷題其實對于入門之后還是有必要的,但是刷一套完整的題目要好過刷多套題目。我手頭上正好有一套互聯(lián)網(wǎng)經(jīng)典的面試題,包括單表查詢和多表查詢等基本上大部分實務(wù)中用到的SQL邏輯,整理一下后會附上鏈接。

 

本文由 @Tomocat 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自 Unsplash,基于CC0協(xié)議。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 可以去??途W(wǎng)刷題

    來自北京 回復(fù)
    1. hhhh看到這條我笑出了聲

      來自廣東 回復(fù)
    2. 牛??!哈哈哈哈哈哈

      來自北京 回復(fù)
  2. 這個是MySQL還是SQL Server哇?感覺有的語句好相似,請問po主推薦新手用哪個呢

    回復(fù)
    1. 主要是現(xiàn)在出于成本和效率,很多互聯(lián)網(wǎng)公司用的都是分布式計算的hive,所以推薦用hive

      回復(fù)
  3. 第二篇SQL教程已經(jīng)提交審核了,估計這兩天內(nèi)會發(fā)布出來,敬請期待~

    來自北京 回復(fù)
  4. 第二次看到你,同樣的話 ??

    來自廣東 回復(fù)
  5. 感謝,小白覺得看起來很OK

    來自江蘇 回復(fù)
    1. ???!(??????)??加油

      回復(fù)
    2. 00

      來自浙江 回復(fù)
  6. 我也是初步學(xué)習(xí),坐等連接。

    來自上海 回復(fù)
    1. 第二篇預(yù)告:系統(tǒng)入門sql,幫助解決產(chǎn)品經(jīng)理80%的sql查詢。
      具體是條件子句,分組查詢,排序,連表查詢和子查詢。

      回復(fù)
  7. 坐等啦。。哈哈哈

    來自廣東 回復(fù)
    1. 近期會準(zhǔn)備第二篇,會有一些sql栗子幫助讀者實現(xiàn)業(yè)務(wù)問題的sql入門的~

      回復(fù)