為什么數(shù)據(jù)庫使用SQL語言?
網(wǎng)友解答: 一直以來,數(shù)據(jù)的持久化都是依賴于文件存儲,包括windows的excel,word,txt等,數(shù)據(jù)庫也是使用的文件,比如oracle的.DBF;Access的.mdb都是使用
一直以來,數(shù)據(jù)的持久化都是依賴于文件存儲,包括windows的excel,word,txt等,數(shù)據(jù)庫也是使用的文件,比如oracle的.DBF;Access的.mdb都是使用的文件。
既然是文件,我們知道計算機只識別0,1兩個機器碼,其實文件就都是一系列的二進制編碼,不同的文件使用不同的方式打開,比如在windows上強制使用文本方式打開dbf文件會顯示一堆亂碼,因為很多東西它不識別。
SQL就是用來對數(shù)據(jù)庫文件進行增刪改查的語言,數(shù)據(jù)庫誕生伊始,就是為了解決結(jié)構(gòu)化的數(shù)據(jù)存儲,相對應(yīng)的就需要一門結(jié)構(gòu)化的語言來操作它。
SQL,英文為Structured Query Language,翻譯為結(jié)構(gòu)化查詢語言,可以方便的訪問和處理數(shù)據(jù)庫,是ANSI標準的一門計算機語言,既然只是一門語言,那就不是不可以取代的,只要使用同樣的操作標準,比如使用JAVA完全可以讀出文件中的內(nèi)容,進行顯示和修改,但是這種重復(fù)造輪子的事情應(yīng)該沒人會做,首先需要掌握數(shù)據(jù)庫存儲標準,然后操作數(shù)據(jù)庫,有著極強的復(fù)雜性不說,性能估計也比SQL差,畢竟SQL本就是伴隨著數(shù)據(jù)庫的發(fā)展誕生的一門操作語言!
SQL提供了create;drop;alter;insert;select;update;delete等標準指令用于操作數(shù)據(jù)庫,實現(xiàn)結(jié)構(gòu)化數(shù)據(jù)模型創(chuàng)建,結(jié)構(gòu)化數(shù)據(jù)存儲和查詢的功能!
回到問題的描述,為什么不用對象數(shù)組取代數(shù)據(jù)庫?首先你要想清楚,這些對象數(shù)組需不需要持久化?需要持久化必然是要放在硬盤的文件中的,需不需要有關(guān)系?不管是關(guān)系型數(shù)據(jù)庫,可以針對關(guān)系型數(shù)據(jù)進行方便的存儲!
如果你的對象數(shù)組只在內(nèi)存里面用,數(shù)據(jù)庫自然是不需要的,如果你是要持久化,而且是關(guān)系型數(shù)據(jù)持久化,那么只能是數(shù)據(jù)庫了!
綜上,你完全可以使用其他語言(JAVA,C等)實現(xiàn)數(shù)據(jù)庫文件的增刪改,但是為了方便,性能,還是老老實實使用SQL吧,更多的技術(shù)分享,敬請關(guān)注。。。
網(wǎng)友解答:數(shù)據(jù)量很少的時候,用變量存數(shù)據(jù)。
數(shù)據(jù)量大或很大,比如幾十幾百幾千幾萬或更多,必須用數(shù)據(jù)庫來存。
數(shù)據(jù)庫是專門用來解決數(shù)據(jù)存儲的,它能在計算機技術(shù)行業(yè)擁有無可撼動的地位,初學(xué)者要理解原因??梢赃@么說,沒有數(shù)據(jù)庫技術(shù),谷歌百度騰訊阿里等等所有互聯(lián)網(wǎng)公司全都存在不了,互聯(lián)網(wǎng)也不會有,甚至程控交換機、手機的打電話短信功能都沒辦法用,都得有接話員來負責電話的連線。
數(shù)據(jù)庫是必然要有的,因為它解決了數(shù)據(jù)存儲的問題。
但數(shù)據(jù)庫技術(shù)有多種,最常用的是關(guān)系數(shù)據(jù)庫,這就是大學(xué)必然學(xué)的課程。
關(guān)系數(shù)據(jù)庫很使用方便,通用性很好。
MSSQL2000/2005/2008/2012、甲骨文、MySQL等是關(guān)系數(shù)據(jù)庫的經(jīng)典代表。
關(guān)系數(shù)據(jù)庫的弱點是:關(guān)系數(shù)據(jù)庫每張表的數(shù)據(jù)量超過100萬條后數(shù)據(jù)庫操作速度就開始變慢不利于數(shù)據(jù)讀取的效率,會導(dǎo)致網(wǎng)頁打開很慢。解決辦法有多種:分表分庫、網(wǎng)頁靜態(tài)化、使用緩存等等。
因為關(guān)系數(shù)據(jù)庫的這個弱點,對于擁有海量數(shù)據(jù)的公司,如阿里、百度、谷歌等公司用到的并不是關(guān)系數(shù)據(jù)庫,是一種稱為bigtable的數(shù)據(jù)庫,只是各公司的實現(xiàn)各不相同,屬于公司不公開的技術(shù)核心。
我先說這么多,手機打字真慢~~
歡迎朋友們指正和補充。
補充:
今天看,發(fā)現(xiàn)當時沒有說為啥用SQL語言,不好意思。
SQL語言,又叫結(jié)構(gòu)化查詢語言,是伴隨數(shù)據(jù)庫而產(chǎn)生和存在的一種特有語言,也是一種業(yè)界規(guī)范語言,用它向數(shù)據(jù)庫系統(tǒng)發(fā)出數(shù)據(jù)查詢命令,數(shù)據(jù)庫系統(tǒng)分根據(jù)該命令完成對應(yīng)的工作,用戶不了解數(shù)據(jù)庫是如何工作的,只需關(guān)注命令結(jié)果即可。這樣,用戶就可以將主要的精力放在業(yè)務(wù)邏輯的編程上,而不用考慮數(shù)據(jù)庫的內(nèi)在編程上。就像你乘火車,車咋開,有鐵路系統(tǒng)負責,而你只需購買一張車票。而各種車票就是SQL。
總體說來,數(shù)據(jù)庫是為了解決大數(shù)據(jù)存儲和快速訪問的問題的,SQL是為結(jié)解決與數(shù)據(jù)庫溝通問題的。
SQL是一種規(guī)范語言,各種數(shù)據(jù)庫系統(tǒng)都是按照這個規(guī)范而實現(xiàn)的。
所以,市場需要數(shù)據(jù)庫,也就需要SQL。