如何七周成為數(shù)據(jù)分析師09:寫給新人的數(shù)據(jù)庫指南
本文是《如何七周成為數(shù)據(jù)分析師》的第九篇教程,如果想要了解寫作初衷,可以先行閱讀七周指南。溫馨提示:如果您已經(jīng)熟悉數(shù)據(jù)庫,大可不必再看這篇文章,或只挑選部分。
我們進(jìn)入第四周數(shù)據(jù)庫的內(nèi)容,在數(shù)據(jù)分析師的職業(yè)生涯中,數(shù)據(jù)庫與SQL會是他們性價比最高的技能之一。
數(shù)據(jù)庫是邏輯上的概念,它是一堆互相關(guān)聯(lián)的數(shù)據(jù),放在物理實體上,是一堆寫在磁盤上的文件,文件中有數(shù)據(jù)。這些最基礎(chǔ)的數(shù)據(jù)組成了表(table),我們把它想象成一張Excel的sheet。
數(shù)據(jù)表的抽象概念如上圖。
ID是數(shù)據(jù)庫中重要的概念,叫做唯一標(biāo)識符/主鍵,用來表示數(shù)據(jù)的唯一性。我們把它理解成數(shù)據(jù)的身份證號。我知道身份證,也就知道數(shù)據(jù)在哪里了。
ID不會有現(xiàn)實的業(yè)務(wù)意義,就是一串單純的數(shù)字,每張表只能有一個主鍵。
數(shù)據(jù)庫是表的集合,一個數(shù)據(jù)庫中可以放多張表,我們給每張表命名,表與表之間能互相聯(lián)系。
聯(lián)系就是數(shù)據(jù)能夠?qū)?yīng)匹配,正式名稱叫聯(lián)接,對應(yīng)的操作叫做Join,我們想象成Excel中的vlookup。
上面就是兩張表,用戶和教育背景,看上去能夠使用姓名進(jìn)行匹配,可是這里出現(xiàn)了兩個張三,一個是北京大學(xué),一個是上海大學(xué),究竟哪個張三才能和用戶表的張三對應(yīng)上?都不能。
也許清華大學(xué)還有張三,復(fù)旦大學(xué),交通大學(xué)也有,畢竟全中國姓名相同的人那么多。正確的用法應(yīng)該是使用ID聯(lián)接,而不是姓名。ID是產(chǎn)品、運營和數(shù)據(jù)人員們在工作中接觸最多的內(nèi)容之一,用戶ID文章ID商品ID等,如果大家還不了解,這里需要掌握。
上圖就是正確的用法,用戶表和教育表能夠通過ID聯(lián)接,可能有人疑問,用戶ID為1和6的,還是不能對應(yīng)呀?這個不要緊,因為在數(shù)據(jù)庫中,不是所有的表都能一一對應(yīng),存在部分匹配的可能性,也許那個叫秦路的,他沒讀過書,教育背景表中自然沒有記錄了。
當(dāng)然,數(shù)據(jù)庫的設(shè)計還要更嚴(yán)謹(jǐn),一般每張表都會有主鍵(主鍵不是必須,但是從效率優(yōu)化上肯定會加),這個主鍵也不能是其他表的主鍵,防止產(chǎn)生沖突。
這樣就靠譜了,用戶ID是用戶表的主鍵,教育背景ID是教育背景表的主鍵,我們在教育背景表中加入一個字段叫用戶ID,它是專門用來聯(lián)接用戶表的,它不是主鍵。
是不是有點繞?實際上,并不是所有名字帶ID的都叫主鍵,這一點要搞清楚。
數(shù)據(jù)庫中,表的名字和字段應(yīng)該是英文。如果是主鍵,只要叫id即可,你要關(guān)聯(lián)其他表,則以「表名_id」作為聯(lián)接。
關(guān)聯(lián)后的邏輯如下,這種方式叫全聯(lián)接,匹配不上的都用Null表示,匹配上的我用橙色表示。聯(lián)接是關(guān)系型數(shù)據(jù)庫中的核心概念,是操作的基礎(chǔ),現(xiàn)在迷糊不要緊,多練習(xí)幾次就好了。
如果現(xiàn)在我有一張新的表,需要關(guān)聯(lián)education,聰明的你也一定想到方法了吧。
了解上面的概念,你就知道什么叫關(guān)系型數(shù)據(jù)庫,簡單說,它是由多張能互相聯(lián)接的二維行列表格組成的數(shù)據(jù)庫。
關(guān)系型數(shù)據(jù)庫是基于關(guān)系代數(shù)模型發(fā)展而來。常用的數(shù)據(jù)庫有SQL Server、MySQL、Oracle等,我們后續(xù)學(xué)習(xí)都以MySQL為主。
接下來是安裝MySQL。
我們?nèi)ySQL的官網(wǎng)下載,版本5.6以上即可。
按照教程完成后,我們通過命令行查詢知否成功,Win和Mac的操作不一樣。
我們當(dāng)然不會在這么丑的界面上操作MySQL啦,我們還需要安裝GUI,這是為我們提供操作界面的。
Mac用戶推薦SequealPro,Win用戶推薦WorkBench。后續(xù)我會在SequealPro操作。MySQL的默認(rèn)用戶名和密碼均是root,建議重新設(shè)置一下。
如果大家有疑問,可以去網(wǎng)上搜索相關(guān)教程,不安裝MySQL也是可以的。因為數(shù)據(jù)分析師大多數(shù)情況是用在線數(shù)據(jù)查詢平臺操作,安裝只是為了方便演示。不想要安裝的同學(xué),可以在SQLZoo練習(xí),以后我也會講解。
輸入賬號密碼后進(jìn)入操作界面,數(shù)據(jù)庫我命名為qin。左側(cè)欄是數(shù)據(jù)庫中的Table列表,現(xiàn)在為空。右側(cè)是表相關(guān)的操作和信息。
因為現(xiàn)在沒有數(shù)據(jù),我們加載曾經(jīng)使用過的練習(xí)數(shù)據(jù)。數(shù)據(jù)分析師不需要學(xué)習(xí)如何創(chuàng)建刪除增改表的操作,因為用不到,我只會講解查詢,大家有興趣可以自行了解。
任何MySQL的GUI工具,都能加載CSV,一般叫import。
Encoding選擇Autodetect,其余按默認(rèn)。
接下來需要設(shè)置各字段的數(shù)據(jù)類型,系統(tǒng)會幫我們自動選上,這里不用改動。int代表整數(shù)數(shù)值,varchar代表字符串(中文英文標(biāo)點符號這類),括號里面的數(shù)字是允許存儲字節(jié),這塊也不要深入理解,只要知道常用的字段類型即可。
給表取個名字,載入后,就將CSV成功導(dǎo)入到數(shù)據(jù)庫了,能夠進(jìn)行數(shù)據(jù)查詢的操作。
這張表沒有設(shè)置主鍵,主要是練習(xí),所以跳過了這一步驟。
大家可能會遇到導(dǎo)入的數(shù)據(jù)是亂碼,這是系統(tǒng)編碼之間的差異,是utf8和gbk之間的沖突,網(wǎng)上有相關(guān)解答,搜索關(guān)鍵詞即可。
到這里,大家已經(jīng)成功地在自己電腦上創(chuàng)建了數(shù)據(jù)庫。我們在之前文章已經(jīng)針對練習(xí)數(shù)據(jù)進(jìn)行了Excel操作、BI分析,接下來學(xué)習(xí)SQL??赡苣銈円膊碌搅?,后續(xù)還會有統(tǒng)計學(xué)、Python編程。
下一章,便是講解查詢語言SQL。
相關(guān)閱讀
互聯(lián)網(wǎng)數(shù)據(jù)分析能力的養(yǎng)成,需一份七周的提綱
如何七周成為數(shù)據(jù)分析師01:常見的Excel函數(shù)全部涵蓋在這里了
如何七周成為數(shù)據(jù)分析師02:Excel技巧大揭秘
如何七周成為數(shù)據(jù)分析師03:手把手教你Excel實戰(zhàn)
如何七周成為數(shù)據(jù)分析師:Excel技巧之甘特圖繪制(項目管理)
如何七周成為數(shù)據(jù)分析師:Excel技巧之打造多級菜單
如何七周成為數(shù)據(jù)分析師04:數(shù)據(jù)可視化之經(jīng)典圖表合集
如何七周成為數(shù)據(jù)分析師05:數(shù)據(jù)可視化之打造升職加薪的報表
如何七周成為數(shù)據(jù)分析師06:數(shù)據(jù)可視化之手把手打造BI
如何七周成為數(shù)據(jù)分析師07:快速掌握麥肯錫的分析思維
如何七周成為數(shù)據(jù)分析師08:如何建立數(shù)據(jù)分析的思維框架?
#專欄作家#
秦路,微信公眾號ID:tracykanc,人人都是產(chǎn)品經(jīng)理專欄作家。
本文由 @秦路?原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
請問這篇文章的下一篇是 11嗎 ,怎么找不到10啊
竟然發(fā)現(xiàn)這跟樓主2月份的文章一模一樣 ?? 改改又重新發(fā)了一次。。。
感謝,這一系列花了很多心思
收藏