學習資料庫
㈠ 如何學好資料庫
就有點sql的基礎知識,該怎麼學好Oracle?
--從SQL起步,依次學習select,insert,update,delete,分組函數,各種連接,合並,許可權管理,同義詞,schema.
然後學習PL/SQL的函數,存儲過程,序列,觸發器,事務,動態SQL,異常處理.
SQL優化也要了解一些(執行計劃)
如果不學DBA這些就足夠了.
另外問一下sqlserver和Oracle是處理數據的軟體嗎,還是指什麼?(一提資料庫,都說SQLSERVER,Oracle,Access他們本質上是什麼?是軟體,還是指儲存數據的不同模式?)
--對,都是資料庫軟體.
本人有C++基礎,學資料庫要用的除SQL外的編程語言嗎?(要用到多少)
--Oracle要用到PL/SQL(和SQL有所不同...如果你學SQL Server,要用到T-SQL)
另外推薦幾本書看看(這是重點)
--推薦steve feurstein的oracle pl/sql programming(不好意思,我看的都是英文書.可以去書店找找影印版...)
㈡ 資料庫應該怎麼學習,零基礎。
1、 自己在windows和linux上安裝了mysql,自學linux的基礎知識,學習mysql的最基礎的知識,即怎麼寫sql,存儲過程,表的設計等,從0到熟悉大概花了3個月 ,推薦《mysql入門很簡單》。
2、系統地較為深入地學習mysql的sql優化,備份和恢復,參數優化,架構優化,硬體層面的優化,高可用方案,復制技術等等,這段時間你不一定能實際接觸到這些,就像我當初那樣,肯定沒什麼公司招一個小白。
我選擇自己看書,推薦《高性能mysql》,裡面所有的章節都需要看一遍,以現在的水平肯定看不懂,但需要知道大概怎麼回事,為後續的找mysql初級dba的工作打一個鋪墊,這個過程大概也需要3個月。
3、 紙上得來終覺淺,完成以上兩步,我開始准備找一份mysql相關的工作,而不是天天用著excel表格做著select * from table_sb這樣的工作。
當然我這么猥瑣的人肯定不會裸辭,該畫的電路板也一樣畫,業余時間開始投初級mysql dba的工作,並且不間斷地學習,網上各種找mysql面試的相關題目(實際上我當時完全沒有任何實戰經驗),陸續收到一些面試,憑借之前自學的mysql知識,開始胡亂吹牛逼,先混進去再說。
你不做mysql實際相關的工作,永遠也不知道自己之前認知的db知識有多幼稚。
友情提示一點,一般公司都沒有專職dba的,所以面試的時候一定要自信,其實你學了這么多,雖然毫無實戰經驗,理論知識很大概率比面試你的人牛逼,所以各種吹,我就這樣真正進入初級dba的圈子(由於這時對linux還處於cd ls的水平,所以之前也根本沒做過運維),這個邊工作邊找工作的過程又持續了2個月。
4、真正進入互聯網,接觸生產環境後,這是我進步最大的時候。
第一步需要將之前所學真正地應用起來,並且應用的過程中,再回頭看之前的書籍,這時候需要真正去理解,而不是似是而非,一知半解。
這時再推薦《高性能mysql 第三版》,全本再看一遍,這時需要全部看懂,另外還有《mysql技術內幕:innodb存儲引擎》等等。
總之這段時間就需要開始關注mysql一些細節了,比如db故障處理,高可用,負載均衡等等的具體實現了。
另外,linux的知識同步也要深入去學習,至少會寫shell腳本,常見的linux知識等,我在這花了1年多;
5、 dba的工作一般是非常輕閑的,畢竟不是大公司,技術能力有限,該學的也學得差不多了,接觸不到海量數據,高並發等比較鍛煉人的場合,於是我又准備跳了。
於是來了公有雲,現在每天運維萬多個db實例,平均每天處理5+個緊急db故障,幾乎mysql會遇到的問題,感覺都遇到了,能感覺到技術實力和經驗也在每天都在積累,在進步。
但是感覺還是欠缺了很多,下一步就看你選擇了,是再去研究源代碼,底層原理的東西多點,還是資料庫運維和應用多一點,就比如業界姜承堯,何登成與葉金榮的區別。
由於我的歷史原因,對c++等幾乎不懂,平時也用不到,所以看代碼等事實際太累,於是我再去學mongodb,接了公司mongodb運維的活,算是在廣度上的一個擴展,萬一哪天mysql不行了呢
6、 總之,對於db小白來說,最重要的一點就是,學習的過程不能斷。
PS 上面的方法比較野路子,適合沒什麼基礎的童鞋,如果本來就是DBA,比如從oracle轉到mysql,那麼建議直接看mysql官方文檔,而官方文檔是db達到一定水平後必看,出問題時必查的權威文檔。
㈢ 如何學習資料庫知識
好像武俠小說里邊說的:「你的招式忘了沒有?」,回答:「差不多忘了」,「忘了就好」。
這與資料庫編程有什麼關系?關系可大了。同志們學過Pascal、BASIC、C(C++)沒有?如果沒有,FOXBASE、FOXPRO應該學過吧?按以上這些語言編程,都是過程化的,說白一點就是一個數據一個數據、一條記錄一條記錄去處理(FOXBASE、FOXPRO不完全這樣,但書上也經常是這樣介紹的),當初我接觸ACCESS
97時,一下子沒有了IF、FOR這些語句(指數據處理),都用SQL語句,真是找不到北了,好在我學SQL語言時,也盡量忘掉這個IF、FOR,到我忘得差不多時,功夫也進了一大步,原來要編一大段程序,現在一兩條SQL語句搞定,就算用多幾條SQL語句,由於是在圖形界面下做,可視化操作,拉拉扯扯,再修改一下生成的SQL語句,也就省事多了。
由於ACCESS具備完整的SQL語言(FOXBASE沒有、FOXPRO不完整),我從ACCESS
97開始用ACCESS編程,到現在為止,DAO、ADO很少用,加上最近從愛賽思上接觸的一些技術,基本上不用DAO、ADO都可以了,可以從我的「未完工的庫存管理」中看出,只是在特殊情況下才偶爾用一下。(少用,但不是不用,還得學,不要誤解)
如何學好資料庫編程?下面介紹一下本人的一些經驗,僅供參考:
1.首先要把原來一個數據一個數據、一條記錄一條記錄的數據處理方式忘掉,越徹底越好。
現在用成批處理了。少用記錄集一條記錄一條記錄地處理,盡量用SQL語句。
2.學好關系資料庫的理論,尤其是規范化理論,表的設計一定要規范化,最起碼要規范化到第三範式。集合運算(並、交、差)。關系運算(選擇、投影、連接)。其中連接與規范化是緊密結合的。
3.運用面向對象的技術:面向對象的分析OOA、面向對象的設計OOD、面向對象的編程OOP,根據表的關系,用窗體和子窗體、報表和子報表,模擬面向對象,這樣可以增加程序的可讀性和可維護性。(這是高級技術,同志們不要輕視,做大項目你就知道有用了)
4.用查詢時,通常一步做不出來,可以分幾步做,本人通常是這么做的,從我給網友回復的例子中也可以看得出。為什麼要這樣做?(1)有些是SQL語言的限制,沒辦法一步做出來,逼的;(2)可以檢查每一步查詢的結果,容易調試;(3)增加可讀性,便於日後維護。
5.查詢的結果用窗體顯示或用報表列印,兩者的技術差不多。通常改變打開窗體或報表的條件就可控制顯示或列印的記錄范圍。另外用查詢做數據源時,動態改變查詢中的SQL語句,比在查詢中引用窗體的控制項要方便,因為SQL語句生成是在VBA中,可以先存放在字元變數中,然後再更新查詢的SQL語句,這樣就可以用斷點來檢查變數值對不對,如果在查詢中引用窗體的控制項,尤其是包含IIF()函數時,調試是很困難的。
6.開發一個系統,首先要解決技術問題,即演算法,用簡單例子,把演算法弄懂了,再詳細設計,這一點從網友的提問中可以看出,有很多人問題表達不清楚,有的人其中夾了很多與演算法無關的東西,尤其是很專業的東西,別人不容易看得明白,由於演算法沒搞清楚,程序就無法編了。
7.不要使用過多的工具特性,使用過多的工具特性會使可讀性降低,可維護性差,要別人幫忙時難以得到幫助,更要命的是可移植性差,從MDB到ADP就可以體會到了,所以在編程時可讀性很重要,可移植性更重要,你甘心自己的程序就固定在一個環境下運行嗎?你甘心永遠用一個工具搞開發嗎?為了你的「錢途」,不要玩弄太多的技巧,當然技術研究是另外一碼事。
㈣ 資料庫如何學習
資料庫原理學習方法經驗
有不少同學說資料庫原理難學,我深有同感。資料庫原理難在抽象,特別是有關「範式」和SQL語言的章節,學習起來往往感到力不從心。
自考的特點是覆蓋面廣但並不深,你不能臨時抓重點來應付考試,平時就要多花時間和精力來學習。但自考生由於工作繁忙或其他原因,需要掌握高效率的學習方法,有目的性、針對性地學習。其實,《資料庫原理》課程中需要記憶的東西並不多,這門課的考核要點在於應用。下面我就自己的經驗和大家探討一下這門課的學習方法。
掌握知識結構
《資料庫原理》的主要內容有SQL語言、關系代數、關系演算語言、資料庫設計與保護、關系理論等。其他一些有關關系資料庫管理系統實例與數據技術新發展的內容屬於了解范圍,學習這些知識可以擴寬你的眼界,但它們並不在考試范圍內。
關系代數、SQL語言的難度都不是很大。其中,SQL語言和關系代數(演算)要求掌握各種語句的應用,多做書中的例題可以幫助自己熟能生巧。最難的部分在於關系資料庫設計理論,很多概念比較抽象,難於理解,這部分需要花多點的時間來學習。
學習資料庫設計時必須要對整個資料庫設計流程有清晰的認識。從需求分析→概念結構設計→邏輯結構設計→資料庫物理→資料庫運行和維護,各階段的主要任務都要清楚明了。建議大家參照書中例題多做一些資料庫設計,會有很好的效果。
資料庫保護部分屬於需要多看多記的內容,資料庫設計章節的內容則屬於記憶加應用的類型,在熟記設計步驟的基礎上,要反復閱讀書中的例子以加深理解。第一範式,第二範式……這些概念非常抽象,是許多考生頭痛的問題。這一部分內容的學習關鍵是要抓住數據依賴關系來區分各種範式,要弄清改變各種範式最終的目的是優化資料庫,另外最好把各種概念應用到實際例子中來記憶。
認真做好習題
雖然我們並不提倡題海戰術,但在把基本知識復習好的基礎上適當地多做試題的確有助於我們順利通過考試。你可以從一些提供自考學習資源的網站上獲得試卷並將它們列印出來認真地做一遍。
理論實踐相結合
理論知識的學習可以開拓人的眼界。以前我自學資料庫知識,以為一個FoxBase就是資料庫管理系統,通過理論學習我才認識到自己只是井底之蛙,FoxBase只是一個小型的資料庫管理系統。
實踐可以讓你把抽象的理論知識理解、掌握得更透徹;光在紙上書寫SQL語言是紙上談兵,你可以找一些資料庫管理系統,如mySQL、msSQL,自己做一個資料庫用一用SQL語言,可以加深你的理解。如有機會,你還可以參加一個資料庫系統的實際項目設計,運用所學的資料庫設計理論來指導實踐,這樣可以進一步鞏固所學的理論知識。
建議你去參加一點培訓。我知道一個開設了資料庫課程的地方:重慶創思特科技有限公司,該公司的地址為:重慶市永川區文理學院紅河校區逸夫樓,你可以去看看,聯系電話是02385376003,李老師
㈤ 怎麼可以學習資料庫呢
就有點SQL的基礎知識,該怎麼學好Oracle?
--從SQL起步,依次學習select,insert,update,delete,分組函數,各種連接,合並,許可權管理,同義詞,schema.
然後學習PL/SQL的函數,存儲過程,序列,觸發器,事務,動態SQL,異常處理.
SQL優化也要了解一些(執行計劃)
如果不學DBA這些就足夠了.
另外問一下sqlserver和Oracle是處理數據的軟體嗎,還是指什麼?(一提資料庫,都說SQLSERVER,Oracle,Access他們本質上是什麼?是軟體,還是指儲存數據的不同模式?)
--對,都是資料庫軟體.
本人有C++基礎,學資料庫要用的除SQL外的編程語言嗎?(要用到多少)
--Oracle要用到PL/SQL(和SQL有所不同...如果你學SQL Server,要用到T-SQL)
另外推薦幾本書看看(這是重點)
--推薦steve feurstein的oracle pl/sql programming(不好意思,我看的都是英文書.可以去書店找找影印版...)
基本上操作各種資料庫不近相同,其中access是小型資料庫,sqlserver與oracal是中型的,DB是大型資料庫。
1、學習資料庫的SQL語句,每個資料庫基本上上不多,但是都有自己的不同,有的時間類型用『』標識有的用#等。但是基本的SQL都是一樣的select ,update,Insert,Delete,基本上學會了基礎的,就學習高深一點的,如何聯合表查詢,編輯,修改。
2、這些熟悉以後,就要學習一下資料庫的一些常用的系統函數,再之後就是要學習,存儲過程,函數,觸發器,事務。基本資料庫這部分就沒有什麼問題了,只要不做高級的科研什麼的,這些知識就都夠了。要想學好資料庫,就要多聯系,自己創建一個帶有邏輯的符合第三範式以上的資料庫,然後寫寫SQL、觸發器、存儲過程、試圖等。最重要的就是,把他們之間的邏輯搞清楚。
㈥ 零基礎如何學習資料庫
學習資料庫從了解到認識到使用是要很多時間的,需要學習的東西很多。如果為了企業的一些資料,數據便於利用存儲,而且不是什麼大企業還是什麼大項目,用SQL有點專業了。你如果是自己用還是只是了解會一點,那就學個簡單點的。
資料庫都很復雜,不用的軟體就是能實現的功能和他運行的速度有所不同。如果學的不是很深的話,就學office的access。一般是陪在office的辦公軟體里的。書籍先去看下電子書,下載個PDF可以瀏覽的軟體,然後上網上去下載電子書,有資料庫專用書之類的。裡面還可以下載比較舊版本不用錢的軟體,就如你要的SQL資料庫或是Photoshop這些軟體都有的。
㈦ 怎樣學好資料庫
好像武俠小說里邊說:招式忘了沒有回答:差多忘了忘了好
與資料庫編程有關系關系大了同志們學過Pascal、BASIC、C(C++)沒有沒有FOXBASE、FOXPRO應該學過吧按上些語言編程都過程化說白點數據數據、條記錄條記錄去處理(FOXBASE、FOXPRO完全樣書上也經常樣介紹)當初我接觸ACCESS
97時下子沒有了IF、FOR些語句(指數據處理)都用SQL語句真找北了好我學SQL語言時也盡量忘掉IF、FOR我忘得差多時功夫也進了大步原來要編大段程序現兩條SQL語句搞定算用多幾條SQL語句由於圖形界面下做視化操作拉拉扯扯再修改下生成SQL語句也省事多了
由於ACCESS具備完整SQL語言(FOXBASE沒有、FOXPRO完整)我從ACCESS
97開始用ACCESS編程現止DAO、ADO少用加上近從愛賽思上接觸些技術基本上用DAO、ADO都了從我未完工庫存管理看出只特殊情況下才偶爾用下(少用用還得學要誤解)
1.首先要把原來數據數據、條記錄條記錄數據處理方式忘掉越徹底越好
現用成批處理了少用記錄集條記錄條記錄地處理盡量用SQL語句
2.學好關系資料庫理論尤其規范化理論表設計定要規范化起碼要規范化第三範式集合運算(並、交、差)關系運算(選擇、投影、連接)其連接與規范化緊密結合
3.運用面向對象技術:面向對象分析OOA、面向對象設計OOD、面向對象編程OOP根據表關系用窗體和子窗體、報表和子報表模擬面向對象樣增加程序讀性和維護性(高級技術同志們要輕視做大項目知道有用了)
5.查詢結用窗體顯示或用報表列印兩者技術差多通常改變打開窗體或報表條件控制顯示或列印記錄范圍另外用查詢做數據源時動態改變查詢SQL語句比查詢引用窗體控制項要方便因SQL語句生成VBA先存放字元變數再更新查詢SQL語句樣用斷點來檢查變數值對對查詢引用窗體控制項尤其包含IIF()函數時調試困難
6.開發系統首先要解決技術問題即演算法用簡單例子把演算法弄懂了再詳細設計點從網友提問看出有多人問題表達清楚有人其夾了多與演算法無關東西尤其專業東西別人容易看得明白由於演算法沒搞清楚程序無法編了
7.要使用過多工具特性使用過多工具特性會使讀性降低維護性差要別人幫忙時難得幫助更要命移植性差從MDBADP體會了所編程時讀性重要移植性更重要甘心自己程序固定環境下運行甘心永遠用工具搞開發
㈧ 初學者怎麼學資料庫
基本上操作各種資料庫不近相同,其中access是小型資料庫,sqlserver與oracal是中型的,DB是大型資料庫。
1、學習資料庫的SQL語句,每個資料庫基本上上不多,但是都有自己的不同,有的時間類型用『』標識有的用#等。但是基本的SQL都是一樣的select ,update,Insert,Delete,基本上學會了基礎的,就學習高深一點的,如何聯合表查詢,編輯,修改。
2、這些熟悉以後,就要學習一下資料庫的一些常用的系統函數,再之後就是要學習,存儲過程,函數,觸發器,事務。基本資料庫這部分就沒有什麼問題了,只要不做高級的科研什麼的,這些知識就都夠了。要想學好資料庫,就要多聯系,自己創建一個帶有邏輯的符合第三範式以上的資料庫,然後寫寫SQL、觸發器、存儲過程、試圖等。最重要的就是,把他們之間的邏輯搞清楚。
3、如果您想學資料庫,可以看看深度剖析Exadata資料庫一體機視頻課程。
㈨ 資料庫好學嗎
學習資料庫,最主要的是興趣,如果沒有興趣,學習起來會顯得枯燥、增加學習的難度。