大學(xué)計(jì)算機(jī)基礎(chǔ)(第二版) (10)章節(jié)課件_第1頁(yè)
大學(xué)計(jì)算機(jī)基礎(chǔ)(第二版) (10)章節(jié)課件_第2頁(yè)
大學(xué)計(jì)算機(jī)基礎(chǔ)(第二版) (10)章節(jié)課件_第3頁(yè)
大學(xué)計(jì)算機(jī)基礎(chǔ)(第二版) (10)章節(jié)課件_第4頁(yè)
大學(xué)計(jì)算機(jī)基礎(chǔ)(第二版) (10)章節(jié)課件_第5頁(yè)
已閱讀5頁(yè),還剩127頁(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)介

第10章Access數(shù)據(jù)庫(kù)技術(shù)基礎(chǔ)

本章以微軟開(kāi)發(fā)的面向小型關(guān)系數(shù)據(jù)庫(kù)應(yīng)用且操作簡(jiǎn)便易用的Access數(shù)據(jù)庫(kù)為例,講述數(shù)據(jù)庫(kù)技術(shù)的一般應(yīng)用。主要內(nèi)容包括數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)的基本概念,Access數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用環(huán)境,表、查詢、SQL語(yǔ)言、報(bào)表、Access數(shù)據(jù)的導(dǎo)入與導(dǎo)出。10.1.1信息、數(shù)據(jù)、信息處理10.1數(shù)據(jù)庫(kù)基本概念

信息(Information)是客觀事物屬性的反映。它反映了客觀事物的某一屬性或某一時(shí)刻的表現(xiàn)形式。例如學(xué)生的姓名、身高、年齡、面貌、胖瘦、成績(jī)等。數(shù)據(jù)(Data)則是信息的載體,它是信息在計(jì)算機(jī)中的量化表示。例如身高1.68M、上機(jī)成績(jī)98分等。可以看出將信息用某中符號(hào)記錄下來(lái)就成了數(shù)據(jù)。信息與數(shù)據(jù)相互聯(lián)系,數(shù)據(jù)是信息的載體,信息是數(shù)據(jù)的內(nèi)涵。信息處理(InformationProcess)也稱為數(shù)據(jù)處理,它是利用計(jì)算機(jī)對(duì)對(duì)各種形式的數(shù)據(jù)進(jìn)行收集、儲(chǔ)存、加工和傳播等一系列活動(dòng)的總和。數(shù)據(jù)處理的目的是通過(guò)對(duì)大量原始數(shù)據(jù)進(jìn)行分析和處理,抽取或推導(dǎo)出對(duì)人們有價(jià)值的信息,為行動(dòng)和決策提供依據(jù)。10.1.2

數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)

數(shù)據(jù)庫(kù)(DataBase,簡(jiǎn)稱DB)是存儲(chǔ)在計(jì)算機(jī)內(nèi)、有組織、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫(kù)中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲(chǔ),具有較小的數(shù)據(jù)冗余度,較高的數(shù)據(jù)獨(dú)立性和擴(kuò)展性,并且數(shù)據(jù)庫(kù)中的數(shù)據(jù)為各個(gè)合法用戶共享。

數(shù)據(jù)庫(kù)管理系統(tǒng)(DataBaseManagementSystem,簡(jiǎn)稱DBMS)是負(fù)責(zé)數(shù)據(jù)庫(kù)的定義、建立、操縱、管理和維護(hù)的一種計(jì)算機(jī)軟件,是數(shù)據(jù)庫(kù)系統(tǒng)的核心部分。

DBMS為用戶管理數(shù)據(jù)提供了一整套命令,利用這些命令可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的各種操作,如數(shù)據(jù)結(jié)構(gòu)的定義,數(shù)據(jù)的輸入、輸出、編輯、刪除、更新、統(tǒng)計(jì)和瀏覽等。數(shù)據(jù)庫(kù)管理系統(tǒng)通常由以下幾個(gè)部分組成。⑴數(shù)據(jù)定義語(yǔ)言DDL(DataDefinitionLanguage)及其編譯和解釋程序:主要用于定義數(shù)據(jù)庫(kù)的結(jié)構(gòu)。⑵數(shù)據(jù)操縱語(yǔ)言DML(DataManipulationLanguage)或查詢語(yǔ)言及其編譯或解釋程序:提供了對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)存取、檢索、統(tǒng)計(jì)、修改、刪除、輸入、輸出等基本操作。⑶數(shù)據(jù)庫(kù)運(yùn)行管理和控制例行程序:是數(shù)據(jù)庫(kù)管理系統(tǒng)的核心部分,用于數(shù)據(jù)的安全性控制、完整性控制、并發(fā)控制、通信控制、數(shù)據(jù)存取、數(shù)據(jù)庫(kù)轉(zhuǎn)儲(chǔ)、數(shù)據(jù)庫(kù)初始裝入、數(shù)據(jù)庫(kù)恢復(fù)和數(shù)據(jù)的內(nèi)部維護(hù)等。⑷數(shù)據(jù)字典DD(DataDictionary):提供了對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)描述的集中管理規(guī)則,對(duì)數(shù)據(jù)庫(kù)的使用和操作可以通過(guò)查閱數(shù)據(jù)字典來(lái)進(jìn)行。⑸通信功能:數(shù)據(jù)庫(kù)管理系統(tǒng)提供了數(shù)據(jù)庫(kù)與操作系統(tǒng)之間的聯(lián)機(jī)處理接口,以及與遠(yuǎn)程作業(yè)輸入的接口。此外,它也是用戶和數(shù)據(jù)庫(kù)之間的接口。

數(shù)據(jù)庫(kù)系統(tǒng)(DataBaseSystem,簡(jiǎn)稱DBS)是指計(jì)算機(jī)系統(tǒng)引入數(shù)據(jù)庫(kù)后的系統(tǒng)構(gòu)成,是一個(gè)具有管理數(shù)據(jù)庫(kù)功能的計(jì)算機(jī)軟硬件綜合系統(tǒng)。具體地說(shuō),它主要包括如下幾個(gè)組成部分。

⑴硬件系統(tǒng):它是數(shù)據(jù)庫(kù)系統(tǒng)的物理支持,包括主機(jī)、顯示器、外存儲(chǔ)器、輸入/輸出設(shè)備等。

⑵軟件系統(tǒng):有系統(tǒng)軟件和應(yīng)用軟件。系統(tǒng)軟件包括支持?jǐn)?shù)據(jù)庫(kù)管理系統(tǒng)運(yùn)行的操作系統(tǒng)(如WindowsXP)、數(shù)據(jù)庫(kù)管理系統(tǒng)(如Access2003)、開(kāi)發(fā)應(yīng)用系統(tǒng)的高級(jí)語(yǔ)言及其編譯系統(tǒng)等;應(yīng)用軟件是指在數(shù)據(jù)庫(kù)管理系統(tǒng)基礎(chǔ)上,用戶根據(jù)實(shí)際問(wèn)題自行開(kāi)發(fā)的應(yīng)用程序。⑶數(shù)據(jù)庫(kù)。是數(shù)據(jù)庫(kù)系統(tǒng)的管理對(duì)象,為用戶提供數(shù)據(jù)的信息源。⑷數(shù)據(jù)庫(kù)管理員。是負(fù)責(zé)管理和控制數(shù)據(jù)庫(kù)系統(tǒng)的維護(hù)管理人員。⑸用戶。數(shù)據(jù)庫(kù)的使用者,用戶包括專業(yè)用戶和最終用戶。用戶可以利用數(shù)據(jù)庫(kù)管理系統(tǒng)軟件提供的命令訪問(wèn)數(shù)據(jù)庫(kù)并進(jìn)行各種操作。專業(yè)用戶即程序員,是負(fù)責(zé)開(kāi)發(fā)應(yīng)用系統(tǒng)程序的設(shè)計(jì)人員。最終用戶是對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢或通過(guò)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)提供的界面使用數(shù)據(jù)庫(kù)的人員。數(shù)據(jù)庫(kù)系統(tǒng)具有數(shù)據(jù)的結(jié)構(gòu)化、共享性、獨(dú)立性、可控冗余度以及數(shù)據(jù)的安全性、完整性和并發(fā)控制等特點(diǎn)。10.1.3數(shù)據(jù)庫(kù)系統(tǒng)

數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)(DataBaseApplicationSystem,簡(jiǎn)稱DBAS)是在DBMS支持下根據(jù)實(shí)際問(wèn)題開(kāi)發(fā)出來(lái)的數(shù)據(jù)庫(kù)應(yīng)用軟件。一個(gè)DBAS通常由數(shù)據(jù)庫(kù)和應(yīng)用程序兩部分組成。10.1.4數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)10.2.1人工管理階段10.2數(shù)據(jù)管理技術(shù)的發(fā)展

人工管理階段始于20世紀(jì)50年代,出現(xiàn)在計(jì)算機(jī)應(yīng)用于數(shù)據(jù)管理的初期,既沒(méi)有操作系統(tǒng),也沒(méi)有專門(mén)管理數(shù)據(jù)的軟件,數(shù)據(jù)由計(jì)算或處理它的程序自行攜帶。人工管理階段程序與數(shù)據(jù)之間的關(guān)系如圖10-1所示。

數(shù)據(jù)管理技術(shù)的發(fā)展主要經(jīng)歷了人工管理、文件管理和數(shù)據(jù)庫(kù)系統(tǒng)管理三個(gè)階段。圖10-1人工管理階段程序與數(shù)據(jù)之間的關(guān)系10.2.2

文件管理階段

人工管理階段數(shù)據(jù)管理存在的主要問(wèn)題是:⑴數(shù)據(jù)不能獨(dú)立。當(dāng)數(shù)據(jù)修改時(shí),程序也得修改,而程序修改后,數(shù)據(jù)的格式、類(lèi)型也得變化以適應(yīng)處理它的程序。⑵數(shù)據(jù)不能長(zhǎng)期保存。數(shù)據(jù)被包含在程序中,程序運(yùn)行結(jié)束后,數(shù)據(jù)和程序一起從內(nèi)存中釋放。⑶沒(méi)有專門(mén)進(jìn)行數(shù)據(jù)管理的軟件。應(yīng)用程序和數(shù)據(jù)是相互結(jié)合且不可分割的,各程序之間的數(shù)據(jù)不能相互傳遞,數(shù)據(jù)不能被重復(fù)使用,既不安全,編程效率低下。⑷一組數(shù)據(jù)對(duì)應(yīng)于一個(gè)程序,一個(gè)程序中的數(shù)據(jù)不能被其他程序利用,數(shù)據(jù)無(wú)法共享,從而導(dǎo)致程序和程序之間有大量重復(fù)的數(shù)據(jù)存在。

在20世紀(jì)60年代,由于有了磁盤(pán)等大容量且能長(zhǎng)期保存數(shù)據(jù)的存儲(chǔ)設(shè)備,且有了操作系統(tǒng)。數(shù)據(jù)與程序分開(kāi),數(shù)據(jù)能長(zhǎng)期保存。在文件管理階段,把有關(guān)的數(shù)據(jù)組織成一個(gè)文件,由一個(gè)專門(mén)的文件管理系統(tǒng)對(duì)其進(jìn)行管理。在這種管理方式下,應(yīng)用程序通過(guò)文件管理系統(tǒng)對(duì)數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行加工處理。應(yīng)用程序與數(shù)據(jù)文件之間具有一定的獨(dú)立性。與早期人工管理階段相比,使用文件系統(tǒng)管理數(shù)據(jù)的效率和數(shù)量都有很大提高,但仍存在以下3個(gè)問(wèn)題:⑴數(shù)據(jù)沒(méi)有完全獨(dú)立。雖然數(shù)據(jù)和程序被分開(kāi),但所設(shè)計(jì)的數(shù)據(jù)依然是針對(duì)某一特定的程序,所以無(wú)論是修改數(shù)據(jù)文件還是程序文件,二者都要相互影響。數(shù)據(jù)文件不能被多個(gè)程序所共享。⑵存在數(shù)據(jù)冗余。文件系統(tǒng)中的數(shù)據(jù)沒(méi)有合理和規(guī)范的結(jié)構(gòu),造成數(shù)據(jù)的重復(fù)存儲(chǔ),即數(shù)據(jù)的冗余。圖9-2文件系統(tǒng)階段程序與數(shù)據(jù)之間的關(guān)系

數(shù)據(jù)庫(kù)技術(shù)始于20世紀(jì)60年代末,到現(xiàn)在,數(shù)據(jù)庫(kù)系統(tǒng)在全世界范圍內(nèi)得到廣泛的應(yīng)用。在數(shù)據(jù)庫(kù)系統(tǒng)管理階段,是將所有的數(shù)據(jù)集中到一個(gè)數(shù)據(jù)庫(kù)中,形成一個(gè)數(shù)據(jù)中心,實(shí)行統(tǒng)一規(guī)劃,集中管理,用戶通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)使用數(shù)據(jù)庫(kù)中的數(shù)據(jù)。⑶數(shù)據(jù)不能被集中管理。文件系統(tǒng)中的數(shù)據(jù)文件沒(méi)有集中的管理機(jī)制,數(shù)據(jù)的安全性和完整性都不能得到保障。各數(shù)據(jù)之間、數(shù)據(jù)文件之間缺乏聯(lián)系,給數(shù)據(jù)處理造成不便。文件系統(tǒng)階段程序與數(shù)據(jù)之間的關(guān)系如圖9-2所示。10.2.3數(shù)據(jù)庫(kù)系統(tǒng)階段1.?dāng)?shù)據(jù)庫(kù)系統(tǒng)的主要特點(diǎn)⑴數(shù)據(jù)的結(jié)構(gòu)化。在數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)庫(kù)中的數(shù)據(jù)存儲(chǔ)是按同一結(jié)構(gòu)進(jìn)行的。⑵數(shù)據(jù)共享。數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)庫(kù)共享是它的主要目的。⑶數(shù)據(jù)獨(dú)立性。數(shù)據(jù)庫(kù)系統(tǒng)中,力求減少數(shù)據(jù)結(jié)構(gòu)和應(yīng)用程序相互依賴,實(shí)現(xiàn)數(shù)據(jù)的獨(dú)立性。⑷可控冗余度。數(shù)據(jù)實(shí)現(xiàn)共享后,不必要的重復(fù)將全部消除,但為了提高查詢效率,也可保留少量冗余,其冗余度由設(shè)計(jì)人員控制。圖9-3數(shù)據(jù)庫(kù)系統(tǒng)階段程序與數(shù)據(jù)之間的關(guān)系⑸實(shí)現(xiàn)了數(shù)據(jù)統(tǒng)一控制:數(shù)據(jù)庫(kù)系統(tǒng)提供了各種控制功能,保證了數(shù)據(jù)的并發(fā)控制、安全性和完整性。數(shù)據(jù)庫(kù)作為多個(gè)用戶和應(yīng)用程序的共享資源,允許多個(gè)用戶同時(shí)訪問(wèn)。并發(fā)控制可以防止多用戶并發(fā)訪問(wèn)數(shù)據(jù)時(shí)產(chǎn)生的數(shù)據(jù)不一致性。安全性可以防止非法用戶存取數(shù)據(jù)。完整性可以保證數(shù)據(jù)的正確性和有效性。數(shù)據(jù)庫(kù)系統(tǒng)階段程序與數(shù)據(jù)之間的關(guān)系如圖9-3所示。2.?dāng)?shù)據(jù)庫(kù)系統(tǒng)的分類(lèi)數(shù)據(jù)庫(kù)系統(tǒng)的分類(lèi)有多種方式,按照數(shù)據(jù)的存放地點(diǎn)的不同,數(shù)據(jù)庫(kù)系統(tǒng)可分為集中式數(shù)據(jù)庫(kù)系統(tǒng)和分布式數(shù)據(jù)庫(kù)系統(tǒng)。⑴集中式數(shù)據(jù)庫(kù)系統(tǒng)。集中式數(shù)據(jù)庫(kù)系統(tǒng)是將數(shù)據(jù)集中在一個(gè)數(shù)據(jù)庫(kù)中。數(shù)據(jù)在邏輯上和物理上都是集中存放的。所有的用戶在存取和訪問(wèn)數(shù)據(jù)時(shí),都要訪問(wèn)這個(gè)數(shù)據(jù)庫(kù)。例如一個(gè)銀行儲(chǔ)蓄系統(tǒng),如果系統(tǒng)的數(shù)據(jù)存放在一個(gè)集中式數(shù)據(jù)庫(kù)中,那么所有儲(chǔ)戶在存款和取款時(shí)都要訪問(wèn)這個(gè)數(shù)據(jù)庫(kù)。這種方式訪問(wèn)方便,但通信量大,速度慢。⑵分布式數(shù)據(jù)庫(kù)系統(tǒng)。分布式數(shù)據(jù)庫(kù)系統(tǒng)是將多個(gè)集中式的數(shù)據(jù)庫(kù)通過(guò)網(wǎng)絡(luò)連接起來(lái),使各個(gè)節(jié)點(diǎn)的計(jì)算機(jī)可以利用網(wǎng)絡(luò)通信功能訪問(wèn)其他節(jié)點(diǎn)上的數(shù)據(jù)庫(kù)資源,使各個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)實(shí)現(xiàn)高度共享。分布式數(shù)據(jù)庫(kù)系統(tǒng)的主要特點(diǎn)是:系統(tǒng)具有更高的透明度,可靠性與效率更高,局部與集中控制相結(jié)合,系統(tǒng)易于擴(kuò)展。

3.?dāng)?shù)據(jù)庫(kù)的應(yīng)用數(shù)據(jù)庫(kù)的應(yīng)用非常廣泛,如銀行業(yè)、通信行業(yè)用數(shù)據(jù)庫(kù)存儲(chǔ)客戶信息;企業(yè)用數(shù)據(jù)庫(kù)管理原料、生產(chǎn)、產(chǎn)品等信息;經(jīng)銷(xiāo)行業(yè)用數(shù)據(jù)庫(kù)存儲(chǔ)生產(chǎn)、庫(kù)存、銷(xiāo)售信息;學(xué)校用數(shù)據(jù)庫(kù)管理學(xué)生的個(gè)人信息、課程成績(jī)等。

數(shù)據(jù)模型是指數(shù)據(jù)庫(kù)中數(shù)據(jù)與數(shù)據(jù)之間的關(guān)系,數(shù)據(jù)模型不同,相應(yīng)的數(shù)據(jù)庫(kù)系統(tǒng)就完全不同,任何一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)都是基于某種數(shù)據(jù)模型的。不同的數(shù)據(jù)模型提供了模型化數(shù)據(jù)和信息的不同工具,根據(jù)模型應(yīng)用的不同目的,可以將模型分為兩類(lèi)或兩個(gè)層次:一是概念模型,二是數(shù)據(jù)模型。前者是按用戶的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)和信息建模,后者是按計(jì)算機(jī)系統(tǒng)的觀點(diǎn)對(duì)數(shù)據(jù)建模。10.3.1概念模型10.3數(shù)據(jù)模型

概念模型是對(duì)客觀事物及其聯(lián)系的抽象,用于信息世界的建模,它強(qiáng)調(diào)其語(yǔ)義表達(dá)能力,以及能夠較方便、直接地表達(dá)應(yīng)用中各種語(yǔ)義知識(shí)。這類(lèi)模型概念簡(jiǎn)單、清晰、易于被用戶理解,是用戶和數(shù)據(jù)庫(kù)設(shè)計(jì)人員之間進(jìn)行交流的語(yǔ)言。概念模型的表示方法很多,其中最著名的是E-R方法(實(shí)體-聯(lián)系方法),它用E-R圖來(lái)描述現(xiàn)實(shí)世界的概念模型,E-R圖的主要成分是實(shí)體、聯(lián)系和屬性。在概念模型中主要有如下一些概念:

實(shí)體:客觀存在并可相互區(qū)分的事物稱為實(shí)體。實(shí)體可以是人、物、一個(gè)抽象對(duì)象、事物與事物之間的聯(lián)系。例如一個(gè)學(xué)生、一個(gè)教師、一門(mén)課程、一支鉛筆、一部電影、一個(gè)部門(mén)等都是實(shí)體。

屬性:描述實(shí)體的特性稱為屬性。一個(gè)實(shí)體可由若干個(gè)屬性來(lái)刻畫(huà)。屬性的組合表征了實(shí)體。例如學(xué)生有學(xué)號(hào)、姓名、性別、出生日期、籍貫、專業(yè)、是否團(tuán)員等屬性。

碼(關(guān)鍵字):唯一標(biāo)識(shí)實(shí)體的一個(gè)屬性或?qū)傩约Q為碼。例如學(xué)號(hào)是學(xué)生實(shí)體的碼。

域:屬性的取值范圍。例如:學(xué)生性別的域?yàn)椋校?/p>

實(shí)體型:用實(shí)體名及其屬性名集合來(lái)抽象和刻畫(huà)同類(lèi)實(shí)體稱為實(shí)體型。例如:學(xué)生以及學(xué)生的屬性名集合構(gòu)成學(xué)生實(shí)體型,可以簡(jiǎn)記為:學(xué)生(學(xué)號(hào),姓名,性別,出生日期,籍貫,專業(yè),是否團(tuán)員);鉛筆(商標(biāo),軟硬度,顏色,價(jià)格,生產(chǎn)廠家)表示鉛筆實(shí)體型。

實(shí)體集:同類(lèi)型的實(shí)體的集合稱為實(shí)體集。例如:全體學(xué)生就是一個(gè)實(shí)體集。10.3.2實(shí)體間的聯(lián)系及聯(lián)系的種類(lèi)

兩個(gè)實(shí)體間的聯(lián)系可以分為3類(lèi):⑴一對(duì)一聯(lián)系(1∶1):如果對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中至多有一個(gè)實(shí)體與之聯(lián)系,反之亦然,則稱實(shí)體集A與實(shí)體集B具有一對(duì)一聯(lián)系。例如:在學(xué)校里面,一個(gè)班級(jí)只有一個(gè)正班長(zhǎng),而一個(gè)班長(zhǎng)只在一個(gè)班中任職,則班級(jí)與班長(zhǎng)之間具有一對(duì)一聯(lián)系。

⑵一對(duì)多聯(lián)系(1∶n):如果對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n個(gè)實(shí)體(n≥0)與之聯(lián)系,反之,對(duì)于實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A中至多只有一個(gè)實(shí)體與之聯(lián)系,則稱實(shí)體集A與實(shí)體B有一對(duì)多聯(lián)系??疾橄岛蛯W(xué)生兩個(gè)實(shí)體集,一個(gè)學(xué)生只能在一個(gè)系里注冊(cè),而一個(gè)系有很多學(xué)生。所以系和學(xué)生是一對(duì)多聯(lián)系。⑶多對(duì)多聯(lián)系(m∶n):如果對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n個(gè)實(shí)體(n≥0)與之聯(lián)系,反之,對(duì)于實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A中也有m個(gè)實(shí)體(m≥0)與之聯(lián)系,則稱實(shí)體集A與實(shí)體B具有多對(duì)多聯(lián)系。例如:一門(mén)課程同時(shí)有若干個(gè)學(xué)生選修,而一個(gè)學(xué)生可以同時(shí)選修多門(mén)課程,則課程與學(xué)生之間具有多對(duì)多聯(lián)系。又如在單位中,一個(gè)職工可以參加若干個(gè)項(xiàng)目的工作,一個(gè)項(xiàng)目可有多個(gè)職工參加,則職工與項(xiàng)目之間具有多對(duì)多聯(lián)系。實(shí)體型之間的一對(duì)一、一對(duì)多、多對(duì)多聯(lián)系不僅存在于兩個(gè)實(shí)體型之間,也存在于兩個(gè)以上的實(shí)體型之間。同一個(gè)實(shí)體集內(nèi)的各實(shí)體之間也可以存在一對(duì)一、一對(duì)多、多對(duì)多的聯(lián)系,稱為自聯(lián)系。

常用的數(shù)據(jù)模型主要有4種,即層次模型(HierarchicalModel)、網(wǎng)狀模型(NetworkModel)、關(guān)系模型(RelationModel)和面向?qū)ο髷?shù)據(jù)模型(ObjectOrientedDataModel)。

1.層次模型層次模型是數(shù)據(jù)庫(kù)系統(tǒng)最早使用的一種模型。層次模型表示數(shù)據(jù)間的從屬關(guān)系結(jié)構(gòu),它是以樹(shù)型結(jié)構(gòu)表示實(shí)體(記錄)與實(shí)體之間聯(lián)系的模型。層次數(shù)據(jù)模型只能直接表示一對(duì)多(包括一對(duì)一)的聯(lián)系,但不能表示多對(duì)多聯(lián)系。例如:學(xué)校的行政機(jī)構(gòu),如圖9-4所示。10.3.3常用數(shù)據(jù)模型圖9-4學(xué)校行政機(jī)構(gòu)的層次模型

層次模型的特征是:⑴層次模型像一棵倒立的樹(shù),僅有一個(gè)無(wú)雙親的根結(jié)點(diǎn)(Root)。⑵根結(jié)點(diǎn)以外的子結(jié)點(diǎn),向上僅有一個(gè)父結(jié)點(diǎn),向下有若干子結(jié)點(diǎn)。2.網(wǎng)狀模型網(wǎng)狀模型最早出現(xiàn)在1961年,它以網(wǎng)狀結(jié)構(gòu)表示實(shí)體與實(shí)體之間聯(lián)系的模型。網(wǎng)狀模型可以表示多個(gè)從屬關(guān)系的層次結(jié)構(gòu),也可以表示數(shù)據(jù)間的交叉關(guān)系,是層次模型的擴(kuò)展。網(wǎng)狀模型的主要特征是:⑴有一個(gè)以上的結(jié)點(diǎn)無(wú)雙親。⑵至少有一個(gè)結(jié)點(diǎn)有多個(gè)雙親。圖9-5網(wǎng)狀模型示例1

網(wǎng)狀數(shù)據(jù)模型的結(jié)構(gòu)比層次模型更具普遍性,它突破了層次模型的兩個(gè)限制,允許多個(gè)結(jié)點(diǎn)沒(méi)有雙親結(jié)點(diǎn),允許結(jié)點(diǎn)有多個(gè)雙親結(jié)點(diǎn)。此外,它還允許兩個(gè)結(jié)點(diǎn)之間有多種聯(lián)系。因此網(wǎng)狀數(shù)據(jù)模型可以更直接地描述現(xiàn)實(shí)世界。圖9-5給出了一個(gè)簡(jiǎn)單的網(wǎng)狀模型。圖9-5網(wǎng)狀模型示例23.關(guān)系模型關(guān)系模型是一種以關(guān)系(二維表)的形式表示實(shí)體與實(shí)體之間聯(lián)系的數(shù)據(jù)模型(或一個(gè)關(guān)系)。表10-1所示的是一張學(xué)生信息表。表中,每一行稱為一個(gè)記錄,用于表示一組數(shù)據(jù)項(xiàng);表中的每一列稱為一個(gè)字段或?qū)傩?,用于表示每列中的?shù)據(jù)項(xiàng)。表中的第一行稱為字段名,用于表示每個(gè)字段的名稱。

關(guān)系模型的主要特點(diǎn)有:⑴關(guān)系中的每一分量不可再分,是最基本的數(shù)據(jù)單位。⑵關(guān)系中每一列的分量是同屬性的,列數(shù)根據(jù)需要而設(shè),且各列的順序是任意的。⑶關(guān)系中每一行由一個(gè)個(gè)體事物的諸多屬性構(gòu)成,且各行的順序可以是任意的。表10-1學(xué)生情況表⑷一個(gè)關(guān)系是一張二維表,不允許有相同的列(屬性),也不允許有相同的行(元組)。

Access采用的數(shù)據(jù)模型是關(guān)系模型,是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。

關(guān)系數(shù)據(jù)庫(kù)(RelationalDatabase)是依照關(guān)系模型設(shè)計(jì)的若干二維數(shù)據(jù)表文件的集合。在Access中,一個(gè)關(guān)系數(shù)據(jù)庫(kù)由若干個(gè)數(shù)據(jù)表組成,每個(gè)數(shù)據(jù)表又是由若干個(gè)記錄組成,每個(gè)記錄由若干個(gè)數(shù)據(jù)項(xiàng)組成。一個(gè)關(guān)系的邏輯結(jié)構(gòu)就是一張二維表。這種用二維表的形式表示實(shí)體和實(shí)體之間聯(lián)系的數(shù)據(jù)模型稱為關(guān)系數(shù)據(jù)模型。10.4.1關(guān)系術(shù)語(yǔ)10.4關(guān)系數(shù)據(jù)庫(kù)

關(guān)系是建立在數(shù)學(xué)集合概念基礎(chǔ)之上的,由行和列表示的二維表。

1)關(guān)系:一個(gè)關(guān)系就是一張二維表,每個(gè)關(guān)系有一個(gè)關(guān)系名。在Access中,一個(gè)關(guān)系就稱為一張數(shù)據(jù)表。

2)元組(Tuple):二維表中水平方向的行稱為元組,每一行是一個(gè)元組。在Access中,一行稱為一個(gè)記錄(Record)。

3)屬性(Attribute):二維表中垂直方向的列稱為屬性,每一列有一個(gè)屬性名。在Access中,一列稱為一個(gè)字段(Field)。用來(lái)表示關(guān)系模型中全部數(shù)據(jù)項(xiàng)(即屬性)的類(lèi)型。

4)域(Domain):指表中屬性的取值范圍。Access中,一個(gè)字段的取值稱為一個(gè)字段的寬度。5)索引(Index):為了加快數(shù)據(jù)庫(kù)的訪問(wèn)速度,所建立的一個(gè)獨(dú)立的文件或表格。

6)關(guān)鍵字(KeyWord):關(guān)系中一個(gè)屬性或多個(gè)屬性的組合,其值能夠惟一地標(biāo)識(shí)一個(gè)元組。

7)主碼(關(guān)鍵字Primarykey):表中的某個(gè)屬性或?qū)傩越M合,其值可以唯一確定一個(gè)元組。在Access中,具有唯一性取值的字段稱為關(guān)鍵字段(主鍵)。

8)外關(guān)鍵字(Foreignkey):關(guān)系中的屬性或?qū)傩越M,并非該關(guān)系的關(guān)鍵字,但它是另一個(gè)關(guān)系的關(guān)鍵字,稱其為該關(guān)系的外關(guān)鍵字。

9)關(guān)系模式(Relationalmodel):對(duì)關(guān)系的描述。一個(gè)關(guān)系模式對(duì)應(yīng)一個(gè)關(guān)系的結(jié)構(gòu)。其格式為:

關(guān)系名(屬性名1,屬性名2,屬性名3,…,屬性名n)例如,學(xué)生情況表的關(guān)系模式描述如下:學(xué)生情況表(學(xué)號(hào),姓名,性別,出生日期,系別,總分,團(tuán)員,備注,照片)。10.4.2關(guān)系運(yùn)算1.傳統(tǒng)的集合運(yùn)算進(jìn)行并、差、交、積集合運(yùn)算的兩個(gè)關(guān)系必須具有相同的關(guān)系模式,即結(jié)構(gòu)相同。⑴并:兩個(gè)相同結(jié)構(gòu)的關(guān)系R和S的“并”記為R∪S,其結(jié)果是由R和S的所有元組組成的集合。⑵差:兩個(gè)相同結(jié)構(gòu)的關(guān)系R和S的“差”記為R–S,其結(jié)果是由屬于R但不屬于S的元組組成的集合。差運(yùn)算的結(jié)果是從R中去掉S中也有的元組。⑶交:兩個(gè)相同結(jié)構(gòu)的關(guān)系R和S的“交”記為R∩S,交是由既屬于R又屬于S的元組組成的集合。交運(yùn)算的結(jié)果是R和S的共同元組。⑷廣義笛卡爾積:兩個(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的廣義笛卡爾積有k1×k2個(gè)元組,記為R×S。

2.專門(mén)的關(guān)系運(yùn)算從一個(gè)或多個(gè)關(guān)系中找出所需要的數(shù)據(jù),就要使用關(guān)系運(yùn)算。關(guān)系運(yùn)算包括選擇、投影、并、差、笛卡爾積和聯(lián)接等。本書(shū)只對(duì)常用關(guān)系運(yùn)算即選擇、投影和連接進(jìn)行介紹,更多內(nèi)容請(qǐng)參考相關(guān)資料。

⑴選擇(Selection):選擇運(yùn)算是從關(guān)系中找出滿足條件的記錄。選擇運(yùn)算是一種橫向的操作,它可以根據(jù)用戶的要求從關(guān)系中篩選出滿足一定條件的記錄,這種運(yùn)算可以改變關(guān)系表中的記錄個(gè)數(shù),但不影響關(guān)系的結(jié)構(gòu)。

在Access的SQL語(yǔ)句中,可以通過(guò)條件子句WHere<條件>等實(shí)現(xiàn)選擇運(yùn)算。例如,通過(guò)Access的命令從學(xué)生情況表7-1中找出入學(xué)總分大于等于550分的學(xué)生,結(jié)果如表10-2所示。表10-2入學(xué)總分大于等于550分的學(xué)生

⑵投影(Projection):投影運(yùn)算是從關(guān)系中選取若干個(gè)字段組成一個(gè)新的關(guān)系,是一種縱向的操作,它可以根據(jù)用戶的要求從關(guān)系中選出若干字段組成新的關(guān)系。因此投影運(yùn)算可以改變關(guān)系中的結(jié)構(gòu)。

在Access的SQL語(yǔ)句中,可以通過(guò)輸出字段子句實(shí)現(xiàn)投影運(yùn)算。例如,從學(xué)生情況表10-1(學(xué)號(hào),姓名,性別,出生日期,專業(yè)號(hào),入學(xué)總分,團(tuán)員,簡(jiǎn)歷,照片)關(guān)系中只顯示“學(xué)號(hào)”、“姓名”、“性別”、“專業(yè)號(hào)”4個(gè)字段的內(nèi)容,如表10-3所示。表10-3投影效果⑶連接(Join):連接運(yùn)算是將兩個(gè)關(guān)系通過(guò)共同的屬性名(字段名)連接成一個(gè)新的關(guān)系。連接運(yùn)算可以實(shí)現(xiàn)兩個(gè)關(guān)系的橫向合并,在新的關(guān)系中反映出原來(lái)兩個(gè)關(guān)系之間的聯(lián)系。

為了保證關(guān)系中數(shù)據(jù)的正確(如輸入錯(cuò)誤等)和有效,需建立數(shù)據(jù)完整性的約束機(jī)制來(lái)加以控制。關(guān)系的完整性是指關(guān)系中的數(shù)據(jù)及具有關(guān)聯(lián)關(guān)系的數(shù)據(jù)間必須遵循的制約條件和依存關(guān)系,以保證數(shù)據(jù)的正確性、有效性和相容性。關(guān)系的完整性主要包括實(shí)體完整性、域完整性和參照完整性。

1.實(shí)體完整性(Entityintegrity)實(shí)體是關(guān)系描述的對(duì)象,一行記錄是一個(gè)實(shí)體屬性的集合。在關(guān)系中用關(guān)鍵字來(lái)唯一地標(biāo)識(shí)實(shí)體,關(guān)鍵字也就是關(guān)系模式中的主屬性。實(shí)體完整性是指關(guān)系中的主屬性值不能取空值(NULL)且不能有相同值,保證關(guān)系中的記錄的唯一性,是對(duì)主屬性的約束。若主屬性取空值,則不可區(qū)分現(xiàn)實(shí)世界中存在的實(shí)體。例如,學(xué)生的學(xué)號(hào)、職工的職工號(hào)一定都是唯一的,這些屬性都不能取空值。10.4.3關(guān)系的完整性2.域完整性(Domainintegrity)域完整性是對(duì)數(shù)據(jù)表中字段屬性的約束,它包括字段的值域、字段的類(lèi)型及字段的有效規(guī)則等約束,它是由確定關(guān)系結(jié)構(gòu)時(shí)所定義的字段的屬性所決定的。如性別屬性只允許輸入“男”或“女”,其他字符的輸入則認(rèn)為是無(wú)效輸入,拒絕接受。域完整性約束也稱為用戶自定義完整性約束。

3.參照完整性(Referentialintegrity)參照完整性是對(duì)關(guān)系數(shù)據(jù)庫(kù)中建立關(guān)聯(lián)關(guān)系的數(shù)據(jù)表之間數(shù)據(jù)參照引用的約束,也就是對(duì)外關(guān)鍵字的約束,也就是說(shuō)一個(gè)關(guān)系屬性的取值要參照其他關(guān)系。如對(duì)學(xué)生信息的描述常用以下3個(gè)關(guān)系:學(xué)生(學(xué)號(hào)、姓名、性別、班級(jí))課程(課程號(hào)、課程名)成績(jī)(學(xué)號(hào)、課程號(hào)、成績(jī))上述關(guān)系中,“課程號(hào)”不是成績(jī)關(guān)系的主關(guān)鍵字,但它是被參照關(guān)系(課程關(guān)系)的主關(guān)鍵字,稱為成績(jī)關(guān)系的外關(guān)鍵字。按照實(shí)體完整性規(guī)則,課程關(guān)系中“課程號(hào)”不能取空值,所以成績(jī)關(guān)系中的“課程號(hào)”實(shí)際上是不能取空值的,只能取課程關(guān)系中已存在課程號(hào)的值。若取空值,關(guān)系之間就失去了參照的完整性。

數(shù)據(jù)庫(kù)設(shè)計(jì)是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫(kù)模式,建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng),使之能夠有效地存儲(chǔ)數(shù)據(jù),滿足各種用戶的應(yīng)用需求。數(shù)據(jù)庫(kù)設(shè)計(jì)一般分為6個(gè)步驟:⑴需求分析:準(zhǔn)確了解和分析用戶需求,包括數(shù)據(jù)和處理等。⑵概念結(jié)構(gòu)設(shè)計(jì):對(duì)用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模型。⑶邏輯結(jié)構(gòu)設(shè)計(jì):將要領(lǐng)結(jié)構(gòu)轉(zhuǎn)換為某個(gè)DBMS所支持的數(shù)據(jù)模型。⑷物理結(jié)構(gòu)設(shè)計(jì):為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu),包括存儲(chǔ)結(jié)構(gòu)和存取方法等。⑸數(shù)據(jù)庫(kù)實(shí)施:建立數(shù)據(jù)庫(kù),編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫(kù),并進(jìn)行調(diào)試運(yùn)行。⑹數(shù)據(jù)庫(kù)運(yùn)行和維護(hù):對(duì)數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行評(píng)價(jià)、調(diào)整和修改。10.4.5數(shù)據(jù)庫(kù)設(shè)計(jì)*1)若Access已安裝,則只要執(zhí)行“開(kāi)始”|“程序”|“MicrosoftOffice”|“MicrosoftAccess2003”命令即可啟動(dòng)Access2003。

2)選擇“文件”|“退出”命令或者使用Alt+F4,也可以直接單擊窗口右上角的“關(guān)閉”按鈕。退出時(shí),Access都將自動(dòng)保存對(duì)數(shù)據(jù)的更改。10.5.1Access數(shù)據(jù)庫(kù)的啟動(dòng)與退出10.5Access數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)對(duì)象

在啟動(dòng)Access后,我們通常會(huì)新建或打開(kāi)一個(gè)數(shù)據(jù)庫(kù)進(jìn)行設(shè)計(jì),在進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中,Access工作窗口一般如圖10-6所示。10.5.2Access開(kāi)發(fā)環(huán)境圖10-6Access2003工作窗口Access數(shù)據(jù)庫(kù)將操作的各類(lèi)對(duì)象都存放在同一個(gè)數(shù)據(jù)庫(kù)文件(擴(kuò)展名為.mdb文件)中,這樣就方便了對(duì)數(shù)據(jù)庫(kù)對(duì)象的管理。

Access數(shù)據(jù)庫(kù)有7種不同類(lèi)別的對(duì)象,即表、查詢、窗體、報(bào)表、數(shù)據(jù)訪問(wèn)頁(yè)、宏和模塊。

1.表(Table)表是數(shù)據(jù)庫(kù)中用來(lái)存儲(chǔ)數(shù)據(jù)的對(duì)象。一個(gè)數(shù)據(jù)庫(kù)一般由一個(gè)或多個(gè)表組成。表是整個(gè)數(shù)據(jù)庫(kù)的核心與基礎(chǔ),其他類(lèi)型的對(duì)象如查詢、窗體、報(bào)表或頁(yè)等的數(shù)據(jù)來(lái)源都直接或間接地由表提供。

2.查詢(Query)查詢是按照用戶的需求在數(shù)據(jù)庫(kù)中檢索所需的數(shù)據(jù),被檢索的數(shù)據(jù)可以取自一個(gè)表,也可以取自多個(gè)表,還可以取自現(xiàn)有的其他查詢。查詢的結(jié)果也以表的形式顯示。

3.窗體(Form)窗體是Access數(shù)據(jù)庫(kù)的人-機(jī)交互界面,主要用于為數(shù)據(jù)的輸入和編輯提供便捷、美觀的屏幕顯示方式,其數(shù)據(jù)源可以是表或查詢。窗體的類(lèi)型大致可分為提示型窗體、控制型窗體和數(shù)據(jù)型窗體3類(lèi)。10.5.3Access數(shù)據(jù)庫(kù)對(duì)象4.報(bào)表(Report)報(bào)表用于將選定的數(shù)據(jù)以特定的版式顯示或打印,其內(nèi)容可以來(lái)自某一個(gè)表,也可來(lái)自某個(gè)查詢,還可以創(chuàng)建計(jì)算字段或?qū)τ涗涍M(jìn)行分組并計(jì)算出各組數(shù)據(jù)的匯總等。

5.?dāng)?shù)據(jù)訪問(wèn)頁(yè)(Webpage)數(shù)據(jù)訪問(wèn)頁(yè)是一個(gè)特殊的Web頁(yè),用戶能夠方便地向Internet或Intranet發(fā)布信息,而這些信息是基于Access數(shù)據(jù)庫(kù)中的數(shù)據(jù)。

6.宏(Macro)宏是某些操作的集合,其中每個(gè)操作實(shí)現(xiàn)特定的功能。用戶可以將Access提供的基本宏指令按照需求組合起來(lái),完成一些經(jīng)常重復(fù)的或比較復(fù)雜的操作,它常常與窗體配合使用。

7.模塊(Module)模塊是用Access提供的VBA(VisualBasicforApplications)語(yǔ)言編寫(xiě)的程序單元,可用于完成無(wú)法用宏來(lái)實(shí)現(xiàn)的復(fù)雜的功能。每個(gè)模塊都可能包含若干個(gè)函數(shù)或過(guò)程,模塊常常與窗體或報(bào)表配合使用。10.6數(shù)據(jù)庫(kù)表的創(chuàng)建與應(yīng)用

創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)就是創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)文件以及其中各個(gè)對(duì)象的過(guò)程。Access數(shù)據(jù)庫(kù)文件以.mdb作為擴(kuò)展名。Access提供兩種創(chuàng)建數(shù)據(jù)庫(kù)的一般方法是:先創(chuàng)建一個(gè)空數(shù)據(jù)庫(kù),然后添加表、查詢、窗體和報(bào)表等對(duì)象。這種方法比較靈活,但必須逐一定義每一個(gè)數(shù)據(jù)庫(kù)對(duì)象。Access中一次只能打開(kāi)或創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)。

【例10-1】創(chuàng)建一個(gè)空的“成績(jī)管理”數(shù)據(jù)庫(kù)(cjgl.mdb)。操作步驟如下圖所示。10.6.1數(shù)據(jù)庫(kù)的創(chuàng)建①②③

表是存儲(chǔ)數(shù)據(jù)的基本單位。表中的字段數(shù)據(jù)通常都使用常數(shù),設(shè)計(jì)字段時(shí)可能用到函數(shù)和表達(dá)式,而輸入數(shù)據(jù)的有效性則需要通過(guò)正確定義表和字段的屬性來(lái)保證。本節(jié)將講述如何使用表設(shè)計(jì)器、表向?qū)Ш屯ㄟ^(guò)輸入數(shù)據(jù)創(chuàng)建表。

1.基本概念

Access表包括結(jié)構(gòu)和數(shù)據(jù)兩部分。因此,創(chuàng)建一個(gè)表通常包括“創(chuàng)建表結(jié)構(gòu)”和“輸入表數(shù)據(jù)”兩個(gè)方面的工作。創(chuàng)建表時(shí),可將二維表標(biāo)題欄的列標(biāo)題定義為表的字段,標(biāo)題欄正文的數(shù)據(jù)則作為相應(yīng)的字段值輸入表中,每一行數(shù)據(jù)構(gòu)成一個(gè)記錄。所謂創(chuàng)建表結(jié)構(gòu),就是定義表的字段,字段一般都擁有許多屬性,其中最重要的屬性是字段名稱和數(shù)據(jù)類(lèi)型。

字段名稱:字段名最長(zhǎng)可達(dá)64個(gè)字符,可采用漢字、字母、數(shù)字和空格以及其他一些特殊字符(除句點(diǎn)(.)、感嘆號(hào)(?。?、撇號(hào)(')、和方括號(hào)([t和])外),但不能以空格開(kāi)頭。

數(shù)據(jù)類(lèi)型:Access表中的數(shù)據(jù)可使用10種類(lèi)型,詳細(xì)說(shuō)明如表10-4所示:10.6.2數(shù)據(jù)表的創(chuàng)建數(shù)據(jù)類(lèi)型使用對(duì)象大小文本存儲(chǔ)文本,例如地址、電話號(hào)碼、零件編號(hào)最多255個(gè)字符。每漢字計(jì)一個(gè)字符備注保存長(zhǎng)文本,例如摘要、備注、說(shuō)明最多65536個(gè)字符數(shù)字可用來(lái)進(jìn)行算術(shù)計(jì)算的數(shù)字?jǐn)?shù)據(jù),可在“字段大小”屬性指定子類(lèi)型1、2、4或8個(gè)字節(jié)日期/時(shí)間日期及時(shí)間8個(gè)字節(jié)貨幣貨幣值。貨幣計(jì)算時(shí)禁止四舍五入,并精確到小數(shù)點(diǎn)左方15位數(shù)及右方4位數(shù)8個(gè)字節(jié)自動(dòng)編號(hào)添加記錄時(shí)自動(dòng)插入的唯一順序(每次遞增1)4個(gè)字節(jié)是/否表示邏輯值,例如Yes/No、True/False、On/Off1位OLE對(duì)象將Word文檔、圖像等對(duì)象鏈接或嵌入Access表中。在窗體或報(bào)表中使用綁定對(duì)象框來(lái)顯示OLE對(duì)象最大可為1GB超級(jí)鏈接保存超級(jí)鏈接的字段最多64000個(gè)字符查閱向?qū)нx定此數(shù)據(jù)類(lèi)型將啟動(dòng)向?qū)?lái)定義組合框,使用戶能選用另一表或值列表中的數(shù)據(jù)通常為4個(gè)字節(jié)表10-4字段的數(shù)據(jù)類(lèi)型

輸入掩碼:由掩碼字符和字面顯示字符組成的一個(gè)字符串,用于控制以字段的數(shù)據(jù)輸入。例如,密碼字段字義輸入掩碼“密碼”,則密碼字段顯示為“******”。

有效性規(guī)則:用于對(duì)字段的輸入數(shù)據(jù)施加某些限制,根據(jù)作用范圍大小,又可分為字段有效性規(guī)則和記錄有效性規(guī)則兩種。例如,“性別”字段的有效性規(guī)則設(shè)置為:“男”O(jiān)r“女”。

有效性文本:當(dāng)輸入的數(shù)據(jù)違反了“有效性規(guī)則”時(shí),其值將是顯示給操作者的提示信息。例如,“性別”字段的有效性文本設(shè)置為:“性別只能取值為‘男’或‘女’!”。圖10-9表設(shè)計(jì)視圖窗口

默認(rèn)值:輸入新記錄時(shí)自動(dòng)顯示在字段中的值。

2.使用表設(shè)計(jì)器創(chuàng)建/修改表可以用表設(shè)計(jì)器創(chuàng)建/修改表結(jié)構(gòu),步驟為:打開(kāi)數(shù)據(jù)庫(kù)窗口;打開(kāi)表設(shè)計(jì)視圖;定義/修改表結(jié)構(gòu);保存表結(jié)構(gòu)。表設(shè)計(jì)視圖的操作界面如圖10-9所示。字段屬性區(qū)字段輸入?yún)^(qū)

添加字段和字段屬性設(shè)置的說(shuō)明

Access2003為各種類(lèi)型的字段提供了豐富的屬性設(shè)置,不同的字段類(lèi)型有不同的屬性,常用的屬性有8種:①字段大小:指定文本型、數(shù)字型字段的長(zhǎng)度。文本型默認(rèn)值為50字節(jié),不越過(guò)55字節(jié)。②格式:指定數(shù)據(jù)的顯示格式。如果要讓數(shù)據(jù)按輸入時(shí)的格式顯示,則不需設(shè)置。③小數(shù)位:小數(shù)位有0~15,視數(shù)字或貨幣型數(shù)據(jù)的字段大小而定。④輸入掩碼:指定可以輸入數(shù)據(jù)的位置以及數(shù)據(jù)種類(lèi)、字符數(shù)量,確保輸入數(shù)據(jù)符合要求,要求在設(shè)計(jì)輸入掩碼時(shí),要求數(shù)據(jù)的一位使用一個(gè)掩碼字符。在Access中,輸入掩碼可使用的字符如表10-5所示。表10-5輸入掩碼字符和說(shuō)明(1)字符說(shuō)明舉例輸入掩碼定義例子0數(shù)字(0到9,必選項(xiàng);不允許使用加號(hào)[+]和減號(hào)[-])。(000)000-0000(206)555-02489數(shù)字或空格(非必選項(xiàng);不允許使用加號(hào)和減號(hào))。(999)999-9999!(206)555-0248(

)555-0248字符說(shuō)明舉例輸入掩碼定義例子#數(shù)字或空格#999-202000L字母(A到Z,必選項(xiàng))>L0L0L0T2F8M4?字母(A到Z,可選項(xiàng))>L????L?000L0GREENGR339M3MAYR452B7A字母或數(shù)字(必選項(xiàng))(000)AAA-AAAA(206)555-TELEa字母或數(shù)字(可選項(xiàng))00000-999998115-98115-3007&任一字符或空格(必選項(xiàng))ISBN0-&&&&&&&&&-0ISBN1-55615-507-7ISBN0-13-964262-5.,:;-/十進(jìn)制占位符和千位、日期和時(shí)間分隔符999,999.99123,456.78<使其后所有的字符轉(zhuǎn)換為小寫(xiě)>L<??????????????MariaPierre>使其后所有的字符轉(zhuǎn)換為大寫(xiě)>LL00000-0000DB51392-0493密碼鍵入的任何字符顯示為星號(hào)(*)PASSWORD******表10-5輸入掩碼字符和說(shuō)明(2)⑤標(biāo)題:為表中的字段指定不同的顯示名稱,例如將學(xué)號(hào)以“學(xué)生證號(hào)”顯示。⑥默認(rèn)值:指定添加新記錄時(shí)自動(dòng)輸入的值,例如添加新記錄時(shí),其性別自動(dòng)設(shè)置為“男”。⑦有效性規(guī)則:針對(duì)所選的一個(gè)字段,對(duì)輸入數(shù)據(jù)進(jìn)行有效性規(guī)則檢查是否符合取值要求。例如,可以為“性別”字段定義有效性表達(dá)式:"男"Or"女"。⑧有效性文本:當(dāng)數(shù)據(jù)不符合有效性規(guī)則時(shí)所顯示的信息。例如,如下設(shè)置:當(dāng)性別輸入非“男”或“女”時(shí),用于出現(xiàn)的提示信息。其有效性文本是:性別只能是“男”或“女”!。

注:可以定義有效性規(guī)則以控制保存記錄,操作步驟如下。

1、單擊工具欄上的“屬性”以顯示表的屬性表。

2、在“有效性規(guī)則”屬性框中鍵入有效性規(guī)則,或者單擊“生成”按鈕以使用表達(dá)式生成器(表達(dá)式生成器:一種可用來(lái)創(chuàng)建表達(dá)式的Access工具。它包括可從中進(jìn)行選擇的通用表達(dá)式列表。)來(lái)創(chuàng)建有效性規(guī)則。例如,可以定義有效性表達(dá)式“[到貨日期]<=[訂購(gòu)日期]+30”,以確?!暗截浫掌凇弊侄沃休斎氲娜掌谂c“訂購(gòu)日期”字段中的日期相距不超過(guò)30天。3、在“有效性文本”屬性框,鍵入不符合規(guī)則時(shí)Access顯示的消息。例如,對(duì)于有效性表達(dá)式“[到貨日期]<=[訂購(gòu)日期]+30”,可以輸入“到貨日期必須在訂貨日期以后30天以內(nèi)”。如果在包含數(shù)據(jù)的字段中設(shè)置有效性規(guī)則,在保存表時(shí),Access將詢問(wèn)是否將新規(guī)則應(yīng)用于現(xiàn)有數(shù)據(jù)。如果單擊“是”,則當(dāng)現(xiàn)有數(shù)據(jù)不符合有效性規(guī)則時(shí),Access將發(fā)出警告。

特別要注意的是:在規(guī)則中引用字段名時(shí)需要加方括號(hào)“[]”。⑨索引:是否按該字段建立索引用于排序或快速查找,表的主鍵將自動(dòng)設(shè)置索引。⑩查閱屬性:利用表設(shè)計(jì)圖中的“查閱”選項(xiàng)卡,可以為“文本”、“數(shù)字”和“是/否”類(lèi)型的字段設(shè)置查閱屬性。該屬性主要是設(shè)置在數(shù)據(jù)表視圖或窗體中顯示或輸入數(shù)據(jù)時(shí)所用的控件。例如,可以為“學(xué)生”表中的“性別”字段設(shè)置一個(gè)組合框類(lèi)型的顯示控件(“行來(lái)源”輸入框中的各項(xiàng)數(shù)據(jù)項(xiàng)之間用英文的分號(hào)“;”分隔),如圖10-10所示。進(jìn)行相關(guān)設(shè)置后,在數(shù)據(jù)表視圖中可以看到“性別”字段的值既可以直接輸入,也可以從組合框中選取,如圖10-11所示。

注:“行來(lái)源類(lèi)型”可是以值列表、表/查詢、字段列表;“行來(lái)源”的內(nèi)容分別是用用英文的分號(hào)“;”分隔的手工輸入各數(shù)據(jù)、表和各表存在的字段值。圖10-11利用組合框選取“性別”字段的值圖10-10為“學(xué)生”表的“性別”字段設(shè)置組合框顯示控件【例10-2】用表設(shè)計(jì)器創(chuàng)建學(xué)生基本信息表“學(xué)生”。表中各字段的屬性如表10-6所示。操作略:表10-6“學(xué)生”表的字段定義(1)字段名稱數(shù)據(jù)類(lèi)型字段屬性學(xué)號(hào)文本字段大小8輸入掩碼!a9999999索引有(無(wú)重復(fù))字段名稱數(shù)據(jù)類(lèi)型字段屬性姓名文本字段大小8性別文本字段大小1默認(rèn)值"男"有效性規(guī)則"男"Or"女"有效性文本性別只能是“男”或“女”!出生日期日期/時(shí)間字段大小短日期系別文本字段大小2總分?jǐn)?shù)字字段大小整型黨團(tuán)員是/否格式真/假備注備注照片OLE對(duì)象表10-6“學(xué)生”表的字段定義(2)

【例10-3】用表設(shè)計(jì)器修改“學(xué)生”表結(jié)構(gòu)。操作步驟略。此外,用戶還可以使用向?qū)В蠢靡汛嬖诘谋恚﹦?chuàng)建表、通過(guò)輸入數(shù)據(jù)創(chuàng)建表,但這兩種方法最終都要利用表設(shè)計(jì)器來(lái)修改。一般地,我們不建議使用這兩種方式創(chuàng)建表,感興趣的同學(xué)可參考教材中的相關(guān)內(nèi)容,這時(shí)不再詳述。10.6.3數(shù)據(jù)表的編輯

在創(chuàng)建好數(shù)據(jù)表以后,首要的工作就是向表中添加數(shù)據(jù)記錄,只有向表中添加了數(shù)據(jù)記錄之后,才可以進(jìn)行數(shù)據(jù)處理工作,如執(zhí)行修改、刪除、復(fù)制等。

1.瀏覽數(shù)據(jù)記錄⑴調(diào)整行高和列寬方法一:將鼠標(biāo)移動(dòng)至行、列分界線。拖動(dòng)列分界線僅改變當(dāng)前列的寬度,拖動(dòng)行分界線則改變所有行的高度。方法二:在數(shù)據(jù)表視圖中,執(zhí)行“格式”菜單中的“行高”或“列寬”命令,在打開(kāi)的對(duì)話框中設(shè)置合適的數(shù)值,可精確設(shè)置當(dāng)前列寬或所有行高。⑵列的隱藏和移動(dòng)方法:執(zhí)行“格式”菜單中的“隱藏列”命令將當(dāng)不用的列隱藏起來(lái)。列的隱藏和移動(dòng)并不影響表的結(jié)構(gòu)。顯示被隱藏的列:執(zhí)行“格式”菜單中的“取消隱藏列”命令,將打開(kāi)如圖10-18所示的“取消隱藏列”對(duì)話框。只要單擊每個(gè)字段前的復(fù)選框,就可以實(shí)現(xiàn)字段的隱藏與顯示。

列的移動(dòng):選定一列或多列后,再按住鼠標(biāo)左鍵不放,將選定的列拖到新的位置。⑶列的凍結(jié)與解凍凍結(jié)列:選定要凍結(jié)的列,執(zhí)行“格式”菜單中的“凍結(jié)列”命令。解除凍結(jié):執(zhí)行“格式”菜單中的“取消對(duì)所有列的凍結(jié)”命令。

2.添加數(shù)據(jù)記錄

Access提供三種方法,可將光標(biāo)快速移動(dòng)到表最末的空記錄上:⑴單擊數(shù)據(jù)庫(kù)工具欄中的“新記錄”按鈕。⑵單擊數(shù)據(jù)表視圖中的記錄瀏覽按鈕“”中的“新記錄”按鈕“”。⑶按組合鍵Ctrl++。圖10-18“取消隱藏列”對(duì)話框3.修改數(shù)據(jù)記錄要在數(shù)據(jù)表視圖中修改數(shù)據(jù)記錄,只需將光標(biāo)移至要編輯的記錄的字段中,然后輸入新的數(shù)據(jù)即可。

4.刪除數(shù)據(jù)記錄方法單:選定一個(gè)或多個(gè)記錄,然后單擊工具欄的“刪除記錄”按鈕,或按Delete鍵即可刪除選中的數(shù)據(jù)記錄(或在“選定欄”處選取記錄后,單擊鼠標(biāo)右鍵,使用快捷菜單中的“刪除記錄”命令)。

5.查找和替換數(shù)據(jù)利用“查找/替換”功能,可從眾多的記錄中查找某條記錄。

【例10-7】在“學(xué)生”表中查找1995年出生的學(xué)生。操作步驟略。

Access允許查找內(nèi)容與實(shí)際數(shù)據(jù)的字符不完全匹配,所以在查找內(nèi)容中可以使用通配符來(lái)代表某些字符,表10-9列出了Access常用的通配符。它們既可以在數(shù)據(jù)庫(kù)的“查找和替換”對(duì)話框中使用,也可以在查詢和表達(dá)式中用來(lái)查找字段值、記錄或文件名之類(lèi)的內(nèi)容。表10-9Access常用的通配符(1)通配符功能示例(查找內(nèi)容及查找結(jié)果)*與任何個(gè)數(shù)據(jù)的字符匹配優(yōu)*優(yōu)秀、優(yōu)良表10-9Access常用的通配符(2)通配符功能示例(查找內(nèi)容及查找結(jié)果)?與任何單個(gè)字符或漢字匹配?及格不及格[]與方括號(hào)內(nèi)任何單個(gè)字符或漢字匹配[優(yōu)良]優(yōu)秀、良好-與指定范圍的任一個(gè)字符匹配。范圍必須升序[及-優(yōu)]及格、良好、優(yōu)秀!匹配任何非方括號(hào)內(nèi)的字符或漢字[!車(chē)]床機(jī)床、鉆床#與任何單個(gè)數(shù)字字符匹配6#61、62、…6.表的復(fù)制通常復(fù)制表的方法有兩種:⑴使用“Ctrl+拖放”復(fù)制表。在數(shù)據(jù)庫(kù)窗口中打開(kāi)“表”對(duì)象,然后按住Ctrl鍵并拖放某個(gè)表,結(jié)果將產(chǎn)生一個(gè)新表,并自動(dòng)產(chǎn)生表或“XXX的副本”。在圖10-20中,“粘貼選項(xiàng)”區(qū)有3個(gè)選項(xiàng)按鈕,表示了3種“粘貼”結(jié)果。圖10-20“粘貼表方式”對(duì)話框⑵通過(guò)剪貼板復(fù)制表。在數(shù)據(jù)庫(kù)窗口中打開(kāi)“表”對(duì)象,先選中某個(gè)表,先后執(zhí)行表的“復(fù)制”和“粘貼”命令,就會(huì)顯示如圖10-20所示的“粘貼表方式”對(duì)話框。

7.表的刪除在數(shù)據(jù)庫(kù)庫(kù)窗口,選中需要?jiǎng)h除的表,然后按下Delete鍵。

8.表的重命名法一:在表的名稱處單擊,表的名稱將變成可編輯狀態(tài),輸入新的名稱后,在其它區(qū)域單擊或按Enter鍵。法二:右鍵單擊需重命名的表,從打開(kāi)的快捷菜單中選擇“重命名”命令,表的名稱變成可編輯狀態(tài),輸入新的名稱并確定。

排序和索引的目的是為了讓數(shù)據(jù)表在某個(gè)字段上有序地排列,而篩選則是按指定的條件將篩選出來(lái)的數(shù)據(jù)顯示為新的數(shù)據(jù)表。

1.排序排序必須選確定字段,然后以升序或降序方式來(lái)重排記錄。注:備注型字段的排序只針對(duì)前255個(gè)字符,“OLE對(duì)象”字段不能作為排序字段。10.6.4數(shù)據(jù)的排序、索引與篩選【例10-8】按“出生日期”升序排序排列“學(xué)生”表。排序操作的步驟如下:①打開(kāi)“cjgl”數(shù)據(jù)庫(kù),在“表”對(duì)象中雙擊“學(xué)生”表,進(jìn)入“數(shù)據(jù)表”視圖。②在“出生日期”字段中任意處單擊,然后單擊“數(shù)據(jù)庫(kù)表視圖”工具欄中的“升序排序”按鈕,排序后的情況如圖10-21所示。圖10-21按“出生日期”升序排序2.索引與排序不同,記錄在索引(Index)時(shí)不對(duì)當(dāng)表中的記錄進(jìn)行位置調(diào)整,如同書(shū)本中的目錄一樣,記錄的是索引關(guān)鍵字中的內(nèi)容和所在記錄的記錄號(hào),創(chuàng)建索引需要額外的存儲(chǔ)空間。⑴索引的種類(lèi)。按功能分類(lèi),索引可分為以下幾種:

1)惟一索引:每個(gè)記錄的索引字段值都是惟一的,不允許相同。

2)普通索引:索引字段允許有相同的值。

3)主索引。同一表中允許創(chuàng)建多達(dá)32個(gè)索引,但只可以創(chuàng)建一個(gè)主索引,Access將主索引字段作為當(dāng)前排序字段。主索引必須是唯一索引,并且索引字段不允許出現(xiàn)Null值。索引可分為單字段索引和多字段索引兩類(lèi)。多字段索引指為多個(gè)字段聯(lián)合創(chuàng)建的索引,其中允許包含的字段可多至10個(gè)。若要在索引查找時(shí)區(qū)分表中字段值相同的記錄,必須創(chuàng)建包含多個(gè)字段的索引。⑵創(chuàng)建索引。即為字段設(shè)置索引屬性,可以在“表設(shè)計(jì)”視圖和“索引”窗口中創(chuàng)建索引,其中降序排序僅能在“索引”窗口中設(shè)置。表10-10列出了各種索引的創(chuàng)建方法。在工具欄中單擊“主鍵”按鈕創(chuàng)建索引表的設(shè)計(jì)視圖索引窗口說(shuō)明無(wú)索引字段“索引”屬性為無(wú)不為字段填寫(xiě)索引行默認(rèn)值普通索引字段“索引”屬性選“有(有重復(fù))”為字段填寫(xiě)索引行,且“惟一索引”選“否”惟一索引字段“索引”屬性選“有(無(wú)重復(fù))為字段填寫(xiě)索引行,且“惟一索引”選“是”主索引在工具欄中單擊“主鍵”按鈕。為字段填寫(xiě)索引行,且“主索引”選“是”⑵創(chuàng)建索引。即為字段設(shè)置索引屬性,可以在“表設(shè)計(jì)”視圖和“索引”窗口中創(chuàng)建索引,其中降序排序僅能在“索引”窗口中設(shè)置。表10-10列出了各種索引的創(chuàng)建方法。表10-10在“表設(shè)計(jì)”視圖和“索引”窗口創(chuàng)建索引的對(duì)照表【例10-9】按例10-8創(chuàng)建一個(gè)按“出生日期”的普通索引。操作步驟如下:⑴打開(kāi)“cjgl”數(shù)據(jù)庫(kù),在“表”對(duì)象列表中選擇“學(xué)生”表,單擊工具欄中“設(shè)計(jì)”按鈕。⑵在表“設(shè)計(jì)視圖”的字段上面窗格中,單擊“出生日期”行,在下面字段窗格中單擊“索引”屬性列表框的右端,并在列表中選定“有(有重復(fù))”選項(xiàng),如圖1-22所示。⑶關(guān)閉表“設(shè)計(jì)視圖”并保存對(duì)表的設(shè)計(jì),重新打開(kāi)表即可顯示與圖10-21所示相同效果。

注:為顯示與圖10-21所示相同效果,需要取消已設(shè)置的其它索引,如設(shè)置的“學(xué)號(hào)”索引。

【例10-10】為對(duì)“學(xué)生”表設(shè)置多字段索引,要求按“系別”按升序排序、系別相同者按“出生日期”的降序排序。操作步驟如下:①打開(kāi)表打開(kāi)“cjgl”數(shù)據(jù)庫(kù),在“表”對(duì)象列表中選擇“學(xué)生”表,單擊工具欄中“設(shè)計(jì)”按鈕,打開(kāi)表“設(shè)計(jì)視圖”。圖10-22為“出生日期”字段設(shè)置索引屬性②單擊“表設(shè)計(jì)”工具欄中的“索引”按鈕,顯示索引窗口,如圖10-23所示。③在索引名稱處輸入名稱為“MultiKeys”,包含系別、出生日期、學(xué)號(hào)三個(gè)字段的索引。④選定“MultiKeys”行,然后在“主索引”組列表中選定“是”;⑤關(guān)閉“表設(shè)計(jì)”視圖并保存對(duì)表的設(shè)計(jì),重新打開(kāi)表,可顯示如圖10-24所示的排序效果。圖10-23創(chuàng)建多字段索引圖10-24按多字段排序后的成績(jī)表⑶刪除索引。在“索引”窗口中,選定并刪除一行或多行在“表設(shè)計(jì)”視圖中,在字段的索引屬性列表框選“無(wú)”取消主索引,在“表”設(shè)計(jì)視圖中選定主索引行,按工具欄上“主鍵”按鈕。3.篩選

Access提供了按選定內(nèi)容篩選、內(nèi)容排除篩選、按窗體篩選和高級(jí)篩選4種。

“按選定內(nèi)容篩選”:將當(dāng)前位置的內(nèi)容作為條件進(jìn)行篩選。

“按選定內(nèi)容排除篩選”:將當(dāng)前位置內(nèi)容的相反值作為條件進(jìn)行篩選。

“按窗體篩選”:是在“按窗體篩選”對(duì)話框中指定條件進(jìn)行篩選操作,適合篩選條件比較多的篩選。設(shè)置在同一行的條件之間是“與”的關(guān)系,設(shè)置在不同行的條件之間是“或”的關(guān)系。

“高級(jí)篩選”:可同時(shí)設(shè)置篩選條件和進(jìn)行排序,需要編寫(xiě)較復(fù)雜的條件表達(dá)式。

【例10-11】按選定內(nèi)容對(duì)“學(xué)生”表記錄進(jìn)行篩選,顯示1995年出生的所有學(xué)生。操作步驟如下:①打開(kāi)“學(xué)生”表。②在“出生日期”字段列中,選定內(nèi)容為“1993”(如果不選定,則表示選定的內(nèi)容為該單元格中全部數(shù)據(jù))。③單擊“表(數(shù)據(jù)表視圖)”工具欄中的“按選定內(nèi)容篩選”按鈕(或執(zhí)行“記錄”|“篩選”|“按選定內(nèi)容篩選”命令),系統(tǒng)將篩選出生年份是1993年的所有學(xué)生。如果執(zhí)行“記錄”|“篩選”|“內(nèi)容排除篩選”命令,系統(tǒng)將會(huì)篩選出非1993年出生的所有學(xué)生?!纠?0-12】對(duì)“學(xué)生”表中的記錄進(jìn)行篩選,顯示性別為“男”且總分小于等于580的所有學(xué)生。操作步驟如下:①打開(kāi)“學(xué)生”表。②執(zhí)行“記錄”|“篩選”|“高級(jí)篩選/排序”命令,打開(kāi)“篩選”對(duì)話框,如圖10-25所示。③按圖10-25所示的內(nèi)容,輸入篩選條件。④單擊工具欄中的“應(yīng)用篩選”按鈕,或執(zhí)行“篩選”|“應(yīng)用篩選/排序”,系統(tǒng)將會(huì)按設(shè)置條件篩選數(shù)據(jù)記錄,結(jié)果如圖10-26所示。圖10-25設(shè)置篩選條件圖10-26篩選后的數(shù)據(jù)記錄【例10-13】使用按窗體篩選”的方法完成例10-12。操作步驟如下:①打開(kāi)“學(xué)生”表。②單擊“表(數(shù)據(jù)表視圖)”工具欄中的“按窗體篩選”按鈕(或執(zhí)行“記錄”|“篩選”|“按窗體篩選”命令),出現(xiàn)如圖10-27所示的窗口。③從“性別”下拉列表中選擇“男”,在總分組合框輸入“<=580”。④單擊工具欄中的“應(yīng)用篩選”按鈕(或執(zhí)行“篩選”|“應(yīng)用篩選/排序”命令),結(jié)果如圖10-26所示。圖10-27“按窗體篩選”窗口

數(shù)據(jù)表關(guān)聯(lián)是指在兩個(gè)數(shù)據(jù)表中的相同域上的字段之間建立1:1、1:m或m:n的聯(lián)系。數(shù)據(jù)表關(guān)聯(lián)建立后,子表的記錄指針與父表的記錄指針保持聯(lián)動(dòng)。Access為用戶提供了一個(gè)“關(guān)系”窗口,方便用戶創(chuàng)建、修改查看表間關(guān)系。10.6.5創(chuàng)建數(shù)據(jù)表關(guān)聯(lián)1.建立關(guān)系確定表之間的關(guān)系,其步驟如下:⑴打開(kāi)要建立關(guān)系的數(shù)據(jù)庫(kù),關(guān)閉所有打開(kāi)的表,因?yàn)椴荒茉谝汛蜷_(kāi)的數(shù)據(jù)表之間創(chuàng)建或編輯關(guān)系。⑵單擊“數(shù)據(jù)庫(kù)”工具欄中的“關(guān)系”按鈕(或執(zhí)行“工具”|“關(guān)系”命令,也可在數(shù)據(jù)庫(kù)窗口中右擊執(zhí)行“關(guān)系”命令),打開(kāi)如圖10-28所示的“關(guān)系”窗口界面。圖10-29“編輯關(guān)系”對(duì)話框圖10-28“關(guān)系”窗口⑶選中某個(gè)數(shù)據(jù)表中要建立關(guān)聯(lián)的字段(一般是主關(guān)鍵字),將其拖動(dòng)到另一個(gè)相關(guān)表中的相關(guān)字段上。系統(tǒng)顯示如圖10-29所示的“編輯關(guān)系”對(duì)話框,使用對(duì)話框?qū)﹃P(guān)系進(jìn)行必要的設(shè)置。注:表中的主關(guān)鍵字的名稱將以粗體文本顯示。

在圖10-29中,其中:

“實(shí)施參照完整性”。如果只選擇此項(xiàng)時(shí),則有以下規(guī)則:更新時(shí),在父表中,不允許更改與子表相關(guān)記錄的關(guān)聯(lián)字段值;刪除時(shí),不允許在父表中刪除與子表相關(guān)的記錄;插入時(shí)時(shí),不允許在子中表插入父表不存在的記錄,但允許輸入Null值。

“級(jí)聯(lián)更新相關(guān)字段”。選中此項(xiàng),更改主表的主鍵值時(shí),會(huì)自動(dòng)更改子表中的對(duì)應(yīng)數(shù)據(jù)。

“級(jí)聯(lián)刪除相關(guān)字段”。選中此項(xiàng),刪除主表中的記錄時(shí),會(huì)自動(dòng)刪除子表中的對(duì)應(yīng)記錄。⑷單擊“創(chuàng)建”按鈕,完成表間關(guān)系的定義。⑸關(guān)閉“關(guān)系”窗口,系統(tǒng)提示是否保存該布局。

2.刪除關(guān)系刪除前面建立的關(guān)系,其步驟如下:⑴關(guān)閉所有打開(kāi)的表。⑵單擊數(shù)據(jù)庫(kù)窗口工具欄中的“關(guān)系”按鈕,打開(kāi)“關(guān)系”對(duì)話框。⑶單擊選中需要?jiǎng)h除的關(guān)系連線,該聯(lián)系變成粗實(shí)線,按Delete鍵,系統(tǒng)后確認(rèn)后即將選中的關(guān)系永久刪除。圖10-30數(shù)據(jù)表“關(guān)系”窗口圖10-31“學(xué)生”表和“成績(jī)”表的關(guān)系

例如,在“cjgl”數(shù)據(jù)庫(kù)中,將“學(xué)生”表中的“學(xué)號(hào)”字段拖到“成績(jī)”表的“學(xué)號(hào)”字段上,設(shè)置參加完整性,單擊“創(chuàng)建”按鈕后出現(xiàn)如圖10-30所示的關(guān)系連線。關(guān)系線上對(duì)應(yīng)的“一”方的位置有一個(gè)“1”標(biāo)記,對(duì)應(yīng)“多”方位置有一個(gè)“∞”標(biāo)記。如果沒(méi)有選擇“實(shí)施參照完整性”選項(xiàng),則關(guān)系線上就不會(huì)出現(xiàn)這兩個(gè)標(biāo)記。3.設(shè)置參照完整性使用參照完整性來(lái)確保相關(guān)表中記錄之間關(guān)系的有效性,防止意外地刪除或更改相關(guān)數(shù)據(jù)。實(shí)施參照完整性后,須遵守下列規(guī)則:⑴在相關(guān)表的外部關(guān)鍵字段中,除空值(NULL)外,不能有在主表的關(guān)鍵中不存在的數(shù)據(jù)。⑵如在相關(guān)表中存在匹配記錄,不能只刪除主表的中的這個(gè)記錄。⑶如果某個(gè)記錄有相關(guān)的記錄,不能在主表中更改主關(guān)鍵字。

4.聯(lián)接類(lèi)型單擊“聯(lián)接類(lèi)型”按鈕,打開(kāi)“聯(lián)接屬性”對(duì)話框,如圖10-32所示,對(duì)話框中有3個(gè)單選項(xiàng),分別對(duì)應(yīng)關(guān)系運(yùn)算中的3種聯(lián)接:⑴1:只包含來(lái)自兩個(gè)表的聯(lián)接字段相等處的行,即對(duì)應(yīng)于關(guān)系運(yùn)算里的“自然聯(lián)接”。圖10-32“聯(lián)接屬性”對(duì)話框⑵2:包括“學(xué)生”中的所有記錄和“成績(jī)”中聯(lián)接字段相等的那些記錄,即對(duì)應(yīng)于關(guān)系運(yùn)算里的“左聯(lián)接”。⑶3:包括“成績(jī)”中的所有記錄和“學(xué)生”中聯(lián)接字段相等的那些記錄,即對(duì)應(yīng)于關(guān)系運(yùn)算里的“右聯(lián)接”。

查詢(Query)是按照一定的條件或要求對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行檢索或操作,查詢的數(shù)據(jù)來(lái)源是表或其他查詢,Access將用戶建立的查詢規(guī)則,如查詢的數(shù)據(jù)來(lái)源、輸出或匯總字段、查詢條件等作為查詢對(duì)象保存起來(lái),每次使用查詢時(shí),都是根據(jù)查詢規(guī)則從數(shù)據(jù)源中最新相關(guān)信息生成一個(gè)動(dòng)態(tài)的記錄集。

1.查詢的種類(lèi)查詢有選擇查詢、交叉表查詢、參數(shù)查詢、操作查詢和SQL查詢等4種。操作查詢又包括更新查詢、刪除查詢、追加查詢和生成表查詢4種。

2.創(chuàng)建查詢的方法兩種方法創(chuàng)建查詢:一是使用向?qū)?chuàng)建查詢;二是使用查詢?cè)O(shè)計(jì)器創(chuàng)建查詢。Access系統(tǒng)提供了4種查詢?cè)O(shè)計(jì)向?qū)?,它們是?jiǎn)單查詢向?qū)А⒔徊姹聿樵兿驅(qū)?、查找重?fù)項(xiàng)查詢向?qū)?、查找不匹配?xiàng)查詢向?qū)У取A硗?,Access也提供支持SQL語(yǔ)言查詢的命令方式。

3.查詢的三種視圖每個(gè)查詢都有三種視圖,分別為查詢?cè)O(shè)計(jì)視圖、數(shù)據(jù)表視圖和SQL視圖。查詢的三種視圖是互相關(guān)聯(lián)的一個(gè)有機(jī)的整體。其中,數(shù)據(jù)表視圖是查詢的結(jié)果,設(shè)計(jì)視圖和SQL查詢視圖是查詢?cè)O(shè)計(jì)的兩種手段。10.7數(shù)據(jù)的查詢

簡(jiǎn)單查詢(或稱為選擇查詢),它可以從一個(gè)或多個(gè)表中檢索數(shù)據(jù),同時(shí)還可對(duì)記錄進(jìn)行分組,對(duì)記錄作總計(jì)、計(jì)數(shù)、平均值及其他類(lèi)型的合計(jì)計(jì)算。

1.使用向?qū)?chuàng)建查詢可以從一個(gè)或多個(gè)表或查詢中按指定字段檢索數(shù)據(jù),可以對(duì)記錄分組以及進(jìn)行總計(jì)、計(jì)數(shù)、平均值、最大值及最最小值計(jì)算,但不能通過(guò)設(shè)置條件來(lái)限制檢索的記錄。

【例10-14】由“學(xué)生”、“成績(jī)”表和“課程”表中檢索得出具有學(xué)生姓名的成績(jī)表,并按“系別”的升序排序。操作步驟如下:10.7.1創(chuàng)建簡(jiǎn)單查詢圖10-33“新建查詢”對(duì)話框⑴打開(kāi)“cjgl”數(shù)據(jù)庫(kù),在“數(shù)據(jù)庫(kù)”窗口單擊左邊“對(duì)象”列表中的“查詢”選項(xiàng),然后單擊“數(shù)據(jù)庫(kù)”窗口中的“新建”按鈕,打開(kāi)如圖10-33所示的“新建查詢”對(duì)話框。⑵在該對(duì)話框中,選擇“簡(jiǎn)單查詢向?qū)А辈螕簟按_定”按鈕,出現(xiàn)如圖10-34所示“簡(jiǎn)單查詢向?qū)А睂?duì)話框。圖10-34添加查詢字段⑷單擊“下一步”按鈕,保持系統(tǒng)默認(rèn)的“明細(xì)”選項(xiàng)不變,如圖10-35所示。⑶在該對(duì)話框中,從“表/查詢”下拉列表中選擇“表:學(xué)生”。在“可用字段”列表中分別雙擊“學(xué)號(hào)”、“姓名”、“性別”和“系別”4個(gè)字段。同樣,選擇“課程”表中的“課程名”字段和“成績(jī)”中的“成績(jī)”字段。圖10-35采用明細(xì)查詢還是匯總查詢⑸單擊“下一步”按鈕,在“請(qǐng)為查詢指定標(biāo)題”文本框中指定標(biāo)題為“學(xué)生成績(jī)查詢”,然后選中“修改查詢?cè)O(shè)計(jì)”選項(xiàng),如圖10-36所示。⑹單擊“完成”按鈕,打開(kāi)的“學(xué)生成績(jī)查詢:選擇查詢”視圖,將“系別”的“排序”選項(xiàng)設(shè)置為“升序”,如圖10-37所示。⑺單擊“查詢?cè)O(shè)計(jì)”工具欄中“運(yùn)行”按鈕,系統(tǒng)顯示“學(xué)生成績(jī)查詢:選擇查詢”數(shù)據(jù)表視圖,如圖10-38所示。⑻關(guān)閉查詢結(jié)果窗口后,系統(tǒng)提示是否保存查詢?cè)O(shè)計(jì)。圖10-36指定查詢標(biāo)題圖10-37在查詢?cè)O(shè)計(jì)視圖中設(shè)置排序的字段圖10-38運(yùn)行查詢的結(jié)果2.使用設(shè)計(jì)視圖創(chuàng)建查詢使用簡(jiǎn)單查詢向?qū)Э蓜?chuàng)建出一些簡(jiǎn)單的查詢,但由于簡(jiǎn)單查詢向?qū)o(wú)法按條件限制以及設(shè)置記錄排序等,在實(shí)際應(yīng)用中大多數(shù)情況下都直接使用設(shè)計(jì)視圖來(lái)創(chuàng)建查詢。

【例10-15】由“學(xué)生”和“成績(jī)”表中檢索得出學(xué)生成績(jī)的平均值、最大值和最小值,查詢結(jié)果按系別降序排序。操作步驟如下:圖10-40“查詢?cè)O(shè)計(jì)”視圖“查詢?cè)O(shè)計(jì)”窗格“表顯示”窗格⑴打開(kāi)“cjgl”數(shù)據(jù)庫(kù),在”數(shù)據(jù)庫(kù)”窗口單擊左邊“對(duì)象”列表中的“查詢”選項(xiàng)。⑵雙擊數(shù)據(jù)庫(kù)窗口中的“在設(shè)計(jì)視圖中創(chuàng)建查詢”命令,系統(tǒng)將打開(kāi)查詢的設(shè)計(jì)視圖,并打開(kāi)“顯示表”對(duì)話框,如圖10-40所示。⑶在此對(duì)話框中,將“學(xué)生”和“成績(jī)”表添加到“查詢?cè)O(shè)計(jì)”視圖中,如圖10-41上部所示。⑷將查詢要使用的字段“學(xué)號(hào)”、“姓名”、“性別”、“系別”和“成績(jī)”分別拖至下方“字段”單元格中,或直接依次雙擊所需的各字段。圖10-41為查詢?cè)O(shè)置匯總及排序圖10-42查詢運(yùn)行結(jié)果⑸雙擊“成績(jī)”表中的“成績(jī)”字段兩次,在“查詢?cè)O(shè)計(jì)”視圖的下方增加兩個(gè)“成績(jī)”字段。執(zhí)行“視圖”菜單中的“總計(jì)”命令,并分別在“總計(jì)”單元格中給成績(jī)字段設(shè)置為“平均值”、“最大值”、“最小值”。設(shè)置“系別”字段為降序,結(jié)果如圖10-41下部所示。⑹單擊工具欄上的“保存”按鈕,在出現(xiàn)的對(duì)話框中,為查詢命名為“學(xué)生匯總成績(jī)查詢”。⑺單擊“運(yùn)行”按鈕,查詢運(yùn)行結(jié)果如圖10-42所示。注:如果在查詢顯示時(shí)將“系別”字段標(biāo)題換為“學(xué)院編號(hào)”顯示,可在圖10-41中將“系別”替換成如下形式:學(xué)院編號(hào);[系別]。3.設(shè)置查詢條件查詢條件是查詢?cè)O(shè)計(jì)的一個(gè)重要組成部分,反映了用戶對(duì)查詢的要求。查詢條件必須符合Access的正確語(yǔ)法。⑴條件表達(dá)式在查詢?cè)O(shè)計(jì)中,查詢條件對(duì)應(yīng)一個(gè)邏輯表達(dá)式。若該表達(dá)式的值為真,則滿足該條件的數(shù)據(jù)就包含在查詢結(jié)果中,反之,這些數(shù)據(jù)就不包含在查詢結(jié)果中。表達(dá)式是由常量、變量和函數(shù)通過(guò)運(yùn)算符連接起來(lái)的,且符合Access規(guī)范的數(shù)學(xué)式子,其運(yùn)算的結(jié)果是一個(gè)“是/否”類(lèi)型的數(shù)據(jù)。⑵常量在Access中,常量可分為如下幾種情況:

數(shù)字型常量:可直接輸入數(shù)值,如:12,-12,90.5。

文本型常量:用一對(duì)單(')/雙撇號(hào)(")引號(hào)括起來(lái)的文本,例如:'Name',"錢(qián)多多"(也可直接輸入文本,如:Name)。

日期型常量:用一對(duì)符號(hào)“#”括起來(lái),例如:#82-10-1#(也可直接輸入,如:82-10-1。)

是/否型常量:yes|no或true|false。⑶運(yùn)算算符運(yùn)算算符(簡(jiǎn)稱運(yùn)算符),表示在查詢條件中,使用的運(yùn)算符。

算術(shù)運(yùn)算符:+(加)、-、*、/、^、\、Mod、-取負(fù)、()等。

關(guān)系運(yùn)算符:=、<(小于)、<=(小于等于)、>、>=、<>

連接運(yùn)算符:&,表示將兩個(gè)字符串連接為一個(gè)長(zhǎng)字符串,如“abc”&“de”結(jié)果為“abcde”

邏輯運(yùn)算符:And(與)、Or(或)、Not(非或取反)、Xor(異或)、Eqv(等值)、Imp(蘊(yùn)含)以下是幾個(gè)特殊的關(guān)系運(yùn)算符:

1)BetweenAAndB:用于指定A到B之間的范圍,A和B可使用數(shù)字型、日期型和文本型,如要查找分?jǐn)?shù)在60到70之間的記錄,則條件為Between60And70。

2)In:指定一系列值的列表。如要查找課程號(hào)為K01和K02的記錄,條件為In(K01,K02)。

3)Like:配合使用通配符進(jìn)行限定查詢?!埃俊北硎疽粋€(gè)字符,“*”表示任意個(gè)字符,“#”表示任何一個(gè)數(shù)字,“[]”表示在方括號(hào)中的任何單個(gè)字符。例如,查找“李”姓名學(xué)生,條件可表示為:Like“李*”。

4)IsNull(空),IsNotNull(不為空):用于空值比較。⑷函數(shù)函數(shù)是一種能夠完成某種特定操作的數(shù)據(jù)形式,函數(shù)的返回值稱為函數(shù)值,函數(shù)調(diào)用的格式為:

函數(shù)名([參數(shù)1][,參數(shù)2][,…])

Access提供了大量的內(nèi)置函數(shù)(也稱標(biāo)準(zhǔn)函數(shù)),例如:

Dat

溫馨提示

  • 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)論