數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用 課件 陳翠松 項(xiàng)目3、4 數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)、建庫(kù)建表基礎(chǔ)操作_第1頁(yè)
數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用 課件 陳翠松 項(xiàng)目3、4 數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)、建庫(kù)建表基礎(chǔ)操作_第2頁(yè)
數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用 課件 陳翠松 項(xiàng)目3、4 數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)、建庫(kù)建表基礎(chǔ)操作_第3頁(yè)
數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用 課件 陳翠松 項(xiàng)目3、4 數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)、建庫(kù)建表基礎(chǔ)操作_第4頁(yè)
數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用 課件 陳翠松 項(xiàng)目3、4 數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)、建庫(kù)建表基礎(chǔ)操作_第5頁(yè)
已閱讀5頁(yè),還剩99頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用項(xiàng)目3數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)小王已經(jīng)安裝和配置好MySQL,打算對(duì)粵文創(chuàng)項(xiàng)目進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)。先根據(jù)粵文創(chuàng)項(xiàng)目進(jìn)行需求分析,再建立E-R圖,并轉(zhuǎn)換為關(guān)系模型,對(duì)關(guān)系模型進(jìn)行規(guī)范化。工作情境目錄01初識(shí)數(shù)據(jù)庫(kù)設(shè)計(jì)02設(shè)計(jì)數(shù)據(jù)庫(kù)03鞏固與小結(jié)04任務(wù)訓(xùn)練01初識(shí)數(shù)據(jù)庫(kù)設(shè)計(jì)一、初識(shí)數(shù)據(jù)庫(kù)設(shè)計(jì)任務(wù)分析任務(wù)編號(hào)任務(wù)內(nèi)容任務(wù)3-1了解知名的數(shù)據(jù)庫(kù)管理系統(tǒng)所支持的邏輯模型數(shù)據(jù)庫(kù)可以直接影響數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的功能性與可擴(kuò)展性。數(shù)據(jù)庫(kù)設(shè)計(jì)(DatabaseDesign)是指對(duì)于給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫(kù)模式,使其能夠有效地存儲(chǔ)數(shù)據(jù),以滿足各種用戶的應(yīng)用需求。在進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)之前,需要先掌握必要的基礎(chǔ)知識(shí),以便開(kāi)展后續(xù)工作。小王對(duì)粵文創(chuàng)進(jìn)行分析后得到的任務(wù)清單如下。一、初識(shí)數(shù)據(jù)庫(kù)設(shè)計(jì)知識(shí)儲(chǔ)備1、數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)為三級(jí)模式結(jié)構(gòu)與二級(jí)存儲(chǔ)映像,如圖3-1所示。內(nèi)模式:物理結(jié)構(gòu)(存儲(chǔ)模式、物理模式)。描述數(shù)據(jù)的物理結(jié)構(gòu)和存儲(chǔ)方式,屬于三級(jí)模式結(jié)構(gòu)的最低層,對(duì)應(yīng)實(shí)際存儲(chǔ)在外存儲(chǔ)介質(zhì)中的數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)管理系統(tǒng)提供了描述內(nèi)模式的定義語(yǔ)言,如CREATEDATABASEGDCI。一、初識(shí)數(shù)據(jù)庫(kù)設(shè)計(jì)知識(shí)儲(chǔ)備模式:整體邏輯結(jié)構(gòu)(邏輯模式、全局模式)。描述數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征,是現(xiàn)實(shí)世界某應(yīng)用環(huán)境(如企業(yè)、學(xué)校)的所有信息內(nèi)容集合的表示,屬于三級(jí)模式結(jié)構(gòu)的中間層;不涉及物理存儲(chǔ)細(xì)節(jié)和具體應(yīng)用程序,通過(guò)建立數(shù)據(jù)模型和表的方式來(lái)抽象、表示與處理現(xiàn)實(shí)世界中的數(shù)據(jù)及信息。數(shù)據(jù)庫(kù)管理系統(tǒng)提供了描述模式的定義語(yǔ)言,如CREATETABLEArea。一、初識(shí)數(shù)據(jù)庫(kù)設(shè)計(jì)知識(shí)儲(chǔ)備外模式:局部邏輯結(jié)構(gòu)(子模式、應(yīng)用模式、用戶模式、局部模式)。描述數(shù)據(jù)庫(kù)用戶看到并且允許使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征,是數(shù)據(jù)庫(kù)用戶的視圖。外模式屬于三級(jí)模式結(jié)構(gòu)的最外層,是保護(hù)數(shù)據(jù)庫(kù)安全性的有力措施。數(shù)據(jù)庫(kù)管理系統(tǒng)提供外模式定義語(yǔ)言,如CREATEVIEWstudent1。一、初識(shí)數(shù)據(jù)庫(kù)設(shè)計(jì)知識(shí)儲(chǔ)備外模式/模式映象實(shí)現(xiàn)了外模式和模式之間的相互轉(zhuǎn)換,當(dāng)數(shù)據(jù)庫(kù)的整體邏輯結(jié)構(gòu)發(fā)生變化時(shí),通過(guò)調(diào)整外模式和模式之間的映像,外模式中的局部數(shù)據(jù)及其結(jié)構(gòu)不變,程序不用修改,這樣可以保證數(shù)據(jù)的邏輯獨(dú)立性。模式/內(nèi)模式映像實(shí)現(xiàn)了模式和內(nèi)模式之間的相互轉(zhuǎn)換,當(dāng)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)發(fā)生變化時(shí),通過(guò)調(diào)整模式和內(nèi)模式之間的映像,整體模式不改變,外模式及應(yīng)用程序也不改變,這樣可以保證數(shù)據(jù)的物理獨(dú)立性。一、初識(shí)數(shù)據(jù)庫(kù)設(shè)計(jì)知識(shí)儲(chǔ)備一、初識(shí)數(shù)據(jù)庫(kù)設(shè)計(jì)知識(shí)儲(chǔ)備2、數(shù)據(jù)模型1)不同應(yīng)用層次的數(shù)據(jù)模型現(xiàn)實(shí)世界事物及其聯(lián)系信息世界概念模型機(jī)器世界邏輯模型概念模型(信息世界):對(duì)現(xiàn)實(shí)世界的認(rèn)識(shí)和抽象描述。按用戶的觀點(diǎn)對(duì)數(shù)據(jù)和信息建模,不考慮在什么計(jì)算機(jī)和DBMS上具體實(shí)現(xiàn),所以被稱之為概念數(shù)據(jù)模型,簡(jiǎn)稱概念模型。邏輯模型(機(jī)器世界):按照計(jì)算機(jī)系統(tǒng)的觀點(diǎn)對(duì)數(shù)據(jù)建立模型,基于某種(如關(guān)系、層次和網(wǎng)狀)邏輯數(shù)據(jù)模型,用于數(shù)據(jù)庫(kù)管理系統(tǒng)的實(shí)現(xiàn),簡(jiǎn)稱邏輯模型。物理模型(物理存儲(chǔ)):面向計(jì)算機(jī)物理表示的模型,描述了數(shù)據(jù)在存儲(chǔ)介質(zhì)上的組織結(jié)構(gòu),既與具體的數(shù)據(jù)庫(kù)管理系統(tǒng)有關(guān),又與操作系統(tǒng)和硬件有關(guān)。一、初識(shí)數(shù)據(jù)庫(kù)設(shè)計(jì)知識(shí)儲(chǔ)備2、數(shù)據(jù)模型2)數(shù)據(jù)模型的組成要素?cái)?shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)完整性三部分組成。(1)數(shù)據(jù)結(jié)構(gòu):用來(lái)描述數(shù)據(jù)庫(kù)的靜態(tài)特征,即數(shù)據(jù)庫(kù)的組成對(duì)象及對(duì)象之間的聯(lián)系。數(shù)據(jù)庫(kù)管理系統(tǒng)的數(shù)據(jù)定義語(yǔ)言(DataDefinitionLanguage,DDL)用來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu)定義功能。(2)數(shù)據(jù)操作:用來(lái)描述數(shù)據(jù)庫(kù)的動(dòng)態(tài)特征,即數(shù)據(jù)庫(kù)中各種數(shù)據(jù)對(duì)象允許執(zhí)行的操作的集合。數(shù)據(jù)庫(kù)管理系統(tǒng)的數(shù)據(jù)操作語(yǔ)言(DataManipulationLanguage,DML)用來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的數(shù)據(jù)操作功能。(3)數(shù)據(jù)完整性:為了保證數(shù)據(jù)模型中數(shù)據(jù)的正確性、一致性和可靠性,對(duì)數(shù)據(jù)模型提出了一系列約束和規(guī)則。數(shù)據(jù)庫(kù)管理系統(tǒng)的DDL和DCL提供了多種方法來(lái)保證數(shù)據(jù)完整性。一、初識(shí)數(shù)據(jù)庫(kù)設(shè)計(jì)知識(shí)儲(chǔ)備2、數(shù)據(jù)模型3)邏輯模型的分類層次模型:用樹(shù)形結(jié)構(gòu)來(lái)表示各類實(shí)體以及實(shí)體之間的聯(lián)系,學(xué)校的層次模型如圖3-3所示。學(xué)校學(xué)院1學(xué)院2班級(jí)1班級(jí)2班級(jí)3學(xué)院3一、初識(shí)數(shù)據(jù)庫(kù)設(shè)計(jì)知識(shí)儲(chǔ)備2、數(shù)據(jù)模型3)邏輯模型的分類網(wǎng)狀模型:用圖形結(jié)構(gòu)來(lái)表示各類事物及事物之間的聯(lián)系,教師-班級(jí)的網(wǎng)狀模型如圖3-4所示。教師1教師2教師3教師5教師6教師7教師4教師8班級(jí)1班級(jí)2班級(jí)3一、初識(shí)數(shù)據(jù)庫(kù)設(shè)計(jì)知識(shí)儲(chǔ)備2、數(shù)據(jù)模型3)邏輯模型的分類關(guān)系模型:用二維表結(jié)構(gòu)來(lái)表示各類事物及事物之間的聯(lián)系,學(xué)生表(關(guān)系模型)如圖3-5所示。一、初識(shí)數(shù)據(jù)庫(kù)設(shè)計(jì)知識(shí)儲(chǔ)備2、數(shù)據(jù)模型3)邏輯模型的分類面向?qū)ο竽P停河妹嫦驅(qū)ο笥^點(diǎn)來(lái)描述現(xiàn)實(shí)世界中事物的邏輯組織、事物間的限制和聯(lián)系等,如圖3-6所示。任務(wù)實(shí)施初識(shí)數(shù)據(jù)庫(kù)設(shè)計(jì)任務(wù)3-1了解知名的數(shù)據(jù)庫(kù)管理系統(tǒng)所支持的邏輯模型。查詢最新的DB-EnginesRanking,找出全球排名前10位的數(shù)據(jù)庫(kù)管理系統(tǒng),了解它們都支持哪些邏輯模型。02設(shè)計(jì)數(shù)據(jù)庫(kù)二、設(shè)計(jì)數(shù)據(jù)庫(kù)任務(wù)分析任務(wù)編號(hào)任務(wù)內(nèi)容任務(wù)3-1構(gòu)建粵文創(chuàng)項(xiàng)目的E-R圖任務(wù)3-2將E-R圖轉(zhuǎn)換為關(guān)系模型任務(wù)3-3規(guī)范化關(guān)系模型拓展任務(wù)3-1找到可制作E-R圖的軟件,并使用該軟件構(gòu)建粵文創(chuàng)項(xiàng)目的E-R圖在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),需要分析應(yīng)用系統(tǒng)所用數(shù)據(jù)的特征、數(shù)據(jù)之間的管理及定義的規(guī)則,并確定實(shí)體、實(shí)體的屬性及實(shí)體與實(shí)體之間的關(guān)系,進(jìn)而構(gòu)建E-R圖,轉(zhuǎn)換為關(guān)系模型后進(jìn)行規(guī)范化。小王對(duì)粵文創(chuàng)進(jìn)行分析后得到的任務(wù)清單如下。二、設(shè)計(jì)數(shù)據(jù)庫(kù)知識(shí)儲(chǔ)備1、概念設(shè)計(jì)概念設(shè)計(jì)是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵,通過(guò)對(duì)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)需求進(jìn)行綜合、歸納與抽象,建立實(shí)體及其屬性、實(shí)體間的聯(lián)系,可以形成一個(gè)獨(dú)立于具體數(shù)據(jù)庫(kù)管理系統(tǒng)的概念模型。概念模型常用實(shí)體-聯(lián)系(Entity-Relationship,E-R)圖表示。E-R圖是計(jì)算機(jī)科學(xué)家陳品山于1976年提出的,用來(lái)描述數(shù)據(jù)庫(kù)中需要存儲(chǔ)的數(shù)據(jù)及數(shù)據(jù)之間關(guān)系的一種方法。E-R圖的組成要素是實(shí)體、屬性和聯(lián)系。1)實(shí)體一般認(rèn)為,客觀存在并且可相互區(qū)分的事物就是實(shí)體,包括人(如一個(gè)員工、一個(gè)學(xué)生)、物(如一本書(shū)、一臺(tái)計(jì)算機(jī))、事件(如員工填報(bào)信息、學(xué)生借閱圖書(shū))等。在E-R圖中用矩形表示實(shí)體,在矩形框中注明實(shí)體名稱。例如,在公司中,部門(mén)、員工、崗位和培訓(xùn)項(xiàng)目都可稱為實(shí)體,如圖3-7所示。二、設(shè)計(jì)數(shù)據(jù)庫(kù)知識(shí)儲(chǔ)備1、概念設(shè)計(jì)2)屬性屬性用來(lái)描述實(shí)體的特征。一個(gè)實(shí)體可以有多個(gè)屬性,屬性不能脫離實(shí)體。在E-R圖中用橢圓表示屬性,在橢圓框中注明屬性名稱,并用直線與對(duì)應(yīng)的實(shí)體連接起來(lái)。例如,員工實(shí)體的屬性有員工編號(hào)、姓名和性別(見(jiàn)圖3-8),部門(mén)實(shí)體的屬性有部門(mén)編號(hào)和部門(mén)名稱。二、設(shè)計(jì)數(shù)據(jù)庫(kù)知識(shí)儲(chǔ)備1、概念設(shè)計(jì)3)聯(lián)系聯(lián)系也稱為關(guān)系,反映的是實(shí)體之間的關(guān)聯(lián)。在E-R圖中用菱形表示聯(lián)系,在菱形框中注明聯(lián)系名稱,并用直線與有關(guān)的實(shí)體連接起來(lái),同時(shí)在直線旁標(biāo)注聯(lián)系的類型。例如,員工實(shí)體與部門(mén)實(shí)體之間是有關(guān)聯(lián)的,一個(gè)員工屬于一個(gè)部門(mén),一個(gè)部門(mén)中有多個(gè)員工。根據(jù)實(shí)體之間的對(duì)應(yīng)關(guān)系,可以把聯(lián)系分為以下3種類型。一對(duì)一(1∶1):如果對(duì)于實(shí)體集A中的每個(gè)實(shí)體,實(shí)體集B中至多有一個(gè)實(shí)體與之對(duì)應(yīng),反之亦然,那么稱實(shí)體集A與實(shí)體集B具有一對(duì)一聯(lián)系,記為1∶1。例如,圖3-9中的部門(mén)與部門(mén)經(jīng)理之間是一對(duì)一的關(guān)系,即一個(gè)部門(mén)只有一個(gè)部門(mén)經(jīng)理,每個(gè)部門(mén)經(jīng)理僅在一個(gè)部門(mén)任職。二、設(shè)計(jì)數(shù)據(jù)庫(kù)知識(shí)儲(chǔ)備1、概念設(shè)計(jì)3)聯(lián)系根據(jù)實(shí)體之間的對(duì)應(yīng)關(guān)系,可以把聯(lián)系分為以下3種類型。一對(duì)多(1∶n):如果對(duì)于實(shí)體集A中的每個(gè)實(shí)體,實(shí)體集B中有n個(gè)實(shí)體(n>1)與之對(duì)應(yīng),反之,對(duì)于實(shí)體集B中的每個(gè)實(shí)體,實(shí)體集A中至多只有一個(gè)實(shí)體與之對(duì)應(yīng),那么稱實(shí)體集A與實(shí)體集B具有一對(duì)多聯(lián)系,記為1∶n。例如,圖3-10中的部門(mén)與員工之間是一對(duì)多的關(guān)系,即一個(gè)部門(mén)有多個(gè)員工,一個(gè)員工只屬于一個(gè)部門(mén)。二、設(shè)計(jì)數(shù)據(jù)庫(kù)知識(shí)儲(chǔ)備1、概念設(shè)計(jì)3)聯(lián)系根據(jù)實(shí)體之間的對(duì)應(yīng)關(guān)系,可以把聯(lián)系分為以下3種類型。多對(duì)多(m∶n):如果對(duì)于實(shí)體集A中的每個(gè)實(shí)體,實(shí)體集B中有n(n>1)個(gè)實(shí)體與之對(duì)應(yīng),反之,對(duì)于實(shí)體集B中的每個(gè)實(shí)體,實(shí)體集A中也有m(m>1)個(gè)實(shí)體與之對(duì)應(yīng),那么稱實(shí)體集A與實(shí)體集B具有多對(duì)多聯(lián)系,記為m∶n。例如,圖3-11中的員工和培訓(xùn)項(xiàng)目之間是多對(duì)多的關(guān)系,即一個(gè)員工可以參加多個(gè)培訓(xùn)項(xiàng)目,一個(gè)培訓(xùn)項(xiàng)目可以有多個(gè)員工參加。二、設(shè)計(jì)數(shù)據(jù)庫(kù)知識(shí)儲(chǔ)備2、邏輯設(shè)計(jì)邏輯設(shè)計(jì)的任務(wù)是將概念設(shè)計(jì)階段完成的E-R圖轉(zhuǎn)換為具體的數(shù)據(jù)庫(kù)管理系統(tǒng)所支持的邏輯模型,并將其進(jìn)行優(yōu)化。目前,常用的邏輯模型為關(guān)系模型。關(guān)系模型使用二維表來(lái)表示實(shí)體及實(shí)體之間的聯(lián)系。將E-R圖轉(zhuǎn)換為關(guān)系模型,數(shù)據(jù)都存儲(chǔ)在二維表中,行表示記錄,列表示字段,結(jié)構(gòu)簡(jiǎn)單、清晰。1)關(guān)系模型的基本術(shù)語(yǔ)(1)關(guān)系。一個(gè)關(guān)系對(duì)應(yīng)一個(gè)二維表,二維表就是關(guān)系,表名就是關(guān)系名。在同一個(gè)數(shù)據(jù)庫(kù)中,表名是唯一的,不能有同名表。員工表如表3-1所示。二、設(shè)計(jì)數(shù)據(jù)庫(kù)知識(shí)儲(chǔ)備2、邏輯設(shè)計(jì)1)關(guān)系模型的基本術(shù)語(yǔ)(2)元組。二維表中的一行稱為一個(gè)元組,又叫記錄。表3-1中有4個(gè)元組(即4行記錄)。(3)屬性。二維表中的列稱為屬性。屬性的個(gè)數(shù)稱為關(guān)系的元或度。列的值稱為屬性值,同一個(gè)表中的屬性名(即列名)不能相同。表3-1中的屬性包括員工編號(hào)、姓名、性別和部門(mén)編號(hào)。(4)域。屬性值的取值范圍稱為域。在表3-1中,員工編號(hào)為連續(xù)加1的整數(shù),姓名為字符串,性別的取值為男或女。(5)關(guān)系模式。在二維表中,行定義就是對(duì)關(guān)系的描述,稱為關(guān)系模式。關(guān)系模式一般表示為關(guān)系名(屬性1,屬性2,…,屬性n)。在表3-1中,員工表的關(guān)系模式可以表示為員工(員工編號(hào),姓名,性別,部門(mén)編號(hào))。二、設(shè)計(jì)數(shù)據(jù)庫(kù)知識(shí)儲(chǔ)備2、邏輯設(shè)計(jì)1)關(guān)系模型的基本術(shù)語(yǔ)(6)主鍵(PrimaryKey,PK)。在一個(gè)關(guān)系(即一個(gè)表)中不能存在完全相同的兩個(gè)記錄行,所以要指定表中某列或列的組合來(lái)唯一標(biāo)識(shí)每行記錄,這個(gè)被指定的列或列的組合為主關(guān)鍵字,或者簡(jiǎn)稱為主鍵、主碼。每個(gè)關(guān)系有且只有一個(gè)主鍵。在表3-1中,員工編號(hào)為主鍵,每個(gè)員工編號(hào)的值不能重復(fù),并且不能為空值;通過(guò)員工編號(hào)可以區(qū)分每個(gè)員工記錄。(7)外鍵(ForeignKey,F(xiàn)K)。關(guān)系中的某個(gè)屬性雖然不是這個(gè)關(guān)系的主鍵,但如果該屬性參照了另一個(gè)關(guān)系的主鍵,那么將其稱為外鍵或外碼。在表3-1中,部門(mén)編號(hào)應(yīng)參照部門(mén)表的主鍵部門(mén)編號(hào),因此員工表中的部門(mén)編號(hào)是外鍵。二、設(shè)計(jì)數(shù)據(jù)庫(kù)知識(shí)儲(chǔ)備2、邏輯設(shè)計(jì)2)E-R圖轉(zhuǎn)換為關(guān)系模型E-R圖轉(zhuǎn)換為關(guān)系模型的規(guī)則如下。一個(gè)實(shí)體轉(zhuǎn)換為一個(gè)表:實(shí)體的屬性就是表的屬性。一對(duì)一(1∶1)的關(guān)系轉(zhuǎn)換為關(guān)系模式:在兩個(gè)實(shí)體對(duì)應(yīng)的表中任選一個(gè),添加另一個(gè)實(shí)體的主鍵即可。一對(duì)多(1∶n)的關(guān)系轉(zhuǎn)換為關(guān)系模式:在n端實(shí)體所對(duì)應(yīng)的表中加入1端實(shí)體的主鍵和聯(lián)系的屬性。多對(duì)多(m∶n)的關(guān)系轉(zhuǎn)換為關(guān)系模式:需要將該關(guān)系相連的各個(gè)實(shí)體的主鍵和聯(lián)系本身的屬性組成一個(gè)新表,該表的主鍵是各個(gè)實(shí)體主鍵的組合。二、設(shè)計(jì)數(shù)據(jù)庫(kù)知識(shí)儲(chǔ)備2、邏輯設(shè)計(jì)3)關(guān)系模型規(guī)范化如果關(guān)系模式不規(guī)范,就可能產(chǎn)生數(shù)據(jù)冗余、數(shù)據(jù)操作異常等,并帶來(lái)很多問(wèn)題。因此,需要使用范式進(jìn)行關(guān)系模型規(guī)范化,提高數(shù)據(jù)的結(jié)構(gòu)化、共享性、一致性和可操作性。按照規(guī)范化級(jí)別,范式(NormalForm)分為5種,分別是第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)和第五范式(5NF)。范式級(jí)別越高,冗余度越低,但表越多,所以可能導(dǎo)致查詢效率低下。因此,一般規(guī)范化到第三范式,以免出現(xiàn)影響查詢性能的問(wèn)題。二、設(shè)計(jì)數(shù)據(jù)庫(kù)知識(shí)儲(chǔ)備2、邏輯設(shè)計(jì)3)關(guān)系模型規(guī)范化(1)第一范式。定義:設(shè)R是一個(gè)關(guān)系模式,R的所有屬性不可再分,則稱R屬于第一范式,記作R∈1NF。例如,在表3-2中,電話屬性可以再分,不滿足第一范式的要求。規(guī)范化方法:將電話屬性拆分為手機(jī)屬性和辦公電話屬性,結(jié)果如表3-3所示。二、設(shè)計(jì)數(shù)據(jù)庫(kù)知識(shí)儲(chǔ)備2、邏輯設(shè)計(jì)3)關(guān)系模型規(guī)范化(2)第二范式。定義:設(shè)關(guān)系模式R滿足第一范式,其所有非主屬性完全依賴每個(gè)主鍵屬性,則稱R屬于第二范式,記作R∈2NF。例如,在表3-4中,主鍵屬性為員工編號(hào)+部門(mén)編號(hào),但部門(mén)名稱依賴部門(mén)編號(hào),并不依賴員工編號(hào),因?yàn)楦鶕?jù)部門(mén)編號(hào)就能知道對(duì)應(yīng)的部門(mén)名稱,部門(mén)名稱與員工編號(hào)沒(méi)有關(guān)系,所以該關(guān)系模式不滿足第二范式的要求。規(guī)范化方法:對(duì)該關(guān)系進(jìn)行拆分,原則是概念單一,數(shù)據(jù)無(wú)損,結(jié)果如表3-5和表3-6所示。二、設(shè)計(jì)數(shù)據(jù)庫(kù)知識(shí)儲(chǔ)備2、邏輯設(shè)計(jì)3)關(guān)系模型規(guī)范化(3)第二范式。定義:設(shè)關(guān)系模式R滿足第二范式,其所有非主屬性都不傳遞依賴主鍵屬性,則稱R屬于第三范式,記作R∈3NF。所謂傳遞依賴,即A依賴B,B依賴C,則A傳遞依賴C。例如,在表3-7中,崗位津貼依賴崗位級(jí)別,崗位級(jí)別依賴于員工編號(hào),則崗位津貼傳遞依賴員工編號(hào),不滿足第三范式的要求。規(guī)范化方法:對(duì)該關(guān)系進(jìn)行拆分,原則是概念單一,數(shù)據(jù)無(wú)損,結(jié)果如表3-8和表3-9所示。二、設(shè)計(jì)數(shù)據(jù)庫(kù)任務(wù)實(shí)施任務(wù)3-2構(gòu)建粵文創(chuàng)項(xiàng)目的E-R圖。粵文創(chuàng)項(xiàng)目的主要業(yè)務(wù)邏輯如下。地區(qū)管理:各個(gè)地區(qū)基本信息、民俗、名人和榮譽(yù)等信息的增加、刪除、修改與查詢。工作人員管理:各個(gè)工作人員基本信息的增加、刪除、修改與查詢。工作計(jì)劃管理:各項(xiàng)工作計(jì)劃信息的增加、刪除、修改與查詢。工作計(jì)劃參與人員管理:各項(xiàng)工作計(jì)劃參與人員信息的增加、刪除、修改與查詢。1、識(shí)別實(shí)體經(jīng)過(guò)分析,粵文創(chuàng)項(xiàng)目中主要包括存儲(chǔ)地區(qū)基本信息的地區(qū)實(shí)體、存儲(chǔ)民俗信息的民俗實(shí)體、存儲(chǔ)名人信息的名人實(shí)體、存儲(chǔ)榮譽(yù)信息的榮譽(yù)實(shí)體、存儲(chǔ)工作人員信息的工作人員實(shí)體和存儲(chǔ)工作計(jì)劃的工作計(jì)劃實(shí)體。二、設(shè)計(jì)數(shù)據(jù)庫(kù)任務(wù)實(shí)施任務(wù)3-2構(gòu)建粵文創(chuàng)項(xiàng)目的E-R圖。2、識(shí)別實(shí)體的屬性(1)地區(qū)實(shí)體屬性:地區(qū)編號(hào)、中文名、外文名、別名、地理位置、面積、人口數(shù)量、電話區(qū)號(hào)、車(chē)牌代碼、民俗名稱、名人姓名和榮譽(yù)稱號(hào),如圖3-12所示。二、設(shè)計(jì)數(shù)據(jù)庫(kù)任務(wù)實(shí)施任務(wù)3-2構(gòu)建粵文創(chuàng)項(xiàng)目的E-R圖。2、識(shí)別實(shí)體的屬性(2)民俗實(shí)體屬性:編號(hào)、民俗名稱和民俗介紹,如圖3-13所示。(3)名人實(shí)體屬性:編號(hào)、姓名和人物簡(jiǎn)介,如圖3-14所示。二、設(shè)計(jì)數(shù)據(jù)庫(kù)任務(wù)實(shí)施任務(wù)3-2構(gòu)建粵文創(chuàng)項(xiàng)目的E-R圖。2、識(shí)別實(shí)體的屬性(4)榮譽(yù)實(shí)體屬性:編號(hào)和榮譽(yù)稱號(hào),如圖3-15所示。(5)工作人員實(shí)體屬性:工號(hào)、姓名、職稱、性別、民族、出生日期、籍貫和手機(jī)號(hào),如圖3-16所示。二、設(shè)計(jì)數(shù)據(jù)庫(kù)任務(wù)實(shí)施任務(wù)3-2構(gòu)建粵文創(chuàng)項(xiàng)目的E-R圖。2、識(shí)別實(shí)體的屬性(6)工作計(jì)劃實(shí)體屬性:計(jì)劃編號(hào)、計(jì)劃名稱、制訂者工號(hào)、發(fā)布時(shí)間、審核者工號(hào)、審核時(shí)間、計(jì)劃開(kāi)始時(shí)間、計(jì)劃結(jié)束時(shí)間和計(jì)劃內(nèi)容,如圖3-17所示。二、設(shè)計(jì)數(shù)據(jù)庫(kù)任務(wù)實(shí)施任務(wù)3-2構(gòu)建粵文創(chuàng)項(xiàng)目的E-R圖。3、識(shí)別實(shí)體之間的聯(lián)系一個(gè)民俗屬于一個(gè)地區(qū),一個(gè)地區(qū)有多個(gè)民俗,所以地區(qū)實(shí)體和民俗實(shí)體之間是一對(duì)多的聯(lián)系。以此類推,地區(qū)實(shí)體和名人實(shí)體、地區(qū)實(shí)體和榮譽(yù)實(shí)體之間也是一對(duì)多的聯(lián)系。一個(gè)工作人員可以參與多個(gè)工作計(jì)劃,一個(gè)工作計(jì)劃有多個(gè)工作人員參與,所以工作計(jì)劃實(shí)體和工作人員實(shí)體之間是多對(duì)多的聯(lián)系。一個(gè)工作計(jì)劃可能作用于多個(gè)民俗,一個(gè)民俗可能被多個(gè)工作計(jì)劃所作用,所以工作計(jì)劃實(shí)體與民俗實(shí)體之間是多對(duì)多的聯(lián)系。以此類推,工作計(jì)劃實(shí)體和名人實(shí)體、工作計(jì)劃實(shí)體和榮譽(yù)實(shí)體之間也是多對(duì)多的聯(lián)系。粵文創(chuàng)項(xiàng)目的E-R圖如圖3-18所示,因篇幅有限,隱去了各實(shí)體的屬性。二、設(shè)計(jì)數(shù)據(jù)庫(kù)任務(wù)實(shí)施任務(wù)3-3將E-R圖轉(zhuǎn)換為關(guān)系模型。應(yīng)用E-R圖轉(zhuǎn)換為關(guān)系模型的規(guī)則,將任務(wù)3-2中的粵文創(chuàng)項(xiàng)目的E-R圖轉(zhuǎn)換為關(guān)系模型。1、轉(zhuǎn)換實(shí)體在粵文創(chuàng)項(xiàng)目中,將每個(gè)實(shí)體轉(zhuǎn)換為表,具體如下。地區(qū)表(地區(qū)編號(hào)、中文名、外文名、別名、地理位置、面積、人口數(shù)量、電話區(qū)號(hào)、車(chē)牌代碼、民俗名稱、名人姓名、榮譽(yù)稱號(hào))。民俗表(編號(hào)、民俗名稱、民俗介紹)。名人表(編號(hào)、姓名、人物簡(jiǎn)介)。榮譽(yù)表(編號(hào)、榮譽(yù)稱號(hào))。工作人員表(工號(hào)、姓名、職稱、性別、民族、出生日期、籍貫、手機(jī)號(hào))。工作計(jì)劃表(計(jì)劃編號(hào)、計(jì)劃名稱、制訂者工號(hào)、發(fā)布時(shí)間、審核者工號(hào)、審核時(shí)間、計(jì)劃開(kāi)始時(shí)間、計(jì)劃結(jié)束時(shí)間、計(jì)劃內(nèi)容)。二、設(shè)計(jì)數(shù)據(jù)庫(kù)任務(wù)實(shí)施任務(wù)3-3將E-R圖轉(zhuǎn)換為關(guān)系模型。應(yīng)用E-R圖轉(zhuǎn)換為關(guān)系模型的規(guī)則,將任務(wù)3-2中的粵文創(chuàng)項(xiàng)目的E-R圖轉(zhuǎn)換為關(guān)系模型。2、轉(zhuǎn)換聯(lián)系根據(jù)粵文創(chuàng)項(xiàng)目的E-R圖中實(shí)體之間的關(guān)系,應(yīng)用轉(zhuǎn)換規(guī)則確定各個(gè)表的主鍵與外鍵,并得到關(guān)系表,具體如下。編號(hào)FK、記錄編號(hào)、類型、備注)。(1)地區(qū)表與民俗表、名人表、榮譽(yù)表之間都是一對(duì)多的關(guān)系,轉(zhuǎn)換后可得如下表。地區(qū)表(地區(qū)編號(hào)PK、中文名、外文名、別名、地理位置、面積、人口數(shù)量、電話區(qū)號(hào)、車(chē)牌代碼、民俗名稱、名人姓名、榮譽(yù)稱號(hào))。民俗表(編號(hào)PK、民俗名稱、民俗介紹、地區(qū)編號(hào)FK)。名人表(編號(hào)PK、姓名、人物簡(jiǎn)介、地區(qū)編號(hào)FK)。榮譽(yù)表(編號(hào)PK、榮譽(yù)稱號(hào)、地區(qū)編號(hào)FK)。(2)工作人員表與工作計(jì)劃表之間是多對(duì)多的關(guān)系,轉(zhuǎn)換后可得如下表。工作人員表(工號(hào)PK、姓名、職稱、性別、民族、出生日期、籍貫、手機(jī)號(hào))。工作計(jì)劃表(計(jì)劃編號(hào)PK、計(jì)劃名稱、制訂者工號(hào)FK、發(fā)布時(shí)間、審核者工號(hào)FK、審核時(shí)間、計(jì)劃開(kāi)始時(shí)間、計(jì)劃結(jié)束時(shí)間、計(jì)劃內(nèi)容)。工作計(jì)劃參與人員表(編號(hào)PK、計(jì)劃編號(hào)FK、工號(hào)FK、工作職責(zé)、工作要求、備注)。(3)工作計(jì)劃表與民俗表、名人表、榮譽(yù)表之間均是多對(duì)多的關(guān)系,轉(zhuǎn)換后可得如下表。工作計(jì)劃-民俗表(編號(hào)、計(jì)劃編號(hào)、民俗記錄編號(hào)、備注)。工作計(jì)劃-名人表(編號(hào)、計(jì)劃編號(hào)、名人記錄編號(hào)、備注)。工作計(jì)劃-榮譽(yù)表(編號(hào)、計(jì)劃編號(hào)、榮譽(yù)記錄編號(hào)、備注)。為了提高查詢效率,將以上三個(gè)關(guān)系合并為一個(gè),并增加一個(gè)屬性“類型”,用于標(biāo)識(shí)民俗記錄、名人記錄或榮譽(yù)記錄,結(jié)果如下。工作計(jì)劃項(xiàng)目表(編號(hào)PK、計(jì)劃編號(hào)FK、記錄編號(hào)、類型、備注)。二、設(shè)計(jì)數(shù)據(jù)庫(kù)任務(wù)實(shí)施任務(wù)3-4規(guī)范化關(guān)系模型。在粵文創(chuàng)項(xiàng)目的關(guān)系模型中,每個(gè)關(guān)系模式中的屬性都不可再分,滿足第一范式的要求;每個(gè)關(guān)系模式中的所有非主屬性完全依賴主鍵屬性,滿足第二范式的要求;每個(gè)關(guān)系模式中的所有非主屬性都不傳遞依賴主鍵屬性,滿足第三范式的要求。需要注意的是,主鍵與外鍵在多個(gè)表中重復(fù)出現(xiàn)不屬于數(shù)據(jù)冗余。非鍵字段的重復(fù)出現(xiàn)是數(shù)據(jù)冗余。在實(shí)際的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程中,有時(shí)需要保留部分?jǐn)?shù)據(jù)冗余,以方便數(shù)據(jù)查詢。拓展任務(wù)3-1找到可制作E-R圖的軟件,并使用該軟件構(gòu)建粵文創(chuàng)項(xiàng)目的E-R圖。03鞏固與小結(jié)鞏固與小結(jié)任務(wù)分析(1)數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)為三級(jí)模式結(jié)構(gòu)與二級(jí)存儲(chǔ)映像。三級(jí)模式結(jié)構(gòu)為內(nèi)模式、模式和外模式。二級(jí)存儲(chǔ)映像為外模式/模式映像(用來(lái)保證數(shù)據(jù)的邏輯獨(dú)立性)和模式/內(nèi)模式映像(用來(lái)保證數(shù)據(jù)的物理獨(dú)立性)。(2)根據(jù)不同的應(yīng)用層次,數(shù)據(jù)模型可以分為3種類型,即概念模型、邏輯模型和物理模型。數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)完整性三部分組成。邏輯模型主要分為4種,分別是層次模型、網(wǎng)狀模型、關(guān)系模型和面向?qū)ο竽P?。?)概念設(shè)計(jì)是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵,可以形成一個(gè)獨(dú)立于具體數(shù)據(jù)庫(kù)管理系統(tǒng)的概念模型。概念模型常用E-R圖表示。E-R圖由實(shí)體、屬性和聯(lián)系組成。(4)邏輯設(shè)計(jì)的任務(wù)是將E-R圖轉(zhuǎn)換成具體的數(shù)據(jù)庫(kù)管理系統(tǒng)所支持的邏輯模型,并將其進(jìn)行優(yōu)化。目前,常用的邏輯模型為關(guān)系模型,使用二維表來(lái)表示實(shí)體及實(shí)體之間的關(guān)系。(5)E-R圖轉(zhuǎn)換為關(guān)系模型的規(guī)則如下。一個(gè)實(shí)體轉(zhuǎn)換為一個(gè)表:實(shí)體的屬性就是表的屬性。一對(duì)一的關(guān)系轉(zhuǎn)換為關(guān)系模式:在兩個(gè)實(shí)體對(duì)應(yīng)的表中任選一個(gè),添加另一個(gè)實(shí)體的主鍵即可。一對(duì)多的關(guān)系轉(zhuǎn)換為關(guān)系模式:在n端實(shí)體所對(duì)應(yīng)的表中加入1端實(shí)體的主鍵和聯(lián)系的屬性。多對(duì)多的關(guān)系轉(zhuǎn)換為關(guān)系模式:需要將該關(guān)系相連的各個(gè)實(shí)體的主鍵和聯(lián)系本身的屬性組成一個(gè)新表,該表的主鍵是各個(gè)實(shí)體主鍵的組合。(6)按照規(guī)范化級(jí)別,范式分為5種,即第一范式、第二范式、第三范式、第四范式和第五范式。范式級(jí)別越高,冗余度越低,但表越多,所以可能導(dǎo)致查詢效率低下。在實(shí)際工作中,一般規(guī)范化到第三范式,以免出現(xiàn)影響查詢性能的問(wèn)題。04任務(wù)訓(xùn)練任務(wù)訓(xùn)練任務(wù)分析(1)厘清點(diǎn)餐系統(tǒng)的主要業(yè)務(wù)邏輯。用戶管理:用戶信息(如用戶名、登錄密碼、用戶類型、最后登錄時(shí)間和禁用狀態(tài)等)的增加、刪除、修改與查詢。餐桌管理:餐桌信息(如餐桌名稱和容納人數(shù)等)的增加、刪除、修改與查詢。菜品分類管理:菜品分類信息(如分類名稱、分類創(chuàng)建時(shí)間、創(chuàng)建人和圖標(biāo)地址等)的增加、刪除、修改與查詢。菜品管理:菜品信息(如菜品名稱、菜品標(biāo)簽、菜品詳情描述、菜品創(chuàng)建時(shí)間、創(chuàng)建人、可用狀態(tài)、所屬分類、菜品圖片地址和菜品價(jià)格等)的增加、刪除、修改與查詢。訂單管理:訂單信息(如餐桌序號(hào)、訂單創(chuàng)建時(shí)間、創(chuàng)建人、訂餐人、聯(lián)系電話、用餐時(shí)間、訂單總價(jià)、訂單狀態(tài)、所訂菜品和菜品數(shù)量等)的增加、刪除、修改與查詢。(2)構(gòu)建點(diǎn)餐系統(tǒng)E-R圖。(3)將點(diǎn)餐系統(tǒng)的E-R圖轉(zhuǎn)換為關(guān)系模型。(4)規(guī)范化點(diǎn)餐系統(tǒng)的關(guān)系模型。感謝您的觀看數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用項(xiàng)目4建庫(kù)建表基礎(chǔ)操作

在粵文創(chuàng)項(xiàng)目中,需要設(shè)計(jì)一套實(shí)用性、邏輯性和安全性較強(qiáng)的數(shù)據(jù)庫(kù)系統(tǒng)。負(fù)責(zé)項(xiàng)目的小王在工作中發(fā)現(xiàn),該數(shù)據(jù)庫(kù)系統(tǒng)至少涉及8個(gè)數(shù)據(jù)表,每個(gè)數(shù)據(jù)表的數(shù)據(jù)之間相互聯(lián)系,構(gòu)成一個(gè)完整的數(shù)據(jù)庫(kù)系統(tǒng)。在創(chuàng)建完數(shù)據(jù)庫(kù)系統(tǒng)之后就可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理。每個(gè)數(shù)據(jù)表由不同的字段組成,各個(gè)字段的數(shù)據(jù)類型不盡相同,需要為不同的字段設(shè)計(jì)合理的數(shù)據(jù)類型。之后就可以對(duì)創(chuàng)建好的數(shù)據(jù)表執(zhí)行查看、修改和刪除等基本操作。在完成數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)后,還要人為或定時(shí)周期性地備份數(shù)據(jù)庫(kù),以免數(shù)據(jù)丟失時(shí)無(wú)法恢復(fù),造成不必要的麻煩。工作情境目錄01數(shù)據(jù)庫(kù)的基礎(chǔ)操作02數(shù)據(jù)表的基礎(chǔ)操作04鞏固與小結(jié)05任務(wù)訓(xùn)練03備份和還原數(shù)據(jù)庫(kù)01數(shù)據(jù)庫(kù)的基礎(chǔ)操作一、數(shù)據(jù)庫(kù)的基礎(chǔ)操作任務(wù)分析數(shù)據(jù)庫(kù)是指長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫(kù)技術(shù)已廣泛應(yīng)用于各個(gè)領(lǐng)域??梢詫?shù)據(jù)庫(kù)看成存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù)。首先創(chuàng)建數(shù)據(jù)庫(kù),然后建立數(shù)據(jù)表及其他的數(shù)據(jù)對(duì)象,最后對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理,包括查看、修改和刪除數(shù)據(jù)庫(kù)等。任務(wù)編號(hào)任務(wù)內(nèi)容任務(wù)4-1創(chuàng)建一個(gè)名為gdci的數(shù)據(jù)庫(kù),采用字符集utf8mb4和校對(duì)規(guī)則utf8mb4_general_ci任務(wù)4-2列出當(dāng)前用戶可以查看的所有數(shù)據(jù)庫(kù)任務(wù)4-3使用LIKE從句,查看與gdci完全匹配的數(shù)據(jù)庫(kù)任務(wù)4-4使用LIKE從句,查看名稱中包含gdci的數(shù)據(jù)庫(kù)任務(wù)4-5使用命令行工具將數(shù)據(jù)庫(kù)gdci的指定字符集修改為gb2312,默認(rèn)校對(duì)規(guī)則修改為gb2312_unicode_ci任務(wù)4-6將數(shù)據(jù)庫(kù)gdci從數(shù)據(jù)庫(kù)列表中刪除拓展任務(wù)4-1使用Navicat創(chuàng)建一個(gè)名為gdci_backup的數(shù)據(jù)庫(kù)拓展任務(wù)4-2使用Navicat修改數(shù)據(jù)庫(kù)屬性拓展任務(wù)4-3使用Navicat刪除數(shù)據(jù)庫(kù)任務(wù)清單如下。一、數(shù)據(jù)庫(kù)的基礎(chǔ)操作知識(shí)儲(chǔ)備1、創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)可以借助圖形化工具,也可以使用SQL語(yǔ)句CREATEDATABASE或CREATESCHEMA。使用CREATEDATABASE語(yǔ)句或CREATESCHEMA語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)的基本語(yǔ)法格式如下:需要說(shuō)明以下幾點(diǎn)。“{}”表示必選項(xiàng),“[]”表示可選項(xiàng),“|”表示幾項(xiàng)中任選其一。<數(shù)據(jù)庫(kù)名>:用于指定要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)的名稱。MySQL的數(shù)據(jù)存儲(chǔ)區(qū)將以目錄方式表示MySQL數(shù)據(jù)庫(kù),因此數(shù)據(jù)庫(kù)名稱必須符合操作系統(tǒng)的文件夾命名規(guī)則,不能以數(shù)字開(kāi)頭,盡量要有實(shí)際意義。在MySQL中不區(qū)分大小寫(xiě)。IFNOTEXISTS:在創(chuàng)建數(shù)據(jù)庫(kù)之前進(jìn)行判斷,只有該數(shù)據(jù)庫(kù)目前尚不存在時(shí)才能執(zhí)行操作。此選項(xiàng)可以用來(lái)避免數(shù)據(jù)庫(kù)已經(jīng)存在而重復(fù)創(chuàng)建的錯(cuò)誤。[DEFAULT]CHARACTERSET:指定數(shù)據(jù)庫(kù)的字符集。指定字符集是為了避免在數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)出現(xiàn)亂碼。如果在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)不指定字符集,那么使用系統(tǒng)默認(rèn)的字符集。[DEFAULT]COLLATE:指定字符集默認(rèn)的校對(duì)規(guī)則。CREATE{DATABASE|SCHEMA}[IFNOTEXISTS]<數(shù)據(jù)庫(kù)名>[[DEFAULT]CHARACTERSET<字符集名>][[DEFAULT]COLLATE<校對(duì)規(guī)則名>];一、數(shù)據(jù)庫(kù)的基礎(chǔ)操作知識(shí)儲(chǔ)備2、查看數(shù)據(jù)庫(kù)在MySQL中,可以使用

SHOWDATABASES語(yǔ)句來(lái)查看或顯示當(dāng)前用戶權(quán)限范圍以內(nèi)的數(shù)據(jù)庫(kù)。其基本語(yǔ)法格式如下:說(shuō)明:“[]”為可選項(xiàng);LIKE從句可以部分匹配,也可以完全匹配;數(shù)據(jù)庫(kù)名由單引號(hào)引起來(lái)。SHOWDATABASES[LIKE'數(shù)據(jù)庫(kù)名'];一、數(shù)據(jù)庫(kù)的基礎(chǔ)操作知識(shí)儲(chǔ)備3、修改數(shù)據(jù)庫(kù)在MySQL中,可以使用ALTERDATABASE或ALTERSCHEMA語(yǔ)句來(lái)修改已經(jīng)被創(chuàng)建或者存在的數(shù)據(jù)庫(kù)的相關(guān)參數(shù)。其基本語(yǔ)法格式如下:需要注意以下幾點(diǎn)。ALTERDATABASE用于更改數(shù)據(jù)庫(kù)的全局特性。使用ALTERDATABASE需要獲得數(shù)據(jù)庫(kù)ALTER權(quán)限。數(shù)據(jù)庫(kù)名稱可以忽略,此時(shí)語(yǔ)句對(duì)應(yīng)默認(rèn)數(shù)據(jù)庫(kù)。ALTER{DATABASE|SCHEMA}[IFNOTEXISTS]數(shù)據(jù)庫(kù)名[DEFAULT]CHARACTERSET<字符集名>[DEFAULT]COLLATE<校對(duì)規(guī)則名>一、數(shù)據(jù)庫(kù)的基礎(chǔ)操作知識(shí)儲(chǔ)備4、刪除數(shù)據(jù)庫(kù)當(dāng)數(shù)據(jù)庫(kù)不再使用時(shí)應(yīng)該將其刪除,以確保數(shù)據(jù)庫(kù)存儲(chǔ)空間中存儲(chǔ)的是有效數(shù)據(jù)。刪除數(shù)據(jù)庫(kù)是將已經(jīng)存在的數(shù)據(jù)庫(kù)從磁盤(pán)空間中清除,清除之后,數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)也將一同被刪除。在MySQL中,當(dāng)需要?jiǎng)h除已創(chuàng)建的數(shù)據(jù)庫(kù)時(shí),可以使用

DROPDATABASE語(yǔ)句。其基本語(yǔ)法格式如下:需要說(shuō)明以下幾點(diǎn)。<數(shù)據(jù)庫(kù)名>:用于指定要?jiǎng)h除的數(shù)據(jù)庫(kù)的名稱。IFEXISTS:用于防止當(dāng)數(shù)據(jù)庫(kù)不存在時(shí)發(fā)生錯(cuò)誤。DROPDATABASE:刪除數(shù)據(jù)庫(kù)中的所有表格并同時(shí)刪除數(shù)據(jù)庫(kù)。使用DROP

DATABASE語(yǔ)句時(shí)要非常小心,以免錯(cuò)誤刪除。如果要使用DROPDATABASE語(yǔ)句,就需要獲得數(shù)據(jù)庫(kù)DROP權(quán)限。DROPDATABASE[IFEXISTS]<數(shù)據(jù)庫(kù)名>任務(wù)實(shí)施數(shù)據(jù)庫(kù)的基礎(chǔ)操作任務(wù)4-1創(chuàng)建一個(gè)名為gdci的數(shù)據(jù)庫(kù),采用字符集utf8mb4和校對(duì)規(guī)則utf8mb4_

general_ci。任務(wù)4-2列出當(dāng)前用戶可以查看的所有數(shù)據(jù)庫(kù)。任務(wù)4-3使用LIKE從句,查看與gdci完全匹配的數(shù)據(jù)庫(kù)。CREATEDATABASEIFNOTEXISTSGDCIDEFAULTCHARACTERSETutf8mb4DEFAULTCOLLATEutf8mb4_general_ci;SHOWDATABASES;SHOWDATABASESLIKE'gdci';任務(wù)實(shí)施數(shù)據(jù)庫(kù)的基礎(chǔ)操作任務(wù)4-4使用LIKE從句,查看名稱中包含gdci的數(shù)據(jù)庫(kù)。任務(wù)4-5使用命令行工具將數(shù)據(jù)庫(kù)gdci的指定字符集修改為gb2312,默認(rèn)校對(duì)規(guī)則修改為gb2312_unicode_ci。任務(wù)4-6將數(shù)據(jù)庫(kù)gdci從數(shù)據(jù)庫(kù)列表中刪除。SHOWDATABASESLIKE'%gdci%';ALTERDATABASEgdciDEFAULTCHARACTERSETgb2312DEFAULTCOLLATEgb2312_unicode_ci;DROPDATABASEgdci;任務(wù)實(shí)施數(shù)據(jù)庫(kù)的基礎(chǔ)操作拓展任務(wù)4-1使用Navicat創(chuàng)建一個(gè)名為gdci_backup的數(shù)據(jù)庫(kù)。拓展任務(wù)4-2使用Navicat修改數(shù)據(jù)庫(kù)屬性。拓展任務(wù)4-3使用Navicat刪除數(shù)據(jù)庫(kù)。02數(shù)據(jù)表的基礎(chǔ)操作二、數(shù)據(jù)表的基礎(chǔ)操作任務(wù)分析任務(wù)編號(hào)任務(wù)內(nèi)容任務(wù)4-7使用SQL語(yǔ)句在數(shù)據(jù)庫(kù)gdci中創(chuàng)建地區(qū)表area任務(wù)4-8使用SQL語(yǔ)句在數(shù)據(jù)庫(kù)gdci中創(chuàng)建民俗表folk任務(wù)4-9使用SQL語(yǔ)句在數(shù)據(jù)庫(kù)gdci中創(chuàng)建名人表celebrity任務(wù)4-10使用SQL語(yǔ)句在數(shù)據(jù)庫(kù)gdci中創(chuàng)建榮譽(yù)表honor任務(wù)4-11使用SQL語(yǔ)句在數(shù)據(jù)庫(kù)gdci中創(chuàng)建工作人員表user任務(wù)4-12使用SQL語(yǔ)句在數(shù)據(jù)庫(kù)gdci中創(chuàng)建工作計(jì)劃表plan任務(wù)4-13使用SQL語(yǔ)句在數(shù)據(jù)庫(kù)gdci中創(chuàng)建工作計(jì)劃參與人員表participant任務(wù)4-14使用SQL語(yǔ)句在數(shù)據(jù)庫(kù)gdci中創(chuàng)建工作計(jì)劃項(xiàng)目表planforproject拓展任務(wù)4-4在數(shù)據(jù)庫(kù)gdci中,用復(fù)制的方式創(chuàng)建一個(gè)名為area_copy1的表,表結(jié)構(gòu)直接取自地區(qū)表area;再創(chuàng)建一個(gè)名為area_copy2的表,其結(jié)構(gòu)和內(nèi)容(數(shù)據(jù))都取自地區(qū)表area拓展任務(wù)4-5使用Navicat在數(shù)據(jù)庫(kù)gdci_backup中創(chuàng)建用戶表user01數(shù)據(jù)表隸屬于數(shù)據(jù)庫(kù)。在創(chuàng)建數(shù)據(jù)表之前,需要使用語(yǔ)句“USE<數(shù)據(jù)庫(kù)名>”指定操作是在哪個(gè)數(shù)據(jù)庫(kù)中進(jìn)行的。在數(shù)據(jù)庫(kù)中創(chuàng)建數(shù)據(jù)表,數(shù)據(jù)庫(kù)本身是無(wú)法存儲(chǔ)數(shù)據(jù)的。要存儲(chǔ)數(shù)據(jù)必須創(chuàng)建數(shù)據(jù)表,數(shù)據(jù)表由多個(gè)字段構(gòu)成,每個(gè)字段指定不同的數(shù)據(jù)類型。數(shù)據(jù)類型是對(duì)數(shù)據(jù)存儲(chǔ)方式的一種約定,能夠規(guī)定數(shù)據(jù)存儲(chǔ)時(shí)所占空間的大小。MySQL使用不同的數(shù)據(jù)類型存儲(chǔ)數(shù)據(jù)。數(shù)據(jù)類型主要根據(jù)數(shù)據(jù)值的內(nèi)容、大小和精度來(lái)確定,主要分為整數(shù)類型、浮點(diǎn)數(shù)和定點(diǎn)數(shù)類型、字符串類型與日期和時(shí)間類型4種。在創(chuàng)建數(shù)據(jù)表之后,可以對(duì)數(shù)據(jù)表進(jìn)行查看、修改和刪除等。任務(wù)清單如下。二、數(shù)據(jù)表的基礎(chǔ)操作知識(shí)儲(chǔ)備1、MySQL的數(shù)據(jù)類型1)整數(shù)類型整數(shù)類型主要用于存儲(chǔ)精確整數(shù)數(shù)字的值,其取值范圍、占用的字節(jié)數(shù)如表4-1所示。表4-1整數(shù)數(shù)據(jù)類型類型占用的字節(jié)數(shù)取值范圍(有符號(hào))取值范圍(無(wú)符號(hào))說(shuō)明TINYINT1字節(jié)(-128,127)(0,255)小整數(shù)值SMALLINT2字節(jié)(-32768,32767)(0,65535)較大整數(shù)值MEDIUMINT3字節(jié)(-8388608,8388607)(0,16777215)大整數(shù)值INT或INTEGER4字節(jié)(-2147483648,2147483647)(0,4294967295)中等范圍的大整數(shù)值BIGINT8字節(jié)(-263,263-1)(0,264-1)極大整數(shù)值二、數(shù)據(jù)表的基礎(chǔ)操作知識(shí)儲(chǔ)備2)浮點(diǎn)數(shù)和定點(diǎn)數(shù)類型

MySQL中使用浮點(diǎn)數(shù)和定點(diǎn)數(shù)來(lái)表示小數(shù)。浮點(diǎn)數(shù)和定點(diǎn)數(shù)類型的特點(diǎn)是可以處理小數(shù),可以把整數(shù)看成小數(shù)的一個(gè)特例。因此,浮點(diǎn)數(shù)和定點(diǎn)數(shù)類型的使用場(chǎng)景比整數(shù)類型的使用場(chǎng)景大。浮點(diǎn)類型有兩種,分別為單精度浮點(diǎn)類型(FLOAT)和雙精度浮點(diǎn)類型(DOUBLE)。定點(diǎn)類型在數(shù)據(jù)庫(kù)中存放精確的值。定點(diǎn)類型只有一種,即DECIMAL。浮點(diǎn)類型和定點(diǎn)類型都可以使用(M,N)來(lái)表示。M表示總共的有效位數(shù),也稱為精度;N表示小數(shù)的位數(shù);M大于或等于0,N小于或等于M。MySQL中的浮點(diǎn)類型和定點(diǎn)類型如表4-2所示。表4-2MySQL中的浮點(diǎn)類型和定點(diǎn)類型類型占用的字節(jié)數(shù)范圍(有符號(hào))范圍(無(wú)符號(hào))說(shuō)明FLOAT(M,N)4字節(jié)(-3.402823466E+38,

-1.175494351E-38),0,(1.175494351E-38,3.402823466351E+38)0,(1.175494351E-38,3.402823466E+38)單精度浮點(diǎn)數(shù)值,如成績(jī)、溫度等較小的小數(shù)DOUBLE(M,N)8字節(jié)(-1.7976931348623157E+308,-2.2250738585072014E-308),0,(2.2250738585072014E-308,1.7976931348623157E+308)0,(2.2250738585072014E-308,1.7976931348623157E+308)雙精度浮點(diǎn)數(shù)值,如科學(xué)數(shù)據(jù)DECIMAL(M,N)M+2字節(jié)依賴M和N的值依賴M和N的值精確的小數(shù)值,其最大有效位數(shù)為65位,可以精確到小數(shù)點(diǎn)后30位,如商品價(jià)格或科學(xué)數(shù)據(jù)二、數(shù)據(jù)表的基礎(chǔ)操作知識(shí)儲(chǔ)備3)字符串類型

字符串也是常用的數(shù)據(jù)類型之一,主要用于存儲(chǔ)字符串或文本信息。字符類型的數(shù)據(jù)通常被放在一對(duì)引號(hào)(")中。常用的字符串類型主要包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。MySQL中的字符串類型如表4-3所示。表4-3MySQL中的字符串類型類型長(zhǎng)度說(shuō)明CHAR(n)0~255個(gè)字符定長(zhǎng)字符串VARCHAR(n)0~65535個(gè)字符變長(zhǎng)字符串TINYTEXT0~255個(gè)字符

短文本字符串TEXT0~65535個(gè)字符長(zhǎng)文本數(shù)據(jù)MEDIUMTEXT0~16777215個(gè)字符中等長(zhǎng)度文本數(shù)據(jù)LONGTEXT0~4294967295個(gè)字符極大文本數(shù)據(jù)二、數(shù)據(jù)表的基礎(chǔ)操作知識(shí)儲(chǔ)備3)字符串類型表4-3MySQL中的字符串類型(續(xù)表)類型長(zhǎng)度說(shuō)明TINYBLOB0~255字節(jié)不超過(guò)

255個(gè)字符的二進(jìn)制數(shù)據(jù)BLOB0~65535字節(jié)二進(jìn)制形式的長(zhǎng)文本數(shù)據(jù)MEDIUMBLOB0~16777215字節(jié)二進(jìn)制形式的中等長(zhǎng)度文本數(shù)據(jù)LONGBLOB0~4294967295字節(jié)二進(jìn)制形式的極大文本數(shù)據(jù)BINARY(n)n+4字節(jié)定長(zhǎng)二進(jìn)制數(shù)據(jù),n的范圍為1~255,當(dāng)數(shù)據(jù)的長(zhǎng)度達(dá)不到最大長(zhǎng)度時(shí),不足部分以0填充VARBINARY(n)實(shí)際長(zhǎng)度+4字節(jié)變長(zhǎng)二進(jìn)制數(shù)據(jù),n的范圍為1~65535,只保存需要的長(zhǎng)度,不進(jìn)行填充ENUM(列值1,列值2,…)1~65535種列值字符串

SET(列值1,列值2,…)0~64個(gè)列值成員二、數(shù)據(jù)表的基礎(chǔ)操作知識(shí)儲(chǔ)備4)日期和時(shí)間類型在數(shù)據(jù)庫(kù)中經(jīng)常會(huì)存儲(chǔ)一些日期和時(shí)間數(shù)據(jù),如出生日期、出廠日期等。日期和時(shí)間類型的數(shù)據(jù)也可以使用字符串保存,但為了使數(shù)據(jù)標(biāo)準(zhǔn)化,數(shù)據(jù)庫(kù)中提供了專門(mén)存儲(chǔ)日期和時(shí)間的數(shù)據(jù)類型。常用的表示時(shí)間值的日期和時(shí)間類型為DATETIME、DATE、TIMESTAMP、TIME和YEAR,它們具有固定的格式和范圍,如表4-4所示。表4-4日期和時(shí)間類型類型占用的字節(jié)數(shù)范圍格式說(shuō)明DATE3字節(jié)1000-01-01/9999-12-31YYYY-MM-DD日期值TIME3字節(jié)'-838:59:59'/'838:59:59'HH:MM:SS時(shí)間值或持續(xù)時(shí)間YEAR1字節(jié)1901/2155YYYY年份值DATETIME8字節(jié)'1000-01-0100:00:00'到'9999-12-3123:59:59'YYYY-MM-DDhh:mm:ss混合日期和時(shí)間值TIMESTAMP4字節(jié)'1970-01-0100:00:01'UTC到'2038-01-1903:14:07'UTC結(jié)束時(shí)間是第

2

147

483

647

秒,北京時(shí)間

2038-1-1911:14:07,格林尼治時(shí)間2038年1月19日凌晨03:14:07YYYY-MM-DDhh:mm:ss混合日期和時(shí)間值,時(shí)間戳二、數(shù)據(jù)表的基礎(chǔ)操作知識(shí)儲(chǔ)備2、創(chuàng)建數(shù)據(jù)表在創(chuàng)建數(shù)據(jù)庫(kù)之后,接下來(lái)就要在數(shù)據(jù)庫(kù)中創(chuàng)建數(shù)據(jù)表。所謂創(chuàng)建數(shù)據(jù)表,指的是在已經(jīng)創(chuàng)建的數(shù)據(jù)庫(kù)中建立新表。創(chuàng)建數(shù)據(jù)表就是規(guī)定數(shù)據(jù)列的屬性的過(guò)程,也是實(shí)施數(shù)據(jù)完整性(包括實(shí)體完整性、引用完整性和域完整性)約束的過(guò)程。下面介紹創(chuàng)建數(shù)據(jù)表的語(yǔ)法形式。在

MySQL中,使用

CREATETABLE語(yǔ)句可以創(chuàng)建表,基本語(yǔ)法格式如下:

CREATE[TEMPORARY]TABLE[IFNOTEXISTS]表名(列名1數(shù)據(jù)類型約束,列名2數(shù)據(jù)類型約束,列名3數(shù)據(jù)類型約束,...列名n數(shù)據(jù)類型約束)ENGINE=存儲(chǔ)引擎;說(shuō)明:EMPORARY:若使用該關(guān)鍵字,則表示創(chuàng)建臨時(shí)表;若不使用該關(guān)鍵字,則表示創(chuàng)建持久表。IFNOTEXISTS:在創(chuàng)建數(shù)據(jù)表時(shí)加上IFNOTEXISTS判斷,只有該數(shù)據(jù)表目前尚不存在時(shí)才執(zhí)行CREATETABLE語(yǔ)句,避免出現(xiàn)重復(fù)創(chuàng)建數(shù)據(jù)表的情況。表名:在創(chuàng)建數(shù)據(jù)表時(shí),必須指定要?jiǎng)?chuàng)建的數(shù)據(jù)表的名稱,數(shù)據(jù)表的名稱不區(qū)分大小寫(xiě),但必須符合MySQL標(biāo)識(shí)符的命名規(guī)則,不能使用SQL中的關(guān)鍵字,如不能使用SELECT、INSERT和DROP等。數(shù)據(jù)類型:列的數(shù)據(jù)類型,有的數(shù)據(jù)類型需要指明長(zhǎng)度n,并用括號(hào)括起來(lái)。約束:包括非空約束、默認(rèn)值約束、主鍵約束、唯一性約束、外鍵約束和檢查約束等。存儲(chǔ)引擎:MySQL默認(rèn)存儲(chǔ)引擎是InnoDB,通??梢允÷浴6?、數(shù)據(jù)表的基礎(chǔ)操作知識(shí)儲(chǔ)備3、查看數(shù)據(jù)表1)顯示數(shù)據(jù)表名稱在

MySQL中,使用SHOWTABLES語(yǔ)句可以查詢當(dāng)前數(shù)據(jù)庫(kù)中所有數(shù)據(jù)表的名稱,基本語(yǔ)法格式如下:USE數(shù)據(jù)庫(kù)名;SHOWTABLES;2)顯示數(shù)據(jù)表結(jié)構(gòu)DESCRIBE|DESC語(yǔ)句會(huì)以表格的形式來(lái)展示表的字段信息,包括字段名、字段數(shù)據(jù)類型、是否為主鍵、是否有默認(rèn)值等,基本語(yǔ)法格式如下:{DESCRIBE|DESC}表名[列名|通配符]說(shuō)明:DESCRIBE|DESC:DESC是DESCRIBE的簡(jiǎn)寫(xiě),二者用法相同。列名|通配符:可以是一個(gè)列名稱,也可以是一個(gè)包含“%”和“_”通配符的字符串,用于獲得名稱與給定字符串相匹配的各列的輸出。沒(méi)有必要在引號(hào)中包含字符串,除非其中包含空格或其他特殊字符。二、數(shù)據(jù)表的基礎(chǔ)操作知識(shí)儲(chǔ)備4、修改數(shù)據(jù)表在MySQL中,使用ALTERTABLE語(yǔ)句可以改變?cè)斜淼慕Y(jié)構(gòu),如增加或刪除列、更改原有列類型、重新命名列或表等。(1)為表增加新的數(shù)據(jù)列。其基本語(yǔ)法格式如下:ALTER[IGNORE]TABLE表名ADD新增列的列名數(shù)據(jù)類型[FIRST|AFTER參照的列名]說(shuō)明:IGNORE:在修改后的新表中存在重復(fù)關(guān)鍵字,如果沒(méi)有指定IGNORE,那么當(dāng)重復(fù)關(guān)鍵字錯(cuò)誤發(fā)生時(shí)操作失敗。如果指定了IGNORE,那么對(duì)于有重復(fù)關(guān)鍵字的行只使用第一行,其他有沖突的行被刪除。FIRST|AFTER:參照列的列名,表示新增列在參照列的前面或后面添加,若不指定則添加到最后。(2)為表刪除數(shù)據(jù)列。其基本語(yǔ)法格式如下:說(shuō)明:列名就是要?jiǎng)h除列的列名。ALTER[IGNORE]TABLE表DROP[COLUMN]列名二、數(shù)據(jù)表的基礎(chǔ)操作知識(shí)儲(chǔ)備4、修改數(shù)據(jù)表(3)修改表中列的數(shù)據(jù)類型。其基本語(yǔ)法格式如下:ALTER[IGNORE]TABLE表名MODIFY[COLUMN]列定義[FIRST|AFTER列名]/*修改列的數(shù)據(jù)類型*/(5)修改表名。可以直接使用RENAMETABLE語(yǔ)句來(lái)更改表的名字,基本語(yǔ)法格式如下:ALTER[IGNORE]TABLE表名CHANGE[COLUMN]舊列名列定義[FIRST|AFTER列名]/*對(duì)列重命名*/(4)為表中的列重命名。其基本語(yǔ)法格式如下:RENAMETABLE舊表名1TO新表名1[,舊表名2TO新表名2]...二、數(shù)據(jù)表的基礎(chǔ)操作知識(shí)儲(chǔ)備5、刪除數(shù)據(jù)表可以使用DROPTABLE語(yǔ)句刪除數(shù)據(jù)表,基本語(yǔ)法格式如下:DROPTABLE[IFEXISTS]表名1,表名2...說(shuō)明:表名1,表名2...:表示要被刪除的數(shù)據(jù)表的名稱。使用DROPTABLE語(yǔ)句可以同時(shí)刪除多個(gè)表,只要將表名依次寫(xiě)在后面,相互之間用逗號(hào)隔開(kāi)即可。IFEXISTS:用于在刪除數(shù)據(jù)表之前判斷該表是否存在。如果不使用IFEXISTS,那么當(dāng)數(shù)據(jù)表不存在時(shí)MySQL將提示錯(cuò)誤,中斷SQL語(yǔ)句的執(zhí)行;如果使用IFEXISTS,那么當(dāng)數(shù)據(jù)表不存在時(shí)SQL語(yǔ)句可以順利執(zhí)行,但是會(huì)發(fā)出警告(warning)。二、數(shù)據(jù)表的基礎(chǔ)操作任務(wù)實(shí)施任務(wù)4-7使用SQL語(yǔ)句在數(shù)據(jù)庫(kù)gdci中創(chuàng)建地區(qū)表area。字段名數(shù)據(jù)類型是否為空說(shuō)明areaNumberCHAR(6)NOTNULL地區(qū)編號(hào)chineseNameVARCHAR(10)NOTNULL中文名foreignNameVARCHAR(40)NULL外文名aliasVARCHAR(40)NULL別名geographicalPositionVARCHAR(40)NULL地理位置areaDECIMAL(9,2)NOTNULL面積populationSizeINTNOTNULL人口數(shù)量areaCodeCHAR(4)NOTNULL電話區(qū)號(hào)licensePlateCodeCHAR(4)NOTNULL車(chē)牌代碼表4-6地區(qū)表areaCREATETABLEarea(

areaNumberCHAR(6)NOTNULL,

chineseNameVARCHAR(10)NOTNULL,

foreignNameVARCHAR(40)NULL,

aliasVARCHAR(40)NULL,

geographicalPositionVARCHAR(40)NULL,

areaDECIMAL(9,2)NOTNULL,

populationSizeINTNOTNULL,

areaCodeCHAR(4)NOTNULL,

licensePlateCodeCHAR(4)NOTNULL)ENGINE=InnoDBDEFAULTCHARSET=utf8mb3COLLATE=utf8mb3_general_ci;二、數(shù)據(jù)表的基礎(chǔ)操作任務(wù)實(shí)施任務(wù)4-8使用SQL語(yǔ)句在數(shù)據(jù)庫(kù)gdci中創(chuàng)建民俗表folk。任務(wù)4-9使用SQL語(yǔ)句在數(shù)據(jù)庫(kù)gdci中創(chuàng)建名人表celebrity。字段名數(shù)據(jù)類型是否為空說(shuō)明idINTNOTNULL記錄編號(hào)fkAreaNumberCHAR(6)NOTNULL地區(qū)編號(hào)folkNameVARCHAR(30)NOTNULL民俗名稱folkIntroductionVARCHAR(1000)NULL民俗介紹表4-7民俗表folk字段名數(shù)據(jù)類型是否為空說(shuō)明idINTNOTNULL記錄編號(hào)fkAreaNumberCHAR(6)NOTNULL地區(qū)編號(hào)celebrityNameVARCHAR(8)NOTNULL姓名profileVARCHAR(1000)NULL人物簡(jiǎn)介表4-8名人表celebrityCREATETABLEfolk(

idINTNOTNULL,

fkAreaNumberCHAR(6)NOTNULL,

folkNameVARCHAR(30)NOTNULL,

folkIntroductionVARCHAR(1000)NULL)ENGINE=InnoDBCHARACTERSET=utf8mb3COLLATE=utf8mb3_general_ci;CREATETABLEcelebrity(idINTNOTNULL,fkAreaNumberCHAR(6)NOTNULL,celebrityNameVARCHAR(8)NOTNULL,profileVARCHAR(1000)NULL)ENGINE=InnoDBCHARACTERSET=utf8mb3COLLATE=utf8mb3_general_ci;二、數(shù)據(jù)表的基礎(chǔ)操作任務(wù)實(shí)施任務(wù)4-10使用SQL語(yǔ)句在數(shù)據(jù)庫(kù)gdci中創(chuàng)建榮譽(yù)表honor。任務(wù)4-11使用SQL語(yǔ)句在數(shù)據(jù)庫(kù)gdci中創(chuàng)建工作人員表user。字段名數(shù)據(jù)類型是否為空說(shuō)明idINTNOTNULL記錄編號(hào)fkAreaNumberCHAR(6)NOTNULL地區(qū)編號(hào)honoraryTitleVARCHAR(200)NOTNULL榮譽(yù)稱號(hào)表4-9榮譽(yù)表honor字段名數(shù)據(jù)類型是否為空說(shuō)明userIdSMALLINTNOTNULL工號(hào)userNameVARCHAR(8)NOTNULL姓名fkTitleVARCHAR(10)NOTNULL職稱genderVARCHAR(2)NOTNULL性別nationVARCHAR(10)NULL民族birthdayDATENULL出生日期nativePlaceVARCHAR(10)NULL籍貫phoneVARCHAR(13)NOTNULL手機(jī)號(hào)表4-10工作人員表userCREATETABLEhonor(idINTNOTNULL,fkAreaNumberCHAR(6)NOTNULL,honoraryTitleVARCHAR(200)NOTNULL)ENGINE=InnoDBCHARACTERSET=utf8mb3COLLATE=utf8mb3_general_ci;CREATETABLEuser(userIdSMALLINTNOTNULL,userNameVARCHAR(8)NULL,fkTitleVARCHAR(10)NULL,genderVARCHAR(2)NULL,nationVARCHAR(10)NULL,birthdayDATENULL,nativePlaceVARCHAR(10)NULL,phoneVARCHAR(13)NULL)ENGINE=InnoDBCHARACTERSET=utf8mb3COLLATE=utf8mb3_general_ci;二、數(shù)據(jù)表的基礎(chǔ)操作任務(wù)實(shí)施字段名數(shù)據(jù)類型是否為空說(shuō)明planIdINTNOTNULL計(jì)劃編號(hào)planNameVARCHAR(60)NOTNULL計(jì)劃名稱planMakerSMALLINTNOTNULL制訂者工號(hào)releaseTimeDATENOTNULL發(fā)布時(shí)間planReviewerSMALLINTNOTNULL審核者工號(hào)auditTimeDATENULL審核時(shí)間startTimeDATENULL計(jì)劃開(kāi)始時(shí)間endTimeDATENULL計(jì)劃結(jié)束時(shí)間planContentVARCHAR(1000)NOTNULL計(jì)劃內(nèi)容表4-11工作計(jì)劃表plan任務(wù)4-12使用SQL語(yǔ)句在數(shù)據(jù)庫(kù)gdci中創(chuàng)建工作計(jì)劃表plan。CREATETABLEplan(

planIdINTNOTNULL,

planNameVARCHAR(60)NOTNULL,

planMakerSMALLINTNOTNULL,

releaseTimeDATENOTNULL,

planReviewerSMALLINTNOTNULL,

auditTimeDATENULL,

startTimeDATENULL,

endTimeDATENULL,

planContentVARCHAR(1000)NULL)ENGINE=InnoDBCHARACTERSET=utf8mb3COLLATE=utf8mb3_general_ci;二、數(shù)據(jù)表的基礎(chǔ)操作任務(wù)實(shí)施任務(wù)4-13使用SQL語(yǔ)句在數(shù)據(jù)庫(kù)gdci中創(chuàng)建工作計(jì)劃參與人員表participant。字段名數(shù)據(jù)類型是否為空說(shuō)明idINTNOTNULL記錄編號(hào)planIdINTNOTNULL計(jì)劃編號(hào)userIdSMALLINTNOTNULL工號(hào)dutyVARCHAR(1000)NOTNULL工作職責(zé)requirementVARCHAR(1000)NULL工作要求remarksVARCHAR(500)NULL備注表4-12工作計(jì)劃參與人員表participan任務(wù)4-14使用SQL語(yǔ)句在數(shù)據(jù)庫(kù)gdci中創(chuàng)建工作計(jì)劃項(xiàng)目表planforproject。字段名數(shù)據(jù)類型是否為空說(shuō)明idINTNOTNULL記錄編號(hào)planIdINTNOTNULL計(jì)劃編號(hào)projectIdINTNOTNULL民俗記錄編號(hào)、名人記錄編號(hào)或榮譽(yù)記錄編號(hào)typeINTNOTNULL0表示民俗類型,1表示名人類型,2表示城市榮譽(yù)remarksVARCHAR(500)NULL備注表4-13工作計(jì)劃項(xiàng)目表planforprojectCREATETABLEparticipant(

idINTNOTNULL,

planIdINTNOTNULL,

userIdSMALLINT(0)NOTNULL,

dutyVARCHAR(1000)NOTNULL,

requirementVARCHAR(1000)NULL,

remarksVARCHAR(500)NULL)ENGINE=InnoDBCHARACTERSET=utf8mb3COLLATE=utf8mb3_general_ci;CREATETABLEplanforproject(

idINTNOTNULL,

planIdINTNOTNULL,

projectIdINTNOTNULL,

typeINTNOTNULL,

remarksVARCHAR(500)NULL)ENGINE=InnoDBCHARACTERSET=utf8mb3COLLATE=utf8mb3_general_ci;二、數(shù)據(jù)表的基礎(chǔ)操作任務(wù)實(shí)施拓展任務(wù)4-4在數(shù)據(jù)庫(kù)gdci中,用復(fù)制的方式創(chuàng)建一個(gè)名為area_copy1的表,表結(jié)構(gòu)直接取自地區(qū)表area;再創(chuàng)建一個(gè)名為area_copy2的表,其結(jié)構(gòu)和內(nèi)容(數(shù)據(jù))都取自地區(qū)表area。分析:當(dāng)需要建立的數(shù)據(jù)表與已有數(shù)據(jù)表結(jié)構(gòu)相同時(shí),可以采用復(fù)制表的方法復(fù)制現(xiàn)有數(shù)據(jù)表的結(jié)構(gòu),也可以復(fù)制表的結(jié)構(gòu)和數(shù)據(jù)。其基本語(yǔ)法格式如下:需要說(shuō)明以下幾點(diǎn)。使用LIKE關(guān)鍵字創(chuàng)建一個(gè)與參照表名結(jié)構(gòu)相同的新表,列名、數(shù)據(jù)類型和索引也復(fù)制,但是表的內(nèi)容不會(huì)復(fù)制,因此創(chuàng)建的新表是一個(gè)空表。使用AS關(guān)鍵字可以復(fù)制表的內(nèi)容,但索引和完整性約束是不會(huì)復(fù)制的。SELECT語(yǔ)句表示一個(gè)表達(dá)式,也可以是一條SELECT語(yǔ)句。(1)創(chuàng)建數(shù)據(jù)表area_copy1:(2)創(chuàng)建數(shù)據(jù)表area_copy2:CREATETABLE[IFNOTEXISTS]新表名[LIKE參照表名]|[AS(SELECT語(yǔ)句)]CREATETABLEarea_copy1LIKEarea;CREATETABLEarea_copy2AS(SELECT*FROMarea);二、數(shù)據(jù)表的基礎(chǔ)操作任務(wù)實(shí)施拓展任務(wù)4-5使用Navicat在數(shù)據(jù)庫(kù)gdci_backup中創(chuàng)建用戶表user01。(1)打開(kāi)Navicat,連接MySQL服務(wù)器,打開(kāi)“NavicatforMySQL”窗口,展開(kāi)左側(cè)“連接”框中的連接名,雙擊打開(kāi)要操作的數(shù)據(jù)庫(kù)gdci_backup,如果已經(jīng)被刪除,那么先新建一個(gè)同名數(shù)據(jù)庫(kù)gdci_backup,再單擊工具欄中的“查詢”圖標(biāo),并選擇“新建查詢”選項(xiàng),打開(kāi)查詢編輯器界面,如圖4-11所示,在查詢編輯器下方的編輯區(qū)域輸入如下SQL語(yǔ)句:CREATETABLEuser01(

userIdSMALLINT(0)NOTNULL,

userNameVARCHAR(8)NULL,

fkTitleVARCHAR(10)NULL,

genderVARCHAR(2)NULL,

nationVARCHAR(10)NULL,

birthdayDATENULL,

nativePlaceVARCHAR(10)NULL,

phoneVARCHAR(13)NULL

)ENGINE=InnoDBCHARSET=utf8mb3COLLATE=utf8mb3_general_ci;圖4-11創(chuàng)建用戶表user01的查詢編輯器界面二、數(shù)據(jù)表的基礎(chǔ)操作任務(wù)實(shí)施拓展任務(wù)4-5使用Navicat在數(shù)據(jù)庫(kù)gdci_backup中創(chuàng)建用戶表user01。(2)單擊“運(yùn)行”圖標(biāo),查詢結(jié)果如圖4-12所示。(3)返回“NavicatforMySQL”窗口,選中數(shù)據(jù)庫(kù)gdci_backup中的表并右擊,在彈出的快捷菜單中選擇“刷新”命令,在“連接”框右側(cè)的空白區(qū)域會(huì)出現(xiàn)用戶表user01,表示完成數(shù)據(jù)表的創(chuàng)建,如圖4-13所示。圖4-12查詢結(jié)果圖4-13創(chuàng)建的用戶表user0103備份和還原數(shù)據(jù)庫(kù)三、備份和還原數(shù)據(jù)庫(kù)任務(wù)分析任務(wù)編號(hào)任務(wù)內(nèi)容任務(wù)4-15使用mysqldump命令實(shí)現(xiàn)數(shù)據(jù)庫(kù)gdci的備份,將該數(shù)據(jù)庫(kù)備份到E:\backup路徑下,備份文件的名稱為gdci_backup.sql任務(wù)4-16使用mysqldump命令實(shí)現(xiàn)數(shù)據(jù)庫(kù)gdci中工作人員表user和地區(qū)表area的備份,將該數(shù)據(jù)備份到E:\backup路徑下,備份的文件名為gdci_user_area_backup.sql任務(wù)4-17使用mysqldunp命令實(shí)現(xiàn)gdci數(shù)據(jù)庫(kù)和mysql數(shù)據(jù)庫(kù)的備份,將該數(shù)據(jù)備份到E:\backup路徑下,備份的文件名為gdci_mysql_backup.sql任務(wù)4-18使用mysqldunp命令實(shí)現(xiàn)本地服務(wù)器所有數(shù)據(jù)庫(kù)的備份,將該數(shù)據(jù)備份到E:\backup路徑下,備份文件的名稱為all_backup.sql任務(wù)4-19使用SELECT...INTOOUTFILE語(yǔ)句導(dǎo)出數(shù)據(jù)庫(kù)gdci中工作人員表的數(shù)據(jù),將該數(shù)據(jù)備份到E:\backup路徑下,備份文件的名稱為gdci_user_data.txt任務(wù)4-20使用SELECT...INTOOUTFILE語(yǔ)句實(shí)現(xiàn)gdci數(shù)據(jù)庫(kù)中用戶表數(shù)據(jù)的導(dǎo)出,將該數(shù)據(jù)備份到D:\ProgramData\

MySQL\MySQLServer8.0\Uploads,備份的文件名為gdci_user01_data.txt。任務(wù)4-21使用mysql命令實(shí)現(xiàn)E:\backup\gdci_backup.sql文件的還原,還原的數(shù)據(jù)庫(kù)的名稱為gdci_new任務(wù)4-22使用LOADDATAINFILE語(yǔ)句實(shí)現(xiàn)D:\ProgramData\MySQL\MySQLServer8.0\Uploads\gdci_user_data.txt文件的還原,將該文件內(nèi)的數(shù)據(jù)恢復(fù)到數(shù)據(jù)庫(kù)gdci_new的user_new表中任務(wù)4-23使用LOADDATAINFILE語(yǔ)句實(shí)現(xiàn)D:\ProgramData\MySQL\MySQLServer8.0\Uploads\gdci_user01_data.txt文件的還原,將該文件內(nèi)的數(shù)據(jù)恢復(fù)到數(shù)據(jù)庫(kù)gdci_new的user_new01表中拓展任務(wù)4-6使用Navicat恢復(fù)數(shù)據(jù)在數(shù)據(jù)庫(kù)的操作過(guò)程中,盡管系統(tǒng)采用了各種措施來(lái)保證數(shù)據(jù)庫(kù)的安全性和完整性,但仍然經(jīng)常遇到人為破壞、硬件故障、病毒入侵和用戶誤操作等問(wèn)題。這些問(wèn)題會(huì)影響數(shù)據(jù)的正確性,甚至?xí)茐臄?shù)據(jù)庫(kù),使數(shù)據(jù)庫(kù)中的數(shù)據(jù)部分或全部丟失。因此,為了有效防止數(shù)據(jù)丟失,保證數(shù)據(jù)的安全,對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份是最簡(jiǎn)單的保護(hù)數(shù)據(jù)的方法。在意外情況發(fā)生時(shí),能夠盡量減少損失。其任務(wù)清單如下。三、備份和還原數(shù)據(jù)庫(kù)知識(shí)儲(chǔ)備1、使用mysqldump命令備份mysqldump是MySQL提供的一個(gè)客戶端命令。使用mysqldump命令可以將數(shù)據(jù)庫(kù)中的數(shù)據(jù)備份成一個(gè)文本文件,數(shù)據(jù)表的結(jié)構(gòu)和數(shù)據(jù)將存儲(chǔ)在生成的文本文件中。該文本文件實(shí)際上包含多個(gè)CREATE和INSERT語(yǔ)句,使用這些語(yǔ)句可以重新創(chuàng)建數(shù)據(jù)表和插入數(shù)據(jù)。1)使用mysqldump命令備份一個(gè)數(shù)據(jù)庫(kù)或指定表其基本語(yǔ)法格式如下:mysqldump-uuser-hhost-ppassworddb[tb1,[tb2,...]]>filename說(shuō)明:-u面后的user表示用戶名;-h后面的host表示主機(jī)名;-p后面的password表示用戶密碼,-p選項(xiàng)和用戶密碼之間不能有空格;如果是本地MySQL服務(wù)器,那么-h選項(xiàng)可以省略。db表示需要備份的數(shù)據(jù)庫(kù)名,tb1和tb2表示該數(shù)據(jù)庫(kù)需要備份的表,可以選擇多個(gè)表進(jìn)行備份,數(shù)據(jù)庫(kù)名與表名之間都用空格隔開(kāi)。如果要備份整個(gè)數(shù)據(jù)庫(kù),那么可以省略表名。“>”表示要將備份的數(shù)據(jù)庫(kù)或表寫(xiě)入備份文件中。filename表示備份的文件名,一般使用.sql作為文件后綴名,如果需要保存在指定路徑下,那么在這里可以指定具體路徑。在該路徑下不能有同名的文件,否則新的備份文件會(huì)覆蓋原來(lái)的文件。三、備份和還原數(shù)據(jù)庫(kù)知識(shí)儲(chǔ)備1、使用mysqldump命令備份2)使用mysqldump命令備份多個(gè)數(shù)據(jù)庫(kù)其基本語(yǔ)法格式如下:mysqldump-uuser-hhost-ppassword--databasesdb1[db2,db3...]>filename說(shuō)明:--databases表示要備份多個(gè)數(shù)據(jù)庫(kù),后面至少要指定一個(gè)數(shù)據(jù)庫(kù)名稱,多個(gè)數(shù)據(jù)庫(kù)用空格隔開(kāi)。db1、db2和db3表示要備份的多個(gè)數(shù)據(jù)庫(kù)的名稱。3)使用mysqldump命令備份所有數(shù)據(jù)庫(kù)其基本語(yǔ)法格式如下:說(shuō)明:--all-databases表示要備份數(shù)據(jù)庫(kù)服務(wù)器中的所有數(shù)據(jù)庫(kù)。mysqldump-uuser-hhost-ppassword--all-databases>filename三、備份和還原數(shù)據(jù)庫(kù)知識(shí)儲(chǔ)備2、使用SQL語(yǔ)句備份數(shù)據(jù)表在MySQL中,可以使用SELECTINTO...OUTFILE語(yǔ)句把表數(shù)據(jù)導(dǎo)出到一個(gè)文本文件中,基本語(yǔ)法格式如下:SELECT[file_name]FROMtable_name[WHEREcondition]INTOOUTFILE'filename'[OPTION]說(shuō)明:SELECT[file_name]FROMtable_name[WHEREcondition]是普通的查詢語(yǔ)句,查詢的結(jié)果是要導(dǎo)出的數(shù)據(jù)。filename表

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論