一、數據庫怎么學習
新手學習數據庫務必(bi)把握的知識要點:
數據(ju)庫的安裝下載:了解數據(ju)庫的環境變量,文(wen)件目(mu)錄構造。
數據庫網絡(luo)服務器的啟動,登(deng)陸與登(deng)出(chu)。
數據庫(ku)常用(yong)命(ming)令及語法標(biao)準。
數據(ju)庫基本數據(ju)類型與數據(ju)表的實際操作。比如,數據(ju)表的增(zeng)刪、單表查尋、多表查詢(xun)等。
數(shu)(shu)據庫運算符和函數(shu)(shu),比如,日(ri)期函數(shu)(shu),時間函數(shu)(shu),信息函數(shu)(shu),聚合(he)函數(shu)(shu),數(shu)(shu)據加密涵數(shu)(shu),自定義函數(shu)(shu)等。
數據庫存(cun)(cun)儲過程,存(cun)(cun)儲過程的(de)調度。
數據(ju)庫每個(ge)存儲引(yin)擎的特性。
數據庫事務管理(li)的定義和(he)應用等。
數據庫(ku)管理權限(xian)和用戶管理等。
上述(shu)知(zhi)識了解之后,就(jiu)需要(yao)學(xue)習一(yi)下數(shu)(shu)據庫(ku)的(de)(de)(de)常見的(de)(de)(de)函數(shu)(shu),再以后便是要(yao)學(xue)習,存儲(chu)過程,函數(shu)(shu),觸發器(qi)原理(li),事(shi)務管理(li)。學(xue)完之后,基礎(chu)數(shu)(shu)據庫(ku)方面就(jiu)沒什么難題了,要(yao)是不做高(gao)級的(de)(de)(de)科學(xue)研究,這(zhe)些(xie)專業(ye)知(zhi)識就(jiu)夠(gou)了。要(yao)想學(xue)精數(shu)(shu)據庫(ku),就(jiu)需要(yao)多練習,試著自己建立(li)一(yi)個含(han)有邏(luo)輯性的(de)(de)(de)合乎(hu)第三范(fan)式之上的(de)(de)(de)數(shu)(shu)據庫(ku),隨(sui)后寫SQL、觸發器(qi)原理(li)、存儲(chu)過程、view視圖等。最重要(yao)的(de)(de)(de)便是,把(ba)它們中間的(de)(de)(de)邏(luo)輯弄清(qing)楚。
數(shu)據(ju)庫(ku)(ku)理論知(zhi)(zhi)識(shi)是學好數(shu)據(ju)庫(ku)(ku)的基礎,雖然(ran)理論知(zhi)(zhi)識(shi)會(hui)有點枯燥,但是這是學好數(shu)據(ju)庫(ku)(ku)的前提。如(ru)(ru)(ru)果(guo)沒有理論基礎,學習(xi)的東西就不扎實。例如(ru)(ru)(ru),數(shu)據(ju)庫(ku)(ku)理論中(zhong)會(hui)講解E-R圖(tu)、數(shu)據(ju)庫(ku)(ku)設計(ji)原則等知(zhi)(zhi)識(shi),如(ru)(ru)(ru)果(guo)不了解這些知(zhi)(zhi)識(shi),就很(hen)難獨立設計(ji)一個很(hen)好的數(shu)據(ju)庫(ku)(ku)及表(biao)。可以將(jiang)理論和實例結合在(zai)一起來學習(xi),這樣效率會(hui)更高(gao)。
二、如何成為數據庫工程師
數據庫工(gong)程師一般分(fen)為開發和管(guan)理兩種。
1、數據庫開發
一(yi)般人剛接觸數(shu)據庫基本(ben)都是數(shu)據庫開發,就(jiu)是寫(xie)SQL代(dai)碼,做報表(biao)。按(an)照一(yi)定的(de)語法完成某項邏輯任務。這階段就(jiu)是按(an)需求查詢出(chu)數(shu)據即可,不出(chu)邏輯錯誤就(jiu)行(xing)了。
一般這樣的工作一些小公司(si)都會直接讓軟件開(kai)發工程(cheng)師(shi)兼崗,只有那(nei)種數據需求(qiu)量比較(jiao)頻繁的公司(si)才會單(dan)獨設立這種比較(jiao)初級的數據統計崗位。
抑或是(shi)給一些銀行(xing),電信(xin),電力等這種大型(xing)的(de)企(qi)(qi)業(ye)做服務外包,這些企(qi)(qi)業(ye)在目(mu)前還是(shi)很需要這類數據庫開發類人才(cai)的(de),特別是(shi)剛畢業(ye)的(de)大學實習生。
隨著你(ni)(ni)的(de)(de)技術知識的(de)(de)積累(lei),接(jie)觸的(de)(de)開發任(ren)務(wu)會(hui)越(yue)來(lai)越(yue)多,越(yue)來(lai)越(yue)復(fu)雜。這時候你(ni)(ni)接(jie)觸到的(de)(de)技術會(hui)越(yue)來(lai)越(yue)多,從數據(ju)(ju)采集,到數據(ju)(ju)加工(gong)處理,再(zai)到數據(ju)(ju)分(fen)發等(deng)等(deng)都會(hui)涉及到。
2、數據庫管理
數(shu)據(ju)庫(ku)管理就(jiu)是我們(men)常說的DBA,主(zhu)要是從事的數(shu)據(ju)庫(ku)管理工作,包括數(shu)據(ju)的備份,恢復,故障處理,語句優化,性能監控(kong)等(deng),對(dui)操(cao)作系(xi)統和數(shu)據(ju)庫(ku)的原理要比較了解。
這個崗(gang)位對自身的(de)(de)(de)技術能力要求比(bi)較(jiao)(jiao)高,所以剛入行的(de)(de)(de)除(chu)非在(zai)這一(yi)方面(mian)有比(bi)較(jiao)(jiao)高的(de)(de)(de)造詣(yi)和研(yan)究,一(yi)般(ban)的(de)(de)(de)公司是(shi)不會(hui)招新人從事這份工(gong)作的(de)(de)(de)。
一(yi)般是數(shu)據(ju)庫開發或者軟件開發的轉行做(zuo)DBA,他們使用(yong)的數(shu)據(ju)庫比(bi)(bi)較多,經過日積月(yue)累對數(shu)據(ju)庫性能(neng)和(he)故障(zhang)處理有一(yi)定的了(le)解。當然也有其他職務轉做(zuo)DBA的,不變的是他們都和(he)數(shu)據(ju)庫打交道比(bi)(bi)較久。
3、薪酬對比
在職務薪(xin)酬這一塊(kuai),DBA的薪(xin)酬一般是(shi)(shi)高于數據庫開發的,經驗豐富(fu)的DBA一般人只能望其項(xiang)背,當然也有從刪庫到跑路的DBA。重要的還是(shi)(shi)對一些(xie)技(ji)術原(yuan)理的掌握和(he)對故障(zhang)的精準(zhun)判斷,這些(xie)都是(shi)(shi)靠時間(jian)積累的。就像一個老中醫一樣(yang),功力越(yue)深(shen)越(yue)吃(chi)香(xiang)。
4、流行度
目前在國內(nei)DBA一般是(shi)Oracle和Mysql較多(duo),SQL Server的(de)DBA也(ye)有(you)(you),只(zhi)是(shi)相對前兩個比較少,這與數(shu)據庫所(suo)占份額及流行度(du)有(you)(you)關。Oracle和Mysql在Windows和Linux環(huan)境都可以很好(hao)的(de)兼容,SQL Server在2017年之前都一直只(zhi)支持自家的(de)Windows操(cao)作系(xi)統,之后(hou)才開始兼容Linux。
5、新手選擇
新手同學(xue)在入(ru)數據這一行的啟蒙數據庫大(da)多數都(dou)是(shi)SQL Server(原因應該是(shi)大(da)學(xue)的教程是(shi)以(yi)SQL Server為(wei)平(ping)臺),主要是(shi)它可(ke)視化界面比Oracle和(he)Mysql友好。
但是(shi)真正的(de)大(da)神還是(shi)比較喜歡命(ming)令(ling)界面(mian),畢竟命(ming)令(ling)界面(mian)的(de)響應速度快的(de)不是(shi)一點點,而(er)且命(ming)令(ling)界面(mian)也有助于更(geng)好的(de)記住數據庫的(de)相(xiang)關命(ming)令(ling)。
6、學習建議
如果你想快速上(shang)手數(shu)據庫的(de)唯一(yi)途徑(jing)就是(shi)理論加實(shi)踐(jian),多看(kan)書(shu),多操(cao)作。那些(xie)標榜一(yi)個月從入門(men)到精通的(de)培訓或教程(cheng)實(shi)在(zai)不(bu)敢茍同,真正(zheng)能讓人成長起來的(de)還是(shi)工作后每天成堆的(de)數(shu)據需求,迫使不(bu)斷努力進步。當然這里不(bu)是(shi)否定培訓價值(zhi),他們是(shi)引導我們打好基礎的(de)有效途徑(jing),其(qi)他的(de)完全靠(kao)自(zi)己(ji)。因為有些(xie)問題只(zhi)有在(zai)工作中遇到了(le)才知道怎么處理,紙上(shang)談兵是(shi)解決不(bu)了(le)問題的(de)。
此外還是(shi)得有不(bu)(bu)恥(chi)下問的(de)(de)精神和勇氣,即使老師想把所有知識都傳授給(gei)你(ni),但是(shi)他(ta)(ta)不(bu)(bu)知道你(ni)哪里不(bu)(bu)懂,那他(ta)(ta)只能按照(zhao)自己(ji)的(de)(de)章(zhang)法去傳授,這樣的(de)(de)結果就是(shi)他(ta)(ta)的(de)(de)任務完成了,至于你(ni)懂了沒他(ta)(ta)并不(bu)(bu)知道。
數據庫打好基礎(chu)真(zhen)的(de)不(bu)難(nan),只要(yao)肯(ken)花時間去(qu)練。短(duan)時間就(jiu)可以掌(zhang)握這(zhe)些(xie)基礎(chu)知識。再加上實(shi)踐,經(jing)過時間的(de)錘煉,總(zong)會在某一方面有自(zi)己的(de)建樹(shu)。