數(shù)據(jù)庫存儲(chǔ)技術(shù)
數(shù)據(jù)庫(Database)是按照數(shù)據(jù)結(jié)構(gòu)來組織窿凤、存儲(chǔ)和管理數(shù)據(jù)的倉庫。每個(gè)數(shù)據(jù)庫都有一個(gè)或多個(gè)不同的API用于創(chuàng)建跨蟹,訪問雳殊,管理,搜索和復(fù)制所保存的數(shù)據(jù)窗轩。我們也可以將數(shù)據(jù)存儲(chǔ)在文件中夯秃,但是在文件中讀寫數(shù)據(jù)速度相對(duì)較慢。所以痢艺,現(xiàn)在我們使用關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)來存儲(chǔ)和管理的大數(shù)據(jù)量仓洼。所謂的關(guān)系型數(shù)據(jù)庫,是建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫堤舒,借助于集合代數(shù)等數(shù)學(xué)概念和方法來處理數(shù)據(jù)庫中的數(shù)據(jù)色建。RDBMS 即關(guān)系數(shù)據(jù)庫管理系統(tǒng)(Relational Database Management System)的特點(diǎn):
1、數(shù)據(jù)以表格的形式出現(xiàn)
2舌缤、每行為各種記錄名稱
3箕戳、每列為記錄名稱所對(duì)應(yīng)的數(shù)據(jù)域
4、許多的行和列組成一張表單
5国撵、若干的表單組成database
RDBMS術(shù)語
在我們開始學(xué)習(xí)MySQL 數(shù)據(jù)庫前陵吸,讓我們先了解下RDBMS的一些術(shù)語:
數(shù)據(jù)庫: 數(shù)據(jù)庫是一些關(guān)聯(lián)表的集合。
數(shù)據(jù)表: 表是數(shù)據(jù)的矩陣介牙。在一個(gè)數(shù)據(jù)庫中的表看起來像一個(gè)簡(jiǎn)單的電子表格壮虫。
列: 一列(數(shù)據(jù)元素) 包含了相同的數(shù)據(jù), 例如郵政編碼的數(shù)據(jù)。
行:一行(=元組耻瑟,或記錄)是一組相關(guān)的數(shù)據(jù)旨指,例如一條用戶訂閱的數(shù)據(jù)赏酥。
冗余:存儲(chǔ)兩倍數(shù)據(jù),冗余降低了性能谆构,但提高了數(shù)據(jù)的安全性裸扶。
主鍵:主鍵是唯一的。一個(gè)數(shù)據(jù)表中只能包含一個(gè)主鍵搬素。你可以使用主鍵來查詢數(shù)據(jù)呵晨。
外鍵:外鍵用于關(guān)聯(lián)兩個(gè)表。
索引:使用索引可快速訪問數(shù)據(jù)庫表中的特定信息熬尺。索引是對(duì)數(shù)據(jù)庫表中一列或多列的值進(jìn)行排序的一種結(jié)構(gòu)摸屠。類似于書籍的目錄。
復(fù)合鍵:復(fù)合鍵(組合鍵)將多個(gè)列作為一個(gè)索引鍵粱哼,一般用于復(fù)合索引季二。
MySQL 為關(guān)系型數(shù)據(jù)庫(Relational Database Management System), 這種所謂的"關(guān)系型"可以理解為"表格"的概念, 一個(gè)關(guān)系型數(shù)據(jù)庫由一個(gè)或數(shù)個(gè)表格組成, 如圖所示的一個(gè)表格:
表頭(header): 每一列的名稱;
列(col): 具有相同數(shù)據(jù)類型的數(shù)據(jù)的集合;
行(row): 每一行用來描述某條記錄的具體信息;
值(value): 行的具體信息, 每個(gè)值必須與該列的數(shù)據(jù)類型相同;
鍵(key): 鍵的值在當(dāng)前列中具有唯一性。
mysql簡(jiǎn)介與安裝
mysql簡(jiǎn)介
MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng)揭措,由瑞典MySQL AB公司開發(fā)胯舷,目前屬于Oracle公司。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng)绊含,關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中桑嘶,而不是將所有數(shù)據(jù)放在一個(gè)大倉庫內(nèi),這樣就增加了速度并提高了靈活性躬充。MySQL有很多優(yōu)點(diǎn)受到企業(yè)和個(gè)人開發(fā)者的歡迎逃顶,比如說:
MySQL是開源的,所以你不需要支付額外的費(fèi)用充甚。
MySQL支持大型的數(shù)據(jù)庫以政。可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫津坑。
MySQL使用標(biāo)準(zhǔn)的SQL數(shù)據(jù)語言形式妙蔗。
MySQL可以運(yùn)行于多個(gè)系統(tǒng)上傲霸,并且支持多種語言疆瑰。這些編程語言包括 C、C++昙啄、Python穆役、Java、Perl梳凛、PHP耿币、Eiffel、Ruby 和 Tcl 等韧拒。
MySQL支持大型數(shù)據(jù)庫淹接,支持5000萬條記錄的數(shù)據(jù)倉庫十性,32位系統(tǒng)表文件最大可支持4GB,64位系統(tǒng)支持最大的表文件為8TB塑悼。
MySQL是可以定制的劲适,采用了GPL協(xié)議,你可以修改源碼來開發(fā)自己的MySQL系統(tǒng)厢蒜。
正是MySQL易用霞势,功能強(qiáng)大,免費(fèi)的特點(diǎn)使mysql得到廣泛應(yīng)用斑鸦,目前mysql已經(jīng)成為最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)愕贡,在web應(yīng)用方面mysql是最好的關(guān)系數(shù)據(jù)庫管理系統(tǒng)應(yīng)用軟件之一。
mysql安裝
MySQL官方網(wǎng)站:https://www.mysql.comMySQL下載網(wǎng)站:https://dev.mysql.com/downloads/mysql/可以通過上面的鏈接訪問MySQL官方網(wǎng)站和下載頁面巷屿,選擇MySQL版本進(jìn)行下載固以,如下圖是macOS系統(tǒng)的下載頁面:下載后,可以直接進(jìn)行點(diǎn)擊安裝嘱巾,安裝過程可以一直使用默認(rèn)設(shè)置進(jìn)行安裝嘴纺。參考資料如下:
windows系統(tǒng)安裝過程可參考:https://zhinan.sogou.com/guide/detail/?id=316512902564
macOS系統(tǒng)安裝過程可參考:https://jingyan.baidu.com/article/c843ea0b96f01877931e4a1d.html
mysql服務(wù)查看
MySQL安裝好以后,可以通過查看服務(wù)來查看MySQL的的運(yùn)行狀況浓冒,如下是查看方式:
macOS的mysql服務(wù)在系統(tǒng)偏好設(shè)置中可以查看,如下圖:
windows系統(tǒng)下的mysql服務(wù)的查看方法:使用win(就是那個(gè)旗幟圖案的按鍵)+R栽渴,彈出框中輸入:services.msc。就會(huì)彈出服務(wù)窗口稳懒,在窗口中就可以查看mysql服務(wù)內(nèi)容:
MySQL服務(wù)安裝完成并啟動(dòng)后闲擦,即可使用。但是我們安裝的是社區(qū)服務(wù)版场梆,并沒有圖形界面供我們來操作墅冷,此時(shí)我們只能通過命令行中用戶名+密碼的形式來訪問數(shù)據(jù)庫,并實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的操作或油。每次都是用命令行來執(zhí)行操作數(shù)據(jù)庫寞忿,效率和易用性都會(huì)受到較大影響。因此顶岸,我們希望能夠有工具腔彰,幫助我們通過圖形化界面的方式來操作MySQL數(shù)據(jù)庫,我們通常使用的工具是navicat辖佣。
登陸mysql
MySQL安裝完成后霹抛,可以通過命令行工具及終端命令登陸MySQL服務(wù),操作數(shù)據(jù)庫卷谈。具體的命令如下:
在macOS中杯拐,可以通過終端中的命令進(jìn)行登陸,登陸命令如下:
mysql -u root -h localhost -p
參數(shù)解釋:
-u:用戶名,這里用戶名指默認(rèn)的root
-h:主機(jī)名或者服務(wù)器IP端逼,這里是localhost
-p:密碼朗兵,初始密碼為空,也可以自己設(shè)定新密碼
在windows中顶滩,可以直接打開開始->程序->MySQL->MySQL Command Line工具矛市,就可以登陸mysql進(jìn)行操作了。
端口和主機(jī)
mysql默認(rèn)的端口為3306诲祸,本機(jī)主機(jī)名為localhost浊吏。
navicat安裝與操作
navicat簡(jiǎn)介
Navicat for MySQL是一套管理和開發(fā)MySQL或MariaDB的理想解決方案,支持單一程序救氯,可同時(shí)連接到MySQL和MariaDB找田。這個(gè)功能齊備的前端軟件為數(shù)據(jù)庫管理、開發(fā)和維護(hù)提供了直觀而強(qiáng)大的圖形界面着憨,給MySQL或MariaDB新手以及專業(yè)人士提供了一組全面的工具墩衙。Navicat for MySQL 可連接到任何本機(jī)或遠(yuǎn)程 MySQL 和 MariaDB 服務(wù)器。它可以用于 MySQL 數(shù)據(jù)庫服務(wù)器版本3.21或以上和 MariaDB 5.1或以上甲抖,并支持大部分功能漆改,包括表、視圖准谚、函數(shù)或過程挫剑、事件等。
下載與安裝
下載地址:https://www.navicat.com.cn/Navicat for MySQL軟件支持Windows柱衔、macOS樊破、Linux版本,學(xué)習(xí)本節(jié)內(nèi)容的同學(xué)可以自行下載并進(jìn)行安裝唆铐。如下是navicat的主界面:
數(shù)據(jù)庫連接實(shí)例配置
打開navicat以后哲戚,可以創(chuàng)建MySQL數(shù)據(jù)庫連接,并配置相關(guān)的參數(shù)艾岂,測(cè)試鏈接數(shù)據(jù)庫能否成功顺少。連接數(shù)據(jù)庫操作所需要的參數(shù)配置包括:連接名、主機(jī)名王浴、端口脆炎、用戶名、密碼等幾項(xiàng)參數(shù)叼耙。數(shù)據(jù)庫連接實(shí)例操作數(shù)據(jù)庫
數(shù)據(jù)庫創(chuàng)建
navicat支持通過圖形化界面創(chuàng)建新的數(shù)據(jù)庫腕窥,操作方便粒没,步驟簡(jiǎn)單筛婉。通過填寫數(shù)據(jù)庫名稱即可完成創(chuàng)建,此時(shí)有一點(diǎn)需要格外注意,數(shù)據(jù)庫編碼需要選擇“utf8"編碼爽撒,因?yàn)橥ǔG闆r下應(yīng)用程序都是utf8編碼入蛆。兩者要保證一致,否則會(huì)出問題硕勿。具體如下圖所示:
數(shù)據(jù)的導(dǎo)入與導(dǎo)出
利用navicat哨毁,也是可以對(duì)數(shù)據(jù)庫表進(jìn)行導(dǎo)出,以及將數(shù)據(jù)導(dǎo)入到數(shù)據(jù)表中源武。具體操作如下:
數(shù)據(jù)庫導(dǎo)出數(shù)據(jù)這里navicat支持提供兩種導(dǎo)出方式扼褪,分別為:導(dǎo)出數(shù)據(jù)庫表創(chuàng)建語句、導(dǎo)出數(shù)據(jù)庫數(shù)據(jù)粱栖。該功能是將數(shù)據(jù)庫表及數(shù)據(jù)導(dǎo)出成SQL語句话浇。除此之外,navicat還支持導(dǎo)出數(shù)據(jù)成為文件闹究,比如csv格式的文件幔崖,見下圖:
外部數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫navicat也支持將外部數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫表中,步驟與導(dǎo)出相反渣淤。見下圖所示: