MySQL數(shù)據(jù)庫技術(shù)大全_第1頁
MySQL數(shù)據(jù)庫技術(shù)大全_第2頁
MySQL數(shù)據(jù)庫技術(shù)大全_第3頁
MySQL數(shù)據(jù)庫技術(shù)大全_第4頁
MySQL數(shù)據(jù)庫技術(shù)大全_第5頁
已閱讀5頁,還剩107頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

tSSi

白嬉學吧

MySQL數(shù)據(jù)庫技術(shù)大全

MLJSQL?

目錄

一、數(shù)據(jù)庫概要...............................................................................5

11、發(fā)展歷史......................................................................5

1.1.1.人工處理階段...........................................................5

1.1.2.文件系統(tǒng)..............................................................6

1.1.3、數(shù)據(jù)庫管理系統(tǒng)........................................................6

1.2、常見數(shù)據(jù)庫技術(shù)品牌、服務(wù)與架構(gòu)..............................................9

1.3、數(shù)據(jù)庫分類...................................................................11

1.3.1、關(guān)系型數(shù)據(jù)庫..........................................................11

1.3.2、非關(guān)系型數(shù)據(jù)庫.......................................................11

1.4、數(shù)據(jù)庫規(guī)范化................................................................12

1.4.1.什么是范式............................................................12

1.4.2.三大范式..............................................................13

1.4.3.范式與效率............................................................17

二、MySQL介紹.............................................................................18

2.1、MySQL概要.................................................................18

2.2、系統(tǒng)特性....................................................................19

2.3、存儲引擎....................................................................20

三、快速安裝運行MySQL數(shù)據(jù)庫.............................................................22

3.1、使用綠色版..................................................................22

3.1.1、設(shè)置mysql遠程訪問..................................................26

3.1.2、修改mysql用戶密碼..................................................27

3.1.2、安裝服務(wù).............................................................28

3.2、使用安裝版..................................................................30

四、使用GUI操作MySQL........................................................................................................................................45

4.1、關(guān)系型數(shù)據(jù)庫的典型概念.....................................................45

4.2、登錄數(shù)據(jù)庫..................................................................47

4.3、創(chuàng)建數(shù)據(jù)庫..................................................................49

4.4、創(chuàng)建表......................................................................50

4.5、管理數(shù)據(jù)....................................................................53

4.5」、添加數(shù)據(jù)............................................................53

4.5.2、刪除數(shù)據(jù)............................................................54

4.5.3、修改表結(jié)構(gòu)..........................................................55

4.5.4、外鍵................................................................56

4.5.5、唯一健..............................................................60

4.6、上機練習....................................................................61

五、使用SQL訪問MySQL數(shù)據(jù)庫............................................................63

5.1、增加數(shù)據(jù)....................................................................63

5.2、查詢數(shù)據(jù)....................................................................63

5.2.1、表達式與條件查詢.....................................................64

5.2.2、聚合函數(shù).............................................................65

5.3、刪除數(shù)據(jù)....................................................................66

5.4、更新數(shù)據(jù)....................................................................66

5.5、修改表......................................................................66

5.5.1、添加列................................................................67

5.5.2、修改列................................................................67

5.5.3、刪除列................................................................67

5.5.4、重命名表.............................................................68

5.5.5、刪除表................................................................68

5.5.6、刪除數(shù)據(jù)庫............................................................68

5.5.7、一千行MySQL筆記...................................................68

5.5.8、常用的SQL...................................................................................................104

白鴿學吧

隨著移動互聯(lián)網(wǎng)的結(jié)束與人工智能的到來大數(shù)據(jù)變成越來越重要,下一個成功者應該是擁

有海量數(shù)據(jù)的,數(shù)據(jù)與數(shù)據(jù)庫你應該知道。

一、數(shù)據(jù)庫概要

數(shù)據(jù)庫(Database)是存儲與管理數(shù)據(jù)的軟件系統(tǒng),就像一個存入數(shù)據(jù)的物流倉庫。

在商業(yè)領(lǐng)域,信息就意味著商機,取得信息的一個非常重要的途徑就是對數(shù)據(jù)進行分析處理,

這就催生了各種專業(yè)的數(shù)據(jù)管理軟件,數(shù)據(jù)庫就是其中的一種。當然,數(shù)據(jù)庫管理系統(tǒng)也不是

一下子就建立起來,它也是經(jīng)過了不斷的豐富和發(fā)展,才有了今天的模樣。

1.1、發(fā)展歷史

1.1.1,人工處理階段

白鴿學吧

在20世紀50年代中期以前的計算機誕生初期,其處理能力很有限,只能夠完成一些簡單的運

算,數(shù)據(jù)處理能力也很有限,這使得當時的計算機只能夠用于科學和工程計算。計算機上沒有

專用的管理數(shù)據(jù)的軟件,數(shù)據(jù)由計算機或處理它的程序自行攜帶。當數(shù)據(jù)的存儲格式、讀寫路

徑或方法發(fā)生變化的時候,其處理程序也必須要做出相應的改變以保持程序的正確性。

1.1.2、文件系統(tǒng)

20世紀50年代后期到60年代中期,隨著硬件和軟件技術(shù)的發(fā)展,計算機不僅用于科學計算,

還大量用于商業(yè)管理中。在這一時期,數(shù)據(jù)和程序在存儲位置上已經(jīng)完全分開,數(shù)據(jù)被單獨組

織成文件保存到外部存儲設(shè)備上,這樣數(shù)據(jù)文件就可以為多個不同的程序在不同的時間所使用。

雖然程序和數(shù)據(jù)在存儲位置上分開了,而且操作系統(tǒng)也可以幫助我們對完成了數(shù)據(jù)的存儲位置

和存取路徑的管理,但是程序設(shè)計仍然受到數(shù)據(jù)存儲格式和方法的影響,不能夠完全獨立于數(shù)

據(jù),而且數(shù)據(jù)的冗余較大。

1.1.3、數(shù)據(jù)庫管理系統(tǒng)

從20世紀70年代以來,計算機軟硬件技術(shù)取得了飛躍式的發(fā)展,這一時期最主要的發(fā)展就是

產(chǎn)生了真正意義上的數(shù)據(jù)庫管理系統(tǒng),它使得應用程序和數(shù)據(jù)之間真正的實現(xiàn)的接口統(tǒng)一、數(shù)

白鴿學吧

據(jù)共享等,這樣應用程序都可以按照統(tǒng)一的方式直接操作數(shù)據(jù),也就是應用程序和數(shù)據(jù)都具有

了高度的獨立性。

一張圖清晰追溯數(shù)據(jù)庫的發(fā)展歷程(1962-2016)

在IDSW亍的年代,(硅谷的伴隨阿波羅登月計劃,商

所碰)加利佛摩州,21mm雛形雌IBM

gglMS,Mainframe^

(database)

navigational數(shù)據(jù)庫

CROSSREFERENCE一詞最早流行

耶于系統(tǒng)研

H發(fā)公司的函

埃德加?弗蘭克?科德IBM

X技術(shù)備忘錄

司研究員,發(fā)表題為“大型

共享數(shù)據(jù)庫的關(guān)系模型"的

AftCCOROMAY

KCtMSRtftt-論文,被譽為關(guān)系數(shù)據(jù)庫

TMUAS

wassAw66D

T1974

|的校企聯(lián)合計劃中,與加

利佛創(chuàng)洲jfSlhngres

■庫研究項目攜手創(chuàng)建了

1983—-01979

e發(fā)布熟一套自主開發(fā)

IBM分級結(jié)構(gòu)

的關(guān)系型數(shù)據(jù)庫管理系統(tǒng))并將萌芽;關(guān)系型

結(jié)構(gòu)業(yè)務(wù)剝離

1984

Oracle

天睿公司(TerodataCorpo-

第一個商業(yè)RDBMS

ration)發(fā)布第大規(guī)模并行

處理(MPP)

白嬉學吧

1.2、常見數(shù)據(jù)庫技術(shù)品牌、服務(wù)與架構(gòu)

發(fā)展了這么多年市場上出現(xiàn)了許多的數(shù)據(jù)庫系統(tǒng),最強的個人認為是Oracle,當然還有許多

如:DB2、MicrosoftSQLServer.MySQL、SyBase等,下圖列出常見數(shù)據(jù)庫技術(shù)品牌、服

務(wù)與架構(gòu)。

SupportedDataTechnologies

M人巔矗期f°DB抵念

皿溫.那riakspiunk>

Ade(gehstieswreh.

Smahout

Spar^

rlfllIflPM燕、G魯amazon吧。,no311132011

LIUUUIHortonworksDynamoDBSimpleDBwebsewcesStreaming

AmazonRedshift

OSQLSystemsONoSQLSystemsOBigDataSupport

SfMySQl?Y."后▼Hadoop.Map-reduce

&&Iq

&Oracle&Cassandra?DataInsights

&SQLServerSTRed:s3DataDiscovery

@rRiak3RealtimeAnalytics

?AnalyticSystemsSTNeo4J3MachineLearning

&Ur—?DynamoDBoPredictiveAnaiytics

&SAPHana&SimpleDB

&OouderaimpalaDataArchitecture

?DataComponents

GTBtgQuerv3Evaluation

&Redshift&Splunk?Proofofconcept

6?ElasticSearch3Transformation

DataWarehouse&Sok3Implementation

&@Node.JS3SoftwareArchitecture

&Hive?AmazonSNS,SOS3TechnologyStrategy

&ApachePIGSTZookeeper3CTOAdvisory

&BlSTStormy

&ETL8Spark3MigrationToBigData

&OLARReporting&Kafka

&RabbitMQ

傳傳報盤Kainayi]wyt]鼠網(wǎng)可u化

接口層IMtitiggWp/FTWBEST/Sodt)]國副曲XMt/JSON|)]連攜號

HBS統(tǒng)一計算彤務(wù)

?ttHNW^RichHadoop內(nèi)等計加應架RichSpark

■■男muJ

戰(zhàn)一負袤網(wǎng)度著理相施YARN

行情層丸制8|?t?K

白鴿學吧

1.3、數(shù)據(jù)庫分類

數(shù)據(jù)庫通常分為層次式數(shù)據(jù)庫、網(wǎng)絡(luò)式數(shù)據(jù)庫和關(guān)系式數(shù)據(jù)庫三種。

而不同的數(shù)據(jù)庫是按不同的數(shù)據(jù)結(jié)構(gòu)來聯(lián)系和組織的。

而在當今的互聯(lián)網(wǎng)中,最常見的數(shù)據(jù)庫模型主要是兩種,即關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫。

1.3.1,關(guān)系型數(shù)據(jù)庫

當前在成熟應用且服務(wù)與各種系統(tǒng)的主力數(shù)據(jù)庫還是關(guān)系型數(shù)據(jù)庫。

編號姓名語文數(shù)學英語

201701張三995130

201702李四391591

201703王五921351

201704趙六399967

201705牛七566990

代表:Oracle、SQLServer,MySQL

1.3.2、非關(guān)系型數(shù)據(jù)庫

白鴿學吧

隨著時代的進步與發(fā)展的需要,非關(guān)系型數(shù)據(jù)庫應運而生。

代表:Redis、Mongodb

NoSQL數(shù)據(jù)庫在存儲速度與靈活性方面有優(yōu)勢,也常用于緩存。

1.4、數(shù)據(jù)庫規(guī)范化

經(jīng)過一系列的步驟,我們現(xiàn)在終于將客戶的需求轉(zhuǎn)換為數(shù)據(jù)表并確立這些表之間的關(guān)系,那么

是否我們現(xiàn)在就可以在開發(fā)中使用呢?答案否定的,為什么呢!同一個項目,很多人參與了需

求的分析,數(shù)據(jù)庫的設(shè)計,不同的人具有不同的想法,不同的部門具有不同的業(yè)務(wù)需求,我們

以此設(shè)計的數(shù)據(jù)庫將不可避免的包含大量相同的數(shù)據(jù),在結(jié)構(gòu)上也有可能產(chǎn)生沖突,在開發(fā)中

造成不便。

1.4.1.什么是范式

要設(shè)計規(guī)范化的數(shù)據(jù)庫,就要求我們根據(jù)數(shù)據(jù)庫設(shè)計范式一也就是數(shù)據(jù)庫設(shè)計的規(guī)范原則來做。

范式可以指導我們更好地設(shè)計數(shù)據(jù)庫的表結(jié)構(gòu),減少冗余的數(shù)據(jù),借此可以提高數(shù)據(jù)庫的存儲

效率,數(shù)據(jù)完整性和可擴展性。

設(shè)計關(guān)系數(shù)據(jù)庫時,遵從不同的規(guī)范要求,設(shè)計出合理的關(guān)系型數(shù)據(jù)庫,這些不同的規(guī)范要求

被稱為不同的范式,各種范式呈遞次規(guī)范,越高的范式數(shù)據(jù)庫冗余越小。目前關(guān)系數(shù)據(jù)庫有六

種范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(BCNF)、

白鴿學吧

第四范式(4NF)和第五范式(5NF,又稱完美范式)。滿足最低要求的范式是第一范式(1NF)。

在第一范式的基礎(chǔ)上進一步滿足更多規(guī)范要求的稱為第二范式(2NF),其余范式以次類推。

一般說來,數(shù)據(jù)庫只需滿足第三范式(3NF)就行了。

1.4.2.三大范式

第一范式(1NF)

所謂第一范式(1NF)是指在關(guān)系模型中,對列添加的一個規(guī)范要求,所有的列都應該是原子

性的,即數(shù)據(jù)庫表的每一列都是不可分割的原子數(shù)據(jù)項,而不能是集合,數(shù)組,記錄等非原子

數(shù)據(jù)項。即實體中的某個屬性有多個值時,必須拆分為不同的屬性。在符合第一范式(1NF)

表中的每個域值只能是實體的一個屬性或一個屬性的一部分。簡而言之,第一范式就是無重復

的域。

例如:表1-1中,其中“工程地址”列還可以細分為省份,城市等。在國外,更多的程序把"姓

名"列也分成2列,即"姓"和"名"。

雖然第一范式要求各列要保存原子性,不能再分,但是這種要求和我們的需求是相關(guān)聯(lián)的,如

上表中我們對"工程地址”沒有省份,城市這樣方面的查詢和應用需求,則不需拆分,"姓名"

列也是同樣如此。

表1-1原始表

白鴿學吧

==

工程號工程名稱工程地址貝工驪W員工名稱薪資待遇職務(wù)

P001港珠澳大橋廣東珠海E0001Jack6000/月工人

P001港珠澳大橋廣東珠海E0002Join7800/月工人

P001港珠澳大橋廣東珠海E0003Apple8000/月高級技工

P002南海航天海南三亞E0001Jack5000/月工人

第二范式(2NF)

在1NF的基礎(chǔ)上,非Key屬性必須完全依賴于主鍵。第二范式(2NF)是在第一范式(1NF)

的基礎(chǔ)上建立起來的,即滿足第二范式(2NF)必須先滿足第一范式(1NF)。第二范式(2NF)

要求數(shù)據(jù)庫表中的每個實例或記錄必須可以被唯一地區(qū)分。選取一個能區(qū)分每個實體的屬性或

屬性組,作為實體的唯一標識。

第二范式(2NF)要求實體的屬性完全依賴于主關(guān)鍵字。所謂完全依賴是指不能存在僅依賴主

關(guān)鍵字一部分的屬性,如果存在,那么這個屬性和主關(guān)鍵字的這一部分應該分離出來形成一個

新的實體,新實體與原實體之間是一對多的關(guān)系。為實現(xiàn)區(qū)分通常需要為表加上一個列,以存

儲各個實例的唯一標識。簡而言之,第二范式就是在第一范式的基礎(chǔ)上屬性完全依賴于主鍵。

例如:表1-1中,一個表描述了工程信息,員工信息等。這樣就造成了大量數(shù)據(jù)的重復。按照第

二范式,我們可以將表1-1拆分成表1-2和表1-3:

I工程信息表:(工程編號,工程名稱,工程地址):

白鴿學吧

表1-2工程信息表

工程編號工程名稱工程地址

P001港珠澳大橋廣東珠海

P002南海航天海南三亞

I員工信息表(員工編號,員工名稱,職務(wù),薪資水平):

表1-3員工信息表

貝=工T驪4^弓=員工姓名職務(wù)薪資水平

E0001Jack工人3000/月

E0002Join工人3000/月

E0003Apple高級技工6000/月

這樣,表1-1就變成了兩張表,每個表只描述一件事,清晰明了。

第三范式(3NF)

第三范式是在第二范式基礎(chǔ)上,更進一層,第三范式的目標就是確保表中各列與主鍵列直接相

關(guān),而不是間接相關(guān)。即各列與主鍵列都是一種直接依賴關(guān)系,則滿足第三范式。

第三范式要求各列與主鍵列直接相關(guān),我們可以這樣理解,假設(shè)張三是李四的兵,王五則是張

三的兵,這時王五是不是李四的兵呢?從這個關(guān)系中我們可以看出,王五也是李四的兵,因為王

白鴿學吧

五依賴于張三,而張三是李四的兵,所以王五也是。這中間就存在一種間接依賴的關(guān)系而非我

們第三范式中強調(diào)的直接依賴。

現(xiàn)在我們來看看在第二范式的講解中,我們將表1-1拆分成了兩張表。這兩個表是否符合第三

范式呢。在員工信息表中包含:"員工編號"、"員工名稱"、"職務(wù)"、"薪資水平",而

我們知道,薪資水平是有職務(wù)決定,這里“薪資水平"通過"職務(wù)”與員工相關(guān),則不符合第

三范式。我們需要將員工信息表進一步拆分,如下:

I員工信息表:員工編號,員工名稱,職務(wù)

I職務(wù)表:職務(wù)編號,職務(wù)名稱,薪資水平

現(xiàn)在我們已經(jīng)了解了數(shù)據(jù)庫規(guī)范化設(shè)計的三大范式,下面我們再來看看對表1-1優(yōu)化后的數(shù)據(jù)

表:

員工信息表(Employee)

貝=工T-驪W=員工姓名職務(wù)編號

E0001Jack1

E0002Join1

E0003Apple2

工程信息表(Projectinfo)

工程編號工程名稱工程地址

P001港珠澳大橋廣東珠海

白鴿學吧

P002南海航天海南三亞

職務(wù)表(Duty)

職務(wù)編號職務(wù)名稱工資待遇

1工人3000/月

2高級技工6000/月

工程參與人員記錄表(Project.Employee_info)

q=1=但=

工程編號人K驪E

1P001E0001

2P001E0002

3P002E0003

通過對比我們發(fā)現(xiàn),表多了,關(guān)系復雜了,查詢數(shù)據(jù)變的麻煩了,編程中的難度也提高了,但

是各個表中內(nèi)容更清晰了,重復的數(shù)據(jù)少了,更新和維護變的更容易了,哪么如何平衡這種矛

盾呢?

1.4.3,范式與效率

在我們設(shè)計數(shù)據(jù)庫時,設(shè)計人員、客戶、開發(fā)人員通常對數(shù)據(jù)庫的設(shè)計有一定的矛盾,客戶更

喜歡方便,清晰的結(jié)果,開發(fā)人員也希望數(shù)據(jù)庫關(guān)系比較簡單,降低開發(fā)難度,而設(shè)計人員則

需要應用三大范式對數(shù)據(jù)庫進行嚴格規(guī)范化,減少數(shù)據(jù)冗余,提高數(shù)據(jù)庫可維護性和擴展性。

由此可以看出,為了滿足三大范式,我們數(shù)據(jù)庫設(shè)計將會與客戶、開發(fā)人員產(chǎn)生分歧,所以在

白鴿學吧

實際的數(shù)據(jù)庫設(shè)計中,我們不能一味的追求規(guī)范化,既要考慮三大范式,減少數(shù)據(jù)冗余和各種

數(shù)據(jù)庫操作異常,又要充分考慮到數(shù)據(jù)庫的性能問題,允許適當?shù)臄?shù)據(jù)庫冗余。

二、MySQL介紹

2.1、MySQL概要

MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQLAB公司開發(fā),目前屬于Oracle旗

下產(chǎn)品。MySQL是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在WEB應用方面,MySQL是最

好的RDBMS(RelationalDatabaseManagementSystem,關(guān)系數(shù)據(jù)庫管理系統(tǒng))應用軟

件之一。

MySQL@

MySQL是一種關(guān)系數(shù)據(jù)庫管理系統(tǒng),關(guān)系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)

據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性。

白鴿學吧

MySQL所使用的SQL語言是用于訪問數(shù)據(jù)庫的最常用標準化語言。MySQL軟件采用了雙

授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼

這一特點,一般中小型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。

MySQL官網(wǎng):/

MySQL下載:/downloads/

2.2、系統(tǒng)特性

1、使用C和C++編寫,并使用了多種編譯器進行測試,保證了源代碼的可移植性。

2、支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware.OpenBSD.OS/2Wrap、

Solaris,Windows等多種操作系統(tǒng)。

、為多種編程語言提供了這些編程語言包括、+、、、、

3APIOCC+Python.JavaPerlPHP

EiffeLRuby,.NET和Tel等。

4、支持多線程,充分利用CPU資源。

5、優(yōu)化的SQL查詢算法,有效地提高查詢速度。

6、既能夠作為一個單獨的應用程序應用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個庫而嵌

入到其他的軟件中。

7、提供多語言支持,常見

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論