數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)課件_第1頁(yè)
數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)課件_第2頁(yè)
數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)課件_第3頁(yè)
數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)課件_第4頁(yè)
數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)課件_第5頁(yè)
已閱讀5頁(yè),還剩64頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第三章 數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)1、理解數(shù)據(jù)庫(kù)技術(shù)的基本概念2、理解數(shù)據(jù)庫(kù)管理系統(tǒng)的功能和特征3、掌握數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)、數(shù)據(jù)庫(kù)模型4、掌握數(shù)據(jù)模型,ER模型、層次模型、網(wǎng)狀模型、關(guān)系模型和面向?qū)ο竽P偷母拍?、掌握數(shù)據(jù)操作包括集合運(yùn)算和關(guān)系運(yùn)算6、掌握關(guān)系數(shù)據(jù)庫(kù)語言SQL3.1 數(shù)據(jù)庫(kù)管理系統(tǒng) 數(shù)據(jù)庫(kù)系統(tǒng)(DataBase System DBS)從廣義上講是由數(shù)據(jù)庫(kù)、硬件、軟件和相關(guān)人員組成的。1、數(shù)據(jù)庫(kù)(Database, DB) 是指長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)、有組織、可共享的數(shù)據(jù)集合。2、硬件(Hardware) 是指構(gòu)成計(jì)算機(jī)系統(tǒng)的各種物理設(shè)備。3.1 數(shù)據(jù)庫(kù)管理系統(tǒng)3、軟件(Software) 軟件包

2、括操作系統(tǒng)(OS)、數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)以及應(yīng)用程序。其中DBMS是數(shù)據(jù)庫(kù)系統(tǒng)的核心軟件。4、人員 人員主要有四類。第一類,系統(tǒng)分析員和數(shù)據(jù)庫(kù)設(shè)計(jì)人員;第二類,應(yīng)用程序員;第三類,最終用戶;第四類,數(shù)據(jù)庫(kù)管理員(Database Administrator DBA)。3.2 數(shù)據(jù)庫(kù)技術(shù)的發(fā)展 數(shù)據(jù)管理技術(shù)發(fā)展經(jīng)歷了人工管理、文件系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)的三個(gè)階段。1、人工管理階段。應(yīng)用程序之間的依賴性太強(qiáng),有許多重復(fù)數(shù)據(jù),造成數(shù)據(jù)冗余。2、文件系統(tǒng)階段。文件系統(tǒng)的最大特點(diǎn)是解決了應(yīng)用程序和數(shù)據(jù)之間的一個(gè)公共接口問題,使得應(yīng)用程序采用統(tǒng)一的存取方法來操作數(shù)據(jù)。特點(diǎn)如下:(1)數(shù)據(jù)可以長(zhǎng)期保留。11

3、.2 數(shù)據(jù)庫(kù)技術(shù)的發(fā)展(2)數(shù)據(jù)不屬于某個(gè)特定的應(yīng)用。(3)文件組織形式的多樣性。 文件系統(tǒng)具有以下缺點(diǎn):數(shù)據(jù)冗余度大,存在數(shù)據(jù)不一致性,數(shù)據(jù)聯(lián)系弱。3、數(shù)據(jù)庫(kù)系統(tǒng)階段 數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)了有組織地、動(dòng)態(tài)地存儲(chǔ)大量關(guān)聯(lián)數(shù)據(jù),方便多用戶訪問,它于文件系統(tǒng)的重要區(qū)別是數(shù)據(jù)的充分共享、交叉訪問與應(yīng)用程序的高度獨(dú)立性。3.2 數(shù)據(jù)庫(kù)技術(shù)的發(fā)展特點(diǎn)如下: (1)采用復(fù)雜的數(shù)據(jù)模型表示數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)不在面向某個(gè)應(yīng)用,而是面向整個(gè)應(yīng)用系統(tǒng)。數(shù)據(jù)冗余明顯減少。 (2)有較高的數(shù)據(jù)獨(dú)立性。數(shù)據(jù)庫(kù)系統(tǒng)與文件系統(tǒng)的區(qū)別是:數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的存取是按照同一結(jié)構(gòu)進(jìn)行的,不同的應(yīng)用程序都可以直接操作這些數(shù)據(jù)(即對(duì)應(yīng)用程序的高度獨(dú)

4、立性)。3.3 DBMS的數(shù)據(jù)控制功能數(shù)據(jù)控制功能包括數(shù)據(jù)庫(kù)中數(shù)據(jù)的安全性、完整性、并發(fā)和恢復(fù)的控制。1、數(shù)據(jù)庫(kù)的安全性(Security)保護(hù)。是指保護(hù)數(shù)據(jù)庫(kù)以防止不合法的使用所造成的數(shù)據(jù)泄漏、更改或破壞。2、數(shù)據(jù)的完整性。數(shù)據(jù)庫(kù)的完整性是指數(shù)據(jù)庫(kù)的正確性和相容性。3、并發(fā)(subsequent)控制。DBMS并發(fā)控制子系統(tǒng)負(fù)責(zé)協(xié)調(diào)并發(fā)事務(wù)的執(zhí)行,保證數(shù)據(jù)庫(kù)的完整性不受破壞,避免用戶得到不正確的結(jié)果。3.3 DBMS的數(shù)據(jù)控制功能4、故障恢復(fù)。故障恢復(fù)主要指恢復(fù)數(shù)據(jù)庫(kù)本身,即在故障引起數(shù)據(jù)庫(kù)當(dāng)前狀態(tài)不一致后,將數(shù)據(jù)庫(kù)恢復(fù)到某個(gè)正確狀態(tài)或一致狀態(tài)。練習(xí)題1、(2005 年5 月上午試題20 )

5、數(shù)據(jù)庫(kù)管理技術(shù)是在_的基礎(chǔ)上發(fā)展起來的.( 20 ) A 文件系統(tǒng)B 編譯系統(tǒng) C 應(yīng)用程序系統(tǒng)D 數(shù)據(jù)庫(kù)管理系統(tǒng) 2、(2005 年5 月上午試題22 )建立數(shù)據(jù)庫(kù)系統(tǒng)的主要目標(biāo)是減少數(shù)據(jù)的冗余,提高數(shù)據(jù)的獨(dú)立性,并集中檢查_。( 22 )人數(shù)據(jù)操作性B 數(shù)據(jù)兼容性C 數(shù)據(jù)完整性D 數(shù)據(jù)可維護(hù)性 答案:A,C3.4 數(shù)據(jù)庫(kù)系統(tǒng)模式結(jié)構(gòu)( 1 )概念模式(Schema ) 又稱模式或邏輯模式,是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。概念模式處于三級(jí)結(jié)構(gòu)的中間層,它是整個(gè)數(shù)據(jù)庫(kù)實(shí)際存儲(chǔ)的抽象表示,也是對(duì)現(xiàn)實(shí)世界的一個(gè)抽象,是現(xiàn)實(shí)世界某應(yīng)用環(huán)境(企業(yè)或單位)的所有信息內(nèi)

6、容集合的表示,也是所有個(gè)別用戶視圖綜合起來的結(jié)果。描述概念模式的數(shù)據(jù)定義語言稱為“模式DDL ”。( 2 )外模式(External Schema ) 又稱子模式或用戶模式,是三級(jí)結(jié)構(gòu)的最外層,它是數(shù)據(jù)庫(kù)用戶看到和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫(kù)用戶的數(shù)據(jù)視圖。描述外模式的數(shù)據(jù)定義語言稱為“外模式DDL ”。( 3 )內(nèi)模式(Internal Schema ) 又稱存儲(chǔ)模式,它是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)部的表示方式。描述內(nèi)模式的數(shù)據(jù)定義語言稱為“內(nèi)模式DDL ”。 3.4 數(shù)據(jù)庫(kù)系統(tǒng)模式結(jié)構(gòu)( l )外模式概念模式映像數(shù)據(jù)庫(kù)中的同一概念模式可以有任意多個(gè)外模

7、式,對(duì)于每一個(gè)外模式,數(shù)據(jù)庫(kù)系統(tǒng)都存在一個(gè)外模式概念模式映像。它確定了數(shù)據(jù)的局部邏輯結(jié)構(gòu)與全局邏輯結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系。當(dāng)概念模式改變時(shí),只要對(duì)外模式概念模式的映像作相應(yīng)改變,可以使外模式不變,由于應(yīng)用程序是依據(jù)數(shù)據(jù)的局部邏輯結(jié)構(gòu)編寫的,所以應(yīng)用程序不必修改,從而保證了數(shù)據(jù)與程序間的邏輯獨(dú)立性。( 2 )概念模式內(nèi)模式映像數(shù)據(jù)庫(kù)中的概念模式和內(nèi)模式都只有一個(gè),所以模式內(nèi)模式映像是惟一的。它確定了數(shù)據(jù)的全局邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系。當(dāng)存儲(chǔ)結(jié)構(gòu)變化時(shí),模式內(nèi)模式映像也應(yīng)有相應(yīng)的變化,使其概念模式仍保持不變,即把存儲(chǔ)結(jié)構(gòu)變化的影響限制在概念模式之下,這使數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)和存儲(chǔ)方法獨(dú)立于應(yīng)用程序,

8、通過映像功能保證數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的變化不影響數(shù)據(jù)的全局邏輯結(jié)構(gòu)的改變,從而不必修改應(yīng)用程序,即確保了數(shù)據(jù)的物理獨(dú)立性。3.5 數(shù)據(jù)模型最常用的數(shù)據(jù)模型分為概念模型和基本數(shù)據(jù)模型 (1)概念數(shù)據(jù)模型也稱信息模型,是按用戶的觀點(diǎn)對(duì)數(shù)據(jù)和信息建模,是現(xiàn)實(shí)世界到信息世界的第一層抽象。該模型強(qiáng)調(diào)其語義表達(dá)功能,易于用戶理解,主要用戶數(shù)據(jù)庫(kù)設(shè)計(jì)。這類模型中最著名的是實(shí)體聯(lián)系模型簡(jiǎn)稱E-R模型。3.5 數(shù)據(jù)模型 (2)基本數(shù)據(jù)模型是按計(jì)算機(jī)系統(tǒng)的觀點(diǎn)對(duì)數(shù)據(jù)建模,是現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象,用于DBMS的實(shí)現(xiàn)。基本數(shù)據(jù)模型有層次模型、網(wǎng)狀模型、關(guān)系模型。練習(xí)題1、(2005 年5 月上午試題21 )數(shù)據(jù)模型的三要素

9、是數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和( 21 ) ( 21 ) A 數(shù)據(jù)安全B 數(shù)據(jù)兼容 C 數(shù)據(jù)約束條件D 數(shù)據(jù)維護(hù)2、數(shù)據(jù)庫(kù)概念模型獨(dú)立于_。A 具體的計(jì)算機(jī)和DBMS B . E-R 圖C 信息世界 D 現(xiàn)實(shí)世界答案:C,A3.5 ER模型在解決實(shí)際問題中,通常用ER 模型(也稱實(shí)體(entity)一聯(lián)系(relationship)方法)表示實(shí)體與實(shí)體之間的聯(lián)系,在這種表示方法中常用3 種圖素來表示。( 1 )實(shí)體型:用矩形表示,矩形內(nèi)寫明實(shí)體名。( 2 )屬性(attribute):用橢圓形表示,并用無向邊將其與相應(yīng)的實(shí)體連接起來。( 3 )聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)

10、實(shí)體連接起來,同時(shí)在無向邊旁標(biāo)上聯(lián)系的類型(1 : 1 , 1 : n , m : n )。3.5 ER模型兩個(gè)實(shí)體型之間的聯(lián)系有如下3 種類型。 一對(duì)一聯(lián)系:實(shí)體集A 中的一個(gè)實(shí)體至多與實(shí)體集B 中的一個(gè)實(shí)體相對(duì)應(yīng),反之亦然,則稱實(shí)體集A 與實(shí)體集B 為一對(duì)一的聯(lián)系。 一對(duì)多聯(lián)系:實(shí)體集A 中的一個(gè)實(shí)體與實(shí)體集B 中的多個(gè)實(shí)體相對(duì)應(yīng),反之,實(shí)體集B 中的一個(gè)實(shí)體至多與實(shí)體集A 中的一個(gè)實(shí)體相對(duì)應(yīng)。 多對(duì)多聯(lián)系:實(shí)體集A 中的一個(gè)實(shí)體與實(shí)體集B 中的多個(gè)實(shí)體相對(duì)應(yīng),反之,實(shí)體集B 中的一個(gè)實(shí)體與實(shí)體集A 中的多個(gè)實(shí)體相對(duì)應(yīng)。3.5 ER模型在關(guān)系中能惟一標(biāo)識(shí)元組的屬性集稱為_(1)_.在關(guān)系R

11、 中,屬性A不是R 的碼,卻是另一關(guān)系S 的主碼,則稱A 為R 的(2) .( 1 ) A 外碼B 候選碼C 主鍵D 超鍵( 2 ) A 外碼B 候選碼C 非主屬性D 主屬性 答案:B、A3.5 ER模型(1)候選碼在關(guān)系中能惟一標(biāo)識(shí)元組的屬性或?qū)傩约?,則稱該屬性或?qū)傩约癁楹蜻x碼(Candidate Key ) ,也稱候選關(guān)鍵字或候選鍵。(2)主碼(primary key)如果一個(gè)關(guān)系中有多個(gè)候選鍵,可以從中選擇一個(gè)作為查詢、插入或刪除元組的操作變量,被選用的候選鍵稱為主碼,或稱為主鍵、主關(guān)系鍵、關(guān)系鍵、關(guān)鍵字。 3.5 ER模型 (3)主屬性與非碼屬性主屬性(Prime Attribute

12、) :包含在主碼中的各屬性稱為主屬性。非碼屬性(Non-Prime Attribute ) :不包含在任何候選碼中的屬性稱為非碼屬性。 (4)外碼如果關(guān)系R2 的一個(gè)或一組屬性X 不是R2 的主碼,而是另一關(guān)系Rl 的主碼,則該屬性或?qū)傩越MX 稱為關(guān)系R2 的外碼或外部關(guān)系鍵(Foreign key )。 練習(xí)題1、數(shù)據(jù)庫(kù)概念設(shè)計(jì)的ER 方法中,實(shí)體之間的聯(lián)系在ER 圖中一般用_表示。 A 矩形B 圓邊形C 菱形D 橢圓形2、在DBS 系統(tǒng)中,最接近物理存儲(chǔ)設(shè)備的結(jié)構(gòu)是_。A 外模式B 內(nèi)模式C 中間模式D 用戶模式 3、支持?jǐn)?shù)據(jù)庫(kù)各種操作的軟件系統(tǒng)叫做_。A 數(shù)據(jù)庫(kù)管理系統(tǒng)B 文件系統(tǒng)C 數(shù)

13、據(jù)庫(kù)系統(tǒng)D 操作系統(tǒng) 練習(xí)題4、數(shù)據(jù)庫(kù)系統(tǒng)從廣義的角度看,應(yīng)該由_組成。A 數(shù)據(jù)庫(kù)、硬件、軟件和人員B 數(shù)據(jù)庫(kù)、硬件、數(shù)據(jù)庫(kù)管理系統(tǒng)和軟件C 數(shù)據(jù)庫(kù)、軟件和人員D 數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)和人員答案:C、B、A、A3.6關(guān)系代數(shù) 關(guān)系模型與其他模型相比,最有特色的是它的數(shù)據(jù)庫(kù)語言。這種語言靈活方便、表達(dá)能力和功能都很強(qiáng)。目前關(guān)系數(shù)據(jù)庫(kù)所使用的語言一般都具有定義、查詢、更新和控制一體化的特點(diǎn),而查詢是最主要的部分。所以說,關(guān)系數(shù)據(jù)庫(kù)的核心部分是查詢,故又稱為查詢語言,而查詢的條件要使用關(guān)系運(yùn)算表達(dá)式來表示。因此,關(guān)系運(yùn)算是設(shè)計(jì)關(guān)系數(shù)據(jù)語言的基礎(chǔ)。 按表達(dá)查詢的方法不同,關(guān)系運(yùn)算可分為關(guān)系代數(shù)和關(guān)系

14、演算兩大類。關(guān)系代數(shù)是對(duì)關(guān)系進(jìn)行集合代數(shù)運(yùn)算,是基于關(guān)系代數(shù)的操作語言,稱為關(guān)系代數(shù)語言,簡(jiǎn)稱關(guān)系代數(shù)。關(guān)系代數(shù)的運(yùn)算對(duì)象是關(guān)系,運(yùn)算結(jié)果也是關(guān)系.歷年習(xí)題集合運(yùn)算關(guān)系代數(shù)用到的運(yùn)算符主要包括以下4 類: 集合運(yùn)算 傳統(tǒng)的集合運(yùn)算:把關(guān)系看成元組的集合,以元組作為集合中元素來進(jìn)行運(yùn)算,其運(yùn)算是從關(guān)系的“水平”方向即行的角度進(jìn)行的。包括并、差、交和笛卡爾積等運(yùn)算。 對(duì)兩個(gè)關(guān)系的集合運(yùn)算傳統(tǒng)的集合運(yùn)算是二目運(yùn)算,是在兩個(gè)關(guān)系中進(jìn)行的。但是并不是任意的兩個(gè)關(guān)系都能進(jìn)行這種集合運(yùn)算,而是要在兩個(gè)滿足一定條件的關(guān)系中進(jìn)行運(yùn)算。設(shè)給定兩個(gè)關(guān)系R 、s ,若滿足: 具有相同的度n。 R 中第i 個(gè)屬性和s

15、中第i 個(gè)屬性必須來自同一個(gè)域。則說關(guān)系R 、S 是相容的。 除笛卡爾積外,要求參加運(yùn)算的關(guān)系必須滿足上述的相容性定義。 集合運(yùn)算(1)并(Union ) 關(guān)系R 和關(guān)系S 的并由屬于R 或?qū)儆赟 的元組組成,即R 和S 的所有元組合并,刪去重復(fù)元組,組成一個(gè)新關(guān)系,其結(jié)果仍為n 目關(guān)系。記作:集合運(yùn)算(2)差(Difference ) 關(guān)系R 與關(guān)系S 的差由屬于R 而不屬于S 的所有元組組成,即R 中刪去與S 中相同的元組,組成一個(gè)新關(guān)系,其結(jié)果仍為n 目關(guān)系。記作: 集合運(yùn)算(3)交(Intersection ) 關(guān)系R 與關(guān)系S 的交由既屬于R 又屬于S 的元組組成,即R 與S 中相同

16、的元組,組成一個(gè)新關(guān)系,其結(jié)果仍為n 目關(guān)系。記作:集合運(yùn)算( 4 )笛卡爾積(Extended Cartesian Product ) 兩個(gè)分別為n 目和m 目關(guān)系R 和S 的笛卡爾積是一個(gè)(n + m )列的元組的集合,元組的前n 列是關(guān)系R 的一個(gè)元組,后m 列是關(guān)系S 的一個(gè)元組。若R 有k1 個(gè)元組,S 有k2 個(gè)元組,則關(guān)系R 和關(guān)系S 的廣義笛卡爾積有k1xk2 個(gè)元組,記作:集合運(yùn)算(2005 年5 月上午試題23 )在關(guān)系代數(shù)運(yùn)算中,_運(yùn)算結(jié)果的關(guān)系模式與原關(guān)系模式相同。( 23 ) A.并 B.笛卡兒積 C.投影 D.自然連接 答案:A關(guān)系運(yùn)算 專門的關(guān)系運(yùn)算:不僅涉及行運(yùn)

17、算,也涉及列運(yùn)算,這種運(yùn)算是為數(shù)據(jù)庫(kù)的應(yīng)用而引進(jìn)的特殊運(yùn)算。包括選擇、投影、連接和除法等運(yùn)算。 由于傳統(tǒng)的集合運(yùn)算,只是從行的角度進(jìn)行,而要靈活地實(shí)現(xiàn)關(guān)系數(shù)據(jù)庫(kù)多樣的查詢操作,必須引入專門的關(guān)系運(yùn)算。 12.2 關(guān)系運(yùn)算(1)選擇(Selection ) 選擇運(yùn)算是單目運(yùn)算,是根據(jù)一定的條件在給定的關(guān)系R 中選取若干個(gè)元組,組成一個(gè)新關(guān)系,記作:關(guān)系運(yùn)算(2)投影(Projection ) 投影運(yùn)算也是單目運(yùn)算,關(guān)系R 上的投影是從R 中選擇出若干屬性列,組成新的關(guān)系,即對(duì)關(guān)系在垂直方向進(jìn)行的運(yùn)算,從左到右按照指定的若干屬性及順序取出相應(yīng)列,刪去重復(fù)元組。記作:關(guān)系運(yùn)算( 3 )連接(Join

18、 ) 連接運(yùn)算是二目運(yùn)算,是從兩個(gè)關(guān)系的笛卡爾積中選取滿足連接條件的元組,組成新的關(guān)系。連接或稱為。連接,它是從兩個(gè)關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組。記作: 關(guān)系運(yùn)算(4)除法運(yùn)算是二目運(yùn)算,設(shè)有關(guān)系R ( X , Y )與關(guān)系S ( Y , Z ) ,其中X , Y , Z 為屬性集合,R 中的Y 與S 中的Y 可以有不同的屬性名,但對(duì)應(yīng)屬性必須出自相同的域。關(guān)系R 除以關(guān)系S 所得的商是一個(gè)新關(guān)系P ( X ) , P 是R 中滿足下列條件的元組在X 上的投影:元組在X 上分量值x 的象集Yx 包含S 在Y 上投影的集合。記作: 練習(xí)題設(shè)有關(guān)系R,S如圖所示:求RS、RS、RS

19、、A、C(R)、AB(R)、34(RS).ABCabcbadcdcdfgABCbaddfgfhk關(guān)系R關(guān)系S練習(xí)題ABCabcbadcdedfgfhkABCabccdeABCbad練習(xí)題R.AR.BR.CS.AS.BS.CabcbadabcdFgabcfhkbadbafbaddfg練習(xí)題R.AR.BR.CS.AS.BS.CabcdfgabcfhkbadfhkcdefhkACacbdcedg練習(xí)題練習(xí)題答案:C、B練習(xí)題練習(xí)題答案:D、B、C、C、B 3.7數(shù)據(jù)庫(kù)語言 結(jié)構(gòu)化查詢語言SQL(Structrued Query Language)是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語言,它是集DDL(數(shù)據(jù)定義defi

20、nition)、DML(數(shù)據(jù)操作manipulation)和數(shù)據(jù)控制(control)功能(授權(quán)、完整性規(guī)則和事務(wù)控制語句)于一體的數(shù)據(jù)庫(kù)語言。 是一種介于關(guān)系代數(shù)與關(guān)系演算之間的結(jié)構(gòu)化查詢語言。它與其他非關(guān)系模型的數(shù)據(jù)語言相比,具有綜合統(tǒng)一、高度的非過程化、面向集合等特點(diǎn)。 語言簡(jiǎn)潔,易學(xué)易用。SQL語言功能極強(qiáng),完成核心功能只用了9個(gè)動(dòng)詞,包括如下四類:數(shù)據(jù)查詢select、數(shù)據(jù)定義(create、drop 、alter)、數(shù)據(jù)操作(insert、 update、 delete)及數(shù)據(jù)控制(grant、revoke)。數(shù)據(jù)庫(kù)語言1、了解SQL數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)2、SQL的數(shù)據(jù)定義:基本表、視

21、圖、索引等的創(chuàng)建和撤銷。3、熟練運(yùn)用SELECT進(jìn)行查詢、如連接查詢、嵌套查詢、分組查詢等。4、掌握SQL的數(shù)據(jù)更新5、掌握嵌入式SQL的概念和應(yīng)用數(shù)據(jù)定義語言 SQL DDL創(chuàng)建表 Create table修改表 Alter table刪除表 Drop table創(chuàng)建表語句格式:Create table (列級(jí)完整性約束條件,,)列級(jí)完整性約束條件有NULL(空)和UNIQUE(取值唯一)。表級(jí)完整性約束條件有primary key(主碼)和foreign key(外碼)創(chuàng)建表 例題:建立一個(gè)供應(yīng)商、零件數(shù)據(jù)庫(kù)。其中“供應(yīng)商”表S(sno,sname,status,scity)表示供應(yīng)商代碼

22、、供應(yīng)商名、供應(yīng)商狀態(tài)及供應(yīng)商所在城市,“零件”表P(pno,pname,pcolor,pweight,pcity)表示零件號(hào)、零件名、顏色、重量及產(chǎn)地。其中,數(shù)據(jù)庫(kù)要滿足如下要求:(1)供應(yīng)商代碼不能為空且值是唯一的,供應(yīng)商的名也是唯一的。(2)零件號(hào)不能為空且值是唯一的,零件名不能為空。(3)一個(gè)供應(yīng)商可以供應(yīng)多個(gè)零件,而一個(gè)零件可以由多個(gè)供應(yīng)商供應(yīng)。創(chuàng)建表Create table s(sno char(5),Sname char(30) unique,Status char(8),scity char(20),Primary key(sno);Create table p(pno cha

23、r(6),Pname char(8) not null,Pcolor char(8)Pweight numeric(6,2),Pcity char(20),Primary key(pno);Create table sp(sno char(5),Pno char(6),Qty numeric(9),Primary key(sno,pno).Foreign key(sno) references s(sno),Foreign key(pno) references p(pno);修改表語句格式:Alter table add完整性約束條件dropmodify注意:不論基本表中原來是否已有數(shù)據(jù),新

24、增加的列一律為空。修改表例如,向“供應(yīng)商”表s增加zap“郵政編碼”應(yīng)該使用什么語句?Alter table s add zap char(6);將“供應(yīng)商”s中的status字段修改為整型,應(yīng)使用什么語句?Alter table s modify status int;刪除表語句格式:Drop table 例如使用 drop table student 語句后,關(guān)系student不再是數(shù)據(jù)庫(kù)模式的一部分,關(guān)系中的元組也無法訪問。數(shù)據(jù)操作語言 SQL DMLSQL的數(shù)據(jù)操作功能包括select(查詢)、insert(插入)、delete(刪除)和update(修改)四條語句。SQL語言對(duì)數(shù)據(jù)庫(kù)

25、的操作十分靈活方便,原因在于select語句中的成分有豐富多樣的元組,有許多可選形式,尤其是目標(biāo)列和條件表達(dá)式。SELECT基本結(jié)構(gòu)數(shù)據(jù)庫(kù)查詢是數(shù)據(jù)庫(kù)的核心操作,SQL語言提供了SELECT語句進(jìn)行數(shù)據(jù)庫(kù)的查詢。一個(gè)典型的SQL查詢具有如下形式:Select a1,a2,anFrom r1,r2,rnWhere p對(duì)應(yīng)關(guān)系代數(shù)表達(dá)式為:a1,a2,an(r1r2rn ) )pSELECT基本結(jié)構(gòu)SQL查詢中的子句順序?yàn)閟elect、from、where、group by、having和order by。其中select和from是必須的,having子句只能與 group by 搭配起來使用。

26、1、select子句對(duì)應(yīng)的是關(guān)系代數(shù)中的投影運(yùn)算,用來列出查詢結(jié)果中的屬性。其輸入可以是列名、表達(dá)式、集合函數(shù)(avg、count、max、min、sum)。Distinct 選項(xiàng)可以保證查詢的結(jié)果集中不存在重復(fù)元組。SELECT基本結(jié)構(gòu)2、From 子句對(duì)應(yīng)的是關(guān)系代數(shù)中的笛卡兒積,它列出的是表達(dá)式求值過程中需掃描的關(guān)系,即在from子句中出現(xiàn)多個(gè)基本表或視圖時(shí),系統(tǒng)首先執(zhí)行笛卡兒積操作。3、Where子句對(duì)應(yīng)的是關(guān)系代數(shù)中的選擇謂詞。Where子句的條件表達(dá)式中可以使用的運(yùn)算符如下:SELECT基本結(jié)構(gòu)運(yùn)算符含義運(yùn)算符含義集合成員運(yùn)算符In在集合中不在集合中算術(shù)運(yùn)算符大于Not in大于等

27、于字符串匹配運(yùn)算符like與_和進(jìn)行單個(gè)和多個(gè)字符匹配小于小于等于等于不等于邏輯運(yùn)算符And與空值比較運(yùn)算符Is nullOr或Is not nullnot非SELECT基本結(jié)構(gòu)(1)等值連接與非等值連接連接條件的一般格式為: . 列名比較運(yùn)算符表名2 . 列名2 其中,比較運(yùn)算符主要有:=、!=。 當(dāng)比較運(yùn)算符為“”時(shí),稱為等值連接,其他情況為非等值連接。在連接條件中引用列名時(shí)要加上表名前綴,是因?yàn)閮蓚€(gè)表中的列名相同,必須用表名前綴來確切說明所指列屬于哪個(gè)表,以避免二義性。如果列名是惟一的,就不必加前綴。(2)多表連接涉及3 個(gè)及3 個(gè)以上的表進(jìn)行連接,稱為多表連接。(3)自身連接當(dāng)一個(gè)表與

28、其自已進(jìn)行連接操作時(shí),稱為表的自身連接。SELECT語句的應(yīng)用學(xué)生關(guān)系模式為S ( Sno , Sname , SD , Sage , Ssex ) ,其中:Sno 表示學(xué)生學(xué)號(hào),sname 表示學(xué)生姓名,SD 表示學(xué)生所在系,Sage 表示學(xué)生年齡,ssex 表示學(xué)生性別。如果要查詢姓名至少包含6 個(gè)字母,倒數(shù)第3 個(gè)字母為“L ”的學(xué)生的學(xué)號(hào)、姓名和年齡的SELECT 語句如下,SELECT Sno , Sname , Sage FROM S WHERE ( l ) LIKE ( 2 ) (1) A . “_ _ _L _%” B .”_ _ _%L_ _” C . Sname D 姓名(

29、2) A . “_ _ _L _%” B .”_ _ _%L_ _” C . Sname D 姓名答案:C、BSELECT語句的應(yīng)用學(xué)生關(guān)系模式為s ( sno , sname , SD , Sage , ssex , cno , orade ) ,其中:sno 表示學(xué)生學(xué)號(hào),sname 表示學(xué)生姓名,sD 表示學(xué)生所在系,Sage 表示學(xué)生年齡,Ssex 表示學(xué)生性別,Cno 表示學(xué)生選課的課程號(hào),orade 表示成績(jī)。查詢至少選修了3 門課程的學(xué)生學(xué)號(hào)、姓名及平均成績(jī)的SELECT 語句如下。SELEcT sno , sname ,avg ( orade ) FROM S GROUP BY

30、 ( 1 ) HAVING ( 2 ) ( l ) A . Sno B . Sname C . Sage D . Cno ( 2 ) A . COUNT ( DISTINCT Sno ) 2 B . COUNT ( Cno ) 2 C . COUNT ( DISTINCT Sno ) = 2 D . COUNT ( Cno ) =2 答案:A、BSELECT語句的應(yīng)用分組查詢SELECT 語句中的GROUP BY 子句可以將查詢結(jié)果按屬性列或?qū)傩粤薪M合在行的方向上進(jìn)行分組,每組在屬性列或?qū)傩粤薪M合上具有相同的值。GROUP BY 子句按Sno 的值分組,所有具有相同Sno的元組為一組,對(duì)每一組

31、使用函數(shù)COUNT 進(jìn)行計(jì)算,統(tǒng)計(jì)出每位學(xué)生選課的門數(shù)。HAVING 子句去掉不滿足COUNT ( * ) = 3 的組。當(dāng)在一個(gè)SQL 查詢中同時(shí)使用WHERE 子句,GROUP BY 子句和HAVING 子句時(shí),其順序是WHERE 一GROUP BY 一HAVING 。WHERE 與HAVING 子句的根本區(qū)別在于作用對(duì)象不同。WHERE 子句作用于基本表或視圖,從中選擇滿足條件的元組;HAVING 子句作用于組,選擇滿足條件的組,必須用于GROUP BY 子句之后,但GROUP BY 子句可沒有HAVING 子句。SELECT語句的應(yīng)用 加入關(guān)鍵字DlSTINCT 后表示在計(jì)算時(shí)消去指定列中的重復(fù)值。如不加入關(guān)鍵字DlSTINCT 或指定ALL ,則表示不取消重復(fù)值。 練習(xí)題 圖書(BOOK)包括書號(hào)(BNO)、類型(BTYPE)、書名(BNAME)、作者(BAUTH)、單價(jià)(BPRICE)、出版社號(hào)(PNO)。出版社(PUBLISH)包括出版社號(hào)(PNO)、出版社名稱(PNAME)、所在城市(PCITY)、電話(PTEL)。請(qǐng)完成以下查詢:(1)在“高等教育出版社”出版、書名為“操作系統(tǒng)”的圖書的作者名。(2)查找作者為“張欣”出版的全部“小說”類圖書的出版社的電話。(3)查找書名中有“計(jì)算機(jī)”一詞的圖書的書名及作者。(4)在圖書表中增加“出版時(shí)間”(BDATE

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論