在數(shù)據(jù)分析的技能中,數(shù)據(jù)庫(kù)與SQL會(huì)是性價(jià)比高的技能之一。
數(shù)據(jù)庫(kù)是邏輯上的概念,它是一堆互相關(guān)聯(lián)的數(shù)據(jù),放在物理實(shí)體上,是一堆寫在磁盤上的文件,文件中有數(shù)據(jù)。這些基礎(chǔ)的數(shù)據(jù)組成了表(table),我們把它想象成一張Excel的sheet。
ID是數(shù)據(jù)庫(kù)中重要的概念,叫做唯一標(biāo)識(shí)符/主鍵,用來表示數(shù)據(jù)的唯一性。我們把它理解成數(shù)據(jù)的身份證號(hào)。我知道身份證,也就知道數(shù)據(jù)在哪里了。
ID不會(huì)有現(xiàn)實(shí)的業(yè)務(wù)意義,就是一串單純的數(shù)字,每張表只能有一個(gè)主鍵。
數(shù)據(jù)庫(kù)是表的集合,一個(gè)數(shù)據(jù)庫(kù)中可以放多張表,我們給每張表命名,表與表之間能互相聯(lián)系。
聯(lián)系就是數(shù)據(jù)能夠?qū)?yīng)匹配,正式名稱叫聯(lián)接,對(duì)應(yīng)的操作叫做Join,我們想象成Excel中的vlookup。
用戶和教育背景,看上去能夠使用姓名進(jìn)行匹配,可是這里出現(xiàn)了兩個(gè)張三,一個(gè)是北京大學(xué),一個(gè)是上海大學(xué),究竟哪個(gè)張三才能和用戶表的張三對(duì)應(yīng)上?都不能。
也許清華大學(xué)還有張三,復(fù)旦大學(xué),交通大學(xué)也有,畢竟全中國(guó)姓名相同的人那么多。正確的用法應(yīng)該是使用ID聯(lián)接,而不是姓名。ID是產(chǎn)品、運(yùn)營(yíng)和數(shù)據(jù)人員們?cè)诠ぷ髦薪佑|多的內(nèi)容之一,用戶ID文章ID商品ID等,如果大家還不了解,這里需要掌握。
用戶表和教育表能夠通過ID聯(lián)接,可能有人疑問,用戶ID為1和6的,還是不能對(duì)應(yīng)呀?這個(gè)不要緊,因?yàn)樵跀?shù)據(jù)庫(kù)中,不是所有的表都能一一對(duì)應(yīng),存在部分匹配的可能性,也許那個(gè)叫秦路的,他沒讀過書,教育背景表中自然沒有記錄了。
當(dāng)然,數(shù)據(jù)庫(kù)的設(shè)計(jì)還要更嚴(yán)謹(jǐn),一般每張表都會(huì)有主鍵(主鍵不是必須,但是從效率優(yōu)化上肯定會(huì)加),這個(gè)主鍵也不能是其他表的主鍵,防止產(chǎn)生沖突。
這樣就靠譜了,用戶ID是用戶表的主鍵,教育背景ID是教育背景表的主鍵,我們?cè)诮逃尘氨碇屑尤胍粋€(gè)字段叫用戶ID,它是專門用來聯(lián)接用戶表的,它不是主鍵。
是不是有點(diǎn)繞?實(shí)際上,并不是所有名字帶ID的都叫主鍵,這一點(diǎn)要搞清楚。
數(shù)據(jù)庫(kù)中,表的名字和字段應(yīng)該是英文。如果是主鍵,只要叫id即可,你要關(guān)聯(lián)其他表,則以「表名_id」作為聯(lián)接。
關(guān)聯(lián)后的邏輯如下,這種方式叫全聯(lián)接,匹配不上的都用Null表示,匹配上的我用橙色表示。聯(lián)接是關(guān)系型數(shù)據(jù)庫(kù)中的核心概念,是操作的基礎(chǔ),現(xiàn)在迷糊不要緊,多練習(xí)幾次就好了。