致產(chǎn)品運(yùn)營人:這項(xiàng)增值技能最值錢!
產(chǎn)品運(yùn)營er,你是不是經(jīng)常因?yàn)椴樵兒头治霾煌S度的數(shù)據(jù)不便而煩惱?其實(shí)一些簡單的查詢需求,我們是可以通過SQL來做到的。所以,產(chǎn)品運(yùn)營er還是學(xué)點(diǎn)SQL語句寫法吧,這樣就不用一直去麻煩開發(fā)大哥了。
在產(chǎn)品運(yùn)營人員的日常工作中,經(jīng)常需要查詢和分析不同維度的數(shù)據(jù),而現(xiàn)有的數(shù)據(jù)分析平臺未必能滿足所有的查詢需求,這個時候難免要求助開發(fā)大哥。鮮花、贊、抱拳等成為QQ常用表情不說,查詢需求多了,還有可能會耽誤現(xiàn)有功能的開發(fā)。
但其實(shí),一些簡單的查詢需求,我們完全可以自己用SQL做到。學(xué)會了它,不但可以“想什么時候查,就什么時候查”、“想查什么,就查什么”,還可以在CV上加上一句狂拽酷炫叼的“掌握基本的SQL語句,用于日常的業(yè)務(wù)數(shù)據(jù)查詢及分析”。
而對于學(xué)習(xí)任何一樣?xùn)|西,實(shí)操都是最好的方式,這篇文章,就是手把手教大家,在實(shí)際的數(shù)據(jù)庫中,查詢工作中需要用到的數(shù)據(jù)。
相信大家通過不到1個小時的時間學(xué)習(xí),就能掌握最基礎(chǔ)的SQL語句寫法。
在開始之前,先讓我們科普幾個名詞。
什么是MySQL?和SQL是不同的東西嗎?
我們經(jīng)常會聽開發(fā)大哥說,“需要用MySQL查詢”,有時又說,“寫個SQL查詢語句”,那么這兩個是同一個東西嗎?
首先,我們需要科普三個名詞:
SQL:指一種結(jié)構(gòu)化查詢語言,用于訪問數(shù)據(jù)庫。
SQL Server:是Microsoft 公司推出的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。
MySQL:是瑞典 MySQL AB 公司推出的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(目前屬于 Oracle 旗下公司。),是開源的。
那么,可以得知SQL是一種語言,而SQL Server和MySQL都是使用SQL語言的數(shù)據(jù)庫管理系統(tǒng)。其中MySQL是開源的,因此被更多程序員采用。
我們可以用SQL做什么?
——四個字,增刪查改。
而對于產(chǎn)品運(yùn)營來說,最主要的就是查。
(千萬不要亂增刪改,否則從刪庫到跑路,說的就是你的故事了。)
掌握了以上基本知識,我們就可以不再對著一堆名詞眼花繚亂了。
下面,就到實(shí)際操作的步驟了,讓我們一起來吧。
一、連接數(shù)據(jù)庫、了解表結(jié)構(gòu)
(1)下載Navicat軟件,作為開發(fā)大哥常用的查詢軟件,它體積小、操作易上手,網(wǎng)上有免注冊的版本,很容易搜到。
(2)打開軟件,點(diǎn)擊創(chuàng)建新的MySQL連接,問開發(fā)大哥要到我們業(yè)務(wù)數(shù)據(jù)庫的配置方式,包括用戶名、賬號、密碼等。
(3)成功連接,查看看里面的表和數(shù)據(jù),這塊我們主要關(guān)注點(diǎn)有:
點(diǎn)開“表”一列,先粗略看看總有多少個表,內(nèi)容大概是什么,對于有狀態(tài)碼的字段,可以問開發(fā)大哥要一份數(shù)據(jù)字典來對照理解。
判斷常用的表是哪些,一般面向產(chǎn)品運(yùn)營人員的管理后臺都具備數(shù)據(jù)查詢功能,可以以此為依據(jù)——如支付系統(tǒng)的后臺,肯定有訂單查詢的功能,那么你可以試著去找找數(shù)據(jù)庫里的訂單表對應(yīng)的是哪一個,和管理后臺相比,多了哪些字段。
二、實(shí)操階段
這時我們已經(jīng)成功的連上了數(shù)據(jù)庫,并對表結(jié)構(gòu)有一定了解,需要做的是根據(jù)日常的產(chǎn)品運(yùn)營需求來查詢和統(tǒng)計(jì)數(shù)據(jù)了。
步驟如下:
1. 了解基本的查詢語句
前面提到,作為產(chǎn)品運(yùn)營人員,只需要使用它來“查”即可,而“查”最常用到的就是以下幾個單詞的組合:
SELECT : 用于從具體的表中選取數(shù)據(jù),如:
- SELECT 列名稱 FROM 表名稱
- SELECT * FROM 表名稱
FROM:同上,與SELECT搭配使用。
WHERE:用于增加查詢的限定條件,如:SELECT * FROM 表名稱 WHERE 查詢條件
AND 、OR:當(dāng)查詢有多個條件時,如需滿足其中的一個或多個條件,就使用AND或OR,如想查詢4月廣東省所有成功訂單,那么查詢內(nèi)容就包括廣東省和訂單狀態(tài)為成功這兩個限定條件:SELECT * FROM 訂單表 WHERE 廣東省 AND 訂單狀態(tài)=成功
另外,我們還需要了解幾個比較符號的基礎(chǔ)用法:=(等于),>=(大于等于),<=(小于等于),!=(不等于),>(大于),<(小于)。
2. 整理日??赡苡玫降臄?shù)據(jù)查詢需求
- 如:
- 本月新增了訂單量及訂單金額總數(shù)?
- 本月新增了多少付費(fèi)用戶?
- 哪個省份的訂單量最多?
3. 開始寫查詢語句
首先,我們需要確認(rèn)在哪一個數(shù)據(jù)表來查詢數(shù)據(jù),以第一條為例,本月新增訂單量及訂單金額總數(shù),就需要我們從訂單表來查詢。
這個需求,翻譯成查詢語句就是:
查找(SELECT) 訂購條數(shù),訂單金額 從(FROM) 訂單表 條件是(WHERE) 本月創(chuàng)建 和(AND)訂單狀態(tài)=成功 和(AND) 訂購類型=新增
黑體部分就是需要我們填寫的:
- 訂購條數(shù):所有查詢條數(shù)的基本語句都是:COUNT(1)
- 訂單金額:使用SUM函數(shù)表示總數(shù),訂單表中金額一項(xiàng)為amount,因此是:SUM(amount)
- 訂單表:訂單表的英文名稱:pay
- 本月創(chuàng)建:訂單表中創(chuàng)建時間一項(xiàng)為:create_time,時間是4月1日之后,那就是:create_time>’2019-04-01 00:00:00′
- 訂單狀態(tài)=成功:訂單表中訂單狀態(tài)一項(xiàng)為:status,并在對應(yīng)數(shù)據(jù)字典查看狀態(tài)的數(shù)字標(biāo)識,如10000代表成功,則翻譯過來就是:status=10000
- 訂購類型=新增:訂單表中訂購類型一項(xiàng)為:order_type,新增對應(yīng)的數(shù)字標(biāo)識是:0,翻譯過來是order_type=0
因此,這句話的查詢語句就是:
SELECT COUNT(1) ,SUM(amount) FROM pay WHERE create_time>’20190401000000′ AND status=10000 和(AND) order_type=0
4. 運(yùn)行查詢語句,大功告成
好了,我們接下來要做的就是驗(yàn)收成果,在Navicat中選擇“新建查詢”,將我們寫好的語句復(fù)制進(jìn)去,就可以得到運(yùn)行結(jié)果了!是不是很簡單呢~
后記
上面就是使用SQL寫的最簡單的查詢語句,我們也可以在在菜鳥教程、w3school等網(wǎng)站上查看更全面的教程。
另外,在實(shí)際環(huán)境中勤加練習(xí),是學(xué)習(xí)一門技能最快的方法。學(xué)會了之后,當(dāng)我們再有查詢需求的時候,就可以不必麻煩開發(fā)大哥,而是嘗試自己解決問題了。
兩個字:棒呆!
本文由@Cu已掉線 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自Unsplash, 基于CC0協(xié)議。
可以說很詳細(xì)了
我桌面還有一本數(shù)據(jù)庫基礎(chǔ)。。服務(wù)端程序員送的,然鵝我還沒學(xué) ?
先從最簡單的開始,書太厚了容易打擊人 ??
有木有正在學(xué)習(xí)my sql 的小白 ??
一起,是產(chǎn)品新手