您好,登錄后才能下訂單哦!
這篇文章主要講解了“有哪些必須要掌握的數(shù)據(jù)庫(kù)與sql基礎(chǔ)知識(shí)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“有哪些必須要掌握的數(shù)據(jù)庫(kù)與sql基礎(chǔ)知識(shí)”吧!
數(shù)據(jù)庫(kù)是什么?
你可以把數(shù)據(jù)想象成一個(gè)個(gè)文件夾,數(shù)據(jù)庫(kù)就是一個(gè)一個(gè)文件柜,這個(gè)文件柜存放著非常多的數(shù)據(jù),無(wú)論這個(gè)數(shù)據(jù)是什么、或者是如何組織的
這里要注意,人們通常用數(shù)據(jù)庫(kù)這個(gè)術(shù)語(yǔ)來(lái)代表他們使用的數(shù)據(jù)庫(kù)軟件,這是不正確的,這是以前你混淆的根源
確切的說(shuō),數(shù)據(jù)庫(kù)軟件應(yīng)該稱為DBMS,也就是數(shù)據(jù)庫(kù)管理系統(tǒng),數(shù)據(jù)庫(kù)就是由DBMS創(chuàng)建和操縱的,比如我們可以在sql sever創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)
也就是說(shuō)DBMS就像是一個(gè)圖書(shū)管理員,你不直接訪問(wèn)數(shù)據(jù)庫(kù),而是利用DBMS訪問(wèn)數(shù)據(jù)庫(kù),讓圖書(shū)管理員幫你找一個(gè)文件柜。
數(shù)據(jù)庫(kù)的分類?
這里所說(shuō)的數(shù)據(jù)庫(kù)都指的是數(shù)據(jù)庫(kù)管理系統(tǒng),這按照早期的數(shù)據(jù)庫(kù)理論,比較流行的數(shù)據(jù)庫(kù)模型有三種,分別為層次式數(shù)據(jù)庫(kù)、網(wǎng)狀數(shù)據(jù)庫(kù)和關(guān)系型數(shù)據(jù)庫(kù)。
而在當(dāng)今的互聯(lián)網(wǎng)企業(yè)中,最常用的數(shù)據(jù)庫(kù)模式主要有兩種,即關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)。
關(guān)系型數(shù)據(jù)庫(kù)模型是把復(fù)雜的數(shù)據(jù)結(jié)構(gòu)歸結(jié)為簡(jiǎn)單的二元關(guān)系(即二維表格形式)
在關(guān)系型數(shù)據(jù)庫(kù)中,對(duì)數(shù)據(jù)的操作幾乎全部建立在一個(gè)或多個(gè)關(guān)系表格上,通過(guò)這些關(guān)聯(lián)的表格分類、合并、連接或選取等運(yùn)算來(lái)實(shí)現(xiàn)數(shù)據(jù)的管理。
關(guān)系型通俗的理解是,數(shù)據(jù)作為二維數(shù)組存在,你可以理解為圖書(shū)館的圖書(shū)排列。
書(shū)架、樓層你可以理解為關(guān)系型的數(shù)據(jù)結(jié)構(gòu),書(shū)作為數(shù)據(jù)存在,而所有圖書(shū)館管理員就是數(shù)據(jù)庫(kù)的進(jìn)程,用于不同的工作。有人救火(數(shù)據(jù)修復(fù)、備份),有人整理書(shū)架、書(shū)籍(數(shù)據(jù)整理、歸檔),而用戶進(jìn)程就是指的來(lái)到圖書(shū)館的顧客,他們看書(shū)、移動(dòng)書(shū)籍,而管理員就會(huì)對(duì)著維護(hù)。
關(guān)系型數(shù)據(jù)庫(kù)誕生距今已有40多年了,從理論產(chǎn)生到發(fā)展到實(shí)現(xiàn)產(chǎn)品,例如:
常見(jiàn)的MySQL和Oracle數(shù)據(jù)庫(kù),Oracle在數(shù)據(jù)庫(kù)領(lǐng)域里上升到了霸主地位,形成每年高達(dá)數(shù)百億美元的龐大產(chǎn)業(yè)市場(chǎng),而MySQL也是不容忽視的數(shù)據(jù)庫(kù),以至于被Oracle重金收購(gòu)了。
非關(guān)系型數(shù)據(jù)庫(kù)也被稱為NoSQL數(shù)據(jù)庫(kù),NoSQL的本意是“Not Only SQL”,指的是非關(guān)系型數(shù)據(jù)庫(kù),而不是“NO SQL”的意思
因此,NoSQL的產(chǎn)生并不是要徹底否定關(guān)系型數(shù)據(jù)庫(kù),而是作為傳統(tǒng)數(shù)據(jù)庫(kù)的一個(gè)有效補(bǔ)充,在特定的場(chǎng)景下可以發(fā)揮難以想象的高效率和高性能。
NoSQL是非關(guān)系型數(shù)據(jù)庫(kù)的廣義定義,它打破了長(zhǎng)久以來(lái)關(guān)系型數(shù)據(jù)庫(kù)與ACID理論大一統(tǒng)的局面。NoSQL數(shù)據(jù)存儲(chǔ)不需要固定的表結(jié)構(gòu),通常也不存在連續(xù)操作,在大數(shù)據(jù)存取上具備關(guān)系型數(shù)據(jù)庫(kù)無(wú)法比擬的性能優(yōu)勢(shì)。
SQL儲(chǔ)存數(shù)據(jù)
那么,作為關(guān)系型數(shù)據(jù)庫(kù)最常見(jiàn)的SQL,它是怎么存儲(chǔ)數(shù)據(jù)的?
1、表:
在你將文件夾放入文件柜的時(shí)候,不能將他們隨便的扔進(jìn)某個(gè)抽屜就完事了,而是在文件柜中創(chuàng)建文件,然后將相關(guān)的資料放入相關(guān)的文件中,這就是數(shù)據(jù)庫(kù)的表。
表是一種結(jié)構(gòu)化的文件,用來(lái)存儲(chǔ)某種特定類型的數(shù)據(jù),比如說(shuō)這樣的sql文件,其里面包含了20多個(gè)數(shù)據(jù)庫(kù)表,每個(gè)表的名字都不應(yīng)該是相同的,但是我們可以在不同的數(shù)據(jù)庫(kù)里存放相同表名的數(shù)據(jù)表。
同時(shí)我們不能把學(xué)生數(shù)據(jù)與老師數(shù)據(jù)放在同一個(gè)表里,這樣會(huì)我們不好提取數(shù)據(jù),檢索和訪問(wèn)都比較麻煩,所以我們應(yīng)該創(chuàng)建兩個(gè)表,每個(gè)清單一個(gè)表。
2、列:
列是組成表的字段信息,一張表可以有一個(gè)或者多個(gè)列組成。
我們可以這么理解,每一列都是數(shù)據(jù)庫(kù)表中的每一個(gè)字段,比如下面的學(xué)生id列、學(xué)生姓名列、考試成績(jī)列就是三個(gè)字段。
正確地將數(shù)據(jù)分解為多個(gè)列是十分重要的,比如班級(jí)和學(xué)生姓名應(yīng)該是獨(dú)立的列,通過(guò)將他們進(jìn)行分解開(kāi),才有可能利用特定的列隊(duì)數(shù)據(jù)進(jìn)行排列和過(guò)濾,如果學(xué)生姓名和班級(jí)組合在了一個(gè)列里,按照班級(jí)過(guò)濾就會(huì)十分的困難。
數(shù)據(jù)庫(kù)中每個(gè)列都有對(duì)應(yīng)的數(shù)據(jù)類型,數(shù)據(jù)類型定義列可以存儲(chǔ)的數(shù)據(jù)種類。
例如,如果列中存儲(chǔ)的是數(shù)字,那么對(duì)應(yīng)的數(shù)據(jù)類型應(yīng)該是數(shù)值類型,如果列種存儲(chǔ)的是日期、文本、注釋、金額等,應(yīng)該用恰當(dāng)?shù)臄?shù)據(jù)類型規(guī)定出來(lái)。
數(shù)據(jù)類型:所容許的數(shù)據(jù)類型,每個(gè)列都應(yīng)該有相對(duì)應(yīng)的數(shù)據(jù)類型,限制存儲(chǔ)的數(shù)據(jù)形式。
3、行:
數(shù)據(jù)庫(kù)表中的數(shù)據(jù)是按照行進(jìn)行存儲(chǔ)的,每一行就是存儲(chǔ)的一個(gè)數(shù)據(jù),比如第一行是張三的數(shù)據(jù),第二行是李四的數(shù)據(jù)。
4、主鍵:
表中每一行都應(yīng)該有可以唯一標(biāo)識(shí)自己的一列,比如學(xué)生信息表中我們不能用學(xué)生的姓名作為主鍵,因?yàn)槲覀儠?huì)發(fā)現(xiàn)一旦出現(xiàn)重名的情況,我們就會(huì)出現(xiàn)兩個(gè)不同的數(shù)據(jù);
當(dāng)然也不能用考試成績(jī)作為主鍵,比如按照“90分”作為主鍵進(jìn)行提取時(shí)我們還會(huì)提取出兩個(gè)數(shù)據(jù);
所以我們應(yīng)該用學(xué)生id作為主鍵,因?yàn)闊o(wú)論如何學(xué)生id是不會(huì)重復(fù)的,它具有唯一性,所以可以作為主鍵。
所以主鍵就是唯一區(qū)分?jǐn)?shù)據(jù)表行的標(biāo)識(shí),用來(lái)表示一個(gè)特定的行。
沒(méi)有主鍵的話,我們更新或者刪除表中特定的行就會(huì)十分的困難,他必須滿足兩個(gè)條件:
任意兩行都不應(yīng)該有相同的主鍵值
每一行都必須具有一個(gè)主鍵值(主鍵列不存在null值)
數(shù)據(jù)庫(kù)中能夠?qū)⒉煌谋磉M(jìn)行關(guān)聯(lián),靠的就是主鍵,例如下面兩個(gè)表:
比如上面兩張圖,左圖是學(xué)生信息表,右圖是老師信息表。左圖的主鍵是學(xué)生ID,右圖的主鍵是老師ID。細(xì)心的讀者可能發(fā)現(xiàn)右圖還有一個(gè)學(xué)生ID,這里的學(xué)生ID是專門(mén)用來(lái)聯(lián)接用戶表的,它并不是主鍵。只不過(guò)兩張表通過(guò)學(xué)生ID這個(gè)唯一信息來(lái)關(guān)聯(lián)。
但兩張表關(guān)聯(lián)也并不是信息能一一對(duì)應(yīng)的,也會(huì)存在空缺的時(shí)候,比如:
所以,想要認(rèn)知數(shù)據(jù)庫(kù)的內(nèi)容,首先我們先要明白sql、sql sever、my sql、oricle與數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)的區(qū)別在哪,因?yàn)楹芏嗳嗽趯W(xué)數(shù)據(jù)分析的時(shí)候,都是在網(wǎng)上到處找資料,不同的資料里濫用了這些名詞,造成了大家的混淆,也增加了大家對(duì)于sql認(rèn)知的難度。
感謝各位的閱讀,以上就是“有哪些必須要掌握的數(shù)據(jù)庫(kù)與sql基礎(chǔ)知識(shí)”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)有哪些必須要掌握的數(shù)據(jù)庫(kù)與sql基礎(chǔ)知識(shí)這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。