




已閱讀5頁(yè),還剩15頁(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ù)系統(tǒng)原理(復(fù)習(xí)資料)第一章 數(shù)據(jù)庫(kù)系統(tǒng)概述一、識(shí)記:1)數(shù)據(jù)(Data):是描述事物的符號(hào)記錄,是指用物理符號(hào)記錄下來(lái)的、可以鑒別的信息。(P27)2)數(shù)據(jù)庫(kù)(DataBase,DB):通俗的被稱作存儲(chǔ)數(shù)據(jù)的倉(cāng)庫(kù)。3)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS):是專門用于建立和管理數(shù)據(jù)庫(kù)的一套軟件,介于應(yīng)用程序和操作系統(tǒng)之間。4)數(shù)據(jù)庫(kù)系統(tǒng)(DBS):是指在計(jì)算機(jī)中引入數(shù)據(jù)庫(kù)技術(shù)之后的系統(tǒng)。2、 數(shù)據(jù)管理技術(shù)發(fā)展階段:1)人工管理階段、2)文件系統(tǒng)階段、3)數(shù)據(jù)庫(kù)系統(tǒng)階段數(shù)據(jù)庫(kù)系統(tǒng)階段,與人工管理、文件系統(tǒng)管理相比有如下特點(diǎn):數(shù)據(jù)集成、數(shù)據(jù)共享性高、數(shù)據(jù)冗余度小、數(shù)據(jù)一致性、數(shù)據(jù)獨(dú)立性高P323、 數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu):是指數(shù)據(jù)庫(kù)系統(tǒng)是由模式、外模式和內(nèi)模式三級(jí)構(gòu)成(P34)模式:也稱為概念模式或邏輯模式,它是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖;外模式:也成為子模式或用戶模式,它是數(shù)據(jù)庫(kù)用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是與某一應(yīng)用有關(guān)的邏輯表示;內(nèi)模式:也稱儲(chǔ)存模式,它是對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)物理結(jié)構(gòu)和儲(chǔ)存方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)部的表示形式;三級(jí)模式結(jié)構(gòu)的兩層映像與數(shù)據(jù)獨(dú)立性:(1)外模式/模式映像 (2)模式/內(nèi)模式映像:定義了數(shù)據(jù)庫(kù)全局邏輯結(jié)構(gòu)與物理儲(chǔ)存之間的對(duì)應(yīng)關(guān)系 (3)實(shí)現(xiàn)概念模式(模式)不受內(nèi)模式變化影響,正是這兩層映像保證了數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性,使得數(shù)據(jù)的定義和描述可以從應(yīng)用程序中分離出去,從而簡(jiǎn)化了數(shù)據(jù)庫(kù)應(yīng)用程序的開發(fā)。(P36)四、數(shù)據(jù)庫(kù)系統(tǒng)的運(yùn)行與應(yīng)用結(jié)構(gòu):目前兩種,客戶/服務(wù)器結(jié)構(gòu)、瀏覽器/服務(wù)器結(jié)構(gòu)五、數(shù)據(jù)模型:通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)約束三個(gè)要素組成;數(shù)據(jù)模型分類:第一類:概念層數(shù)據(jù)模型,第二類:邏輯層數(shù)據(jù)模型和物理層數(shù)據(jù)模型。概念層數(shù)據(jù)模型:是數(shù)據(jù)抽象級(jí)別的最高層,其目的是按用戶的觀點(diǎn)來(lái)對(duì)世界建模,通常用來(lái)抽象、表示現(xiàn)實(shí)世界的各種事物及其聯(lián)系;信息世界設(shè)計(jì)的基本概念如下:實(shí)體、屬性、碼或鍵、域、實(shí)體性、實(shí)體集、聯(lián)系;概念模型表示方法:實(shí)體性(矩形表示)、屬性(橢圓形表示)、聯(lián)系(菱形表示)邏輯層數(shù)據(jù)模型:邏輯層是數(shù)據(jù)抽象的中間層,描述數(shù)據(jù)整體的邏輯結(jié)構(gòu)。包括層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο竽P?;這里給予關(guān)系模型的數(shù)據(jù)庫(kù)。(P41)物理層數(shù)據(jù)模型:其描述數(shù)據(jù)在儲(chǔ)存介質(zhì)上的組織結(jié)構(gòu),是邏輯模型的物理實(shí)現(xiàn)。第二章 關(guān)系數(shù)據(jù)庫(kù)一、關(guān)系數(shù)據(jù)庫(kù)的基本特征是使用關(guān)系數(shù)據(jù)模型組織數(shù)據(jù),這種思想源于數(shù)學(xué)。二、關(guān)系數(shù)據(jù)模型:關(guān)系模型三個(gè)組成要素,關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束。以二維表格為例,介紹關(guān)系數(shù)據(jù)庫(kù)的基本術(shù)語(yǔ):表、關(guān)系、列、屬性、行、元組、分量、碼或鍵、超碼和超鍵、候選碼和候選鍵、主碼和主鍵、全碼和全鍵、主屬性、外碼或外鍵、參照關(guān)系和被參照關(guān)系、域、數(shù)據(jù)類型、關(guān)系模式、關(guān)系數(shù)據(jù)庫(kù)。(P44)4、 關(guān)系操作集合:常用操作包括查詢操作和插入、刪除、修改操作兩大部分。 關(guān)系數(shù)據(jù)語(yǔ)言的分類:關(guān)系代數(shù)語(yǔ)言、關(guān)系演算語(yǔ)言、以及兼兩種特點(diǎn)的 結(jié)構(gòu)化查詢語(yǔ)言SQL (將在第四章詳細(xì)講解);5、 關(guān)系代數(shù):是關(guān)系操作語(yǔ)言的一種傳統(tǒng)表示方式,它是集合代數(shù)為基礎(chǔ)發(fā)展起來(lái)的。操作包括三大要素:操作對(duì)象、操作符、操作結(jié)果; (IBM 公司研制 ISBL 的純代數(shù)數(shù)據(jù)操作語(yǔ)言。) A:傳統(tǒng)的集合運(yùn)算:是二目運(yùn)算,具有并、差、交、笛卡爾積 4種運(yùn)算 (P51看書理解)B:專門的關(guān)系運(yùn)算:不僅涉及行,還涉及列,它可分為一元專門關(guān)系操作和二元專門關(guān)系操作;其中,一元專門關(guān)系操作包括對(duì)單個(gè)關(guān)系進(jìn)行垂直分解的投影運(yùn)算和進(jìn)行水平分解選擇運(yùn)算;二元專門關(guān)系操作則是對(duì)兩個(gè)關(guān)系進(jìn)行操作,包括連接運(yùn)算和除運(yùn)算。專門的關(guān)系運(yùn)算有:選擇、投影、連接、除;6、 關(guān)系的完整性約束:有三類完整性約束,實(shí)體完整性約束、參照完整性約束、用戶定義完整性約束。 關(guān)系模型完整性約束的檢驗(yàn):為了維護(hù)關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)的完整性,在對(duì)關(guān)系數(shù)據(jù)庫(kù)執(zhí)行插入、刪除和更新操作時(shí),需要檢驗(yàn)是否滿足上述三類完整性約束。(P56 ,看書進(jìn)行補(bǔ)充)7、 關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論:關(guān)系模型中可能存在的冗余和異常問(wèn)題:數(shù)據(jù)冗余、更新異常、插入異常、刪除異常;現(xiàn)在人們提出許多種類型的數(shù)據(jù)依賴,其中最重要的是函數(shù)依賴FD,多值依賴MVD;8、 函數(shù)依賴和關(guān)鍵字:(P57)函數(shù)依賴:是指關(guān)系中屬性間的對(duì)應(yīng)關(guān)系。 根據(jù)不同性質(zhì)可分完全函數(shù)依賴、部分函數(shù)依賴、傳遞函數(shù)依賴;關(guān)鍵字:設(shè)R為任意給定關(guān)系,U為其所含的全部屬性集合,X為U的子集,若有完全函數(shù)依賴XU,則X為R的一個(gè)候選關(guān)鍵字。九、范式與關(guān)系規(guī)范化過(guò)程:關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系需要滿足一定的要求,不同程度的要求稱為不同的范式(NF)。滿足最低要求的稱為第一范式(1NF),這是最基本的范式;在第一范式的基礎(chǔ)上進(jìn)一步滿足一些新要求的稱為第二范式(2NF);以此類推,再進(jìn)一步的范式成為第三范式(3NF)。 第一范式:設(shè)定R為任一給定關(guān)系,如果R中每個(gè)列與行的交點(diǎn)處的取值都是不可再分的基本元素,則R為第一范式。第二范式:設(shè)定R為任一給定關(guān)系,若R為1NF,且其所有非主屬性都完全函數(shù)依賴于候選關(guān)鍵字,則R為第二范式。第三范式:設(shè)定R為任一給定關(guān)系,若R為2NF,且其每一個(gè)非主屬性都不傳遞函數(shù)依賴于候選關(guān)鍵字,則R為第三范式。BCNF:為了解決3NF有時(shí)會(huì)出現(xiàn)的插入及刪除操作異常等問(wèn)題,R.F.Boyce和E.F.Cold提出了第3范式的改進(jìn)形式BCNF。第3章 數(shù)據(jù)庫(kù)設(shè)計(jì)(P64)1、 數(shù)據(jù)庫(kù)設(shè)計(jì)概述 數(shù)據(jù)庫(kù)生命周期:分兩個(gè)階段,數(shù)據(jù)庫(kù)分析與設(shè)計(jì)階段、數(shù)據(jù)庫(kù)實(shí)現(xiàn)與操作階段。 數(shù)據(jù)庫(kù)設(shè)計(jì)的目標(biāo):滿足應(yīng)用功能需求和良好的數(shù)據(jù)庫(kù)性能。 數(shù)據(jù)庫(kù)設(shè)計(jì)的內(nèi)容:1)數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì):是針對(duì)給定的應(yīng)用環(huán)境進(jìn)行數(shù)據(jù)庫(kù)的模式或子模式設(shè)計(jì),包括數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)或物理結(jié)構(gòu)設(shè)計(jì)。模式定義并給出各應(yīng)用程序共享的結(jié)構(gòu),是靜態(tài)的。 2)數(shù)據(jù)庫(kù)行為設(shè)計(jì):是確定數(shù)據(jù)庫(kù)用戶的行為和動(dòng)作,它們通常是通過(guò)應(yīng)用程序來(lái)實(shí)現(xiàn)的,由于用戶行為會(huì)是數(shù)據(jù)庫(kù)的內(nèi)容發(fā)生變化,所以行為設(shè)計(jì)是動(dòng)態(tài)的。 數(shù)據(jù)庫(kù)設(shè)計(jì)的方法:(1)直觀設(shè)計(jì)法;(2)規(guī)范設(shè)計(jì)法:新奧爾良設(shè)計(jì)方法,四個(gè)階段:需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì) 基于E-R模型的數(shù)據(jù)庫(kù)設(shè)計(jì)方法:1976年由P.P.S.Chen提出 基于第三范式的設(shè)計(jì)方法二、數(shù)據(jù)庫(kù)設(shè)計(jì)的過(guò)程:將數(shù)據(jù)庫(kù)設(shè)計(jì)分為這樣幾個(gè)階段:需求分析階段;結(jié)構(gòu)設(shè)計(jì)階段、其中包括概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)和物理結(jié)構(gòu)設(shè)計(jì);行為設(shè)計(jì)階段,其包括功能設(shè)計(jì)、事務(wù)設(shè)計(jì)和程序設(shè)計(jì);數(shù)據(jù)庫(kù)實(shí)施階段,其包括加載數(shù)據(jù)庫(kù)數(shù)據(jù)和調(diào)試運(yùn)行應(yīng)用程序;數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)階段。三、數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟:(P67) 需求分析:是數(shù)據(jù)庫(kù)設(shè)計(jì)的起點(diǎn),一般分為四個(gè)步驟,確定數(shù)據(jù)庫(kù)范圍、分析數(shù)據(jù)應(yīng)用過(guò)程、收集與分析數(shù)據(jù)、編寫需求分析報(bào)告;編寫需求分析報(bào)告:1)數(shù)據(jù)庫(kù)的應(yīng)用功能目標(biāo)2)標(biāo)明不同用戶視圖范圍3)應(yīng)用處理過(guò)程需求說(shuō)明i:數(shù)據(jù)流程圖,其主要反映應(yīng)用部門原始業(yè)務(wù)處理的工作流程ii:任務(wù)分類表,其標(biāo)明不同任務(wù)的功能及使用情況iii:數(shù)據(jù)操作特征表,標(biāo)明任務(wù)和數(shù)據(jù)間的聯(lián)系及不同數(shù)據(jù)的不同操作特征與執(zhí)行頻率iv:操作過(guò)程說(shuō)明書,其根據(jù)數(shù)據(jù)流程圖、任務(wù)分類表和各類原始資料4)數(shù)據(jù)字典(DD),是數(shù)據(jù)庫(kù)系統(tǒng)中存儲(chǔ)三級(jí)結(jié)構(gòu)定義的數(shù)據(jù)庫(kù),通常指的是數(shù)據(jù)庫(kù)系統(tǒng)中各類數(shù)據(jù)詳細(xì)描述的集合。5)數(shù)據(jù)量:根據(jù)數(shù)據(jù)分類表中的靜態(tài)數(shù)據(jù)量和操作特征表中的動(dòng)態(tài)數(shù)據(jù)量,進(jìn)行統(tǒng)計(jì)計(jì)算,求出數(shù)據(jù)總量。6)數(shù)據(jù)約束四、概念結(jié)構(gòu)設(shè)計(jì) 設(shè)計(jì)任務(wù)是在需求分析報(bào)告的基礎(chǔ)上,按照特定的方法設(shè)計(jì)滿足應(yīng)用需求的用戶信息結(jié)構(gòu),該信息結(jié)構(gòu)通常稱為概念模型。5、 邏輯結(jié)構(gòu)設(shè)計(jì) 的目標(biāo)是將概念模型轉(zhuǎn)換為等價(jià)的、并為特定DBMS所支持?jǐn)?shù)據(jù)模型的結(jié)構(gòu)。數(shù)據(jù)庫(kù)邏輯模型一般由層次、網(wǎng)狀、關(guān)系數(shù)據(jù)模型表示。(P71)(1) 邏輯結(jié)構(gòu)設(shè)計(jì)的輸入與輸出信息(2) 邏輯結(jié)構(gòu)設(shè)計(jì)的步驟六、物理設(shè)計(jì)是指對(duì)于一個(gè)給定的數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu),研究并構(gòu)造物理結(jié)構(gòu)的過(guò)程,其具體任務(wù)主要是確定數(shù)據(jù)庫(kù)在存儲(chǔ)設(shè)備上的存儲(chǔ)結(jié)構(gòu)及存取方法,因DBMS的不同還可能包括建立索引和聚焦,以及物理塊大小、緩沖區(qū)個(gè)數(shù)和大小、數(shù)據(jù)壓縮的選擇等。6、 數(shù)據(jù)庫(kù)實(shí)施實(shí)施階段主要包括:加載數(shù)據(jù)、應(yīng)用程序設(shè)計(jì)和數(shù)據(jù)庫(kù)試運(yùn)行。(P72)七、數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)系統(tǒng)維護(hù)中最困難的工作是數(shù)據(jù)庫(kù)重組和重構(gòu)。 重組適當(dāng)空間利用率和存取效率下降時(shí)進(jìn)行的,它并不改變數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu),只是利用DBMS提供的設(shè)施調(diào)整數(shù)據(jù)庫(kù)中的數(shù)據(jù)的存儲(chǔ)位置。 重構(gòu)是指部分修改數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)。第三節(jié) 關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)方法一、關(guān)系數(shù)據(jù)庫(kù):是一類采用關(guān)系模型作為邏輯數(shù)據(jù)模型的數(shù)據(jù)庫(kù)系統(tǒng),它的設(shè)計(jì)過(guò)程遵從數(shù)據(jù)庫(kù)設(shè)計(jì)基本步驟:需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)實(shí)施、數(shù)據(jù)庫(kù)的運(yùn)行和維護(hù)。二、關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程與各級(jí)模式:在邏輯設(shè)計(jì)階段采用E-R圖轉(zhuǎn)換成具體數(shù)據(jù)庫(kù)產(chǎn)品支持的關(guān)系數(shù)據(jù)模型,形成數(shù)據(jù)庫(kù)邏輯模式,然后根據(jù)用戶處理的要求、安全性的考慮,在基本表的基礎(chǔ)上再建立必要的視圖,形成數(shù)據(jù)的外模式;在物理結(jié)構(gòu)的設(shè)計(jì)階段,根據(jù)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的特點(diǎn)和處理的需要,進(jìn)行物理存儲(chǔ)安排、建立索引,形成數(shù)據(jù)庫(kù)內(nèi)模式,關(guān)系數(shù)據(jù)庫(kù)各級(jí)模式如圖:2、 概念結(jié)構(gòu)設(shè)計(jì)方法:通常采用自頂向下法,通過(guò)兩個(gè)步驟完成概念設(shè)計(jì),即首先建立局部信息結(jié)構(gòu),然后將局部信息結(jié)構(gòu)合成為全局信息結(jié)構(gòu)并優(yōu)化。1、 E-R圖的表示方法 i)實(shí)體性,用矩形表示;ii)屬性,用橢圓形表示;iii)聯(lián)系,用菱形表示。2、 兩個(gè)實(shí)體型之間的聯(lián)系:一對(duì)一聯(lián)系(1:1);一對(duì)多聯(lián)系(1:N)多對(duì)多聯(lián)系(M:N)3、 兩個(gè)以上的實(shí)體型之間的聯(lián)系:(P75)也存在一對(duì)一;一對(duì)多;多對(duì)多;4、 單個(gè)實(shí)體型內(nèi)的聯(lián)系:同一個(gè)實(shí)體集內(nèi)各實(shí)體之間也可以存在一對(duì)一,一對(duì)多,多對(duì)多的聯(lián)系。5、 局部信息結(jié)構(gòu)設(shè)計(jì):根據(jù)需求分析報(bào)告中標(biāo)明的不同用戶視圖范圍所建立的滿足該范圍內(nèi)用戶需求的信息結(jié)構(gòu)稱為局部信息結(jié)構(gòu)。局部信息結(jié)構(gòu)設(shè)計(jì)步驟如下:(P77看實(shí)例演示) (1)確定局部范圍(2)選擇實(shí)體(3)選擇實(shí)體的關(guān)鍵字屬性(4)確定實(shí)體間聯(lián)系(5)確定實(shí)體的屬性6、全局信息結(jié)構(gòu)設(shè)計(jì):是將上述產(chǎn)生的所有局部信息結(jié)構(gòu)合并成為一個(gè)全局信息結(jié)構(gòu)。 合并過(guò)程是一個(gè)不斷發(fā)現(xiàn)和解決沖突的過(guò)程,通常,各局部E-R圖之間的沖突主要表現(xiàn)在三個(gè)方面:屬性沖突、命名沖突、結(jié)構(gòu)沖突。(P79看具體理解) (1)屬性沖突:屬性域沖突和屬性取值單位沖突;(2)命名沖突:同名異義和異名同義;(3)結(jié)構(gòu)沖突:i)同一對(duì)象在一個(gè)局部E-R圖中作為實(shí)體,而在另一個(gè)局部E-R圖中作為屬性 ii)同一個(gè)實(shí)體在不同的E-R圖中屬性個(gè)數(shù)和類型不同 iii)實(shí)體之間的聯(lián)系在不同的E-R圖中是不同的類型三、邏輯結(jié)構(gòu)設(shè)計(jì)方法邏輯結(jié)構(gòu)設(shè)計(jì)任務(wù)是把概念結(jié)構(gòu)設(shè)計(jì)產(chǎn)生的概念模型轉(zhuǎn)換為具體的DBMS所支持的邏輯數(shù)據(jù)模型,也就是導(dǎo)出特定的DBMS可以處理的數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)(數(shù)據(jù)庫(kù)的模式和外模式),這些模式在功能、性能、完整性和一致性約束方面滿足應(yīng)用要求。那么在關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)中,邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)就是把概念結(jié)構(gòu)設(shè)計(jì)階段已設(shè)計(jì)好的E-R圖轉(zhuǎn)換為關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)所支持的關(guān)系模型,通常包括以下三項(xiàng)工作:1.E-R圖向關(guān)系模型的轉(zhuǎn)換2.數(shù)據(jù)模型的優(yōu)化3.設(shè)計(jì)用戶子模式四、物理設(shè)計(jì)方法(P81看實(shí)例講解) 物理設(shè)計(jì)的主要任務(wù)是通過(guò)對(duì)關(guān)系建立索引和聚集來(lái)實(shí)現(xiàn)與應(yīng)用相關(guān)數(shù)據(jù)的邏輯連接和物理聚集,以改善對(duì)數(shù)據(jù)庫(kù)的存取效率。1. 建立索引(通常有動(dòng)態(tài)和靜態(tài)兩種)2. 建立聚集(聚集是將相關(guān)數(shù)據(jù)集中存放的物理存儲(chǔ)技術(shù),借以提高I/O的數(shù)據(jù)命中率而改善存取速度,其功能由具體的DBMS所提供) 數(shù)據(jù)聚集結(jié)構(gòu)的一種有效方式-塊結(jié)構(gòu)方式。第4章 SQL與關(guān)系數(shù)據(jù)庫(kù)基本操作關(guān)系數(shù)據(jù)庫(kù)各種基本操作的SQL語(yǔ)句,包括數(shù)據(jù)定義、數(shù)據(jù)更新、數(shù)據(jù)查詢、視圖使用。1、 SQL概述:SQL是1974年由Boyce和Chamberlin提出;SQL的特點(diǎn):1)SQL不是某個(gè)特定的數(shù)據(jù)庫(kù)供應(yīng)商專有的語(yǔ)言。幾乎所有重要的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)都支持SQL,所以掌握SQL可以幫助用戶與幾乎所有的關(guān)系數(shù)據(jù)庫(kù)進(jìn)行交互。2) SQL簡(jiǎn)單易學(xué)。它的語(yǔ)句全都是由具有很強(qiáng)的描述性的英語(yǔ)單詞所組成,而且這些單詞的數(shù)目不多。3) SQL盡管看上去很簡(jiǎn)單,但它實(shí)際上是一種強(qiáng)有力的語(yǔ)言,靈活使用其語(yǔ)言元素,可以進(jìn)行非常復(fù)雜和高級(jí)的數(shù)據(jù)庫(kù)操作。 SQL的組成:SQL是集數(shù)據(jù)查詢、數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)控制四大功能為一體。核心包括以下幾個(gè)部分:1. 數(shù)據(jù)定義語(yǔ)言(DDL):數(shù)據(jù)定義語(yǔ)言包括主要SQL語(yǔ)句有以下三個(gè):1) CREATE:用于創(chuàng)建數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)對(duì)象2) ALTER:用于對(duì)數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)對(duì)象進(jìn)行修改3) DROP:用于刪除數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)對(duì)象2. 數(shù)據(jù)操縱語(yǔ)言(DML):主要用于操縱數(shù)據(jù)庫(kù)中各種對(duì)象,特別是檢索和修改數(shù)據(jù)。主要包括語(yǔ)句如下:1) SELECT:用于從表或視圖中檢索數(shù)據(jù),其是數(shù)據(jù)庫(kù)中使用最為頻繁的SQL語(yǔ)句之一。2) INSERT:用于將數(shù)據(jù)插入到表或視圖中。3) UPDATE:用于修改表或視圖中的數(shù)據(jù),其即可修改表或視圖中一行數(shù)據(jù),也可同時(shí)修改多行或全部數(shù)據(jù)。4) DELETE:用于從表和視圖中刪除數(shù)據(jù),其中可根據(jù)條件刪除指定的數(shù)據(jù)。3. 數(shù)據(jù)控制語(yǔ)言(DCL):主要用于安全管理,例如確定哪些用戶可以查看或修改數(shù)據(jù)庫(kù)中的數(shù)據(jù),主要包括以下SQL語(yǔ)句:1) GRANT:用于授予權(quán)限,可把語(yǔ)句許可或?qū)ο笤S可的權(quán)限授予其他用戶和角色。2) REVOKE:用于收回權(quán)限,其功能與GRANT相反,但不影響該用戶或角色從其他角色中作為成員繼承許可權(quán)限。4. 嵌入式和動(dòng)態(tài)SQL規(guī)則:規(guī)則規(guī)定了SQL語(yǔ)句在高級(jí)程序設(shè)計(jì)語(yǔ)言中使用的規(guī)范方法,以便適應(yīng)較為復(fù)雜的應(yīng)用。5. SQL調(diào)用和會(huì)話規(guī)則:SQL調(diào)用包括SQL例程和調(diào)用規(guī)則,以便提高SQL的靈活性、有效性、共享性以及使用SQL具有更多的高級(jí)語(yǔ)言的特征。SQL會(huì)話規(guī)則則可使應(yīng)用程序連接到多個(gè)SQL服務(wù)器中的某個(gè),并與之交互。2、 MySQL預(yù)備知識(shí)目前,使用MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)構(gòu)建各種信息管理系統(tǒng)或互聯(lián)網(wǎng)網(wǎng)站的應(yīng)用環(huán)境主要有如下構(gòu)架方式:1) LAMP,Linux作為操作系統(tǒng),Apache作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫(kù)管理系統(tǒng),PHP、Perl或Python語(yǔ)言作為服務(wù)器端腳本解釋器。2) WAMP,Windows作為操作系統(tǒng),Apache作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫(kù)管理系統(tǒng),PHP、Perl或Python語(yǔ)言作為服務(wù)器端腳本解釋器。3、 MySQL中的SQL(P87)MySQL作為一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),遵循SQL標(biāo)準(zhǔn),提供了對(duì)數(shù)據(jù)定義語(yǔ)言DDL,數(shù)據(jù)操縱語(yǔ)言DML、數(shù)據(jù)控制語(yǔ)言DCL、并且同樣支持關(guān)系數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)。如圖MySQL在SQL標(biāo)準(zhǔn)的基礎(chǔ)上增加了部分?jǐn)U展語(yǔ)言要素:包括常量、變量、運(yùn)算符、表達(dá)式、函數(shù)、流程控制語(yǔ)句和注釋。1) 常量:是指在程序運(yùn)行過(guò)程中值不變的量,也稱為字面值或標(biāo)量值。常量的使用格式取決于值的數(shù)據(jù)類型,可分為字符串常量、數(shù)值常量、十六進(jìn)制常量、時(shí)間日期常量、位字段值、布爾值和NULL值。2) 變量:用于臨時(shí)存儲(chǔ)數(shù)據(jù),變量有名字和數(shù)據(jù)類型兩個(gè)屬性。其中變量的名字用于標(biāo)識(shí)變量,變量的數(shù)據(jù)類型用于確定變量中存儲(chǔ)數(shù)值的格式和可執(zhí)行的運(yùn)算。 在MySQL中,變量分為用戶變量和系統(tǒng)變量,在使用時(shí),用戶變量前常添一個(gè)符號(hào)“”,用于將其和列名區(qū)分開;而大多數(shù)系統(tǒng)變量應(yīng)用于其他SQL語(yǔ)句時(shí),必須在系統(tǒng)變量名前加兩個(gè)“”3) 運(yùn)算符(P88)4) 表達(dá)式:表達(dá)式是常量、變量、列名、復(fù)雜計(jì)算、運(yùn)算符、函數(shù)的集合。5) 內(nèi)置函數(shù):數(shù)學(xué)函數(shù),例如ABS()函數(shù)、SORT()函數(shù)聚合函數(shù),例如COUNT()函數(shù)字符串函數(shù),例如ASCII()函數(shù)、CHAR()函數(shù)日期和時(shí)間函數(shù),例如NOW()函數(shù)、YEAR()函數(shù)加密函數(shù),例如ENCODE()函數(shù)、ENCRYPT()函數(shù)控制流程函數(shù),例如IF()函數(shù)、IFNULL函數(shù)格式化函數(shù),例如FORMAT()函數(shù)類型轉(zhuǎn)換函數(shù),例如CAST()函數(shù)系統(tǒng)信息函數(shù),例如USER()函數(shù)、VERSION()函數(shù)四、數(shù)據(jù)定義SQL的數(shù)據(jù)定義功能包括數(shù)據(jù)庫(kù)模式定義、表定義、索引定義和視圖定義。(P89)數(shù)據(jù)庫(kù)模式定義:包含數(shù)據(jù)庫(kù)的創(chuàng)建、選擇、修改、刪除、查看等操作。1. 創(chuàng)建數(shù)據(jù)庫(kù),可以使用CREATE DATABASE或CREATE SCHEMA。2. 選擇數(shù)據(jù)庫(kù),使用USE語(yǔ)句,指定某個(gè)數(shù)據(jù)庫(kù)為當(dāng)前數(shù)據(jù)庫(kù)之后,才能對(duì)該數(shù)據(jù)庫(kù)及其存儲(chǔ)的數(shù)據(jù)對(duì)象進(jìn)行各種操作。3. 修改數(shù)據(jù)庫(kù),可以使用ALTER DATABASE或ALTER SCHEMA,來(lái)修改已被創(chuàng)建的數(shù)據(jù)庫(kù)的相關(guān)參數(shù)。4. 刪除數(shù)據(jù)庫(kù),可以使用DROP DATABASE或DROP SCHEMA。5. 查看數(shù)據(jù)庫(kù),可以使用SHOW DATABASE或SHOW SCHEMA??蛇x項(xiàng)“LIKE”關(guān)鍵字用于匹配指定的數(shù)據(jù)庫(kù)名稱,可選項(xiàng)“WHERE”從句用于指定數(shù)據(jù)庫(kù)名稱查詢范圍的條件。表定義:只有成功創(chuàng)建數(shù)據(jù)庫(kù)之后,才能在數(shù)據(jù)庫(kù)中創(chuàng)建數(shù)據(jù)表,數(shù)據(jù)表是關(guān)系數(shù)據(jù)庫(kù)中最重要、最基本的數(shù)據(jù)對(duì)象,也是數(shù)據(jù)庫(kù)存儲(chǔ)的基本單位。1. 創(chuàng)建表,MySQL使用CREATE TABLE語(yǔ)句創(chuàng)建表。該語(yǔ)法主要由表的創(chuàng)建定義、表選項(xiàng)、和分區(qū)選項(xiàng)等內(nèi)容構(gòu)成。1) 臨時(shí)表與持久表,帶TEMPORARY為臨時(shí)表,不帶為持久表2) 數(shù)據(jù)類型,主要有數(shù)值類型、布爾型、日期和時(shí)間類型、字符串類型、空間數(shù)據(jù)類型等。3) 關(guān)鍵字AUTO_INCREMENT4) 指定默認(rèn)值5) NULL值,指沒(méi)有值或缺值。6) 主鍵,通過(guò)PRIMARY KEY關(guān)鍵字來(lái)指定,主鍵值必須唯一,且一定要為NOT NULL。 2.更新表, 為了實(shí)現(xiàn)數(shù)據(jù)庫(kù)表的規(guī)范化設(shè)計(jì)的目的,可以使用ALTER TABLE語(yǔ)句來(lái)更改原有表的結(jié)構(gòu),有以下幾個(gè)子句:1)ADDCOLUMN子句,增加新列,也可增加多個(gè)列。也可在ALTER TABLE下ADDPRIMARY KEY、ADD INDEX和ADDFOREIGN KEY為原表添加一個(gè)主鍵、索引和外鍵。2)CHANGECOLUMN子句,修改制定列的名稱和數(shù)據(jù)類型,且在ALTER TABLE下同時(shí)放入多個(gè)CHANGECOLUMN子句。3)ALTERCOLUMN子句,修改或刪除指定列的默認(rèn)值。4)MODIFYCOLUMN子句,與ALTERCOLUMN不同的是,只是修改列的數(shù)據(jù)類型,不會(huì)干涉列名。5)DROPCOLUMN子句,用于卸除多余的列,一旦卸除列,原本存儲(chǔ)在該列的一切內(nèi)容都會(huì)跟著被卸除。6)RENAMECOLUMN子句,為表重新賦予一個(gè)表名。3.重命名表, 除了前面ALTER TABLE 語(yǔ)句,也可以直接用RENAME TABLE進(jìn)行更改表的名字。4.刪除表,通過(guò)DROP TABLE語(yǔ)句實(shí)現(xiàn),但操作者必須有該命令權(quán)限,刪除表時(shí),數(shù)據(jù)和分區(qū)信息均會(huì)被刪除,但權(quán)限不會(huì)刪除。5.查看表,1)顯示表的名稱,使用SHOW TABLES語(yǔ)句;2)顯示表的結(jié)構(gòu),使用SHOW COLUMNS語(yǔ)句。五、索引定義索引,就是DBMS根據(jù)表中的一列或若干列按照一定順序建立的列值與記錄行之間的對(duì)應(yīng)關(guān)系表,因而索引實(shí)質(zhì)上是一張描述索引列值與原表中記錄行之間一一對(duì)應(yīng)關(guān)系的有序表。索引是提高數(shù)據(jù)文件訪問(wèn)效率的有效方法,也存在弊端:1)索引是以文件的形式存儲(chǔ)的,DBMS會(huì)將一個(gè)表的所有索引保存在同一個(gè)索引文件中,索引文件需要占用磁盤空間;2)索引在提高查詢速度的同時(shí),會(huì)降低更新表的速度。索引在邏輯上通常包含以下幾類:1) 普通索引(INDEX),通常使用關(guān)鍵字INDEX或KEY2) 唯一性索引(UNIQUE),索引列的所有值都只能出現(xiàn)一次3) 主鍵(PRIMARY KEY),主鍵是一種唯一性索引,創(chuàng)建主鍵時(shí),必須指定關(guān)鍵字PRIMARY KEY,且不能有空值。 實(shí)際使用中,索引通常索引通常被創(chuàng)建程單列索引和組合索引。1. 索引的創(chuàng)建1.使用CREATE INDEX語(yǔ)句創(chuàng)建索引,但該句不能創(chuàng)建主鍵。語(yǔ)法格式:CREATEUNIQUEINDEX index_name ON tbl_name(index_col_name.)關(guān)鍵字:ASC(升序)和DESC(降序),默認(rèn)時(shí)為ASC2. 使用CREATE TABLE語(yǔ)句創(chuàng)建索引,索引可以在創(chuàng)建表的同時(shí)被創(chuàng)建。3. 使用ALTER TABLE語(yǔ)句創(chuàng)建索引,在使用ALTER TABLE語(yǔ)句修改表的同時(shí),可以向已有的表中添加索引。(語(yǔ)法項(xiàng)P100)4. 索引的查看,可以使用SHOW INDEX語(yǔ)句5. 索引的刪除,可以使用DROP INDEX或ALTER INDEX語(yǔ)句來(lái)刪除。7、 數(shù)據(jù)更新(P102)數(shù)據(jù)更新在SQL中三類相應(yīng)語(yǔ)句,插入數(shù)據(jù)(INSERT)、修改數(shù)據(jù)(UPDATE)、刪除數(shù)據(jù)(DELETE)插入數(shù)據(jù)_(詳細(xì)看書)1. 使用INSERT.VALUES語(yǔ)句插入單行或多行元組數(shù)據(jù)語(yǔ)法格式:INSERTINTOtbl_name(col_name,) VALUESVALUE(exprDEFAULT,),(), 語(yǔ)法中:1)”tbl_name”指定欲被插入數(shù)據(jù)的表名2) ”col_name”指定需要插入數(shù)據(jù)的列名列表3) 通過(guò)關(guān)鍵字”VALUES”或”VALUE”引導(dǎo)的子句,其包含各列需要插入的數(shù)據(jù)單.I) ”expr”表示常量、變量或一個(gè)表達(dá)式,也可以是空值NULL,其值的數(shù)據(jù)類型要與列的數(shù)據(jù)類型一致。II) 關(guān)鍵字“DEFAULT”即用于指定此列值為該列的默認(rèn)值,前提是該列之前已經(jīng)明確指定了默認(rèn)值,否則插入語(yǔ)句會(huì)出錯(cuò)。2. 使用INSERT.SET語(yǔ)句插入部分列值數(shù)據(jù)可以使用INSERT.SET語(yǔ)句直接給表中的某(些)列指定對(duì)應(yīng)的列值,既要插入數(shù)據(jù)的列名在SET子句中指定,這種方式更靈活,語(yǔ)法格式如下: INSERTINTOtbl_name SET col_name=exprDEFAULT,3. 使用INSERT.SELECT語(yǔ)句插入子查詢數(shù)據(jù)子查詢不僅可以嵌套在SELECT語(yǔ)句中,用于構(gòu)造父查詢的條件,也可以嵌套在INSERT語(yǔ)句中,用于生成要批量插入的數(shù)據(jù)。語(yǔ)法格式: INSERTINTOtbl_name(col_name,) SELECT 刪除數(shù)據(jù)在MySQL中,可以使用DELETE語(yǔ)句刪除表中的一行或多行數(shù)據(jù),語(yǔ)法格式如下:DELETE FROM tbl_name WHERE where_condition ORDER BY LIMIT row_count修改數(shù)據(jù)可以使用UPDATE語(yǔ)句來(lái)修改更新一個(gè)表中的數(shù)據(jù),實(shí)現(xiàn)對(duì)表中行的列數(shù)據(jù)進(jìn)行修改,語(yǔ)法格式如下:UPDATE tbl_name SET col_name1=expr1DEFAULT,col_name2=expr2DEFAULTWHERE where_conditionORDER BYLIMIT row_count8、 數(shù)據(jù)查詢(P105)數(shù)據(jù)查詢是SQL語(yǔ)言的核心功能,其用途是從數(shù)據(jù)庫(kù)的一張或多張表中檢索出滿足條件的數(shù)據(jù)信息。SQL是提供SELECT語(yǔ)句進(jìn)行數(shù)據(jù)查詢,該功能強(qiáng)大、使用靈活,數(shù)學(xué)理論基礎(chǔ)是關(guān)系數(shù)據(jù)模型中對(duì)表對(duì)象的一組關(guān)系運(yùn)算,既選擇、投影和連接。SELECT語(yǔ)句使用SELECT可以在需要時(shí)從數(shù)據(jù)庫(kù)中快捷方便的檢索、統(tǒng)計(jì)或輸出數(shù)據(jù)。該語(yǔ)句的執(zhí)行過(guò)程是從數(shù)據(jù)庫(kù)中選取匹配的特定行和列,并將這些數(shù)據(jù)組織成一個(gè)結(jié)果集,然后以一張臨時(shí)表的形式返回。SELECT語(yǔ)法格式如下:SELECTALLDISTINCTDISTINCTROWseiect_expr,select_exprFROM table_referencesWHERE where_conditionGROUP BYcol_nameexprposition ASCDESC,WITH ROLLUPHAVING where_conditionORDER BYcol_nameexprposition ASCDESC,LIMIToffset,row_countrow_count OFFSET offset此語(yǔ)法結(jié)構(gòu)中,SELECT子句用于指定輸出字段;FROM子句用于指定數(shù)據(jù)的來(lái)源;WHERE子句用于指定數(shù)據(jù)的選擇條件;ORDER BY子句用于對(duì)查詢的結(jié)果進(jìn)行排序。在這些子句中,SELECT子句和FROM子句是必需的,其他子句都是可選的,并且在SELECT語(yǔ)句的使用中,所有被添加選用的子句必須依照SELECT語(yǔ)句的語(yǔ)法格式所羅列的順序來(lái)寫。此外,在SELECT語(yǔ)句的語(yǔ)法結(jié)構(gòu)中,三個(gè)關(guān)鍵字“ALL”“DISTINCT”“DISTINC TROW”為可選項(xiàng),用于指定是否應(yīng)返回結(jié)果集中的重復(fù)行。列的選擇與指定在SELECT語(yǔ)句中,語(yǔ)法項(xiàng)“select_expr”主要用于指定需要查詢的內(nèi)容,其指定的方法有以下幾種:1) 選擇指定的列(P107詳細(xì))選擇一個(gè)或多個(gè)表中的某個(gè)或某些列作為SELECT語(yǔ)句的查詢列。若查詢列有多個(gè),則各列名之間需要用逗號(hào)進(jìn)行分隔,且查詢結(jié)果返回時(shí),結(jié)果集中各列的次序是依照SELECT語(yǔ)句中指定列的次序給出的;若查詢一個(gè)表中所有列,則可在SELECT語(yǔ)句指定列的位置上直接使用星號(hào)“*”通配符,而不必逐個(gè)列出所有列名,此時(shí)結(jié)果集中各列的次序一般是這些列在表定義中出現(xiàn)的次序。另外,列名的指定可以采用直接給出該列的名稱的方式,也可以使用完全限定的列名方式,既“tbl_name.col_name”2) 定義并使用列的別名在系統(tǒng)輸出查詢結(jié)果集中某些列或所有列的名稱時(shí),若希望這些列的名稱顯示為自定義的列名,而非原表中的列名,則可以在SELECT語(yǔ)句中添加AS子句到指定列名之后,以此來(lái)修改查詢結(jié)果集中列的別名。其具體使用方法是將SELECT語(yǔ)句的語(yǔ)法項(xiàng)“select
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年上半年宜昌市電子政務(wù)辦公室數(shù)據(jù)工程師招考(4人)易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安順市住房和城鄉(xiāng)建設(shè)局所屬事業(yè)單位招考工勤人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽黃山市祁門縣城區(qū)教育事業(yè)單位遴選32人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025蘭能投(甘肅)能源化工有限公司專職消防員3人筆試參考題庫(kù)附帶答案詳解
- 2025年上半年安徽省渦陽(yáng)縣政府購(gòu)買治安輔助人招考易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽合肥高新區(qū)直屬國(guó)企業(yè)公開招聘工作人員35人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安康寧陜線電視臺(tái)招考易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年寧波市生產(chǎn)力促進(jìn)中心(寧波市對(duì)外科技交流中心)招考易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年寧波市中心招考工作人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年無(wú)菌空氣呼吸器項(xiàng)目可行性研究報(bào)告
- QQ三國(guó)副職及日常物品成本計(jì)算表v
- 保障農(nóng)民工工資支付協(xié)調(diào)機(jī)制和工資預(yù)防機(jī)制
- GB/T 4294-1997氫氧化鋁
- 2023年新改版教科版六年級(jí)下冊(cè)科學(xué)全冊(cè)課件
- 2022暖通空調(diào)第三版課后題答案
- HUW工法在深基坑圍護(hù)工程中的應(yīng)用
- DB37-T 4383-2021 混凝土結(jié)構(gòu)硅烷浸漬技術(shù)規(guī)程
- 2022年大夢(mèng)杯福建省初中數(shù)學(xué)競(jìng)賽試題參考答案及評(píng)分標(biāo)準(zhǔn)
- 邊坡開挖施工要求
- 部編版六年級(jí)下冊(cè)語(yǔ)文教案(全冊(cè))
- 2022年湖北成人學(xué)士學(xué)位英語(yǔ)真題及答案
評(píng)論
0/150
提交評(píng)論