數(shù)據(jù)庫系統(tǒng)2018版自考_第1頁
數(shù)據(jù)庫系統(tǒng)2018版自考_第2頁
數(shù)據(jù)庫系統(tǒng)2018版自考_第3頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫系統(tǒng)2018版自考數(shù)據(jù)庫系統(tǒng)原理(復(fù)習(xí)資料)第一章數(shù)據(jù)庫系統(tǒng)概述一、識記:1)數(shù)據(jù)(Data):是描述事物的符號記錄,是指用物理符號記錄 下來的、可以鑒別的信息。(P27)2)數(shù)據(jù)庫(DataBase, DB :通俗的被稱作存儲數(shù)據(jù)的倉庫。3)數(shù)據(jù)庫管理系統(tǒng)(DBM)是專門用于建立和管理數(shù)據(jù)庫的一套軟件, 介于應(yīng)用程序和操作系統(tǒng)之間。4)數(shù)據(jù)庫系統(tǒng)(DBS:是指在計算機中引入數(shù)據(jù)庫技術(shù)之后的系統(tǒng)。二、 數(shù)據(jù)管理技術(shù)發(fā)展階段:1 )人工管理階段、2)文件系統(tǒng)階段、3)數(shù)據(jù)庫 系統(tǒng)階段數(shù)據(jù)庫系統(tǒng)階段,與人工管理、文件系統(tǒng)管理相比有如下特點:數(shù)據(jù)集成、 數(shù)據(jù)共享性高、數(shù)據(jù)冗余度小、數(shù)據(jù)一致性、

2、數(shù)據(jù)獨立性高P32三、數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu):是指數(shù)據(jù)庫系統(tǒng)是由模式、外模式和內(nèi)模式 三級構(gòu)成(P34)模式:也稱為概念模式或邏輯模式,它是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征 的描述,是所有用戶的公共數(shù)據(jù)視圖;外模式:也成為子模式或用戶模式,它是數(shù)據(jù)庫用戶能夠看見和使用的局部數(shù) 據(jù)的邏輯結(jié)構(gòu)和特征的描述,是與某一應(yīng)用有關(guān)的邏輯表示;內(nèi)模式:也稱儲存模式,它是對數(shù)據(jù)庫中數(shù)據(jù)物理結(jié)構(gòu)和儲存方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示形式;三級模式結(jié)構(gòu)的兩層映像與數(shù)據(jù)獨立性:(1)外模式/模式映像 (2)模式/內(nèi) 模式映像:定義了數(shù)據(jù)庫全局邏輯結(jié)構(gòu)與物理儲存之間的對應(yīng)關(guān)系(3)實現(xiàn)概念模式(模式)不受內(nèi)模式

3、變化影響,正是這兩層映像保證了數(shù)據(jù)庫系統(tǒng)中 數(shù)據(jù)能夠具有較高的邏輯獨立性和物理獨立性,使得數(shù)據(jù)的定義和描述可以從 應(yīng)用程序中分離出去,從而簡化了數(shù)據(jù)庫應(yīng)用程序的開發(fā)。(P36)四、數(shù)據(jù)庫系統(tǒng)的運行與應(yīng)用結(jié)構(gòu):目前兩種,客戶 /服務(wù)器結(jié)構(gòu)、瀏覽器/服 務(wù)器結(jié)構(gòu)五、數(shù)據(jù)模型:通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)約束三個要素組成;數(shù)據(jù)模型分類:第一類: 概念層數(shù)據(jù)模型,第二類:邏輯層數(shù)據(jù)模型和物理層數(shù)據(jù)模型。概念層數(shù)據(jù)模型:是數(shù)據(jù)抽象級別的最高層,其目的是按用戶的觀點來對世界 建模,通常用來抽象、表示現(xiàn)實世界的各種事物及其聯(lián)系;信息世界設(shè)計的基本概念如下:實體、屬性、碼或鍵、域、實體性、實體集、 聯(lián)系;概

4、念模型表示方法:實體性(矩形表示)、屬性(橢圓形表示)、聯(lián)系(菱形表 示)邏輯層數(shù)據(jù)模型:邏輯層是數(shù)據(jù)抽象的中間層,描述數(shù)據(jù)整體的邏輯結(jié)構(gòu)。包 括層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο竽P?;這里給予關(guān)系模型的數(shù)據(jù) 庫。(P41)物理層數(shù)據(jù)模型:其描述數(shù)據(jù)在儲存介質(zhì)上的組織結(jié)構(gòu),是邏輯模型的物理實 現(xiàn)。第二章關(guān)系數(shù)據(jù)庫一、關(guān)系數(shù)據(jù)庫的基本特征是使用關(guān)系數(shù)據(jù)模型組織數(shù)據(jù),這種思想源于數(shù)學(xué)。二、關(guān)系數(shù)據(jù)模型:關(guān)系模型三個組成要素,關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和 關(guān)系完整性約束。以二維表格為例,介紹關(guān)系數(shù)據(jù)庫的基本術(shù)語:表、關(guān)系、列、屬性、行、 元組、分量、碼或鍵、超碼和超鍵、候選碼和候選鍵、主碼和主鍵

5、、全碼和全 鍵、主屬性、外碼或外鍵、參照關(guān)系和被參照關(guān)系、域、數(shù)據(jù)類型、關(guān)系模式、 關(guān)系數(shù)據(jù)庫。(P44)四、關(guān)系操作集合:常用操作包括查詢操作和插入、刪除、修改操作兩大部分。關(guān)系數(shù)據(jù)語言的分類:關(guān)系代數(shù)語言、關(guān)系演算語言、以及兼兩種特點的結(jié)構(gòu)化查詢語言SQL (將在第四章詳細(xì)講解);五、關(guān)系代數(shù):是關(guān)系操作語言的一種傳統(tǒng)表示方式,它是集合代數(shù)為基礎(chǔ)發(fā)展起來的。操作包括三大要素:操作對象、操作符、操作結(jié)果;(IBM公司研制ISBL的純代數(shù)數(shù)據(jù)操作語言。)A :傳統(tǒng)的集合運算:是二目運算,具有并、差、交、笛卡爾積4種運算(P51 看書理解)B:專門的關(guān)系運算:不僅涉及行,還涉及列,它可分為一元專

6、門關(guān)系操作 和二元專門關(guān)系操作;其中,一元專門關(guān)系操作包括對單個關(guān)系進(jìn)行垂直分解 的投影運算和進(jìn)行水平分解選擇運算;二元專門關(guān)系操作則是對兩個關(guān)系進(jìn)行操作,包括連接運算和除運算專門的關(guān)系運算有:選擇、投影、連接、除;六、關(guān)系的完整性約束:有三類完整性約束,實體完整性約束、參照完整性約 束、用戶定義完整性約束。關(guān)系模型完整性約束的檢驗:為了維護(hù)關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)的完整性,在對 關(guān)系數(shù)據(jù)庫執(zhí)行插入、刪除和更新操作時,需要檢驗是否滿足上述三類完整性 約束。(P56,看書進(jìn)行補充)七、關(guān)系數(shù)據(jù)庫的規(guī)范化理論:關(guān)系模型中可能存在的冗余和異常問題:數(shù)據(jù)冗余、更新異常、插入異常、刪除異常;現(xiàn)在人們提出許多種

7、類型的數(shù)據(jù)依賴,其中最重要的是函數(shù)依賴FD,多值依賴MVD八、函數(shù)依賴和關(guān)鍵字:(P57)函數(shù)依賴:是指關(guān)系中屬性間的對應(yīng)關(guān)系。根據(jù)不同性質(zhì)可分完全函數(shù)依賴、 部分函數(shù)依賴、傳遞函數(shù)依賴;關(guān)鍵字:設(shè)R為任意給定關(guān)系,U為其所含的全部屬性集合,X為U的子集, 若有完全函數(shù)依賴 XU,則X為R的一個候選關(guān)鍵字。九、范式與關(guān)系規(guī)范化過程:關(guān)系數(shù)據(jù)庫中的關(guān)系需要滿足一定的要求,不同 程度的要求稱為不同的范式(NF)。滿足最低要求的稱為第一范式(1NF),這是最 基本的范式;在第一范式的基礎(chǔ)上進(jìn)一步滿足一些新要求的稱為第二范式(2NF);以此類推,再進(jìn)一步的范式成為第三范式(3NF)。第一范式:設(shè)定R為

8、任一給定關(guān)系,如果R中每個列與行的交點處的取值 都是不可再分的基本元素,則 R為第一范式。第二范式:設(shè)定R為任一給定關(guān)系,若R為1NF,且其所有非主屬性都完全 函數(shù)依賴于候選關(guān)鍵字,則 R為第二范式。第三范式:設(shè)定R為任一給定關(guān)系,若R為2NF,且其每一個非主屬性都不 傳遞函數(shù)依賴于候選關(guān)鍵字,則 R為第三范式。BCNF為了解決3NF有時會出現(xiàn)的插入及刪除操作異常等問題,和提出了第3范式的改進(jìn)形式BCNF第三章數(shù)據(jù)庫設(shè)計(P64)一、數(shù)據(jù)庫設(shè)計概述數(shù)據(jù)庫生命周期:分兩個階段,數(shù)據(jù)庫分析與設(shè)計階段、數(shù)據(jù)庫實現(xiàn)與操作 階段。數(shù)據(jù)庫設(shè)計的目標(biāo):滿足應(yīng)用功能需求和良好的數(shù)據(jù)庫性能。數(shù)據(jù)庫設(shè)計的內(nèi)容:1

9、)數(shù)據(jù)庫結(jié)構(gòu)設(shè)計:是針對給定的應(yīng)用環(huán)境進(jìn)行數(shù)據(jù)庫 的模式或子模式設(shè)計,包括數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計 、邏輯結(jié)構(gòu)設(shè)計或物理結(jié)構(gòu) 設(shè)計。模式定義并給出各應(yīng)用程序共享的結(jié)構(gòu),是靜態(tài)的.。2數(shù)據(jù)庫行為設(shè)計:是確定數(shù)據(jù)庫用戶的行為和動作,它們通常是通過應(yīng)用程序來實現(xiàn)的, 由于用戶行為會是數(shù)據(jù)庫的內(nèi)容發(fā)生變化,所以行為設(shè)計是動態(tài)的.。數(shù)據(jù)庫設(shè)計的方法:(1)直觀設(shè)計法;(2)規(guī)范設(shè)計法:新奧爾良設(shè)計方法, 四個階段:需求分析、概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計 基于E-R模型的數(shù)據(jù)庫設(shè)計方法:1976年由提出 基于第三范式的 設(shè)計方法二、數(shù)據(jù)庫設(shè)計的過程:將數(shù)據(jù)庫設(shè)計分為這樣幾個階段:需求分析階段;結(jié)

10、構(gòu)設(shè)計階段、其中包括概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計和物理結(jié)構(gòu)設(shè)計:行為設(shè) 計階段,其包括功能設(shè)計、事務(wù)設(shè)計和程序設(shè)計:數(shù)據(jù)庫實施階段,其包括加 載數(shù)據(jù)庫數(shù)據(jù)和調(diào)試運行應(yīng)用程序;數(shù)據(jù)庫運行和維護(hù)階段。三、數(shù)據(jù)庫設(shè)計的基本步驟:(P67)需求分析:是數(shù)據(jù)庫設(shè)計的起點,一般分為四個步驟,確定數(shù)據(jù)庫范圍、分 _ 析數(shù)據(jù)應(yīng)用過程、收集與分析數(shù)據(jù)、編寫需求分析報告;編寫需求分析報告:1)數(shù)據(jù)庫的應(yīng)用功能目標(biāo)2)標(biāo)明不同用戶視圖范圍3)應(yīng)用處理過程需求說明i :數(shù)據(jù)流程圖,其主要反映應(yīng)用部門原始業(yè)務(wù)處理的工作流程ii :任務(wù)分類表,其標(biāo)明不同任務(wù)的功能及使用情況iii:數(shù)據(jù)操作特征表,標(biāo)明任務(wù)和數(shù)據(jù)間的聯(lián)系及不

11、同數(shù)據(jù)的不同操作 特征與執(zhí)行頻率iv:操作過程說明書,其根據(jù)數(shù)據(jù)流程圖、任務(wù)分類表和各類原始資料4)數(shù)據(jù)字典(DD,是數(shù)據(jù)庫系統(tǒng)中存儲三級結(jié)構(gòu)定義的數(shù)據(jù)庫,通常指 的是數(shù)據(jù)庫系統(tǒng)中各類數(shù)據(jù)詳細(xì)描述的集合。5)數(shù)據(jù)量:根據(jù)數(shù)據(jù)分類表中的靜態(tài)數(shù)據(jù)量和操作特征表中的動態(tài)數(shù)據(jù) 量,進(jìn)行統(tǒng)計計算,求出數(shù)據(jù)總量。6)數(shù)據(jù)約束四、概念結(jié)構(gòu)設(shè)計設(shè)計任務(wù)是在需求分析報告的基礎(chǔ)上,按照特定的方法設(shè)計滿足應(yīng)用需求的 用戶信息結(jié)構(gòu),該信息結(jié)構(gòu)通常稱為概念模型。五、邏輯結(jié)構(gòu)設(shè)計的目標(biāo)是將概念模型轉(zhuǎn)換為等價的、并為特定DBMS所支持?jǐn)?shù)據(jù)模型的結(jié)構(gòu)。數(shù)據(jù)庫邏輯模型一般由層次、網(wǎng)狀、關(guān)系數(shù)據(jù)模型表示。(P71)(1)邏輯結(jié)構(gòu)

12、設(shè)計的輸入與輸出信息(2)邏輯結(jié)構(gòu)設(shè)計的步驟六、物理設(shè)計是指對于一個給定的數(shù)據(jù)庫邏輯結(jié)構(gòu),研究并構(gòu)造物理結(jié)構(gòu)的過程,其具體任務(wù)主要是確定數(shù)據(jù)庫在存儲設(shè)備上的存儲結(jié)構(gòu)及存取方法,因DBMS勺不同還可能包括建立索引和聚焦,以及物理塊大小、緩沖區(qū)個數(shù)和大小、數(shù)據(jù)壓 縮的選擇等。六、數(shù)據(jù)庫實施實施階段主要包括:加載數(shù)據(jù)、應(yīng)用程序設(shè)計和數(shù)據(jù)庫試運行。(P72)七、數(shù)據(jù)庫運行和維護(hù)系統(tǒng)維護(hù)中最困難的工作是數(shù)據(jù)庫重組和重構(gòu)。重組適當(dāng)空間利用率和存取效率下降時進(jìn)行的,它并不改變數(shù)據(jù)庫的邏輯結(jié)構(gòu)和物理結(jié)構(gòu),只是利用DBMS1供的設(shè)施調(diào)整數(shù)據(jù)庫中的數(shù)據(jù)的存儲位置。重構(gòu)是指部分修改數(shù)據(jù)庫的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)。第三節(jié)

13、關(guān)系數(shù)據(jù)庫設(shè)計方法一、關(guān)系數(shù)據(jù)庫:是一類采用關(guān)系模型作為邏輯數(shù)據(jù)模型的數(shù)據(jù)庫系統(tǒng),它的 設(shè)計過程遵從數(shù)據(jù)庫設(shè)計基本步驟:需求分析、概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計、 物理結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫實施、數(shù)據(jù)庫的運行和維護(hù)。二、關(guān)系數(shù)據(jù)庫設(shè)計過程與各級模式:在邏輯設(shè)計階段采用E-R圖轉(zhuǎn)換成具體數(shù)據(jù)庫產(chǎn)品支持的關(guān)系數(shù)據(jù)模型,形成數(shù)據(jù)庫邏輯模式,然后根據(jù)用戶處理的 要求、安全性的考慮,在基本表的基礎(chǔ)上再建立必要的視圖,形成數(shù)據(jù)的外模式;在物理結(jié)構(gòu)的設(shè)計階段,根據(jù)關(guān)系數(shù)據(jù)庫管理系統(tǒng)的特點和處理的需要, 進(jìn)行物理存儲安排、建立索引,形成數(shù)據(jù)庫內(nèi)模式,關(guān)系數(shù)據(jù)庫各級模式如圖:wi rwi rwi rw應(yīng)尉 應(yīng)臚應(yīng)胎應(yīng)用4

14、應(yīng)肌應(yīng)阻朗3戶UWT :朗斗/Hwy 二、概念結(jié)構(gòu)設(shè)計方法:通常采用自頂向下法,通過兩個步驟完成概念設(shè)計, 即首先建立局部信息結(jié)構(gòu),然后將局部信息結(jié)構(gòu)合成為全局信息結(jié)構(gòu)并優(yōu)化。1、E-R圖的表示方法i )實體性,用矩形表示;ii )屬性,用橢圓形表 示;iii )聯(lián)系,用菱形表示。2、兩個實體型之間的聯(lián)系:一對一聯(lián)系(1:1);一對多聯(lián)系(1: N)多對多聯(lián)系(M:N)3、 兩個以上的實體型之間的聯(lián)系:(P75)也存在一對一;一對多;多對多;4、單個實體型內(nèi)的聯(lián)系:同一個實體集內(nèi)各實體之間也可以存在一對一, 一對多,多對多的聯(lián)系。5、局部信息結(jié)構(gòu)設(shè)計:根據(jù)需求分析報告中標(biāo)明的不同用戶視圖范圍所

15、建立的滿足該范圍內(nèi)用戶需求的信息結(jié)構(gòu)稱為局部信息結(jié)構(gòu)。局部信息結(jié)構(gòu)設(shè)計步驟如下:(P77看實例演示)(1)確定局部范圍(2)選擇實體(3)選擇實體的關(guān)鍵字屬性(4)確定 實體間聯(lián)系(5)確定實體的屬性6、全局信息結(jié)構(gòu)設(shè)計:是將上述產(chǎn)生的所有局部信息結(jié)構(gòu)合并成為一個全局信息結(jié)構(gòu)。合并過程是一個不斷發(fā)現(xiàn)和解決沖突的過程,通常,各局部E-R圖之間的沖突主要表現(xiàn)在三個方面:屬性沖突、命名沖突、結(jié)構(gòu)沖突。(P79看具體理解)(1)屬性沖突:屬性域沖突和屬性取值單位沖突;(2)命名沖突:同名異義和異名同義;(3)結(jié)構(gòu)沖突:i )同一對象在一個局部 E-R圖中作為實體,而在另一個 局部E-R圖中作為屬性ii

16、 )同一個實體在不同的E-R圖中屬性個數(shù)和類型不同iii )實體之間的聯(lián)系在不同的 E-R圖中是不同的類型三、邏輯結(jié)構(gòu)設(shè)計方法邏輯結(jié)構(gòu)設(shè)計任務(wù)是把概念結(jié)構(gòu)設(shè)計產(chǎn)生的概念模型轉(zhuǎn)換為具體的DBM新支持的邏輯數(shù)據(jù)模型,也就是導(dǎo)出特定的DBM測以處理的數(shù)據(jù)庫邏輯結(jié)構(gòu)(數(shù)據(jù)庫的模式和外模式),這些模式在功能、性能、完整性和一致性約束方面滿足 應(yīng)用要求。那么在關(guān)系數(shù)據(jù)庫設(shè)計中,邏輯結(jié)構(gòu)設(shè)計的任務(wù)就是把概念結(jié)構(gòu)設(shè) 計階段已設(shè)計好的E-R圖轉(zhuǎn)換為關(guān)系數(shù)據(jù)庫管理系統(tǒng)所支持的關(guān)系模型,通常 包括以下三項工作:1. E-R圖向關(guān)系模型的轉(zhuǎn)換2. 數(shù)據(jù)模型的優(yōu)化3. 設(shè)計用戶子模式四、物理設(shè)計方法(P81看實例講解)

17、物理設(shè)計的主要任務(wù)是通過對關(guān)系建立索引和聚集來實現(xiàn)與應(yīng)用相關(guān)數(shù)據(jù)的 邏輯連接和物理聚集,以改善對數(shù)據(jù)庫的存取效率。1. 建立索引(通常有動態(tài)和靜態(tài)兩種)2. 建立聚集(聚集是將相關(guān)數(shù)據(jù)集中存放的物理存儲技術(shù),借以提高 I/O 的數(shù)據(jù)命中率而改善存取速度,其功能由具體的 DBMS所提供) 數(shù)據(jù)聚集 結(jié)構(gòu)的一種有效方式-塊結(jié)構(gòu)方式。第四章SQL與關(guān)系數(shù)據(jù)庫基本操作關(guān)系數(shù)據(jù)庫各種基本操作的SQL語句,包括數(shù)據(jù)定義、數(shù)據(jù)更新、數(shù)據(jù)查詢、 視圖使用。一、SQL概述:SQL是 1974 年由 Boyce 和 Chamberlin 提出;SQL的特點:1)SQL不是某個特定的數(shù)據(jù)庫供應(yīng)商專有的語言。幾乎所有

18、重要 的關(guān)系數(shù)據(jù)庫管理系統(tǒng)都支持 SQL所以掌握SQL可以幫助用戶與幾乎所有的關(guān) 系數(shù)據(jù)庫進(jìn)行交互。2)SQL簡單易學(xué)。它的語句全都是由具有很強的描述性的英語單詞所組成,而 且這些單詞的數(shù)目不多。3)SQL盡管看上去很簡單,但它實際上是一種強有力的語言,靈活使用其語言 元素,可以進(jìn)行非常復(fù)雜和高級的數(shù)據(jù)庫操作。SQL的組成:SQL是集數(shù)據(jù)查詢、數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)控制四大功能為 一體。核心包括以下幾個部分:1. 數(shù)據(jù)定義語言(DDL :數(shù)據(jù)定義語言包括主要 SQL語句有以下三個:1)CREATES于創(chuàng)建數(shù)據(jù)庫或數(shù)據(jù)庫對象2) ALTER用于對數(shù)據(jù)庫或數(shù)據(jù)庫對象進(jìn)行修改3) DROP用于刪除

19、數(shù)據(jù)庫或數(shù)據(jù)庫對象2. 數(shù)據(jù)操縱語言(DML:主要用于操縱數(shù)據(jù)庫中各種對象,特別是檢索和修 數(shù)據(jù)。主要包括語句如下:1) SELECT用于從表或視圖中檢索數(shù)據(jù),其是數(shù)據(jù)庫中使用最為頻繁的 SQL語句之一o2) INSERT用于將數(shù)據(jù)插入到表或視圖中。3) UPDATE用于修改表或視圖中的數(shù)據(jù),其即可修改表或視圖中一行 數(shù)據(jù),也可同時修改多行或全部數(shù)據(jù)。4) DELETE用于從表和視圖中刪除數(shù)據(jù),其中可根據(jù)條件刪除指定的 數(shù)據(jù)。3. 數(shù)據(jù)控制語言(DCL :主要用于安全管理,例如確定哪些用戶可以查看或修 改數(shù)據(jù)庫中的數(shù)據(jù),主要包括以下 SQL語句:1) GRANT用于授予權(quán)限,可把語句許可或?qū)ο?/p>

20、許可的權(quán)限授予其他用戶和 角色。2) REVOKE用于收回權(quán)限,其功能與 GRAN相反,但不影響該用戶或角色 從其他角色中作為成員繼承許可權(quán)限。4. 嵌入式和動態(tài)SQL規(guī)則:規(guī)則規(guī)定了 SQL語句在高級程序設(shè)計語言中使用的 規(guī)范方法,以便適應(yīng)較為復(fù)雜的應(yīng)用。5. SQL調(diào)用和會話規(guī)則:SQL調(diào)用包括SQL例程和調(diào)用規(guī)則,以便提高 SQL的 靈活性、有效性、共享性以及使用 SQL具有更多的高級語言的特征。SQL會話 規(guī)則則可使應(yīng)用程序連接到多個 SQLK務(wù)器中的某個,并與之交互。二、MySQ預(yù)備知識目前,使用MySQ數(shù)據(jù)庫管理系統(tǒng)構(gòu)建各種信息管理系統(tǒng)或互聯(lián)網(wǎng)網(wǎng)站的應(yīng)用 環(huán)境主要有如下構(gòu)架方式:1

21、) LAMP Linux作為操作系統(tǒng),Apache作為WebK務(wù)器,MySQ作為數(shù)據(jù)庫 管理系統(tǒng),PHR Perl或Python語言作為服務(wù)器端腳本解釋器。2) WAMJPWindows作為操作系統(tǒng),Apache作為 Web服務(wù)器,MySQL乍為數(shù)據(jù) 庫管理系統(tǒng),PHP Perl或Python語言作為服務(wù)器端腳本解釋器。、MySQ中的 SQL( P87)MySQ作為一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng), 遵循SQL標(biāo)準(zhǔn),提供了對數(shù)據(jù)定義語言 DDL數(shù)據(jù)操縱語言 DML數(shù)據(jù)控制語言 DCL并且同樣支持關(guān)系數(shù)據(jù)庫的三級 模式結(jié)構(gòu)。如圖SQLMySQL在 SQL標(biāo)準(zhǔn)的基礎(chǔ)上增加了部分?jǐn)U展語言要素: 包括常量、變

22、量、運算符、 表達(dá)式、函數(shù)、流程控制語句和注釋。1)常量:是指在程序運行過程中值不變的量,也稱為字面值或標(biāo)量值。常量的 使用格式取決于值的數(shù)據(jù)類型,可分為字符串常量、數(shù)值常量、十六進(jìn)制常量、 時間日期常量、位字段值、布爾值和 NULL值。2)變量:用于臨時存儲數(shù)據(jù),變量有名字和數(shù)據(jù)類型兩個屬性。其中變量的名字用于標(biāo)識變量,變量的數(shù)據(jù)類型用于確定變量中存儲數(shù)值的格式和可執(zhí)行的 運算。在MySQ中,變量分為用戶變量和系統(tǒng)變量,在使用時,用戶變量前常添一個符號“ ,用于將其和列名區(qū)分開;而大多數(shù)系統(tǒng)變量應(yīng)用于其他 SQL語句時,必須在系統(tǒng)變量名前加兩個“ 3)運算符(P88)4)表達(dá)式:表達(dá)式是常量

23、、變量、列名、復(fù)雜計算、運算符、函數(shù)的集合5)內(nèi)置函數(shù):數(shù)學(xué)函數(shù),例如 ABS()函數(shù)、SORT()函數(shù)聚合函數(shù),例如 COUNT)函數(shù)字符串函數(shù),例如 ASCII ()函數(shù)、CHAR()函數(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ù)庫模式定義、表定義、索引定義 和視圖定義。(P89)數(shù)據(jù)庫模式定義:包含數(shù)據(jù)庫的創(chuàng)

24、建、選擇、修改、刪除、查看等操作。1. 創(chuàng)建數(shù)據(jù)庫,可以使用 CREATE DATABASECREATE SCHEMA2. 選擇數(shù)據(jù)庫,使用USE語句,指定某個數(shù)據(jù)庫為當(dāng)前數(shù)據(jù)庫之后, 才能對該數(shù)據(jù)庫及其存儲的數(shù)據(jù)對象進(jìn)行各種操作。3. 修改數(shù)據(jù)庫,可以使用 ALTER DATABASES ALTER SCHEM來修改已 被創(chuàng)建的數(shù)據(jù)庫的相關(guān)參數(shù)。4. 刪除數(shù)據(jù)庫,可以使用 DROP DATABASEDROP SCHEMA5. 查看數(shù)據(jù)庫,可以使用SHOVDATABAS或SHOWCHEMM選項“LIKE” 關(guān)鍵字用于匹配指定的數(shù)據(jù)庫名稱,可選項“ WHERE從句用于指定數(shù)據(jù)庫名稱 查詢范圍的條

25、件。表定義:只有成功創(chuàng)建數(shù)據(jù)庫之后,才能在數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)表,數(shù)據(jù)表 是關(guān)系數(shù)據(jù)庫中最重要、最基本的數(shù)據(jù)對象,也是數(shù)據(jù)庫存儲的基本單位。1. 創(chuàng)建表,MySQI使用CREATTABLE語句創(chuàng)建表。該語法主要由表的創(chuàng)建定義、表選項、和分區(qū)選項等內(nèi)容構(gòu)成。1) 臨時表與持久表,帶 TEMPORARY臨時表,不帶為持久表2) 數(shù)據(jù)類型,主要有數(shù)值類型、布爾型、日期和時間類型、字符串類型、空 間數(shù)據(jù)類型等。3) 關(guān)鍵字 AUTO_INCREMENT4) 指定默認(rèn)值5) NULL值,指沒有值或缺值。6) 主鍵,通過PRIMARYKEY關(guān)鍵字來指定,主鍵值必須唯一,且一定要為NOT NULL2. 更新表,

26、為了實現(xiàn)數(shù)據(jù)庫表的規(guī)范化設(shè)計的目的,可以使用ALTER TABLE句來更改原有表的結(jié)構(gòu),有以下幾個子句:1) ADDCOLUM子句,增加新列,也可增加多個列。也可在 ALTER TABLET ADDPRIMARY KEYXDD INDE帶口 ADDFOREIGN KEY原表添加一個主鍵、索引和 外鍵。2) CHANGECOLUM子句,修改制定列的名稱和數(shù)據(jù)類型,且在 ALTER TABLE 下同時放入多個CHANGECOLUI子句。3) ALTERCOLUM子句,修改或刪除指定列的默認(rèn)值。4) MODIFYCOLUM子句,與ALTERCOLUM不同的是,只是修改列的數(shù)據(jù)類型, 不會干涉列名。5

27、) DROPCOLUM子句,用于卸除多余的列,一旦卸除列,原本存儲在該列的 一切內(nèi)容都會跟著被卸除。6) RENAMECOLUM子句,為表重新賦予一個表名。3. 重命名表, 除了前面 ALTER TABLE語句,也可以直接用 RENAME TAB進(jìn) 行更改表的名字。4. 刪除表,通過DROP TABLE句實現(xiàn),但操作者必須有該命令權(quán)限,刪除表 時,數(shù)據(jù)和分區(qū)信息均會被刪除,但權(quán)限不會刪除。5. 查看表,1)顯示表的名稱,使用 SHOW TABLES句;2)顯示表的結(jié)構(gòu),使用 SHOW COLUM語句。五、索引定義索引,就是DBMS艮據(jù)表中的一列或若干列按照一定順序建立的列值與記錄行 之間的對應(yīng)

28、關(guān)系表,因而索引實質(zhì)上是一張描述索引列值與原表中記錄行之間 一一對應(yīng)關(guān)系的有序表。索引是提高數(shù)據(jù)文件訪問效率的有效方法,也存在弊端:1)索引是以文件的形式存儲的,DBM會將一個表的所有索引保存在同一個索 引文件中,索引文件需要占用磁盤空間;2)索引在提高查詢速度的同時,會降低更新表的速度。索引在邏輯上通常包含以下幾類:1)普通索引(INDEX,通常使用關(guān)鍵字INDEX或KEY2)唯一性索引(UNIQUE ,索引列的所有值都只能出現(xiàn)一次3)主鍵(PRIMARY KEY,主鍵是一種唯一性索引,創(chuàng)建主鍵時,必須指定關(guān) 鍵字PRIMARY KE,且不能有空值。實際使用中,索引通常索引通常被創(chuàng)建程單列索

29、引和組合索引。.1. 索引的創(chuàng)建1. 使用CREATE INDE語句創(chuàng)建索引,但該句不能創(chuàng)建主鍵。語法格式:CREATEUNIQUEINDEX in dex_nameON tbl_ name(in dex_col_ name.)關(guān)鍵字:ASC升序)和DESC降序),默認(rèn)時為ASC2. 使用CREATE TABL語句創(chuàng)建索弓I ,索引可以在創(chuàng)建表的同時被創(chuàng)建。3. 使用ALTERTABLE語句創(chuàng)建索弓I ,在使用ALTERTABLE語句修改表的同時,可 以向已有的表中添加索引。(語法項P100)4. 索引的查看,可以使用 SHOW INDEM句5. 索引的刪除,可以使用 DROP INDEX或A

30、LTER INDEX®句來刪除。七、數(shù)據(jù)更新(P102)數(shù)據(jù)更新在SQL中三類相應(yīng)語句,插入數(shù)據(jù)(INSERT)修改數(shù)據(jù)(UPDATE、 刪除數(shù)據(jù)(DELETE插入數(shù)據(jù)_(詳細(xì)看書)1. 使用INSERT.VALUES語句插入單行或多行元組數(shù)據(jù)語法格式:INSERTINTOtbl_name(col_name,)VALUES | VALUE(expr | DEFAULT-),(),語法中:1) ” tbl_name ”指定欲被插入數(shù)據(jù)的表名2)” col_name”指定需要插入數(shù)據(jù)的列名列表3)通過關(guān)鍵字” VALUES或” VALUE引導(dǎo)的子句,其包含各列需要插 入的數(shù)據(jù)單I)” e

31、xpr ”表示常量、變量或一個表達(dá)式,也可以是空值NULL其值的數(shù)據(jù)類型要與列的數(shù)據(jù)類型一致。II)關(guān)鍵字“ default即用于指定此列值為該列的默認(rèn)值,前提是 該列之前已經(jīng)明確指定了默認(rèn)值,否則插入語句會出錯。2. 使用INSERT.SET語句插入部分列值數(shù)據(jù)可以使用INSERT.SET語句直接給表中的某(些)列指定對應(yīng)的列值,既 要插入數(shù)據(jù)的列名在SET子句中指定,這種方式更靈活,語法格式如下:INSERTINTOtbl_nameSET col_name=expr | DEFAULT3. 使用INSERT.SELECT語句插入子查詢數(shù)據(jù)子查詢不僅可以嵌套在 SELECTS句中,用于構(gòu)造父

32、查詢的條件,也可以嵌套在 INSERT語句中,用于生成要批量插入的數(shù)據(jù)。語法格式:INSERTINTOtbl_name(col_name,)SELECT刪除數(shù)據(jù)在MySQ中,可以使用DELETES句刪除表中的一行或多行數(shù)據(jù),語法格式如下:DELETE FROM tbl_nameWHERE where_c on ditio nORDER BY LIMIT row_cou nt修改數(shù)據(jù)可以使用UPDATED句來修改更新一個表中的數(shù)據(jù),實現(xiàn)對表中行的列數(shù)據(jù)進(jìn)行 修改,語法格式如下:UPDATE tbl_nameSET col_name1=expr1 | DEFAULT,col_name2=expr2

33、 | DEFAULTWHERE where_c on diti onORDER BY-LIMIT row_cou nt八、數(shù)據(jù)查詢(P105)數(shù)據(jù)查詢是SQL語言的核心功能,其用途是從數(shù)據(jù)庫的一張或多張表中檢索出 滿足條件的數(shù)據(jù)信息。SQL是提供SELECTS句進(jìn)行數(shù)據(jù)查詢,該功能強大、使用靈活,數(shù)學(xué)理論 基礎(chǔ)是關(guān)系數(shù)據(jù)模型中對表對象的一組關(guān)系運算,既選擇、投影和連接SELECTS句使用SELECTS以在需要時從數(shù)據(jù)庫中快捷方便的檢索、統(tǒng)計或輸業(yè)據(jù)該語句的執(zhí)行過程是從數(shù)據(jù)庫中選取匹配的特定行和列,并將這些數(shù)據(jù)組織成 一個結(jié)果集,然后以一張臨時表的形式返回。SELECTS法格式如下:SELECT

34、ALL | DISTINCT) DISTINCTROWseiect_expr,select_exprFROM table_refere ncesWHERE where_c on diti onGROUP BYcol_name| expr | positionASC | DESC,WITH ROLLUPHAVING where_co nditio nORDER BYcol_name| expr | positionASC | DESC,LIMIToffset,row_cou nt | row_co unt OFFSET offset此語法結(jié)構(gòu)中,SELEC子句用于指定輸出字段;FROMF句用于指

35、定數(shù)據(jù)的來源; WHER子句用于指定數(shù)據(jù)的選擇條件; ORDER B子句用于對查詢的結(jié)果進(jìn)行排序。在這些子句中,SELECTF句和FROMF句是必需的,其他子句都是可選的, 并且在SELECTS句的使用中,所有被添加選用的子句必須依照SELECTS句的語法格式所羅列的順序來寫。此外,在SELECTS句的語法結(jié)構(gòu)中,三個關(guān)鍵字“ALL” “DISTINCT” “DISTINC TRO”為可選項,用于指定是否應(yīng)返回結(jié)果集中的重復(fù)行。列的選擇與指定在SELECTS句中,語法項“ select_expr ”主要用于指定需要查詢的內(nèi)容, 其指定的方法有以下幾種:1)選擇指定的列(P107詳細(xì))選擇一個或

36、多個表中的某個或某些列作為 SELECTS句的查詢列。若查詢列 有多個,則各列名之間需要用逗號進(jìn)行分隔,且查詢結(jié)果返回時,結(jié)果集中各 列的次序是依照SELECTS句中指定列的次序給出的;若查詢一個表中所有列, 則可在SELECT語句指定列的位置上直接使用星號“ *”通配符,而不必逐個列 出所有列名,此時結(jié)果集中各列的次序一般是這些列在表定義中出現(xiàn)的次序。 另外,列名的指定可以采用直接給出該列的名稱的方式,也可以使用完全限定 的列名方式,既“ tbl_name.col_name ”2)定義并使用列的別名在系統(tǒng)輸出查詢結(jié)果集中某些列或所有列的名稱時,若希望這些列的名稱 顯示為自定義的列名,而非原表中的列名,則可以在SELECT語句中添加AS子句到指定列名之后,以此來修改查詢結(jié)果集中列的別名。其具體使用方法是將 SELECTS句的語法項“ se

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論