數據庫指南:一文讓你淺顯易懂地了解數據庫

15 評論 32845 瀏覽 222 收藏 9 分鐘

在數據分析的技能中,數據庫與SQL會是性價比最高的技能之一。

數據庫是邏輯上的概念,它是一堆互相關聯的數據,放在物理實體上,是一堆寫在磁盤上的文件,文件中有數據。這些最基礎的數據組成了表(table),我們把它想象成一張Excel的sheet。

數據表的抽象概念如上圖。

ID是數據庫中重要的概念,叫做唯一標識符/主鍵,用來表示數據的唯一性。我們把它理解成數據的身份證號。我知道身份證,也就知道數據在哪里了。

ID不會有現實的業務意義,就是一串單純的數字,每張表只能有一個主鍵。

數據庫是表的集合,一個數據庫中可以放多張表,我們給每張表命名,表與表之間能互相聯系。

聯系就是數據能夠對應匹配,正式名稱叫聯接,對應的操作叫做Join,我們想象成Excel中的vlookup。

上面就是兩張表,用戶和教育背景,看上去能夠使用姓名進行匹配,可是這里出現了兩個張三,一個是北京大學,一個是上海大學,究竟哪個張三才能和用戶表的張三對應上?都不能。

也許清華大學還有張三,復旦大學,交通大學也有,畢竟全中國姓名相同的人那么多。正確的用法應該是使用ID聯接,而不是姓名。ID是產品、運營和數據人員們在工作中接觸最多的內容之一,用戶ID文章ID商品ID等,如果大家還不了解,這里需要掌握。

上圖就是正確的用法,用戶表和教育表能夠通過ID聯接,可能有人疑問,用戶ID為1和6的,還是不能對應呀?這個不要緊,因為在數據庫中,不是所有的表都能一一對應,存在部分匹配的可能性,也許那個叫秦路的,他沒讀過書,教育背景表中自然沒有記錄了。

當然,數據庫的設計還要更嚴謹,一般每張表都會有主鍵(主鍵不是必須,但是從效率優化上肯定會加),這個主鍵也不能是其他表的主鍵,防止產生沖突。

這樣就靠譜了,用戶ID是用戶表的主鍵,教育背景ID是教育背景表的主鍵,我們在教育背景表中加入一個字段叫用戶ID,它是專門用來聯接用戶表的,它不是主鍵。

是不是有點繞?實際上,并不是所有名字帶ID的都叫主鍵,這一點要搞清楚。

數據庫中,表的名字和字段應該是英文。如果是主鍵,只要叫id即可,你要關聯其他表,則以「表名_id」作為聯接。

關聯后的邏輯如下,這種方式叫全聯接,匹配不上的都用Null表示,匹配上的我用橙色表示。聯接是關系型數據庫中的核心概念,是操作的基礎,現在迷糊不要緊,多練習幾次就好了。

如果現在我有一張新的表,需要關聯education,聰明的你也一定想到方法了吧。

了解上面的概念,你就知道什么叫關系型數據庫,簡單說,它是由多張能互相聯接的二維行列表格組成的數據庫。

關系型數據庫是基于關系代數模型發展而來。常用的數據庫有SQL Server、MySQL、Oracle等,我們后續學習都以MySQL為主。

接下來是安裝MySQL。

我們去MySQL的官網下載,版本5.6以上即可。

按照教程完成后,我們通過命令行查詢知否成功,Win和Mac的操作不一樣。

我們當然不會在這么丑的界面上操作MySQL啦,我們還需要安裝GUI,這是為我們提供操作界面的。

Mac用戶推薦SequealPro,Win用戶推薦WorkBench。后續我會在SequealPro操作。MySQL的默認用戶名和密碼均是root,建議重新設置一下。

如果大家有疑問,可以去網上搜索相關教程,不安裝MySQL也是可以的。因為數據分析師大多數情況是用在線數據查詢平臺操作,安裝只是為了方便演示。不想要安裝的同學,可以在SQLZoo練習,以后我也會講解。

輸入賬號密碼后進入操作界面,數據庫我命名為qin。左側欄是數據庫中的Table列表,現在為空。右側是表相關的操作和信息。

因為現在沒有數據,我們需要加載數據,選擇以前爬蟲爬下來的數據加載。數據分析不需要學習如何創建刪除增改表的操作,因為用不到,我只會講解查詢,大家有興趣可以自行了解。

任何MySQL的GUI工具,都能加載CSV,一般叫import。

Encoding選擇Autodetect,其余按默認。

接下來需要設置各字段的數據類型,系統會幫我們自動選上,這里不用改動。int代表整數數值,varchar代表字符串(中文英文標點符號這類),括號里面的數字是允許存儲字節,這塊也不要深入理解,只要知道常用的字段類型即可。

給表取個名字,載入后,就將CSV成功導入到數據庫了,能夠進行數據查詢的操作。

這張表沒有設置主鍵,主要是練習,所以跳過了這一步驟。

大家可能會遇到導入的數據是亂碼,這是系統編碼之間的差異,是utf8和gbk之間的沖突,網上有相關解答,搜索關鍵詞即可。

到這里,大家已經成功地在自己電腦上創建了數據庫。接下來可以使用SQL做練習。開啟select * from DataAnalyst 的查詢。

如果需要原始數據的話,去百度云盤下載:下載? 密碼:6x2v,是5000條數據分析師的崗位數據。

 

作者:秦路,微信公眾號ID:tracykanc

本文由 @秦路?原創發布于人人都是產品經理。未經許可,禁止轉載。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 應該是教育背景id放到用戶表里做關聯。你弄錯了

    來自阿聯酋 回復
  2. 比我上大學時老師講的還要易懂,很贊,但是這些都是很基礎的內容

    來自湖南 回復
  3. 之前分享的原始數據的鏈接已經失效了(百度網盤)

    樓主能分享下嗎

    來自廣東 回復
  4. 之前分享的原始數據的鏈接已經失效了(百度網盤)樓主能分享下嗎

    來自北京 回復
  5. 有價值

    來自北京 回復
  6. 科普了

    來自上海 回復
  7. 感謝樓主,對我們小白太有用了,已點贊并關注,期待你的更多分享

    回復
  8. mac 版本的怎么下載啊

    來自上海 回復
  9. 對于我這種數據庫小白,還是有用的,謝謝樓主

    來自北京 回復
  10. 這個文章題目應該改成:一文讓你淺顯易懂地了解mysql

    來自上海 回復
  11. 我以為是講解各種數據庫類型的功能與區別呢,誤入了。

    來自河南 回復
    1. 這個就不會放在這里了,這個是很新人的

      來自上海 回復
    2. 同意123的評論。

      來自河南 回復
  12. 此文實在沒意義,通過mysql用戶手冊就可了解的東西,專門寫個文章干嘛呢?順便說一下用戶手冊就是說明書

    回復
    1. 對于我這種剛開始了解數據庫相關的人來說,就有意義~ ??

      來自湖南 回復