在數(shù)據(jù)分析的技能中,數(shù)據(jù)庫與SQL會是性價比高的技能之一。
數(shù)據(jù)庫是邏輯上的概念,它是一堆互相關(guān)聯(lián)的數(shù)據(jù),放在物理實體上,是一堆寫在磁盤上的文件,文件中有數(shù)據(jù)。這些基礎(chǔ)的數(shù)據(jù)組成了表(table),我們把它想象成一張Excel的sheet。
ID是數(shù)據(jù)庫中重要的概念,叫做唯一標識符/主鍵,用來表示數(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。
用戶和教育背景,看上去能夠使用姓名進行匹配,可是這里出現(xiàn)了兩個張三,一個是北京大學,一個是上海大學,究竟哪個張三才能和用戶表的張三對應(yīng)上?都不能。
也許清華大學還有張三,復旦大學,交通大學也有,畢竟全中國姓名相同的人那么多。正確的用法應(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),存在部分匹配的可能性,也許那個叫秦路的,他沒讀過書,教育背景表中自然沒有記錄了。
當然,數(shù)據(jù)庫的設(shè)計還要更嚴謹,一般每張表都會有主鍵(主鍵不是必須,但是從效率優(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)在迷糊不要緊,多練習幾次就好了。