產(chǎn)品經(jīng)理學(xué)SQL(一)一個小時上手SQL
在沒有實習(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é)議。
可以去??途W(wǎng)刷題
hhhh看到這條我笑出了聲
牛??!哈哈哈哈哈哈
這個是MySQL還是SQL Server哇?感覺有的語句好相似,請問po主推薦新手用哪個呢
主要是現(xiàn)在出于成本和效率,很多互聯(lián)網(wǎng)公司用的都是分布式計算的hive,所以推薦用hive
第二篇SQL教程已經(jīng)提交審核了,估計這兩天內(nèi)會發(fā)布出來,敬請期待~
第二次看到你,同樣的話 ??
感謝,小白覺得看起來很OK
???!(??????)??加油
00
我也是初步學(xué)習(xí),坐等連接。
第二篇預(yù)告:系統(tǒng)入門sql,幫助解決產(chǎn)品經(jīng)理80%的sql查詢。
具體是條件子句,分組查詢,排序,連表查詢和子查詢。
坐等啦。。哈哈哈
近期會準(zhǔn)備第二篇,會有一些sql栗子幫助讀者實現(xiàn)業(yè)務(wù)問題的sql入門的~