轉(zhuǎn)行數(shù)據(jù)分析師如何開始學(xué)習(xí)SQL | 工科生三個月轉(zhuǎn)行數(shù)據(jù)分析學(xué)習(xí)心得

該篇文章包含以下幾個部分:

1.什么是SQL及相關(guān)概念

2.數(shù)據(jù)分析師學(xué)習(xí)SQL的哪些部分

3.學(xué)習(xí)資源推薦

4.練習(xí)網(wǎng)站推薦


1.什么是SQL及相關(guān)概念

在了解SQL之前,先思考一個問題:當(dāng)我們在瀏覽網(wǎng)頁的時候,頁面中的信息,或者說“數(shù)據(jù)”,來自于哪里?

答案就是頁面中的數(shù)據(jù)來自于公司的數(shù)據(jù)庫。

對于用戶來說,其看到的是網(wǎng)頁中顯示的信息,比如某品牌某型號手機(jī)的價格是3999元,頁面的感官非常具有設(shè)計感,不同的顏色不同的字體以及不同的手機(jī)圖片,讓人忍不住剁手的欲望。

某網(wǎng)購平臺頁面顯示各種手機(jī)的信息

而對于數(shù)據(jù)分析師而言,從公司的數(shù)據(jù)庫中提取的數(shù)據(jù)的展現(xiàn)形式,是一張張簡簡單單的記錄了所有信息的表格,類似于excel之中的表格。網(wǎng)頁采用了這些數(shù)據(jù),套用上一個設(shè)計好的模板,最終顯示給用戶。

數(shù)據(jù)分析師看到的各個手機(jī)信息的形式

數(shù)據(jù)庫,Database,是保存著很多數(shù)據(jù)的一個容器,那么作為數(shù)據(jù)分析師,需要學(xué)習(xí)的是如
何從數(shù)據(jù)庫中提取出我們所需要的數(shù)據(jù),為了做到這一點,我們使用一種語言,叫做Structured Query Language,即SQL,中文是結(jié)構(gòu)化查詢語言。

為了能夠方便的使用SQL這種語言,市面上現(xiàn)在存在著很多軟件,讓你可以通過輸入SQL訪問數(shù)據(jù)庫,這樣的軟件,叫做Database Management System,即DBMS,中文是數(shù)據(jù)庫管理系統(tǒng)。

DBMS主要有兩個部分組成,即客戶機(jī)和服務(wù)器,用戶可以通過客戶機(jī)提出對數(shù)據(jù)進(jìn)行動作的請求,該請求由客戶機(jī)發(fā)送給服務(wù)器,服務(wù)器接著運行請求,滿足用戶的需求。

DBMS的組成部分

目前的DBMS可以分為兩類,分別是關(guān)系型DBMS(Relational DBMS,RDBMS)和非關(guān)系型DBMS。

關(guān)系型DBMS將數(shù)據(jù)保存在不同的表中,表與表之間建立有緊密的聯(lián)系,可以通過表的連接等方式獲得請求的數(shù)據(jù)。

非關(guān)系型DBMS則是用鍵值對的形式存儲數(shù)據(jù),即每一個值對應(yīng)一個編號(鍵),可以通過鍵找到對應(yīng)的值。

關(guān)系型DBMS和非關(guān)系型DBMS

對于關(guān)系型DBMS來說,SQL是一種通用的語言,也就是所有關(guān)系型DBMS中基礎(chǔ)的SQL都是合法的。但對于非關(guān)系型DBMS而言,其語言不是互通的。

根據(jù)SQL的用途可以將SQL分為五個大類

Data Definition Language(DDL):數(shù)據(jù)定義語言,用來定義數(shù)據(jù)庫對象。比如創(chuàng)建、修改、刪除數(shù)據(jù)庫、表、列等。注意,這里的操作僅針對庫、表和列本身,而不針對其中存儲的數(shù)據(jù)。

Data Manipulation Language(DML):數(shù)據(jù)操作語言,用來定義數(shù)據(jù)庫數(shù)據(jù)。比如插入、修改、刪除數(shù)據(jù)。

Data Control Language(DCL):數(shù)據(jù)控制語言,用來定義訪問權(quán)限和安全級別。比如授予、收回某一用戶對數(shù)據(jù)庫的查詢、修改、更新等權(quán)限。

Data Query Language(DQL):數(shù)據(jù)查詢語言,用來查詢數(shù)據(jù)。

Transaction Control Language(TCL):事務(wù)控制語言,用來對事務(wù)進(jìn)行操作的語言。所謂事務(wù),簡單來說就是一組SQL語句,這樣一組語句不可分割,組成一個完整的事務(wù)。

2. 數(shù)據(jù)分析師應(yīng)該學(xué)習(xí)SQL的哪些部分

學(xué)習(xí)不僅需要持續(xù)的努力,還是一種可以練習(xí)的技巧,有針對性的學(xué)習(xí)可以在最短的時間內(nèi)達(dá)到自己定下的目標(biāo),這也是我一直在踐行,以及一直在改進(jìn)的學(xué)習(xí)方式。

那么對于想要轉(zhuǎn)行數(shù)據(jù)分析崗位的人來說,如何能夠做到快速精準(zhǔn)地學(xué)習(xí)SQL呢?

首先,雖然非關(guān)系型DBMS可能在特定的情況下性能更好,關(guān)系型DBMS仍然在各個行業(yè)中被廣泛使用,而基礎(chǔ)的SQL可以直接套用到所有關(guān)系型DBMS之中,因此一開始學(xué)習(xí)關(guān)系型DBMS通用的SQL的性價比更高。

當(dāng)然,如果希望進(jìn)入一個明確的行業(yè)或是公司,建議還是先對該行業(yè)做一個比較全面的了解,至少需要知道他們是否使用SQL,或是否有一個常用的非關(guān)系型DBMS,并針對性的學(xué)習(xí)。

第二,數(shù)據(jù)分析師的主要工作是找到數(shù)據(jù)中潛藏的商業(yè)價值,也就是說并不需要對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行修改,更不會涉及到增加和刪除的操作,因此主要的學(xué)習(xí)方向是SQL的數(shù)據(jù)查詢語言(DQL)。

另外,對于初學(xué)者而言,也可以了解一些數(shù)據(jù)定義語言(DDL)和數(shù)據(jù)操作語言(DML),這樣可以在自己的電腦上建立一個簡單的數(shù)據(jù)庫,并隨時練習(xí)DQL。

3. 學(xué)習(xí)資源推薦

SQL相對來說是一門比較簡單的語言,上手還是比較快的,網(wǎng)絡(luò)上的視頻教學(xué)資源還是很多的,這里就推薦一個我當(dāng)時用來學(xué)習(xí)的SQL資源,從第243集開始看到第326集基本上就能對SQL的DQL有一個基本了解了。

https://www.bilibili.com/video/BV12b411K7Zu?from=search&seid=4481585889569838463www.bilibili.com/video/BV12b411K7Zu?from=search&seid=4481585889569838463

當(dāng)然,真正在工作中,因為不同的公司使用不同的DBMS,而不同的DBMS除了通用的SQL語言外,還會有一些差異化的語言,比如我之前實習(xí)的公司用的是Impala,而其它部門則用的是Oracle,因此有時候還需要將一些函數(shù)和語法進(jìn)行轉(zhuǎn)換,才能在Impala上運行。

所以如果有目標(biāo)公司,最好是能夠調(diào)查一下他們具體用的DBMS是什么,再進(jìn)行更加針對性的學(xué)習(xí)。



4. 練習(xí)網(wǎng)站推薦

這里就推薦一個我最開始學(xué)習(xí)時用的練習(xí)網(wǎng)站:SQLZoo

SQLZOOigs.sqlzoo.net/wiki/SQL_Tutorial

這個網(wǎng)站從最基本的select到j(luò)oin都有習(xí)題,全部做完就算入門了。

不過真正工作中的SQL語句比SQLZoo中的練習(xí)要復(fù)雜得多,因此不要把SQLZoo做完就結(jié)束了,因為面試中很可能會讓你當(dāng)場做幾道SQL的題,這時熟練程度就極其重要,面試官一眼就能看得出來你是否真的熟悉SQL語句。

當(dāng)時我做SQLZoo的答案已經(jīng)記錄下來,當(dāng)然題目可能會有不同的解法,盡量自己做對,實在做不出來再看答案,研究答案中的邏輯。



SQLZoo題目及答案:

上半部分:
舟曉南:SQLZoo題目及答案上半部分 | 數(shù)據(jù)分析學(xué)習(xí)歷程全記錄
包含
select basics;select from world;select from nobel;select in select;sum and count
的題目和答案

下半部分:
舟曉南:SQLZoo題目及答案下半部分 | 數(shù)據(jù)分析學(xué)習(xí)歷程全記錄
包含
sqlzoo join;more join;use NULL;self join
的題目和答案


同名公眾號,知乎:舟曉南

對機(jī)器學(xué)習(xí),深度學(xué)習(xí),python感興趣,歡迎關(guān)注,學(xué)習(xí)筆記已原創(chuàng)70+篇,持續(xù)更新中~ ^_^

學(xué)習(xí)筆記:數(shù)據(jù)分析,機(jī)器學(xué)習(xí),深度學(xué)習(xí)

專欄文章舉例:

【機(jī)器學(xué)習(xí)】關(guān)于邏輯斯蒂回歸,看這一篇就夠了!解答絕大部分關(guān)于邏輯斯蒂回歸的常見問題,以及代碼實現(xiàn) - 知乎 (zhihu.com)

關(guān)于 python 二三事

專欄文章舉例:

記錄一下工作中用到的少有人知的pandas騷操作,提升工作效率 - 知乎 (zhihu.com)

關(guān)于切片時不考慮最后一個元素以及為什么從0開始計數(shù)的問題 - 知乎 (zhihu.com)

關(guān)于轉(zhuǎn)行:

舟曉南:如何轉(zhuǎn)行和學(xué)習(xí)數(shù)據(jù)分析 | 工科生三個月成功轉(zhuǎn)行數(shù)據(jù)分析心得淺談

舟曉南:求職數(shù)據(jù)分析師崗位,簡歷應(yīng)該如何寫?|工科生三個月成功轉(zhuǎn)行數(shù)據(jù)分析心得淺談

我建了個數(shù)據(jù)分析,機(jī)器學(xué)習(xí),深度學(xué)習(xí)的群~ 需要學(xué)習(xí)資料,想要加入社群均可私信~

在群里我會不定期分享各種數(shù)據(jù)分析相關(guān)資源,技能學(xué)習(xí)技巧和經(jīng)驗等等~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容