版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
項目一MySQL實訓(xùn)環(huán)境配置目錄頁任務(wù)實施任務(wù)準(zhǔn)備安裝和配置MySQL連接MySQL服務(wù)器初次感受MySQL010203
數(shù)據(jù)管理及其發(fā)展歷程01
數(shù)據(jù)庫系統(tǒng)02
數(shù)據(jù)模型03
數(shù)據(jù)庫三級模式與二級映射04
MySQL簡介05任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、數(shù)據(jù)管理及其發(fā)展歷程1.數(shù)據(jù)和數(shù)據(jù)管理數(shù)據(jù)(Data)是描述事物的符號記錄,包括數(shù)字、字母、符號、圖表、聲音、圖像或其他模擬量,能夠進(jìn)行計算、統(tǒng)計、傳輸及處理,是數(shù)據(jù)庫中存儲的基本對象。數(shù)據(jù)和語義是不可分的,單純的數(shù)據(jù)沒有實際意義數(shù)據(jù)處理是指對數(shù)據(jù)資源進(jìn)行收集、組織、存儲和應(yīng)用等一系列活動的總和。數(shù)據(jù)處理可分為數(shù)據(jù)計算和數(shù)據(jù)管理,數(shù)據(jù)管理是指對數(shù)據(jù)資源進(jìn)行收集、分類、組織、編碼、存儲、檢索和維護(hù),是數(shù)據(jù)處理的核心。例如數(shù)字2021,如果表示年份,則是2021年,如果表示質(zhì)量,則可能是2021g。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、數(shù)據(jù)管理及其發(fā)展歷程2.數(shù)據(jù)管理技術(shù)的發(fā)展歷程數(shù)據(jù)管理的目標(biāo)是高效存儲、管理和共享數(shù)據(jù)。隨著計算機(jī)軟硬件技術(shù)的不斷發(fā)展,利用計算機(jī)技術(shù)進(jìn)行數(shù)據(jù)管理的技術(shù)也在不斷進(jìn)步。一般認(rèn)為,數(shù)據(jù)管理技術(shù)的發(fā)展大致經(jīng)歷了三個階段:人工管理階段、文件系統(tǒng)階段、數(shù)據(jù)庫系統(tǒng)階段,現(xiàn)在可以認(rèn)為數(shù)據(jù)管理技術(shù)的發(fā)展大致經(jīng)歷了四個個階段:人工管理階段、文件系統(tǒng)階段、數(shù)據(jù)庫系統(tǒng)階段及新數(shù)據(jù)庫技術(shù)階段。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、數(shù)據(jù)管理及其發(fā)展歷程2.數(shù)據(jù)管理技術(shù)的發(fā)展歷程數(shù)據(jù)管理的目標(biāo)是高效存儲、管理和共享數(shù)據(jù)。隨著計算機(jī)軟硬件技術(shù)的不斷發(fā)展,利用計算機(jī)技術(shù)進(jìn)行數(shù)據(jù)管理的技術(shù)也在不斷進(jìn)步。一般認(rèn)為,數(shù)據(jù)管理技術(shù)的發(fā)展大致經(jīng)歷了三個階段:人工管理階段、文件系統(tǒng)階段、數(shù)據(jù)庫系統(tǒng)階段,現(xiàn)在可以認(rèn)為數(shù)據(jù)管理技術(shù)的發(fā)展大致經(jīng)歷了四個個階段:人工管理階段、文件系統(tǒng)階段、數(shù)據(jù)庫系統(tǒng)階段及新數(shù)據(jù)庫技術(shù)階段。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備1)人工管理階段20世紀(jì)50年代中期以前,這一階段數(shù)據(jù)管理的主要特征是:(1)不長期保存數(shù)據(jù)。(2)應(yīng)用程序管理數(shù)據(jù)。(3)數(shù)據(jù)無法共享。(4)數(shù)據(jù)不具有獨立性。人工管理階段,程序和數(shù)據(jù)之間是一一對應(yīng)關(guān)系人工管理階段應(yīng)用程序與數(shù)據(jù)集之間的對應(yīng)關(guān)系任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備2)文件系統(tǒng)階段文件系統(tǒng)階段也是數(shù)據(jù)庫發(fā)展的初級階段,管理數(shù)據(jù)具有以下特點:(1)數(shù)據(jù)以文件形式長期保存。(2)文件形式多樣化。(3)文件系統(tǒng)管理數(shù)據(jù)。(4)數(shù)據(jù)和程序具有一定的獨立性。(5)數(shù)據(jù)具有一定的共享性。文件管理階段應(yīng)用程序和數(shù)據(jù)之間的對應(yīng)關(guān)系任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備3)數(shù)據(jù)庫系統(tǒng)階段與人工管理、文件管理相比,數(shù)據(jù)庫管理階段具有如下特點:(1)數(shù)據(jù)結(jié)構(gòu)化。數(shù)據(jù)結(jié)構(gòu)化不僅指數(shù)據(jù)內(nèi)部的結(jié)構(gòu)化,而且整體也是結(jié)構(gòu)化的。(2)數(shù)據(jù)獨立性高。(3)數(shù)據(jù)共享性高、冗余少且易擴(kuò)充。(4)數(shù)據(jù)由DBMS統(tǒng)一管理和控制。文件管理階段應(yīng)用程序和數(shù)據(jù)之間的對應(yīng)關(guān)系在數(shù)據(jù)庫系統(tǒng)中,整個數(shù)據(jù)庫的結(jié)構(gòu)可分為三級:用戶的邏輯結(jié)構(gòu),整體邏輯結(jié)構(gòu)和物理結(jié)構(gòu)。數(shù)據(jù)庫的三級結(jié)構(gòu)及映射關(guān)系示意圖任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備4)新數(shù)據(jù)庫技術(shù)階段隨著網(wǎng)絡(luò)和多媒體技術(shù)的迅猛發(fā)展,數(shù)據(jù)庫的應(yīng)用得到了更加廣泛的拓展。數(shù)據(jù)庫進(jìn)入了一個新的時期。傳統(tǒng)的數(shù)據(jù)庫技術(shù)和其他計算機(jī)技術(shù)相結(jié)合,建立和實現(xiàn)了一系列新型數(shù)據(jù)庫系統(tǒng)。分布式數(shù)據(jù)庫系統(tǒng)并行數(shù)據(jù)系統(tǒng)面向?qū)ο髷?shù)據(jù)庫系統(tǒng)多媒體數(shù)據(jù)庫系統(tǒng)智能知識庫系統(tǒng)模糊數(shù)據(jù)庫系統(tǒng)...任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、數(shù)據(jù)庫系統(tǒng)1.數(shù)據(jù)庫數(shù)據(jù)庫(Database,DB)是一個長期存儲在計算機(jī)內(nèi)、有組織的、可共享的數(shù)據(jù)集合。長期存儲、有組織和可共享是數(shù)據(jù)庫的三個基本特點。一般來說,數(shù)據(jù)庫具有以下性質(zhì):(1)用綜合的方法來組織數(shù)據(jù),數(shù)據(jù)按照一定的數(shù)據(jù)模型、結(jié)構(gòu)化方式存儲。(2)數(shù)據(jù)的存儲是有機(jī)的,一體的,數(shù)據(jù)之間是相關(guān)聯(lián)的。(3)具有較小的數(shù)據(jù)冗余,較高的數(shù)據(jù)獨立性,易于擴(kuò)充。(4)能方便快速地對外共享。(5)具有安全機(jī)制,保證數(shù)據(jù)安全、可靠。(6)允許并發(fā)地訪問數(shù)據(jù),提供數(shù)據(jù)的一致性和完整性保護(hù)。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、數(shù)據(jù)庫系統(tǒng)2.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,DBMS)是位于用戶和操作系統(tǒng)之間一組軟件,實現(xiàn)數(shù)據(jù)的科學(xué)組織和存儲、高效獲取和維護(hù),是數(shù)據(jù)庫系統(tǒng)的核心組成部分。6類功能:(1)數(shù)據(jù)定義。(2)數(shù)據(jù)操縱。(3)數(shù)據(jù)庫運行管理。(4)數(shù)據(jù)組織、存儲和管理。(5)數(shù)據(jù)庫的建立與維護(hù)。(6)數(shù)據(jù)通信接口。4部分。(1)數(shù)據(jù)定義語言及其翻譯程序。(2)數(shù)據(jù)操縱語言及其編譯優(yōu)化程序。(3)數(shù)據(jù)庫運行控制程序。(4)實用程序。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、數(shù)據(jù)庫系統(tǒng)3.數(shù)據(jù)庫用戶數(shù)據(jù)用戶包括最終用戶,應(yīng)用程序員,數(shù)據(jù)庫管理員。數(shù)據(jù)庫管理員(DataBaseAdministrator,DBA)是維護(hù)和管理數(shù)據(jù)庫的專門人員,負(fù)責(zé)全面管理和控制數(shù)據(jù)庫系統(tǒng),其職責(zé)是參與數(shù)據(jù)庫系統(tǒng)的設(shè)計與建立;對系統(tǒng)的運行實時監(jiān)控;對數(shù)據(jù)庫進(jìn)行日常的管理,包括數(shù)據(jù)安全性管理和完整性管理;負(fù)責(zé)數(shù)據(jù)庫性能改進(jìn)和數(shù)據(jù)庫的重組及重構(gòu)工作。對于小型系統(tǒng)來說,程序員會同時擔(dān)任數(shù)據(jù)庫管理員,而大型系統(tǒng)則往往單獨配備多名數(shù)據(jù)庫管理員。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、數(shù)據(jù)庫系統(tǒng)4.數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,DBS)是指在計算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng),它包含硬件系統(tǒng),數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng),應(yīng)用系統(tǒng),數(shù)據(jù)庫各類用戶。數(shù)據(jù)庫系統(tǒng)示意圖1)分布式數(shù)據(jù)庫:在邏輯上是一個統(tǒng)一的整體,在物理上則是分別存儲在網(wǎng)絡(luò)中不同的物理節(jié)點上。2)客戶機(jī)/服務(wù)器結(jié)構(gòu):計算機(jī)專門存放數(shù)據(jù)庫和執(zhí)行DBMS功能,稱為數(shù)據(jù)庫服務(wù)器,其他結(jié)點安裝DBMS應(yīng)用開發(fā)工具,支持用戶的交互與應(yīng)用,稱為客戶機(jī)3)瀏覽器/服務(wù)器結(jié)構(gòu):核心部分集中到服務(wù)器上,客戶端只要瀏覽器任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、數(shù)據(jù)模型模型是現(xiàn)實世界特征的模擬和抽象,通常用來簡化事物的復(fù)雜度。數(shù)據(jù)模型(DataModel)就是數(shù)據(jù)特征的抽象,用來描述數(shù)據(jù)、組織數(shù)據(jù)和對數(shù)據(jù)進(jìn)行操作。常用的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型、關(guān)系模型。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、數(shù)據(jù)模型1.層次模型基本層次聯(lián)系指兩個記錄以及它們之間的一對多(包括一對一)聯(lián)系,它是層次模型和網(wǎng)狀模型中數(shù)據(jù)結(jié)構(gòu)的基本單位。在層次模型和網(wǎng)狀模型中,實體用記錄表示,實體的屬性對應(yīng)記錄的數(shù)據(jù)項,實體之間的聯(lián)系為記錄之間的聯(lián)系?;緦哟温?lián)系任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備1.層次模型層次模型采用樹結(jié)構(gòu)表示數(shù)據(jù)間的聯(lián)系,其基本特點為:(1)有且只有一個結(jié)點沒有雙親結(jié)點,這個結(jié)點稱為根結(jié)點;(2)根以外的其他結(jié)點有且只有一個雙親結(jié)點。層次模型示例特點:層次分明。符合人們的思維習(xí)慣。自然、直觀,容易理解,性能優(yōu)秀。缺點:不能直接表示多對多聯(lián)系,插入和刪除操作的有較多的限制,需要通過虛擬結(jié)點進(jìn)行。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、數(shù)據(jù)模型2.網(wǎng)狀模型網(wǎng)狀模型采用“圖結(jié)構(gòu)”來表示數(shù)據(jù)間的聯(lián)系,其基本特點為:(1)允許一個以上的結(jié)點無雙親;(2)一個結(jié)點可以有多于一個的雙親。特點:結(jié)點是平等的,無上下層關(guān)系。能夠直觀地表達(dá)多對多的關(guān)系。具有良好的性能,存取效率較高。缺點:數(shù)據(jù)結(jié)構(gòu)復(fù)雜,DDL、DML語言復(fù)雜。程序編寫的困難。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、數(shù)據(jù)模型3.關(guān)系模型1)關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系的完整性約束三部分構(gòu)成。關(guān)系模型采用二維表(關(guān)系)表示實體集,二維表中的每一行稱為一個元組(記錄),每一列稱為一個屬性(數(shù)據(jù)項),元組的屬性稱為分量,列中所有可能的值稱為域。表的數(shù)據(jù)結(jié)構(gòu)稱為關(guān)系模式,表的名稱就是關(guān)系名稱,一般表示為關(guān)系名(屬性1,屬性2,......,屬性n)?;拘g(shù)語任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備1)關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系模型實例任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備關(guān)系模型采用的是規(guī)范化的二維表格,對二維表格是有要求的,不能隨意拼湊。首先,表格的列(屬性,數(shù)據(jù)項)類型必須相同,且必須是原子的,不能再分的,即不能表中套表。其次,表中的行(元組、記錄)不能重復(fù),即不存在相同的記錄。再次,表中存在唯一的主關(guān)鍵字,用來唯一標(biāo)識該表格的記錄。1)關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、數(shù)據(jù)模型3.關(guān)系模型2)主鍵和外鍵關(guān)系模型中實體和實體之間聯(lián)系通過關(guān)系之間的同名屬性來實現(xiàn)。鍵(碼):如果在一個關(guān)系中存在唯一標(biāo)識一個實體的一個屬性或?qū)傩约Q為實體的鍵,它使得在該關(guān)系的中的兩個元組在該屬性上的值的組合都不同。主鍵(主碼):在一個關(guān)系的若干候選鍵中指定一個用來唯一標(biāo)識該關(guān)系的元組,則稱這個被指定的候選鍵稱為主關(guān)鍵字,或簡稱為主鍵、關(guān)鍵字、主碼。每一個關(guān)系都有并且只有一個主鍵,如果關(guān)系中存在多個候選鍵,通常用較小的屬性組合作為主鍵。外鍵或者外碼:設(shè)F是關(guān)系R的一個或一組屬性,K是關(guān)系S的主鍵。如果F與K相對應(yīng),則稱F是R的外鍵,并稱基本關(guān)系R為參照關(guān)系,基本關(guān)系S為被參照關(guān)系或目標(biāo)關(guān)系。利用外鍵建立實體間聯(lián)系。值得注意的是,外鍵的屬性名不一定要相同,但是表達(dá)的涵義和數(shù)據(jù)類型需要相同。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、數(shù)據(jù)模型3.關(guān)系模型3)關(guān)系操作關(guān)系操作分為查詢操作和更新操作兩部分。查詢操作是關(guān)系操作中最重要的部分,常用的關(guān)系操作包括:并、交、差、笛卡爾集(乘)、投影、選擇、連接、除等。數(shù)據(jù)操作是集合操作,操作的對象和操作的結(jié)果都是集合(關(guān)系),一次一集合。只要指出“做什么”,不必說明“怎么做”數(shù)據(jù)的獨立性好任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備3)關(guān)系操作關(guān)系數(shù)據(jù)庫語言可以分為三類:(1)關(guān)系代數(shù)語言。關(guān)系代數(shù)是通過對關(guān)系的運算來表達(dá)查詢需求的,是一種抽象語言,能作為評估實際查詢語言能力的標(biāo)準(zhǔn)或基礎(chǔ)。(2)關(guān)系演算語言。關(guān)系演算是用謂詞表達(dá)查詢需求的一種方式,根據(jù)謂詞參數(shù)的基本對象是元組變量還是域變量,可以分為元組關(guān)系演算和域關(guān)系演算。關(guān)系代數(shù)、元組關(guān)系演算和域關(guān)系演算在表達(dá)能力上是完全等價的。(3)SQL語言。SQL語言具有關(guān)系代數(shù)和關(guān)系演算雙重特點,是一種高度非過程化的語言,具有豐富的查詢功能。它集數(shù)據(jù)定義(DDL)、數(shù)據(jù)操縱(DML)和數(shù)據(jù)控制(DCL)功能于一體,是關(guān)系數(shù)據(jù)庫的國際標(biāo)準(zhǔn)語言。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、數(shù)據(jù)模型4)完整性規(guī)則關(guān)系模型的完整規(guī)則有三類:(1)實體完整性原則:主鍵不能為空,也不能重復(fù)。例如在學(xué)生(學(xué)號,姓名,性別,身份證號)關(guān)系中,學(xué)號不能為空,即不存在沒有學(xué)號的學(xué)生,同時,學(xué)號不也能重復(fù)。成績(學(xué)號,課程編號,成績)關(guān)系中,(學(xué)號,課程編號)不能為空,也不能重復(fù)。(2)引用性完整原則:如果屬性集K是關(guān)系模式S的主鍵,同時是關(guān)系模式R的外鍵,那么R中,K的取值只允許有兩種可能,或為空值,或等于S關(guān)系中某個主鍵值。例如成績(學(xué)號,課程編號,成績)關(guān)系中,學(xué)號只能來自學(xué)生關(guān)系,課程編號只能來自課程關(guān)系,否則會產(chǎn)生未知的學(xué)生的成績,或者莫名其妙的課程成績。(3)用戶定義的完整規(guī)則。例如性別只能有男、女兩種,年齡不能小于0等。3.關(guān)系模型任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、數(shù)據(jù)模型5)關(guān)系模式的形式化定義3.關(guān)系模型關(guān)系模式是一個五元組,記為R(U,D,DOM,F(xiàn))。其中,R為關(guān)系名,U為組成該關(guān)系模式的屬性名集合,D為屬性組U中屬性來自的域,DOM為屬性向域的映象集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系集合。簡記為R(U)或R(A1,A2,.,An)。例如課程(課程編號,課程名稱,學(xué)分,學(xué)時)關(guān)系模式:(1)課程為關(guān)系名(R)。(2)U={課程編號,課程名稱,學(xué)分,學(xué)時};(3)課程編號,課程名稱,學(xué)分,學(xué)時的值域分別為varchar(4),varchar(16),int4,int4。則D={varchar(4),varchar(16),int}。(4)屬性向域的映射關(guān)系(DOM)。DOM={dom(課程編號)=varchar(4),dom(課程名稱)=varchar(16),dom(學(xué)分)=dom(學(xué)時)=int}(5)屬性間的依賴關(guān)系(F)。F={課程編號-->課程名稱,課程編號-->學(xué)分,課程編號-->學(xué)時}課程關(guān)系模式表示為:課程(U,D,dom,F(xiàn))U{課程編號,課程名稱,學(xué)分,學(xué)時}D{varchar(4),varchar(16),int}DOM{dom(課程編號)=varchar(4),dom(課程名稱)=varchar(16),dom(學(xué)分)=dom(學(xué)時)=int}F{課程編號-->課程名稱,課程編號-->學(xué)分,課程編號-->學(xué)時}任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、數(shù)據(jù)模型關(guān)系模型的特征3.關(guān)系模型(1)關(guān)系以二維表的形式體現(xiàn),數(shù)據(jù)結(jié)構(gòu)簡單、清晰。(2)屬性(列)必須是原子的,同一屬性的類型必須相同,屬性無順序,但不能同名。(3)行(元組、記錄)不能重復(fù),行無順序。(4)滿足實體完整性原則,一個關(guān)系有且僅有一個主關(guān)鍵字,主關(guān)鍵字不能為空或者重復(fù)。(5)滿足引用性完整原則,如果屬性集K是關(guān)系模式S的主鍵,同時是關(guān)系模式R的外鍵,那么R中,K的取值只允許有兩種可能,或為空值,或等于S關(guān)系中某個主鍵值。關(guān)系模型理論體系嚴(yán)謹(jǐn);數(shù)據(jù)結(jié)構(gòu)簡單、清晰;數(shù)據(jù)存取路徑對用戶是透明的(用戶只管做什么,不管怎么做),數(shù)據(jù)獨立性更高,安全性更好,數(shù)據(jù)更容易維護(hù);數(shù)據(jù)庫開發(fā)更加簡單。目前,絕大部分?jǐn)?shù)據(jù)庫都采用關(guān)系模型。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備四、數(shù)據(jù)庫三級模式與二級映射1.數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)1)外模式外模式(ExternalSchema)也稱子模式或用戶模式,對應(yīng)于用戶級。是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖。2)模式模式(Schema)也稱邏輯模式或概念模式,對應(yīng)于概念級,又稱為DBA視圖。一個數(shù)據(jù)庫只有一個模式。3)內(nèi)模式內(nèi)模式(InternalSchema)又稱數(shù)據(jù)庫的物理模式,也稱存儲模式,對應(yīng)于物理級。內(nèi)模式依賴于模式,但獨立于外模式,也獨立于具體的存儲設(shè)備。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備1)外模式/模式映射對于每個外模式,數(shù)據(jù)庫系統(tǒng)都有一個外模式/模式映射,它定義了該外模式與模式之間的對應(yīng)關(guān)系,這些映射定義通常包含在各自外模式的描述中。當(dāng)模式改變時,由數(shù)據(jù)庫管理員對各個外模式/模式映射做相應(yīng)改變,可以使外模式保持不變。應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨立性,簡稱為數(shù)據(jù)邏輯獨立性。2)模式/內(nèi)模式映射數(shù)據(jù)庫中模式/內(nèi)模式映射是唯一的,它定義了數(shù)據(jù)庫全局邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)之間的對應(yīng)關(guān)系,該映射定義通常包含在模式描述中。當(dāng)數(shù)據(jù)庫的存儲結(jié)構(gòu)改變了,由數(shù)據(jù)庫管理員對模式/內(nèi)模式映射做相應(yīng)改變,可以使模式保持不變,保證了數(shù)據(jù)與程序的物理獨立性,簡稱為數(shù)據(jù)物理獨立性。優(yōu)點:(1)數(shù)據(jù)庫系統(tǒng)的三級模式是對數(shù)據(jù)的三個抽象級別,它把數(shù)據(jù)的具體組織留給DBMS管理,使用戶能邏輯抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計算機(jī)中的表示和存儲。(2)數(shù)據(jù)庫管理系統(tǒng)在這三級模式之間提供了兩級映射:外模式/模式映射和模式/內(nèi)模式映射。這兩級映射保證了數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)能夠具有較高的邏輯獨立性和物理獨立性。(3)數(shù)據(jù)和程序之間的獨立性使得數(shù)據(jù)的定義和描述可以從應(yīng)用程序中分離出去。另外,由于數(shù)據(jù)的存取由DBMS管理,因此用戶不必考慮存取路徑等細(xì)節(jié),從而簡化了應(yīng)用程序的編制,大大減少了應(yīng)用程序的維護(hù)和修改開銷。四、數(shù)據(jù)庫三級模式與二級映射2.數(shù)據(jù)庫的二級映射任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備五、MySQL簡介1.MySQL的現(xiàn)狀MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),其歷史可以追溯到1979年,瑞典程序員MontyWidenius的開發(fā)的很底層的且僅面向報表的Unire存儲引擎。幾經(jīng)發(fā)展,2000年Monty成立了MySQLAB公司,并將MySQL源代碼公開,采用GPL許可協(xié)議。2008年1月,MySQLAB公司被Sun公司以10億美金收購,2009年4月,Oracle公司收購Sun公司,自此MySQL歸屬于Oracle公司。MySQL軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版。MySQL產(chǎn)品和版本較多。就數(shù)據(jù)庫服務(wù)程序而言,有五個產(chǎn)品:(1)MySQLDatabaseService,提供數(shù)據(jù)庫云服務(wù)。(2)MySQLCommunityServer,社區(qū)版本,開源免費,不提供官方技術(shù)支持。(3)MySQLEnterpriseEdition,企業(yè)版本,需付費,可以試用30天。(4)MySQLCluster,集群版,開源免費。(5)MySQLClusterCGE,高級集群版,需付費。MySQL版本已經(jīng)更新到8.0,但市場主流都還是使用的5.5/5.6/5.7版本。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備五、MySQL簡介2.MySQL的特點MySQL是一個單進(jìn)程多線程架構(gòu)的小型數(shù)據(jù)庫,MySQL數(shù)據(jù)庫具有以下特性:(1)良好的可移植性。使用C和C++編寫,并使用多種編譯器進(jìn)行測試,具有良好的源代碼的可移植性;為C、C++、Python、Java、Perl、PHP等多種編程語言提供了API。(2)多操作系統(tǒng)支持。支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多種操作系統(tǒng)。(3)體積小,運行速度快。支持多線程,充分利用CPU資源;可以處理擁有上千萬條記錄的大型數(shù)據(jù)。(4)部署靈活。既能夠作為獨立數(shù)據(jù)庫服務(wù)器,也能夠作為一個庫而嵌入其他的軟件中。(5)支持多種存儲引擎。采用插入式存儲引擎架構(gòu),支持在同一服務(wù)器上對每一個表使用不同的存儲引擎,可最大限度發(fā)揮靈活性。(6)支持大數(shù)據(jù)。對InnoDB進(jìn)行NoSQL訪問,可快速完成鍵值操作以及快速提取數(shù)據(jù)來完成大數(shù)據(jù)部署。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備五、MySQL簡介3.MySQL數(shù)據(jù)庫存儲引擎MySQL的最大是特色采用插入式存儲引擎架構(gòu),支持在同一服務(wù)器上對每一個表使用不同的存儲引擎。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備五、MySQL簡介3.MySQL數(shù)據(jù)庫存儲引擎MySQL查看服務(wù)器支持的存儲引擎的語句為:showengines;MySQL支持在同一服務(wù)器上對每一個表使用不同的存儲引擎。查看表的默認(rèn)工作引擎語句為:SHOWCREATETABLE<表名>;修改表的默認(rèn)工作引擎語句為:ALTERTABLE<表名>ENGINE=<存儲引擎名>;MySQL修改服務(wù)器的默認(rèn)存儲引擎的方法為:在f配置文件的[mysqld]后面加入:“default-storage-engine=存儲引擎名稱”。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備五、MySQL簡介3.MySQL數(shù)據(jù)庫存儲引擎InnoDB是MySQL中比較優(yōu)秀的數(shù)據(jù)存儲引擎。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1安裝和配置MySQL1、下載MySQL安裝文件。2、啟動MySQL安裝。3、選擇安裝類型。4、安裝環(huán)境檢查。5、配置MySQL服務(wù)器。6、配置數(shù)據(jù)庫用戶。7、設(shè)置Windows服務(wù)。8、設(shè)置插件與擴(kuò)展。9、高級設(shè)置。10、應(yīng)用設(shè)置。11、登錄測試。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2連接MySQL服務(wù)器1.使用命令行客戶端登錄MySQL服務(wù)器命令行命令如下:MySQL-hhost-Pport-uusername-ppassword相關(guān)參數(shù)說明如下:-hhost指服務(wù)器主機(jī)名,一般用IP地址,如果是連接本機(jī)可以省略,也可以用-h或者-hlocalhost替代。-PportP是大寫,指服務(wù)器端口,如果是默認(rèn)端口3306,則可以省略,否則應(yīng)當(dāng)明確指定。-uusername指用戶名。-ppasswordp是小寫,指密碼。注意-p和密碼之間不能有空格,否則需要重新輸入密碼。具體操作如下:(1)在開始菜單中找到并打開cmd命令行程序。執(zhí)行“cdC:\ProgramFiles\MySQL\MySQLServer5.7\bin\”,將當(dāng)前路徑切換到MySQL安裝文件夾\bin下面。*注意*Windows下可以將MySQL執(zhí)行文件目錄加入到環(huán)境變量path中以方便使用。(2)連接到服務(wù)器。執(zhí)行下列語句連接到服務(wù)器:
MySQL-uroot-p(3)斷開服務(wù)器。在MySQL命令行提示符下輸入“\q”或“quit”退出服務(wù)器。(4)使用更多的參數(shù)連接服務(wù)器。執(zhí)行下列語句進(jìn)入服務(wù)器。
MySQL-P3306-uroot-p
MySQL-h-P3306-uroot-p
MySQL-h-P3306-uroot-p123456
MySQL-hlocalhost-P3306-uroot-p123456(5)直接以root身份登錄服務(wù)器。選擇開始菜單“開始->程序->MySQL->MySQLServer5.7->MySQL5.7CommandLineClient”命令,直接已root身份登錄服務(wù)器。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2連接MySQL服務(wù)器2.使用Navicat登錄MySQL1、新建連接2、輸入各項信息3、建立連接*需要向數(shù)據(jù)庫管理員詢問各項信息任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3初次感受MySQL1.瀏覽MySQL數(shù)據(jù)庫對象sakila數(shù)據(jù)庫中的表、視圖任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3初次感受MySQL2.瀏覽MySQL程序文件進(jìn)入“C:\ProgramFiles(x86)\MySQL”文件夾,依次瀏覽MySQL主文件夾、MySQLServer5.7文件夾、bin文件夾,查看MySQL各類程序文件,并職稱其用途。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3初次感受MySQL3.瀏覽MySQL數(shù)據(jù)文件MySQL數(shù)據(jù)文件主目錄任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3初次感受MySQL3.瀏覽MySQL數(shù)據(jù)文件sakila數(shù)據(jù)庫數(shù)據(jù)文件夾THANKYOU項目二MySQL數(shù)據(jù)類型目錄頁任務(wù)實施任務(wù)準(zhǔn)備熟悉數(shù)值類型熟悉日期時間類型熟悉字符串類型010203
MySQL數(shù)據(jù)類型簡介01
數(shù)值數(shù)據(jù)類型02
日期和時間數(shù)據(jù)類型03
字符串?dāng)?shù)據(jù)類型04
MySQL數(shù)據(jù)類型的選擇05如何選取數(shù)據(jù)類型04任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備1.MySQL數(shù)據(jù)類型簡介數(shù)據(jù)類型(data_type)是指系統(tǒng)中所允許的數(shù)據(jù)的類型。數(shù)據(jù)類型確定了數(shù)據(jù)的解釋方式,對應(yīng)著MySQL在內(nèi)存或磁盤上開辟存儲空間的大小和存儲的規(guī)則,以及訪問、顯示、更新數(shù)據(jù)的方式。MySQL的數(shù)據(jù)類型可以分為五大類:數(shù)值數(shù)據(jù)類型、日期和時間類型、字符串類型、空間類型、Json類型等,前三類為基本數(shù)據(jù)類型,后兩類為復(fù)合數(shù)據(jù)類型,其中字符串類型又可分為文本字符串和二進(jìn)制字符串。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備1.MySQL數(shù)據(jù)類型簡介通常情況下,由列內(nèi)數(shù)據(jù)的內(nèi)容確定該列的數(shù)據(jù)類型CREATETABLE`會員表`(`會員id`int(4)UNSIGNED
NOTNULLAUTO_INCREMENT,`會員編號`char(8),`會員昵稱`varchar(20),`生日`date,`頭像`blob,`會員簡介`text,`首充金額`decimal(12,2),`創(chuàng)建時間`timestamp(3),PRIMARYKEY(`會員id`))任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備2.數(shù)值數(shù)據(jù)類型MySQL支持所有標(biāo)準(zhǔn)SQL數(shù)值數(shù)據(jù)類型,包括:整數(shù)類型、浮點數(shù)類型和定點數(shù)類型。整數(shù)類型包括tinyint、smallint、mediumint、int、bigint,浮點數(shù)類型包括float和double,定點數(shù)類型為decimal。數(shù)據(jù)類型又可以分為嚴(yán)格數(shù)值數(shù)據(jù)類型(tinyint、smallint、mediumint、int、bigint和decimal)和近似數(shù)值數(shù)據(jù)類型(float、double)。MySQL數(shù)值常量可以分為整數(shù)、定點數(shù)和近似數(shù)值數(shù)據(jù),整數(shù)用數(shù)字表示,定點數(shù)以帶小數(shù)點的數(shù)字表示,近似數(shù)值數(shù)據(jù)以科學(xué)記數(shù)法表示。例如:1、3、5,3.0、.5、-6.78,1.2E3、1.2E-3、-1.2E0等。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備2.數(shù)值數(shù)據(jù)類型MySQL的整數(shù)類型包括tinyint、smallint、mediumint、int、和integer是同義詞。整數(shù)類型的定義形式為:類型[(M)][UNSIGNED|SIGNED][ZEROFILL]
int(4);bigint(25)UNSIGNEDZEROFILL;int等都是定義整型的語法。1)整數(shù)類型任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備2.數(shù)值數(shù)據(jù)類型在整數(shù)類型中,[(M)]指定顯示寬度。顯示寬度是指如果數(shù)值的位數(shù)小于M,則在數(shù)值在左側(cè)用'0'或空格補(bǔ)齊,如果數(shù)值的位數(shù)大于等于M,則顯示數(shù)值的本身。例如定義一個列為int(5)ZEROFILL,當(dāng)列的值為3時,則顯示值為00003,當(dāng)列值為7483647時,則顯示數(shù)值的本身即7483647。如果不指定(M),則系統(tǒng)為每一種類型指定默認(rèn)的寬度值。[UNSIGNED|SIGNED]參數(shù)表示是否為無符號數(shù),缺省值是有符號的,所以通常省略SIGNED。[ZEROFILL]指定顯示寬度的補(bǔ)齊方式。表示如果位數(shù)不足,則用前導(dǎo)0補(bǔ)足,否則用空格補(bǔ)足。如果使用了ZEROFILL參數(shù),則系統(tǒng)會自動給這一列加上UNSIGNED屬性;ZEROFILL在表達(dá)式中和Union查詢時不會生效。1)整數(shù)類型任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備2.數(shù)值數(shù)據(jù)類型BIT數(shù)據(jù)類型也可以看成是特殊的整數(shù)。BIT類型的定義形式為BIT[(M)],M表示位數(shù),可以從1到64,如果為1位則M可以省略。bit數(shù)據(jù)可以用二進(jìn)制數(shù)如b’00101’字賦值,也可直接用其他數(shù)字如十進(jìn)制5賦值。1)整數(shù)類型BOOL(BOOLEAN)數(shù)據(jù)類型是TINYINT(1)的同義詞,0表示FALSE,非零表示TRUE。例如而IF(2,'true','false')返回的結(jié)果為真。邏輯常量TRUE和FALSE是1和0的別名,注意2=TRUE的結(jié)果為假。SERIAL類型表示自動增長類型,它是BIGINTUNSIGNEDNOTNULLAUTO_INCREMENTUNIQUE的別名。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備2.數(shù)值數(shù)據(jù)類型MySQL中小數(shù)分為浮點數(shù)和定點數(shù)。浮點類型又分兩種,分別是單精度浮點數(shù)(FLOAT)和雙精度浮點數(shù)(DOUBLE);定點類型只有一種,就是DECIMAL。(1)定點類型定點類型定義形式為:DECIMAL[(M[,D])][UNSIGNED][ZEROFILL]M表示總長度(不包括負(fù)號和小數(shù)點),D表示小數(shù)部分的長度,M的最大值為65,D的最大值為30,且不大于M;M的默認(rèn)值為10、D的默認(rèn)值為0。DECIMAL的存儲長度取決于(M,D),它是按二進(jìn)制的形式存儲的。DECIMAL是精確數(shù)值數(shù)據(jù),適用于貨幣數(shù)據(jù)等需要精確數(shù)值的場景。2)小數(shù)類型DEC[(M[,D])][UNSIGNED][ZEROFILL],NUMERIC[(M[,D])][UNSIGNED][ZEROFILL],F(xiàn)IXED[(M[,D])][UNSIGNED][ZEROFILL]都是DECIMAL的同義詞。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備2.數(shù)值數(shù)據(jù)類型(2)浮點類型聲明浮點類型定義的語法為:FLOAT[(M,D)][UNSIGNED][ZEROFILL]FLOAT(p)[UNSIGNED][ZEROFILL]DOUBLE[(M,D)][UNSIGNED][ZEROFILL]其中M稱為精度,表示總共的位數(shù);D稱為標(biāo)度,表示小數(shù)的位數(shù)。浮點數(shù)類型的取值范圍為M(1~255)和D(1~30,且不能大于M-2),分別表示顯示寬度和小數(shù)位數(shù)。2)小數(shù)類型FLOAT類型大小為4個字節(jié),理論上取值范圍為-3.402823466E+38~-1.175494351E-38,0,1.175494351E-38~3.402823466E+38,大致相當(dāng)于7位數(shù)的DECIMAL。實際取值范圍取決于系統(tǒng)和硬件。FLOAT(p)是為ODBC兼容性提供的語法。p表示以位為單位的精度,如果p是從0到24,則按FLOAT數(shù)據(jù)類型處理。如果p是從25到53,按DOUBLE數(shù)據(jù)類型處理。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備2.數(shù)值數(shù)據(jù)類型(2)浮點類型DOUBLE類型大小為8個字節(jié),理論上取值范圍為-1.7976931348623157E+308~-2.2250738585072014E-308,0,2.2250738585072014E-308~1.7976931348623157E+308,大致相當(dāng)于15位數(shù)的DECIMAL。實際取值范圍取決于系統(tǒng)和硬件。DOUBLEPRECISION[(M,D)][UNSIGNED][ZEROFILL],REAL[(M,D)][UNSIGNED][ZEROFILL]是DOUBLE的同義詞。REAL的類型受REAL_AS_FLOAT的值影響,如果REAL_AS_FLOAT=1,則REAL表示為FLOAT。2)小數(shù)類型任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備2.數(shù)值數(shù)據(jù)類型(2)浮點類型FLOAT類型大小為4個字節(jié),理論上取值范圍為-3.402823466E+38~-1.175494351E-38,0,1.175494351E-38~3.402823466E+38,大致相當(dāng)于7位數(shù)的DECIMAL。實際取值范圍取決于系統(tǒng)和硬件。FLOAT(p)是為ODBC兼容性提供的語法。p表示以位為單位的精度,如果p是從0到24,則按FLOAT數(shù)據(jù)類型處理。如果p是從25到53,按DOUBLE數(shù)據(jù)類型處理。MySQL在存儲值時執(zhí)行四舍五入,例如一個列被定義為FLOAT(7,4),如果將999.00009插入這個列,則存儲的結(jié)果為999.0001。浮點值受平臺或?qū)崿F(xiàn)依賴性的影響,浮點型數(shù)據(jù)比較大小可能會出現(xiàn)問題。進(jìn)行浮點數(shù)比較的正確方法是首先確定數(shù)字之間差異的可接受容差,然后與容差值進(jìn)行比較。例如,如果我們同意浮點數(shù)在萬分之一(0.0001)的精度內(nèi)相同時應(yīng)視為相同。整數(shù)類型定義為UNSIGNED(無符號)時,域值范圍會發(fā)生變化,但浮點數(shù)定義為UNSIGNED時,列值上限范圍不會變更,但不允許插入負(fù)值。浮點型數(shù)據(jù)也可以為自動增長類型。2)小數(shù)類型任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備3.日期和時間數(shù)據(jù)類型日期和時間數(shù)據(jù)類型用于表示時間值,有DATE,TIME,DATETIME,TIMESTAMP和YEAR等五種類型。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備4.字符串?dāng)?shù)據(jù)類型字符串?dāng)?shù)據(jù)類型有CHAR,VARCHAR,BINARY,VARBINARY,BLOB,TEXT,ENUM和SET字符串類型又可分為文本字符串(CHAR、VARCHAR和TEXT)和二進(jìn)制字符串(BINARY、VARBINARY和BLOB類型),二進(jìn)制字符串也稱為字節(jié)字符串,文本字符串用來存儲字符串?dāng)?shù)據(jù),二進(jìn)制字符串用來存儲圖片和聲音等二進(jìn)制數(shù)據(jù)。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備4.字符串?dāng)?shù)據(jù)類型在MySQL中,除了常見的字符之外,我們還會遇到一些特殊的字符,如換行符、回車符等。這些符號無法用字符來表示,因此需要使用某些特殊的字符來表示特殊的含義,這些字符就是轉(zhuǎn)義字符。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備4.字符串?dāng)?shù)據(jù)類型ENUM類型ENUM是一個字符串對象,存儲的值為表創(chuàng)建時列規(guī)定中枚舉的一個值。其定義形式如下:<字段名>ENUM('值1','值2',…,'值n')例如,某會員表中的會員級別有“青銅會員”、“白銀會員”、“鉑金會員”等,則可建立ENUM類型的字段。字段定義為:
'會員級別'ENUM('青銅會員','白銀會員','鉑金會員')任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備4.字符串?dāng)?shù)據(jù)類型SET類型SET是一個字符串的對象,可以有零或多個值,SET列最多可以有64個成員,值為表創(chuàng)建時規(guī)定的一列值。定義形式如下:SET('值1','值2',…,'值n')例如,會員標(biāo)簽字段有下列值:“1、善良2、低調(diào)3、摯友4、處事灑脫5、短發(fā)6、混頭7、文字8、可愛9、猶豫不決10、正義正直11、睿智12、孤獨13、傷感”等等。則字段的定義為:'會員標(biāo)簽'set('善良','低調(diào)','摯友','處事灑脫'...)SET是集合行為,可存儲多個值,各值之間用逗號隔開,如(1,4,6)(1,2,5)等。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備5.MySQL數(shù)據(jù)類型的選擇數(shù)據(jù)類型選取原則:
(1)每一列選用的數(shù)據(jù)類型要盡可能小和盡可能簡單。因為這樣可以用更少的磁盤、內(nèi)容、CPU緩存,大大減少IO開銷。
(2)數(shù)型值的要考慮域值范圍,盡可能剛好滿足。
(3)字符串類型是通用的數(shù)據(jù)類型,任何內(nèi)容都可以保存在字符串中,數(shù)字和日期都可以表示成字符串形式。一般情況下,數(shù)值類型性能優(yōu)于字符串類型,因此在數(shù)值類型性和字符串類型都可以的情況下優(yōu)先選擇數(shù)值類型。
(4)對于學(xué)號、電話號碼、信用卡號和社會保險號最好使用字符串。這些數(shù)字實際上都不是用來計算的,使用字符可以避免丟失開頭的'0'。
(5)MySQL提供日期和時間數(shù)據(jù)類型比較豐富,數(shù)據(jù)類型可以依據(jù)需要盡可能小和盡可能簡單。要注意TIMESTAMP列的取值范圍小于DATETIME的取值范圍。
(6)如果某個字符串列的值是某種固定集合,那么可以考慮使用數(shù)據(jù)類型ENUM或SET。
(7)數(shù)據(jù)類型的選擇還應(yīng)該考慮數(shù)據(jù)操作和應(yīng)用處理的要求,比如數(shù)型類型更適合于加快數(shù)據(jù)操作。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1熟悉MySQL數(shù)值類型1.使用數(shù)字表示bool類型數(shù)據(jù)執(zhí)行下列語句:1、selectif(0,'true','false');2、selectif(1,'true','false');3、selectif(2,'true','false');4、selectif(0=FALSE,'true','false');5、selectif(1=TRUE,'true','false'),if(2=TRUE,'true','false');觀察輸出結(jié)果。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1熟悉MySQL數(shù)值類型2.定點和浮點數(shù)計算(1)計算表達(dá)式.1E0,.2E0,.3E0,(.1e0+.2E0)(2)計算表達(dá)式(.1+.2),(.1E0+.2E0),(.1+.2E0)(3)計算表達(dá)式(.1+.2)=.3,(.1E0+.2E0)=.3E0(4)計算表達(dá)式abs((.1E0+.2E0)-.3E0)<0.00001任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備2.定點和浮點數(shù)計算(5)設(shè)sakila庫有以下存儲過程p,它向DECIMAL類型變量d和float類型變量f累加1,000次0.0001。CREATEPROCEDUREp()BEGINDECLAREiINTDEFAULT0;DECLAREdDECIMAL(10,4)DEFAULT0;DECLAREfFLOATDEFAULT0;WHILEi<10000DOSETd=d+.0001;SETf=f+.0001E0;SETi=i+1;ENDWHILE;SELECTd,f;END;運行結(jié)果如下:mysql>usesakila;--切換到sakila數(shù)據(jù)庫mysql>callp;--執(zhí)行存儲過程p+-----------+------------+|d|f|+----------+-------------+|1.0000|1.00005|+-----------+-----------+1rowinset(0.07sec)QueryOK,0rowsaffected(0.07sec)任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2熟悉MySQL日期時間類型1.使用日期時間類型字段設(shè)會員表中有關(guān)日期時間的字段定義如表3-10所示,在MySQl中創(chuàng)建該表并錄入部分記錄。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2熟悉MySQL日期時間類型1.使用日期時間類型字段(1)使用命令行客戶端登陸MySQL服務(wù)器。選擇開始菜單“開始->程序->MySQL->MySQLServer5.7->MySQL5.7CommandLineClient”命令,輸入密碼登陸服務(wù)器。(2)執(zhí)行語句:usesakila;打開數(shù)據(jù)庫sakila。mysql>usesakila;Databasechanged(3)執(zhí)行建表SQL語句,設(shè)表名為會員表_DateTime:mysql>CREATETABLE`sakila`.`會員表_DateTime`(->`id`int(0)UNSIGNEDNOTNULLAUTO_INCREMENT,->`會員生日`dateNULLDEFAULTNULL,->`游戲時長`time(0)NULLDEFAULT0,->`注冊時間`datetime(0)NOTNULL,->`最后修改時間`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,->PRIMARYKEY(`id`)->);執(zhí)行過程如下:任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2熟悉MySQL日期時間類型1.使用日期時間類型字段(4)查看會員表_DateTime。mysql>showtableslike'會%';執(zhí)行過程如下:(5)插入數(shù)據(jù):mysql>INSERTINTO`會員表_datetime`VALUES(1,'1990-07-27','00:00:00','2021-07-2700:04:24','2021-07-2700:04:30');mysql>INSERTINTO`會員表_datetime`(會員生日,游戲時長,注冊時間)VALUES('2007-09-12','10:00:00','2021-07-2700:04:24');(6)查看數(shù)據(jù):mysql>select*from會員表_datetime;任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2熟悉MySQL日期時間類型2.日期時間類型計算(1)datetime,timestamp向date類型隱式轉(zhuǎn)換時會根據(jù)秒后的小數(shù)位四舍五入。例如'1999-12-3123:59:59.499'結(jié)果是'1999-12-31',而'1999-12-3123:59:59.500'則是'2000-01-01',但如果是顯式轉(zhuǎn)換則是直接舍棄時間部分。mysql>selectcast('1999-12-3123:59:59.499'asdate);(2)將日期時間類型轉(zhuǎn)換為數(shù)字類型。這里展示了直接加0的結(jié)果,如果日期時間類型不包含小數(shù),則將它直接轉(zhuǎn)換為整數(shù),否則轉(zhuǎn)換為decimal類型,再進(jìn)行加零運算。mysql>SELECTCURTIME(),CURTIME()+0,CURTIME(3)+0;任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3熟悉MySQL字符串類型1.CHAR、VARCHAR對比CHAR類型的字段在存儲過程中會在尾部添加空格達(dá)到指定長度,但是在讀取記錄時丟掉尾部空格,不區(qū)分這些空格是手工輸入的還是系統(tǒng)自動添加的;VARCHAR則會保留手工輸入的空格。(1)準(zhǔn)備實驗表。
mysql>CREATETABLEnames(mynameCHAR(10));mysql>INSERTINTOnamesVALUES('Jones');(2)查看結(jié)果。mysql>SELECTmyname='Jones',myname='Jones'FROMnames;--'Jones'在比較時忽略掉尾部空格,成為'Jones',所以myname='Jonesmysql>SELECTmynameLIKE'Jones',mynameLIKE'Jones'FROMnames;--LIKE不會忽略尾部空格,myname='Jones',mynameLIKE'Jones'的結(jié)果為假。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3熟悉MySQL字符串類型2.字符串比較時尾部空格處理CHAR、VARCHAR和TEXT類型在比較時(指"="、"!=")會忽略尾部空格,但LIKE不會忽略尾部空格,驗證過程如下。(1)使用命令行客戶端登陸MySQL服務(wù)器。選擇開始菜單“開始->程序->MySQL->MySQLServer5.7->MySQL5.7CommandLineClient”命令,輸入密碼登陸服務(wù)器。(2)創(chuàng)建表vc,表中包含2列,v的數(shù)據(jù)類型為VARCHAR(4),c列的數(shù)據(jù)類型為CHAR(4)。mysql>usesakila;--切換數(shù)據(jù)庫sakilaDatabasechangedmysql>CREATETABLEvc(vVARCHAR(4),cCHAR(4));QueryOK,0rowsaffected(0.06sec)(3)兩列都插入值'ab'。mysql>INSERTINTOvcVALUES('ab','ab');QueryOK,1rowaffected(0.04sec)(4)查看結(jié)果,VARCHAR類型尾部空格保留,CHAR類型尾部空格被丟棄。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3熟悉MySQL字符串類型3.字符串長度計算CHAR_LENGTH以字符為單位返回字符串的長度,多字節(jié)字符算作單個字符。對于包含2個3字節(jié)字符的字符串,LENGTH()返回6,而CHAR_LENGTH()返回2。mysql>select("我們a"),("我們a");--字符集utf8中漢字是3個字節(jié),字符集gb2312中漢字是2個字節(jié)+-------------------+------------------------+|length("我們a")|CHAR_LENGTH("我們a")|+-------------------+------------------------+|7|3|+-------------------+------------------------+1rowinset(0.00sec)任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)4如何選取數(shù)據(jù)類型一個會員表的字段及其描述如表3-11所示。第三列、第四列是示例數(shù)據(jù),請為每一列選擇合適的數(shù)據(jù)類型,并使用圖形化管理工具Navicat完成該表。THANKYOU項目三
創(chuàng)建與管理數(shù)據(jù)庫及數(shù)據(jù)表目錄任務(wù)三創(chuàng)建和管理數(shù)據(jù)庫任務(wù)四數(shù)據(jù)庫設(shè)計任務(wù)五創(chuàng)建與管理數(shù)據(jù)庫表創(chuàng)建和管理數(shù)據(jù)庫任務(wù)實施任務(wù)準(zhǔn)備創(chuàng)建并查看數(shù)據(jù)庫管理數(shù)據(jù)庫0102
字符集以及字符序01
MySQL字符集的設(shè)置02MySQL存儲引擎03MySQL的常用命令04
SQL的簡單介紹05任務(wù)三任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、字符集以及字符序1.字符集任務(wù)三(1)字符(Character)是人類語言最小的表義符號(2)對每個字符賦予一個數(shù)值,用數(shù)值來代表對應(yīng)
的字符,這個數(shù)值就是字符的編碼(CharacterEncoding)。(3)給定一系列字符并賦予對應(yīng)的編碼后,所有這些“字符和編碼對”組成的集合就是字符集(CharacterSet)。每個國家的字符進(jìn)行編碼后就會形成相應(yīng)的字符集,一般用字符集的名稱代表字符集。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、字符集以及字符序2.字符序任務(wù)三(1)字符序(Collation)是指在同一字符集內(nèi)字符之間的比較規(guī)則??捎米址虻拿Q代表某字符序。(2)一個字符集包含多種字符序。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、字符集以及字符序3.MySQL的字符集與字符序任務(wù)三(1)MySQL由瑞典MySQLAB公司開發(fā),默認(rèn)情況下MySQL使用的是latin1字符集。(2)MySQL支持四十多種字符集。(3)使用MySQL命令“SHOWCHARACTERSET;”即可查看當(dāng)前MySQL服務(wù)實例支持的字符集、字符集默認(rèn)的字符序以及字符集占用的最大字節(jié)長度等信息。MySQL字符序命名規(guī)則:以字符序?qū)?yīng)的字符集名稱開頭,以國家名居中(或以general居中),以ci、cs或bin結(jié)尾。ci表示大小寫不敏感,cs表示大小寫敏感,bin表示按二進(jìn)制編碼值比較。(4)當(dāng)前MySQL服務(wù)實例使用的字符集主要是從七種場景對字符編碼進(jìn)行設(shè)定任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、MySQL字符集的設(shè)置1.改變字符集的方式任務(wù)三(1)通過修改my.ini配置文件,可修改MySQL默認(rèn)的字符集。(2)MySQL提供一些MySQL命令可以臨時修改MySQL當(dāng)前會話的字符集以及字符序。(3)使用MySQL命令“SETNAMESGBK;”可以臨時一次性地設(shè)置CHARACTER_SET_CLIENT、CHARACTER_SET_CONNECTION以及CHARACTER_SET_RESULTS的字符集。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、MySQL存儲引擎1.存儲引擎的含義及作用任務(wù)三數(shù)據(jù)庫存儲引擎是數(shù)據(jù)庫底層軟件組件,數(shù)據(jù)庫管理系統(tǒng)(DBMS)使用存儲引擎進(jìn)行創(chuàng)建、查詢、更新和刪除數(shù)據(jù)的操作。2.不同存儲引擎的差異不同的存儲引擎通過選擇合適的數(shù)據(jù)結(jié)構(gòu)、提供不同的存儲機(jī)制、索引技巧等,在實際應(yīng)用中表現(xiàn)出不同的數(shù)據(jù)處理效能。使用不同的存儲引擎,除了可以獲得常用數(shù)據(jù)操作功能外,還可以獲得某些特定功能。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、MySQL存儲引擎4.MySQL存儲引擎的選擇任務(wù)三InnoDB:支持事務(wù)處理,支持外鍵,支持崩潰修復(fù)能力和并發(fā)控制。如果需要對事務(wù)的完整性要求比較高(比如銀行),要求實現(xiàn)并發(fā)控制(比如售票),那選擇InnoDB有很大的優(yōu)勢。如果需要頻繁的更新、刪除操作的數(shù)據(jù)庫,也可以選擇InnoDB,因為支持事務(wù)的提交(Commit)和回滾(Rollback)。MyISAM:插入數(shù)據(jù)快,空間和內(nèi)存使用比較低。如果表主要是用于插入新記錄和讀出記錄,那么選擇MyISAM能實現(xiàn)處理高效率。如果應(yīng)用的完整性、并發(fā)性要求比較低,也可以使用。注意:同一個數(shù)據(jù)庫也可以使用多種存儲引擎的表。如果-一個表要求比較高的事務(wù)處理,可以選擇InnoDB。在這個數(shù)據(jù)庫中可以將查詢要求比較高的表選擇MyISAM存儲。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、MySQL存儲引擎3.MySQL常用存儲引擎任務(wù)三(1)InnoDB存儲引擎InnoDB給MySQL提供了具有提交、回滾和崩潰恢復(fù)能力的事務(wù)安全(ACID兼容)存儲引擎InnoDB是為處理巨大數(shù)據(jù)量的最大性能設(shè)計InnoDB存儲引擎完全與MySQL服務(wù)器整合InnoDB支持外鍵完整性約束(FOREIGNKEY)InnoDB被用在眾多需要高性能的大型數(shù)據(jù)庫站點上InnoDB是事務(wù)型數(shù)據(jù)庫的首選引擎,既支持事務(wù)安全表(ACID),也支持行鎖定和外鍵。MySQL5.5.5之后,InnoDB作為默認(rèn)存儲引擎。
InnoDB存儲引擎有如下特點:任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、MySQL存儲引擎3.MySQL常用存儲引擎任務(wù)三(2)MyISAM存儲引擎每個MylSAM表最大索引數(shù)是64,這可以通過重新編譯來改變。最大的鍵長度是1000B,這也可以通過編譯來改變。BLOB和TEXT列可以被索引每表一個AUTOJNCREMENT列的內(nèi)部處理可以把數(shù)據(jù)文件和索引文件放在不同目錄每個字符列可以有不同的字符集MyISAM基于ISAM的存儲引擎,并對其進(jìn)行擴(kuò)展。它是在Web、數(shù)據(jù)存儲和其他應(yīng)用環(huán)境下最常使用的存儲引擎之一。MyISAM擁有較高的插入、查詢速度,但不支持事務(wù)。在MySQL5.5.5之前的版本中,MyISAM是默認(rèn)存儲引擎。MyISAM主要特性有:任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備四、MySQL的常用命令任務(wù)三表3-1MySQL常用命令命令簡寫具體含義?\?顯示幫助信息clear\c清除當(dāng)前輸入語句connect\r連接到服務(wù)器,有可選參數(shù)delimiter\d設(shè)置語句分隔符exit\q退出MySQLgo\g發(fā)送命令到MySQL服務(wù)器help\h顯示幫助信息prompt\R改變MySQL服務(wù)器quit\q退出MySQLstatus\a從服務(wù)器獲取MySQL的狀態(tài)信息use\u切換當(dāng)前數(shù)據(jù)庫charset\C切換到另一個字符集任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備五、SQL的簡單介紹任務(wù)三SQL全稱是結(jié)構(gòu)化查詢語言,即StructuredQueryLanguage,是一種特殊的編程語言,是一種數(shù)據(jù)庫查詢和程序設(shè)計語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng),同時也是數(shù)據(jù)庫腳本文件的擴(kuò)展名。(1)數(shù)據(jù)查詢語言(DQL:DataQueryLanguage)保留字SELECT是DQL(也是所有SQL)用得最多的動詞,其他DQL常用的保留字有WHERE,ORDERBY,GROUPBY和HAVING。(2)數(shù)據(jù)操作語言(DML:DataManipulationLanguage)其語句包括動詞INSERT,UPDATE和DELETE。也稱為動作查詢語言。(3)數(shù)據(jù)控制語言(DCL)包括GRANT或REVOKE語句,它們分別授予或收回單個用戶和用戶組對數(shù)據(jù)庫對象的訪問權(quán)限。(4)數(shù)據(jù)定義語言(DDL)其語句包括動詞CREATE和DROP。在數(shù)據(jù)庫中創(chuàng)建新表或刪除表;為表加入索引等。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1創(chuàng)建并查看數(shù)據(jù)庫任務(wù)三1.前導(dǎo)知識(1)在命令行中使用命令語句創(chuàng)建MySQL數(shù)據(jù)庫的命令的語法格式是:CREATE<DATABASE|SCHEMA>[IFNOTEXISTS]<數(shù)據(jù)庫名稱>[CREATE_SPECIFICATION,...];(2)修改數(shù)據(jù)庫命令語句的語法格式是:ALTER<DATABASE|SCHEMA><數(shù)據(jù)庫名稱>[CREATE_SPECIFICATION,...];(3)刪除數(shù)據(jù)庫命令語句的語法格式為:DROP<DATABASE|SCHEMA>[IFNOTEXISTS]<數(shù)據(jù)庫名稱>;任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1創(chuàng)建并查看數(shù)據(jù)庫任務(wù)三2.任務(wù)內(nèi)容(1)創(chuàng)建一個名稱為”tsgl”的數(shù)據(jù)庫,并指定它的默認(rèn)字符集為gbk,排序規(guī)則設(shè)為gbk_chinese_ci。(2)查看數(shù)據(jù)庫創(chuàng)建是否成功。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1創(chuàng)建并查看數(shù)據(jù)庫任務(wù)三3.完成任務(wù)(1)啟動MySQL服務(wù)器并登錄;(2)在MySQL命令提示符后輸入以下命令語句并按”Enter”鍵執(zhí)行:createdatabaseifnotexiststsgldefaultcharsetgbkcollategbk_chinese_ci;(3)查看命令執(zhí)行的結(jié)果。上述命令執(zhí)行后,除了屏幕反饋的結(jié)果外,我們還可以通過輸入命令“SHOWDATABASES;”查看執(zhí)行結(jié)果。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2管理數(shù)據(jù)庫任務(wù)三1.前導(dǎo)知識在命令行中使用命令語句選擇當(dāng)前數(shù)據(jù)庫的語法格式是:USE數(shù)據(jù)庫名稱;USE命令語句在MySQL中用于指定某數(shù)據(jù)庫為當(dāng)前默認(rèn)數(shù)據(jù)庫,使后面的所有命令語句在選擇另外數(shù)據(jù)庫前都應(yīng)用與當(dāng)前默認(rèn)數(shù)據(jù)庫的操作,直到退出數(shù)據(jù)庫操作,如果再次進(jìn)入數(shù)據(jù)庫則又要重新選擇當(dāng)前默認(rèn)數(shù)據(jù)庫。USE命令語句也可以用作從一個數(shù)據(jù)庫切換到另一個數(shù)據(jù)庫。為了方便對某數(shù)據(jù)庫進(jìn)行操作,最好使該數(shù)據(jù)庫變?yōu)楫?dāng)前數(shù)據(jù)庫,此時可以使用USE命令。(1)改變當(dāng)前數(shù)據(jù)庫任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2管理數(shù)據(jù)庫任務(wù)三1.前導(dǎo)知識使用DOS命令在提示符狀態(tài)下進(jìn)行。其命令語句的語法格式如下所示:MYSQLDUMP–uusername–ppassword–databases<databaselist>
>備份文件名說明:-uusername:用戶名;-ppassword:密碼;-databases<databaselist>:需備份的數(shù)據(jù)庫名列表,數(shù)據(jù)庫名之間用空格分隔;如果只備份一個數(shù)據(jù)庫,可省略“-databases”,直接寫數(shù)據(jù)庫名即可,此時跟在數(shù)據(jù)庫名后的其他信息一般為表名。>備份文件名:此為管道輸出,將數(shù)據(jù)轉(zhuǎn)儲到備份文件中,完成備份。備份文件的擴(kuò)展名為sql。(2)備份數(shù)據(jù)庫任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2管理數(shù)據(jù)庫任務(wù)三2.任務(wù)內(nèi)容(1)修改數(shù)據(jù)庫tsgl的默認(rèn)字符集為“utf8”,排序規(guī)則為“utf8_general_ci”;(2)創(chuàng)建一個名為“xsgl”的數(shù)據(jù)庫并刪除;(3)備份數(shù)據(jù)庫”tsgl”。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2管理數(shù)據(jù)庫任務(wù)三3.完成任務(wù)(1)啟動MySQL服務(wù)器并登錄;(2)在MySQL命令提示符后輸入以下語句:USETSGL;SHOWCREATEDATABASETSGL;(3)在MySQL命令提示符后輸入以下命令語句,修改當(dāng)前數(shù)據(jù)庫的默認(rèn)字符集并再
次查看當(dāng)前數(shù)據(jù)庫的建庫信息。ALTERDATABASETSGLDEFAULTCHARSETUTF8COLLATEUTF8_GENERAL_CI;SHOWCREATEDATABASETSGL;任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2管理數(shù)據(jù)庫任務(wù)三3.完成任務(wù)(4)創(chuàng)建并刪除數(shù)據(jù)庫XSGL。在MySQL命令提示符后輸入以下命令語句,即可刪除數(shù)據(jù)庫“xsgl”。DROPDATABASEXSGL;(5)備份數(shù)據(jù)庫tsgl。備份數(shù)據(jù)庫tsgl只需在DOS命令提示符后輸入以下命令語句并按”Enter”執(zhí)行即可:MYSQLDUMP–uroot–pmydatatsgl>tsgl20210815.sql說明:此命令語句是外部命令,如果當(dāng)前路徑不是此命令文件所在文件夾,則需要配置運行參數(shù)PATH;備份文件存放的位置默認(rèn)為當(dāng)前路徑。④更改文字內(nèi)容小結(jié)任務(wù)三任務(wù)三創(chuàng)建與管理數(shù)據(jù)庫1、MySQL字符集2、MySQL存儲引擎3、MySQL常用命令4、SQL基礎(chǔ)5、創(chuàng)建與管理數(shù)據(jù)庫數(shù)據(jù)庫設(shè)計任務(wù)實施任務(wù)準(zhǔn)備需求分析繪制E-R圖確定數(shù)據(jù)模式010203
數(shù)據(jù)庫設(shè)計的特點01
數(shù)據(jù)庫設(shè)計方法簡述02
數(shù)據(jù)庫設(shè)計步驟03
實體-聯(lián)系圖04
規(guī)范化05任務(wù)四任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、數(shù)據(jù)庫設(shè)計的特點任務(wù)四數(shù)據(jù)庫設(shè)計和用戶的業(yè)務(wù)需求緊密相關(guān),是一項綜合性技術(shù)。“三分技術(shù),七分管理,十二分基礎(chǔ)數(shù)據(jù)”是數(shù)據(jù)庫建設(shè)的基本理念。數(shù)據(jù)庫設(shè)計有如下特點:(1)計算機(jī)的硬件、軟件和管理界面的結(jié)合。(2)數(shù)據(jù)庫設(shè)計和應(yīng)用設(shè)計要相結(jié)合。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、數(shù)據(jù)庫設(shè)計方法簡述任務(wù)四數(shù)據(jù)庫設(shè)計方法中,比較著名的有新奧爾良方法,該方法將數(shù)據(jù)庫設(shè)計分為4個階段進(jìn)行:需求分析(分析用戶需求)、概念結(jié)構(gòu)設(shè)計(信息分析和定義)、邏輯結(jié)構(gòu)設(shè)計(數(shù)據(jù)模式確定)和物理結(jié)構(gòu)設(shè)計(物理數(shù)據(jù)庫設(shè)計,包括存儲模式等)。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、數(shù)據(jù)庫設(shè)計步驟任務(wù)四(1)需求分析階段本階段的主要工作是:通過需求收集和分析,得到數(shù)據(jù)字典描述的數(shù)據(jù)需求,即要實現(xiàn)系統(tǒng)功能所需的數(shù)據(jù)支撐。因為功能的實現(xiàn)都是以數(shù)據(jù)為基礎(chǔ)的,沒有數(shù)據(jù)作為支撐,就無法實現(xiàn)相應(yīng)的功能。(2)概念結(jié)構(gòu)設(shè)計階段通過對用戶需求進(jìn)行綜合、歸納與抽象,形成一個獨立于DBMS的概念模型,一般用E-R圖描述。(3)邏輯結(jié)構(gòu)設(shè)計階段將概念結(jié)構(gòu)轉(zhuǎn)換為某個DBMS所支持的數(shù)據(jù)模型(例如關(guān)系模型),并對其進(jìn)行優(yōu)化。數(shù)據(jù)庫設(shè)計的三個關(guān)鍵步驟任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備四、實體-聯(lián)系圖任務(wù)四實體-聯(lián)系圖即E-R圖。其中實體往往是對客觀世界中靜態(tài)事物的抽象,例如在圖書管理系統(tǒng)中,圖書、借閱者等可以抽象為實體。在計算機(jī)世界中,通過收集實體的屬性對實體進(jìn)行描述。屬性是描述對象特征的數(shù)據(jù)項,如用于描述圖書的圖書編號、圖書名稱、封面圖片等數(shù)據(jù)項就是用于描述圖書的屬性。1.實體2.聯(lián)系聯(lián)系則是在某些業(yè)務(wù)辦理過程中,實體與實體之間產(chǎn)生的關(guān)聯(lián)。在圖書管理系統(tǒng)中,當(dāng)借閱者到圖書館辦理借書手續(xù)時,圖書與借閱者之間便產(chǎn)生了關(guān)聯(lián)。這種關(guān)聯(lián)也可以通過某些形式進(jìn)行描述,如用關(guān)系模式描述借閱者與圖書之間的關(guān)聯(lián)。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備四、實體-聯(lián)系圖任務(wù)四3.實體-聯(lián)系圖在E-R圖中一般用矩形框表示實體,橢圓框表示屬性,菱形表示聯(lián)系,線上書寫的符號1、n、m表示聯(lián)系類型。聯(lián)系類型有三種:一對一(1:N)、一對多(1:N)、多對多(N:M)。Borrowers與books的聯(lián)系任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備五、規(guī)范化任務(wù)四規(guī)范化有許多層次,對關(guān)系最基本的要求是每個屬性值必須是不可分割的數(shù)據(jù)單元,即表中不能再包含表。滿足一定條件的關(guān)系模式,稱為范式(NormalForm)。范式就是某一種級別的關(guān)系模式的集合,稱某一關(guān)系模式R為第n范式,就表示該關(guān)系的級別。一個低級范式的關(guān)系模式,通過分解(投影)方法可轉(zhuǎn)換成多個高一級范式的關(guān)系模式的集合,這種過程稱為規(guī)范化。1.規(guī)范化的含義任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備五、規(guī)范化任務(wù)四2.三種級別的范式(1)第一范式(1NF)定義如果一個關(guān)系R的每一個屬性都是不可分的數(shù)據(jù)項,則稱R是符合第一范式的,記做R∈1NF。(2)第二范式(2NF)定義設(shè)關(guān)系R∈1NF,且它的每一非主屬性完全依賴于主鍵,則稱R是符合第二范式的,記作R∈2NF。(3)第三范式(3NF)定義設(shè)關(guān)系
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025機(jī)動車租賃合同格式
- 2025廢棄土地轉(zhuǎn)包合同
- 法律風(fēng)險評估報告(詳盡版)
- 科技與教育融合學(xué)生自主學(xué)習(xí)模式研究
- 大型底棲動物野外采集方法
- 二零二五年度綠色環(huán)保電商運營管理合同4篇
- 二零二五年度幼兒園食堂托管承包合同范本4篇
- 2024年華東師大版八年級地理下冊月考試卷
- 2025年人教A版九年級歷史上冊月考試卷含答案
- 2025年湘師大新版八年級歷史下冊階段測試試卷含答案
- 無人化農(nóng)場項目可行性研究報告
- 《如何存款最合算》課件
- 社區(qū)團(tuán)支部工作計劃
- 拖欠工程款上訪信范文
- 2024屆上海市金山區(qū)高三下學(xué)期二模英語試題(原卷版)
- 學(xué)生春節(jié)安全教育
- 《wifi協(xié)議文庫》課件
- 《好東西》:女作者電影的話語建構(gòu)與烏托邦想象
- 教培行業(yè)研究系列(七):出國考培的再研究供需變化的新趨勢
- GB/T 44895-2024市場和社會調(diào)查調(diào)查問卷編制指南
- 道醫(yī)館可行性報告
評論
0/150
提交評論