在數據分析的技能中(zhong),數據庫(ku)與(yu)SQL會是性價比(bi)高的技能之一。
數據(ju)(ju)庫是邏輯上(shang)的(de)(de)概念,它是一(yi)堆互相關(guan)聯的(de)(de)數據(ju)(ju),放在(zai)物理實(shi)體上(shang),是一(yi)堆寫在(zai)磁盤上(shang)的(de)(de)文件,文件中有數據(ju)(ju)。這(zhe)些基礎的(de)(de)數據(ju)(ju)組(zu)成(cheng)了表(table),我們把它想象成(cheng)一(yi)張(zhang)Excel的(de)(de)sheet。
ID是數據(ju)庫中重要的概念,叫做唯一標識符/主鍵,用來表示數據(ju)的唯一性。我(wo)們把它理解成(cheng)數據(ju)的身份證(zheng)號。我(wo)知(zhi)道身份證(zheng),也就知(zhi)道數據(ju)在哪里了。
ID不會(hui)有(you)(you)現實的業務意義(yi),就是(shi)一(yi)串單純(chun)的數字,每張表只能有(you)(you)一(yi)個主鍵。
數據庫是表(biao)(biao)的(de)集合(he),一個(ge)數據庫中可以(yi)放多張表(biao)(biao),我們給(gei)每(mei)張表(biao)(biao)命名,表(biao)(biao)與表(biao)(biao)之(zhi)間能互相(xiang)聯系。
聯系就(jiu)是數據能夠(gou)對應匹配,正(zheng)式名稱叫聯接(jie),對應的操(cao)作叫做Join,我們想象成Excel中的vlookup。
用(yong)(yong)戶(hu)和(he)教(jiao)育背景,看上(shang)去(qu)能夠使用(yong)(yong)姓(xing)名進行(xing)匹配,可是這里出現了兩個張三(san),一個是北京(jing)大學,一個是上(shang)海大學,究竟哪個張三(san)才能和(he)用(yong)(yong)戶(hu)表的張三(san)對應上(shang)?都不(bu)能。
也許清華大(da)(da)學還有張三,復(fu)旦大(da)(da)學,交通大(da)(da)學也有,畢竟全(quan)中(zhong)國姓名(ming)相同的(de)人那么多(duo)(duo)。正確的(de)用(yong)法應該是(shi)使用(yong)ID聯接,而(er)不是(shi)姓名(ming)。ID是(shi)產品、運營和數據(ju)人員(yuan)們在工(gong)作中(zhong)接觸(chu)多(duo)(duo)的(de)內容之一,用(yong)戶ID文(wen)章ID商品ID等(deng),如(ru)果大(da)(da)家還不了解,這(zhe)里需要掌握。
用戶(hu)表和教育(yu)表能(neng)夠通過ID聯接,可能(neng)有(you)人疑(yi)問,用戶(hu)ID為1和6的(de),還是(shi)(shi)不(bu)(bu)能(neng)對應呀?這個不(bu)(bu)要(yao)緊(jin),因為在數據(ju)庫中,不(bu)(bu)是(shi)(shi)所有(you)的(de)表都能(neng)一(yi)一(yi)對應,存在部分匹(pi)配的(de)可能(neng)性,也許那個叫秦路的(de),他沒讀過書(shu),教育(yu)背(bei)景表中自然(ran)沒有(you)記錄了(le)。
當(dang)然,數據庫的設計(ji)還(huan)要更嚴(yan)謹,一(yi)般每張表(biao)都會(hui)有主(zhu)(zhu)(zhu)鍵(jian)(主(zhu)(zhu)(zhu)鍵(jian)不是(shi)必須,但(dan)是(shi)從效(xiao)率優化上(shang)肯定會(hui)加),這個主(zhu)(zhu)(zhu)鍵(jian)也不能是(shi)其他表(biao)的主(zhu)(zhu)(zhu)鍵(jian),防止產生沖(chong)突。
這(zhe)樣就靠譜了(le),用戶(hu)ID是用戶(hu)表的主鍵,教(jiao)育(yu)背(bei)景ID是教(jiao)育(yu)背(bei)景表的主鍵,我們在教(jiao)育(yu)背(bei)景表中加入一個字段叫(jiao)用戶(hu)ID,它(ta)是專(zhuan)門(men)用來聯接用戶(hu)表的,它(ta)不是主鍵。
是(shi)不是(shi)有點繞?實際上,并不是(shi)所有名(ming)字帶ID的(de)都叫(jiao)主鍵,這一點要搞清楚。
數據庫中,表(biao)的(de)名字(zi)和字(zi)段應該是英(ying)文。如果是主鍵,只要叫(jiao)id即可,你要關聯(lian)其他表(biao),則以「表(biao)名_id」作為(wei)聯(lian)接。
關聯(lian)(lian)后的邏(luo)輯如下,這種方式叫全聯(lian)(lian)接(jie),匹配不(bu)上的都用Null表示,匹配上的我用橙色表示。聯(lian)(lian)接(jie)是關系型數據庫(ku)中的核心概(gai)念(nian),是操(cao)作的基礎,現在迷糊不(bu)要緊(jin),多練習幾次就(jiu)好(hao)了(le)。