版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、數(shù)據(jù)庫原理與Visual FoxPro應(yīng)用技術(shù)第1章 信息管理與數(shù)據(jù)庫系統(tǒng)第2章 關(guān)系數(shù)據(jù)模型 第3章 關(guān)系數(shù)據(jù)庫的標準語言SQL 第4章關(guān)系數(shù)據(jù)庫設(shè)計理論 第5章數(shù)據(jù)庫設(shè)計 第6章FoxPro基礎(chǔ) 第7章 Visual FoxPro程序設(shè)計基礎(chǔ) 第8章 建立數(shù)據(jù)庫 第9章設(shè)計簡單的應(yīng)用程序 第10章 索引 第11章 數(shù)據(jù)完整性與表間關(guān)系 第12章 查詢與視圖 第13章 對象與表單控件 第14章 報表設(shè)計 第15章 菜單 本書是根據(jù)高職高專教學(xué)計劃要求編寫的教材。主要包括兩大部分內(nèi)容,第一部分介紹數(shù)據(jù)庫基本原理,第二部分介紹Visual FoxPro 6.0的基本操作和程序設(shè)計方法。 第一部分
2、共分五章,內(nèi)容包括:信息管理與數(shù)據(jù)庫系統(tǒng)概述、關(guān)系模型、SQL語言、關(guān)系數(shù)據(jù)庫設(shè)計理論以及數(shù)據(jù)庫的設(shè)計方法。第二部分共分十章,內(nèi)容包括:Visual FoxPro概述、Visual FoxPro 的基本操作、程序設(shè)計基礎(chǔ)、設(shè)計簡單的應(yīng)用程序、索引、數(shù)據(jù)的完整性與表間關(guān)系、查詢與視圖、對象與表單控件、報表與菜單,并結(jié)合一些實例介紹了在應(yīng)用系統(tǒng)中如何使用Visual FoxPro提供的各種功能。 本書內(nèi)容組織合理,深入淺出,語言通俗易懂,而且理論與實踐緊密結(jié)合,實例豐富,有很強的實用性。 本書可以作為高職高專的教材,還可以作為各類成人高校的數(shù)據(jù)庫技術(shù)教材,同時也可作為各類信息管理人員或自學(xué)者的參考
3、書。第1章 信息管理與數(shù)據(jù)庫系統(tǒng) 1.1 信息與數(shù)據(jù) 1.2 數(shù)據(jù)管理問題舉例 1.3 數(shù)據(jù)庫管理系統(tǒng) 1.4 數(shù)據(jù)庫系統(tǒng)的組成 1.5 數(shù)據(jù)管理技術(shù)的發(fā)展 1.6 概念模型與數(shù)據(jù)模型1.1 信息與數(shù)據(jù)1.1.1 信息1.1.2 數(shù)據(jù)1.1.3 信息與數(shù)據(jù)的關(guān)系1.1.4 信息管理系統(tǒng)1.1.1 信息信息是對事物存在狀態(tài)及其運動形態(tài)的綜合反映,它是人們進行各種活動所需要的知識。信息應(yīng)該是關(guān)于事物的,并且是能被其它事物所接受的。與任何事物無關(guān)的不叫信息,不能被任何人理解,也不能被其它任何事物所接受的不是信息。信息具有載體,同一信息可以有多種的載體,載體的改變不等于信息的改變。1.1.2 數(shù)據(jù)數(shù)據(jù)
4、是用于記載信息的符號,所采用的形式可以是數(shù)字、文字、圖形、圖像或其它特殊符號。數(shù)據(jù)不只是數(shù)字,還包括文字、圖形、圖像等。但在計算機中,數(shù)據(jù)需要用數(shù)字來表示。利用外部設(shè)備,計算機可以把數(shù)據(jù)輸出到顯示設(shè)備、打印設(shè)備、音響設(shè)備、機電控制設(shè)備等。1.1.2 數(shù)據(jù)(續(xù))1.1.3 信息與數(shù)據(jù)的關(guān)系 數(shù)據(jù)是信息的符號表示或載體;而信息是數(shù)據(jù)的內(nèi)涵。在一些不需要嚴格分辨的場合,可以把信息與數(shù)據(jù)不加區(qū)分地使用。1.1.4 信息管理系統(tǒng)信息管理系統(tǒng)就是管理信息的系統(tǒng)。信息管理系統(tǒng)的主要功能就是組織、存儲、查詢、統(tǒng)計和更新信息,以及安全、可靠地控制信息等。計算機信息管理系統(tǒng)的最基本的框架。1.1.4 信息管理系統(tǒng)
5、(續(xù))1.2 數(shù)據(jù)管理問題舉例1.2.1 文本文件方式1.2.2 二維表格文件方式1.2.3 利用關(guān)系數(shù)據(jù)庫管理系統(tǒng)1.2.1 文本文件方式 是用文本的方式來描述職工信息,把企業(yè)中每一名職工的情況信息分別存入一個文本文件。依靠操作系統(tǒng)的文件管理功能來管理一個個的文本文件。缺點是很難完成查詢和統(tǒng)計功能。1.2.2 二維表格文件方式 采用的方法是:抽取每個事物的一些屬性,排列成屬性組,由這些屬性組形成二維表格形式的數(shù)據(jù)文件;在這個文件中,每個事物的屬性種類和屬性排列順序相同。1.2.2 二維表格文件方式(續(xù)) 采用二維表格方式的特點是:在表格中,為每條記錄(行)的相同屬性分配相同長度的存儲空間,從
6、而保證了每條記錄是等長的。每一列具有固定的數(shù)據(jù)類型??梢酝ㄟ^計算來定位每一條記錄,從而使查詢和統(tǒng)計的速度加快??梢詾楸砀裨O(shè)計索引,進一步提高查詢和統(tǒng)計的效率。 1.2.3 利用關(guān)系數(shù)據(jù)庫管理系統(tǒng) 問題:每一張表格都有不同的結(jié)構(gòu),如果針對每一個表都單獨編寫專門的程序來實現(xiàn)數(shù)據(jù)的輸入、查詢和統(tǒng)計等功能,那么要設(shè)計開發(fā)一個涉及多表的信息管理系統(tǒng),工作量將非常大。1.2.3 利用關(guān)系數(shù)據(jù)庫管理系統(tǒng)(續(xù)1) 雖然每個表格的結(jié)構(gòu)不同,但是建立表結(jié)構(gòu)、操作表的程序卻可以大同小異,因此完全可以編寫通用的表格程序。為了反映表與表之間的結(jié)構(gòu)差異,可以采取一些措施把每個表的結(jié)構(gòu)傳遞給通用程序;例如,可以把表格的結(jié)構(gòu)
7、放在表格文件的開始位置 。1.2.3 利用關(guān)系數(shù)據(jù)庫管理系統(tǒng)(續(xù)2)1.2.3 利用關(guān)系數(shù)據(jù)庫管理系統(tǒng)(續(xù)3)關(guān)系數(shù)據(jù)庫管理系統(tǒng)提供了對二維表格進行操作的通用程序包。使用關(guān)系數(shù)據(jù)庫管理系統(tǒng)后程序與數(shù)據(jù)之間的關(guān)系。應(yīng)用系統(tǒng)的開發(fā)人員可以在程序中調(diào)用關(guān)系數(shù)據(jù)庫管理系統(tǒng)提供的各種功能。 1.3 數(shù)據(jù)庫管理系統(tǒng) 1.3.1 數(shù)據(jù)庫與數(shù)據(jù)管理系統(tǒng)的概念 1.3.2 數(shù)據(jù)庫管理系統(tǒng)的功能 1.3.3 DBMS的使用方式1.3.1 數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng)的概念 1. 數(shù)據(jù)庫2. 數(shù)據(jù)庫管理系統(tǒng)1.3.2 數(shù)據(jù)庫管理系統(tǒng)的功能 1數(shù)據(jù)庫定義功能2數(shù)據(jù)操縱功能3數(shù)據(jù)庫的運行和控制功能 (1)數(shù)據(jù)的安全性 (2)
8、數(shù)據(jù)的完整性 (3)并發(fā)(Concurrency)控制 4數(shù)據(jù)組織、存儲和管理 5數(shù)據(jù)庫的建立和維護 6數(shù)據(jù)通信接口1.3.3 DBMS的使用方式 可以采用以下兩種方式使用DBMS: 1. 命令方式 應(yīng)用程序向DBMS發(fā)出命令(函數(shù)調(diào)用),由DBMS操作數(shù)據(jù)庫中的數(shù)據(jù)。 2. 交互方式使用DBMS提供的交互式的操作界面1.4 數(shù)據(jù)庫系統(tǒng)的組成1硬件2數(shù)據(jù)庫3軟件4數(shù)據(jù)庫管理員5用戶1.5 數(shù)據(jù)管理技術(shù)的發(fā)展 1.5.1 人工管理階段1.5.2 文件系統(tǒng)階段1.5.3 數(shù)據(jù)庫系統(tǒng)階段1.6 概念模型與數(shù)據(jù)模型 1.6.1 模型1.6.2 概念模型1.6.3 數(shù)據(jù)模型1.6.4 三個世界 1.6.
9、1 模型 模型是對所描述的客觀對象的模擬和抽象表示,人們?yōu)榱搜芯亢徒鉀Q客觀世界中存在的種種問題,在對客觀現(xiàn)實進行了模擬、思考、抽象以后,用文字、圖表、符號、表達式以及實物等手段,描述所認識到的客觀對象的一種簡化的表示形式。 例如:汽車的外部模型,零件的三維數(shù)字化幾何模型,信息系統(tǒng)的功能模型,表示電壓和電流關(guān)系的數(shù)學(xué)模型(I=U/R)。1.6.2 概念模型對現(xiàn)實世界原始信息結(jié)構(gòu)的描述稱為概念模型。概念模型是數(shù)據(jù)庫設(shè)計人員與最終用戶之間進行交流的語言。概念模型是對現(xiàn)實世界的的刻畫,它不依賴于具體的計算機系統(tǒng)。 1.6.2 概念模型 (續(xù)1) 1概念模型的基本術(shù)語 (1)實體 (2)屬性 (3)實體
10、型 (4)實體集 (5)關(guān)鍵字 (6)域 (7)聯(lián)系 分為:一對一聯(lián)系,一對多聯(lián)系和多對多聯(lián)系 1.6.2 概念模型 (續(xù)2) 2概念模型的表示方法E-R圖 E-R圖提供了表示實體型、屬性和聯(lián)系的方法。 (1)實體和屬性的表示方法 職工實體及其屬性 1.6.2 概念模型 (續(xù)3) (2)聯(lián)系的表示方法1.6.2 概念模型 (續(xù)4) (3)聯(lián)系屬性的表示方法1.6.2 概念模型 (續(xù)5) (4)多個實體間相互聯(lián)系的表示方法 1.6.2 概念模型 (續(xù)6) 用E-R圖表示概念模型的簡單實例生產(chǎn)與銷售系統(tǒng) 1.6.3 數(shù)據(jù)模型 概念模型需要在計算機中實現(xiàn),在實現(xiàn)之前需要規(guī)劃和設(shè)計所需要的數(shù)據(jù)結(jié)構(gòu)、數(shù)
11、據(jù)的約束條件和對數(shù)據(jù)進行的操作。數(shù)據(jù)模型與具體數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)組織與存儲方法有關(guān)。對數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)的約束條件、數(shù)據(jù)操作的描述稱為數(shù)據(jù)模型。傳統(tǒng)的數(shù)據(jù)模型主要分為三種:層次模型、網(wǎng)狀模型和關(guān)系模型。 1.6.4 三個世界 第2章 關(guān)系數(shù)據(jù)模型 用二維表來組織數(shù)據(jù),從而表示實體及實體間聯(lián)系的數(shù)據(jù)模型稱為關(guān)系模型。使用關(guān)系模型組織數(shù)據(jù)的數(shù)據(jù)庫稱為關(guān)系數(shù)據(jù)庫。本章講述關(guān)系模型的三個基本要素:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束。2.1 關(guān)系模型的數(shù)據(jù)結(jié)構(gòu) 2.2 關(guān)系的完整性2.3 關(guān)系代數(shù)2.1 關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)2.1.1 二維表2.1.2 關(guān)系的基本術(shù)語2.1.3 關(guān)系的基本性質(zhì) 2.1.1
12、 二維表 學(xué)生關(guān)系學(xué)號姓名性別出生年月籍貫系號020633張常男84-02-16江西03020668汪洋男83-12-25安徽01020711謝小平女83-06-06天津01020721陳東女83-09-22四川02021145王飛男83-04-03北京032.1.2 關(guān)系的基本術(shù)語(1)關(guān)系(2)元組(3)屬性(4)域(5)候選關(guān)鍵字(候選碼)(6)主關(guān)鍵字(主碼)(7)關(guān)系模式 格式: 關(guān)系名(屬性名1,屬性名2,屬性名n) 2.1.3 關(guān)系的基本性質(zhì)1. 每一列中的數(shù)據(jù)必須具有相同的數(shù)據(jù)類型。例如,在同一列中,不能有的數(shù)據(jù)是字符(串)類型,而有的使用數(shù)值型(如整數(shù)、浮點數(shù))。2. 每一個
13、關(guān)系模式中屬性的個數(shù)是固定的,并且必須命名,而且屬性名不能相同。3. 在同一個關(guān)系模式中,每一個屬性必須是不可分解的。4. 在關(guān)系中,行的順序(即元組的順序)是無關(guān)緊要的。即元組的存入順序?qū)﹃P(guān)系沒有影響。5. 在關(guān)系中,列的順序(即屬性的順序)也是無關(guān)緊要的,即列的順序可以任意交換。在交換列的順序時,必須連同屬性名一起交換。6. 在關(guān)系中,不允許出現(xiàn)兩個完全相同的元組。 2.2 關(guān)系的完整性1實體完整性 每一個關(guān)系的元組,其組成主關(guān)鍵字的屬性不能取空值。2參照完整性 在兩個關(guān)系A(chǔ)與B中,若關(guān)系模式A把關(guān)系模式B中的主關(guān)鍵字作為自己的外部關(guān)鍵字,那么在關(guān)系模式A中,這個外部關(guān)鍵字或取空值,或者等
14、于關(guān)系模式B中某個元組的主關(guān)鍵字的值。3用戶定義的完整性 是用戶規(guī)定的數(shù)據(jù)必須滿足的語義要求。如,0 年齡 150。2.3 關(guān)系代數(shù)2.3.1 傳統(tǒng)的集合運算2.3.2 專門的關(guān)系運算 2.3.1 傳統(tǒng)的集合運算 傳統(tǒng)的集合運算有三種:并、交、差。 假設(shè)有以下兩個集合R和S:2.3.1 傳統(tǒng)的集合運算(續(xù)) 1. 并(RS) 2. 交(RS) 3.差(RS) 2.3.2 專門的關(guān)系運算 假設(shè)有學(xué)生關(guān)系STUDENT如下: 學(xué)生關(guān)系STUDENT學(xué)號姓名性別出生年月籍貫10101張常男84-02-16江西10102汪洋男83-12-25安徽10103謝小平女83-06-06天津20101陳東女8
15、3-09-22四川20102王飛男83-04-03北京20103李曉蘭女83-10-29上海2.3.2 專門的關(guān)系運算(續(xù)1) 1. 選擇運算 從關(guān)系中找出滿足條件的元組稱為選擇,記為(R)(STUDENT) 或(STUDENT)2.3.2 專門的關(guān)系運算(續(xù)2)學(xué)號姓名性別出生年月籍貫10103謝小平女83-06-06天津20101陳東女83-09-22四川20103李曉蘭女83-10-29上海選擇運算后的結(jié)果選擇運算得到的結(jié)果元組可以形成新的關(guān)系,關(guān)系模式不變新關(guān)系是原關(guān)系的一個子集2.3.2 專門的關(guān)系運算(續(xù)3)是從關(guān)系中挑選出若干屬性列組成新的關(guān)系,記為例如:2投影運算(R)(STU
16、DENT)或(STUDENT)2.3.2 專門的關(guān)系運算(續(xù)4)3聯(lián)接運算(Join)聯(lián)接運算是把兩個關(guān)系模式的屬性名拼接成一個更寬的關(guān)系模式,產(chǎn)生的新關(guān)系中包含滿足拼接條件(聯(lián)接條件)的元組。記為:等值聯(lián)接自然聯(lián)接第3章 關(guān)系數(shù)據(jù)庫的標準語言SQL 要編寫通用的計算機程序,我們可能使用BASIC、C、PASCAL、FORTRAN等程序設(shè)計語言等,這些語言已經(jīng)成為了國際標準。操作關(guān)系數(shù)據(jù)庫也有一種國際標準語言,就是SQL。使用SQL語言可以進行數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)操縱和數(shù)據(jù)控制。目前,幾乎所有的關(guān)系數(shù)據(jù)庫系統(tǒng)都支持SQL語言。 本章主要介紹SQL語言的四部分功能,即數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)
17、操縱和數(shù)據(jù)控制。第3章的章節(jié)安排3.1 SQL的用途3.2 SQL的數(shù)據(jù)定義功能3.3 SQL的數(shù)據(jù)查詢功能3.4 SQL的數(shù)據(jù)操縱功能3.5 SQL的數(shù)據(jù)控件功能3.6 視圖3.1 SQL的用途 關(guān)系數(shù)據(jù)庫系統(tǒng)除了提供自己特有的數(shù)據(jù)操作語言之外,還要支持SQL語言 。3.1 SQL的用途(續(xù)) SQL語言有兩種使用方法,一種是用戶聯(lián)機使用的交互方式,另一種是作為子語言嵌入到其他高級程序語言中的嵌入方式。3.2SQL的數(shù)據(jù)定義功能 SQL的數(shù)據(jù)定義功能是指定義數(shù)據(jù)庫的結(jié)構(gòu),包括定義、修改和刪除基本表。 數(shù)據(jù)定義功能的SQL語句 操作對象操 作 方 式創(chuàng)建刪除修改表CREATE TABLEDRO
18、P TABLEALTER TABLE視圖CREATE VIEWDROP VIEW索引CREATE INDEXDROP INDEX3.2.1 定義、修改與刪除基本表 1定義基本表 CREATE TABLE 表名(列名數(shù)據(jù)類型 列級完整性約束條件 ,列名數(shù)據(jù)類型 列級完整性約束條件 ,表級完整性約束條件;例如: CREATE TABLE 圖書 (圖書編號 CHAR(6) NOT NULL UNIQUE, 書名 CHAR(40) NOT NULL, 作者 CHAR(12), 庫存量 CHAR(6), 定價 DECIMAL(6,2);3.2.1 定義、修改與刪除基本表(續(xù)) 2修改基本表 ALTER
19、TABLE 表名 ADD新列名 數(shù)據(jù)類型完整性約束條件 DROP完整性約束名 MODIFY列名數(shù)據(jù)類型; 例如: ALTER TABLE 圖書 ADD 出版社 CHAR(40); ALTER TABLE 圖書 DROP UNIQUE(圖書編號); ALTER TABLE 圖書 MODIFY 作者 CHAR(20); 3刪除基本表 DROPTABLE表名; 3.2.2建立和刪除索引 1建立索引 CREATE UNIQUECLUSTERINDEX索引名 ON表名(列名次序,列名次序); 例如: CREATE UNQUE INDEX 書號 ON 圖書(圖書編號); CREATE INDEX 庫存量
20、ON 圖書(庫存量 DESC);3.2.2建立和刪除索引(續(xù)) 2刪除索引 DROP INDEX 索引名; 例如: DROP INDEX 庫存量; 3.3SQL的數(shù)據(jù)查詢功能 3.1.1 簡單查詢3.1.2 聯(lián)接查詢3.1.3 嵌套查詢3.1.4 集合查詢3.1.5 SELECT語句的格式3.3.1 簡單查詢 簡單查詢是指只涉及一個表的數(shù)據(jù)查詢。例3-7: SELECT 客戶編號,客戶名 FROM 客戶;例3-8: SELECT* FROM 訂購;3.3.1 簡單查詢(續(xù)1) 例3-9: SELECT 圖書編號,書名,作者,庫存量,定價FROM圖書WHERE 出版社人民文學(xué)出版社ORDER B
21、Y定價DESC;例3-10: SELECT 圖書編號,書名,作者,庫存量 FROM圖書 WHERE 書名 LIKE數(shù)據(jù)庫;3.3.1 簡單查詢(續(xù)2) 例3-11: SELECT客戶編號,客戶名,所在城市,聯(lián)系電話 FROM 客戶 WHERE 所在城市北京 OR所在城市上海;例3-14: SELECT 最高價圖書:,MAX(定價),最低價圖書:,MIN(定價),平均價格:,AVG(定價) FROM 圖書 WHERE 出版社高等教育出版社;3.3.2 聯(lián)接查詢 聯(lián)接查詢是指涉及兩個表以上的查詢。例3-16: SELECT 圖書編號,書名,庫存量,訂貨數(shù)量,訂貨日期 FROM圖書,訂購 WHERE
22、圖書.圖書編號訂購.圖書編號 AND 圖書.圖書編號AB-001;例3-18: SELECT 客戶編號,客戶名,所在城市,聯(lián)系電話,訂購數(shù)量 FROM客戶,圖書,訂購 WHERE客戶.客戶編號訂購.客戶編號 AND 圖書.圖書編號訂購.圖書編號 AND 書名關(guān)系數(shù)據(jù)庫系統(tǒng)概論;3.3.3 嵌套查詢 嵌套查詢是指在SELECT-FROM-WHERE查詢塊內(nèi)部再嵌入另一個查詢塊,嵌入的查詢塊被稱為子查詢。 例3-19: SELECT 客戶名,聯(lián)系電話 FROM客戶 WHERE所在城市IN (SELECT所在城市 FROM客戶 WHERE客戶名王強);3.3.4 集合查詢 例3-22: SELECT
23、 * FROM 客戶 WHERE所在省份黑龍江 UNION SELECT * FROM 客戶 WHERE所在城市牡丹江;3.3.5 SELECT語句的格式 SELECT ALLDISTINCT ,F(xiàn)ROM ,WHERE 條件表達式GROUP BY 分組屬性名 組選擇條件表達式ORDER BY 排序?qū)傩?升(降)序 ;3.4SQL的數(shù)據(jù)操縱功能 3.1.1 插入數(shù)據(jù)3.1.2 修改數(shù)據(jù)3.1.3 刪除數(shù)據(jù)3.4.1插入數(shù)據(jù)(INSERT) 格式:INSERT INTO 表名(列名1,列名2,) VALUES(常量1,常量2,;例如: INSERT INTO 圖書(圖書編號,書名,作者,定價) V
24、ALUES (”DB-303”,”數(shù)據(jù)庫技術(shù)”,”李一”,18.6);3.4.2修改數(shù)據(jù)(UPDATE) 格式:UPDATE表名SET列名1表達式1,列名2表達式2WHERE條件; 例如: UPDATE 圖書 SET 圖書編號WY-303 WHERE 圖書編號WH-303;3.4.3 刪除數(shù)據(jù)(DELETE) 格式:DELETEFROM表名WHERE條件;例如: DELETE FROM 圖書 WHERE 圖書編號AB-201;3.5SQL的數(shù)據(jù)控制功能 3.1.1 授予權(quán)限3.1.2 收回權(quán)限3.5.1授予權(quán)限(GRANT) 格式: GRANT 權(quán)限,權(quán)限,ON 對象類型 對象名 TO 用戶,
25、用戶, WITH GRANT OPTION;例如:GRANT SELECT ON TABLE 客戶 TO USER1;3.5.2收回權(quán)限(REVOKE) 格式:REVOKE 權(quán)限,權(quán)限,ON 對象類型 對象名 FROM 用戶,用戶,;例如: REVOKE UPDATE ON TABLE 客戶 FROM USER1,USER2;3.6視圖 3.6.1 視圖的作用3.6.2 定義、刪除視圖3.6.1 視圖的作用限制某些用戶的查詢范圍,保護基本表中希望保密的數(shù)據(jù)。簡化查詢語句。使用戶能夠以多種角度看待同一數(shù)據(jù) 。3.6.2 定義、刪除視圖 1定義視圖 格式: CREATE VIEW 視圖名(列名,列
26、名) AS 子查詢 WITH CHECK OPTION; 例如: CREATE VIEW 鐵道_圖書 AS SELECT 圖書編號,書名,作者,庫存量,定價 FROM圖書 WHERE 出版社“鐵道出版社”;2 刪除視圖 DROPVIEW視圖名;第4章 關(guān)系數(shù)據(jù)庫設(shè)計理論 設(shè)計數(shù)據(jù)庫時,如果不遵循一定的原則,將會帶來許多問題。本章從一個例子入手,研究不合理的數(shù)據(jù)庫設(shè)計會帶來哪些問題,并分析導(dǎo)致這些問題的原因,從而引入關(guān)系數(shù)據(jù)庫設(shè)計的規(guī)范化理論。 關(guān)系數(shù)據(jù)庫規(guī)范化理論是指導(dǎo)關(guān)系數(shù)據(jù)庫邏輯設(shè)計的理論,是數(shù)據(jù)庫邏輯設(shè)計的一個有力工具。本章介紹關(guān)系數(shù)據(jù)庫設(shè)計理論中三個方面的內(nèi)容:函數(shù)依賴、范式和關(guān)系模式
27、的規(guī)范化。第4章的章節(jié)安排4.1 規(guī)范化問題4.2 函數(shù)依賴4.3 關(guān)系范式4.4 關(guān)系模式的規(guī)范4.1 規(guī)范化問題假設(shè)為學(xué)校的選課管理建立了一個學(xué)生選課關(guān)系模式,記作:S-SC-C(SNO,SNAME,AGE,SEX,CNO,CNAME,GRADE,TEACHER)這個關(guān)系模式存在如下問題: 1. 數(shù)據(jù)冗余 2. 修改異常 3. 插入異常 4. 刪除異常利用規(guī)范化理論,可以把以上的學(xué)生選課關(guān)系模式分解為以下三個關(guān)系模式:學(xué)生關(guān)系模式S(SNO,SNAME,AGE,SEX)課程關(guān)系模式C(CNO,CNAME,TEACHER)選課關(guān)系模式SC(SNO,CNO,GRADE)4.2 函數(shù)依賴 關(guān)系數(shù)
28、據(jù)庫設(shè)計理論,是從關(guān)系內(nèi)部屬性與屬性之間的聯(lián)系入手,分析所發(fā)現(xiàn)的問題,并提出解決問題的方法,形成關(guān)系模式設(shè)計所必須滿足的規(guī)范化要求。 函數(shù)依賴反映了關(guān)系內(nèi)部屬性之間的聯(lián)系。函數(shù)依賴是數(shù)據(jù)依賴的一種。 4.2.1 數(shù)據(jù)依賴 4.2.2 函數(shù)依賴 4.2.3 關(guān)鍵字4.2.1 數(shù)據(jù)依賴 實體內(nèi)部屬性間的聯(lián)系一般分為三類: (1)一對一聯(lián)系(1:1) (2)一對多聯(lián)系(1:m) (3)多對多聯(lián)系(m:n) 一個關(guān)系中屬性值之間的相互依賴又相互制約的聯(lián)系稱為數(shù)據(jù)依賴。數(shù)據(jù)依賴是語義(實際含義)的體現(xiàn)。4.2.2 函數(shù)依賴 設(shè)有一個關(guān)系模式為:S-SC-C(SNO,SNAME,AGE,SEX,CNO,C
29、NAME,GRADE,TEACHER) 有了這樣的一個關(guān)系模式,并不等于可以隨便輸入元組值,下表所示的關(guān)系中就有語義錯誤。S-SC-C的一個關(guān)系SNOSNAMEAGESEXCNOCNAMEGRADETEACHER993001王維19男C2西方文學(xué)75安然993001李洪彪19男C5法語69張偉993001王維20女C2西方文學(xué)90安然4.2.2 函數(shù)依賴(續(xù)1) 在一個關(guān)系模式中,屬性值不能隨意輸入,必須符合語義。按照語義,在S-SC-C關(guān)系模式中,當學(xué)號確定后,學(xué)生姓名和性別也就被唯一確定了,我們稱姓名和性別依賴于學(xué)號。屬性間的這種依賴關(guān)系類似于數(shù)學(xué)中的單值函數(shù)Y=F(X)。自變量X的值唯一
30、決定Y值。X不同,Y值可以相同,也可以不同。這時,我們說X通過函數(shù)F確定Y值,簡稱X函數(shù)確定Y;我們說Y通過函數(shù)F依賴于X,簡稱Y函數(shù)依賴于X。4.2.2 函數(shù)依賴(續(xù)2) 在S-SC-C關(guān)系模式中,SNO函數(shù)確定SNAME、AGE和SEX,或者說SNAME、AGE和SEX函數(shù)依賴于SNO,記作: SNOSNAME, SNOAGE, SNOSEX。 設(shè)R(U)是屬性集U上的關(guān)系模式,X與Y是U上的子集,若對R(U)上所有的具體關(guān)系r,r中不可能存在兩個元組在X上的屬性值相等,而在Y上的屬性值不等,則稱“X函數(shù)確定Y”或“Y函數(shù)依賴于X”。記作:XY。4.2.2 函數(shù)依賴(續(xù)3)如果屬性X、之間
31、是1:1的聯(lián)系,那么,則存在著X與Y相互函數(shù)依賴(XY)。如果屬性X、Y之間是1:m的聯(lián)系,那么,則存在著YX的函數(shù)依賴,但是,XY。屬性X、Y之間是n:m的聯(lián)系,那么,在X與Y之間則不存在任何函數(shù)依賴。 4.2.2 函數(shù)依賴(續(xù)4)非平凡函數(shù)依賴與平凡函數(shù)依賴 設(shè)關(guān)系模式R(U)中有函數(shù)依賴XY,并且Y不是X的子集,則稱XY是非平凡的函數(shù)依賴;相反,若Y是X的子集,則稱XY是平凡的函數(shù)依賴。 平凡函數(shù)依賴的例子是(SNO,CNO)SNO,(SNO,CNO)CNO。完全函數(shù)依賴與部分函數(shù)依賴 設(shè)關(guān)系模式R(U)中有函數(shù)依賴XY;若存在X的真子集X ,使得X Y成立,則稱Y部分依賴于X,記作:X
32、Y如果不存在X的真子集X,使得X Y成立,則稱Y完全依賴于X,記作:X Y4.2.2 函數(shù)依賴(續(xù)5)傳遞函數(shù)依賴設(shè)有關(guān)系模式R(U),若其中XY,YZ,并且Y不是X的子集,Z不是Y的子集,YX,則稱Z傳遞函數(shù)依賴于X。記為:XZSNOSDEPT,SDEPTMNAME,但SDEPTSNO,所以:SNODMNAME4.2.3 關(guān)鍵字 1候選關(guān)鍵字 在關(guān)系模式R(U)中,K是U中的屬性或?qū)傩越M。如果KU 則稱K為關(guān)系R(U)中的一個候選關(guān)鍵字。候選關(guān)鍵字具有以下兩個性質(zhì):(1)唯一確定元組(2)無冗余性2主關(guān)鍵字如果一個關(guān)系中有多個候選關(guān)鍵字,則選定其中一個作為主關(guān)鍵字。在許多DBMS中,主關(guān)鍵字
33、不能為空,并能夠作為與其它關(guān)系自動關(guān)聯(lián)的橋梁。4.2.3 關(guān)鍵字(續(xù))3外部關(guān)鍵字 在關(guān)系模式R(U)中,若屬性或?qū)傩越MX不是關(guān)系R的關(guān)鍵字,但X是其它關(guān)系模式的關(guān)鍵字,則稱X為關(guān)系R(U)的外部關(guān)鍵字。 例如: S(SNO,SNAME,AGE,SEX) SC(SNO,CNO,GRADE) SNO對SC來說就是外關(guān)鍵字;而關(guān)系模式S和SC之間的聯(lián)系就是通過SNO實現(xiàn)的。4.3 關(guān)系范式 4.3.1 第一范式(1NF)4.3.2 第二范式(2NF)4.3.3 第三范式(3NF)4.3.1 第一范式(1NF) 定義:如果關(guān)系模式R的每一個屬性都是不可分解的,則稱R為第一范式的模式,記為R1NF。不
34、滿足第一范式的一個關(guān)系模式職工號姓名工資扣除實發(fā)基本工齡職務(wù)房租水電0345林子強34530040080559104.3.2 第二范式(2NF)關(guān)系模式:R(SNO,SNAME,AGE,CNO,GRADE)函數(shù)依賴:(SNO,CNO)GRADE SNOSNAME SNOAGE4.3.2 第二范式(2NF)(續(xù)1) SNOSNAMEAGECNOGRADE993001王維19C275993001王維19C569993001王維19C984993002杜林19C288987010朱斌20C667987010朱斌20C270995035李欣如19C1077995035李欣如19C686991078郭慶
35、19C4704.3.2 第二范式(2NF)(續(xù)2) 這個關(guān)系存在本章開始時提到的四種問題。 造成這些問題的原因是: 在這個關(guān)系模式中,雖然屬性GRADE完全函數(shù)依賴于關(guān)鍵字(SNO,CNO),但是屬性SNAME和AGE卻是部分函數(shù)依賴于關(guān)鍵字(SNO,CNO),即SNOSNAME,SNOAGE。 為了解決上述問題,人們又提出了關(guān)系模式的第二范式。4.3.2 第二范式(2NF)(續(xù)3) 定義: 如果關(guān)系模式R滿足第一范式,并且每個非主屬性都完全函數(shù)依賴于關(guān)鍵字,則稱R為第二范式的模式,記為R2NF。 為了消除上例中的部分依賴,可以把例子中的關(guān)系模式分解為兩個關(guān)系模式: S(SNO,SNAME,A
36、GE) SC(SNO,CNO,GRADE)4.3.2 第二范式(2NF)(續(xù)4) 不滿足2NF的典型做法:4.3.3 第三范式(3NF) 關(guān)系模式: R(SNO,SNAME,AGE,SDEPT,DLOC,DMNAME) 存在的問題: (1)插入異常 (2)刪除異常 (3)數(shù)據(jù)冗余度大 (4)修改復(fù)雜4.3.3 第三范式(3NF)(續(xù)1) 造成問題的原因: 雖然這個模式中存在著兩個傳遞函數(shù)依賴:SNODLOC和SNODMNAME,即有SNOSDEPT,SDEPTSNO,SDEPTDLOC,SDEPTDMNAME 為了解決上述問題,人們又提出了關(guān)系模式的第三范式。4.3.3 第三范式(3NF)(續(xù)
37、2) 定義:如果關(guān)系模式R滿足第二范式,并且沒有一個非主屬性是傳遞函數(shù)依賴于候選關(guān)鍵字,則稱R為第三范式的模式,記為R3NF。 為了消除例子中的傳遞函數(shù)依賴,可以把該關(guān)系模式分解為以下兩個關(guān)系模式: (1)S(SNO,SNAME,AGE,SDEPT) (2)D(SDEPT,DLOC,DMNAME)4.3.3 第三范式(3NF)(續(xù)3) 不滿足3NF的典型做法:4.4 關(guān)系模式的規(guī)范化 一個低一級范式的關(guān)系模式,通過模式分解,可以轉(zhuǎn)換為若干個高一級范式的關(guān)系模式的集合,這種過程就叫關(guān)系模式的規(guī)范化。其基本思想是逐步消除關(guān)系模式中不合適的數(shù)據(jù)依賴,拆分關(guān)系模式,使各關(guān)系模式達到某種程度的“分離”。
38、 關(guān)系模式的規(guī)范化步驟: (1)消除非主屬性對關(guān)鍵字的函數(shù)依賴,實現(xiàn)1NF2NF。 (2)非主屬性對關(guān)鍵字的傳遞依賴,實現(xiàn)2NF3NF。 (3)把3NF關(guān)系轉(zhuǎn)換為BCNF或更高級的4NF和5NF關(guān)系。第5章 數(shù)據(jù)庫設(shè)計 5.1 數(shù)據(jù)庫設(shè)計的步驟 5.2 需求分析 5.3 概念結(jié)構(gòu)設(shè)計 5.4 邏輯結(jié)構(gòu)設(shè)計 5.5 數(shù)據(jù)庫物理設(shè)計 5.6 數(shù)據(jù)庫的實施 5.7 數(shù)據(jù)庫的運行和維護5.1 數(shù)據(jù)庫設(shè)計的步驟 數(shù)據(jù)庫設(shè)計分為以下六個步驟: (1)需求分析 (2)概念結(jié)構(gòu)設(shè)計 (3)邏輯結(jié)構(gòu)設(shè)計 (4)數(shù)據(jù)庫物理設(shè)計 (5)數(shù)據(jù)庫實施 (6)數(shù)據(jù)庫運行和維護5.2 需求分析 5.2.1 收集用戶需求 5
39、.2.2 分析用戶需求 5.2.3 設(shè)計數(shù)據(jù)流圖 5.2.4 建立數(shù)據(jù)字典 5.2.5 取得用戶確認5.2.1 收集用戶需求 1. 用戶需求的內(nèi)容 2. 收集用戶需求的方法5.2.2 分析用戶需求 分析和整理所收集到的信息,對各種信息進行仔細認定和篩選,并對一些概念進行準確的描述。5.2.3 設(shè)計數(shù)據(jù)流圖 5.2.4 建立數(shù)據(jù)字典 (1)數(shù)據(jù)項(2)數(shù)據(jù)結(jié)構(gòu)(3)數(shù)據(jù)流(4)數(shù)據(jù)存儲(5)處理過程5.3 概念結(jié)構(gòu)設(shè)計 概念結(jié)構(gòu)設(shè)計的主要任務(wù)是:通過對用戶需求進行綜合、歸納與抽象,從而形成概念結(jié)構(gòu)。 5.3.1概念結(jié)構(gòu)設(shè)計步驟 5.3.2 設(shè)計局部E-R圖 5.3.3合并局部E-R圖 5.3.4
40、 優(yōu)化E-R圖5.3.1 概念結(jié)構(gòu)設(shè)計步驟 5.3.2 設(shè)計局部ER圖 1. 選擇局部應(yīng)用 2. 確定實體和屬性5.3.2 設(shè)計局部ER圖(續(xù)) 3. 分析實體之間的聯(lián)系 4. 繪制局部E-R圖 5. 征求用戶意見5.3.3 合并局部E-R圖 1. 消除屬性沖突 2. 消除命名沖突 3. 消除結(jié)構(gòu)沖突5.3.4 優(yōu)化ER圖消除冗余的屬性消除冗余的實體間聯(lián)系54 邏輯結(jié)構(gòu)設(shè)計 邏輯結(jié)構(gòu)設(shè)計的主要任務(wù)是把概念結(jié)構(gòu)轉(zhuǎn)化為數(shù)據(jù)模型。 5.4.1 ER模型向關(guān)系模型的轉(zhuǎn)換 5.4.2 數(shù)據(jù)模型的優(yōu)化5.4.1 ER圖向關(guān)系模型的轉(zhuǎn)換 轉(zhuǎn)換要遵循以下原則: (1)一個實體型轉(zhuǎn)換為一個關(guān)系模式。 (2)一個
41、m:n聯(lián)系轉(zhuǎn)換為一個關(guān)系模式。 (3)一個1:n聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系,也可以與n端對應(yīng)的關(guān)系模式合并。(4)一個1:1聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系,也可以與任意一端對應(yīng)的關(guān)系模式合并。 (5)三個或三個以上實體間的一個多元聯(lián)系轉(zhuǎn)換為一個關(guān)系。 (6)同一實體集的實體間的聯(lián)系,即自聯(lián)系,也可按上述一對一、一對多、多對多三種情況分別處理。 (7)具有相同關(guān)鍵字的關(guān)系可以合并。5.4.2 數(shù)據(jù)模型的優(yōu)化 按照規(guī)范化理論對關(guān)系數(shù)據(jù)模型進行優(yōu)化的步驟: (1)根據(jù)需求分析階段分析出的數(shù)據(jù)項或數(shù)據(jù)集合的含義,找出每個關(guān)系模式中存在的數(shù)據(jù)依賴。 (2)對數(shù)據(jù)依賴進行分析,結(jié)合應(yīng)用系統(tǒng)的特點和用戶對應(yīng)
42、用系統(tǒng)的需求對模式進行必要的分解甚至合并。5.5 數(shù)據(jù)庫物理設(shè)計 為一個給定的邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)的過程就是數(shù)據(jù)庫的物理設(shè)計。其任務(wù)是結(jié)合具體DBMS和存儲設(shè)備的特點,確定數(shù)據(jù)存儲策略(包括存儲結(jié)構(gòu)和存取方法),以有效地實現(xiàn)邏輯模型。 5.5.1物理結(jié)構(gòu)設(shè)計的內(nèi)容 5.5.2評價物理結(jié)構(gòu)5.5.1 物理結(jié)構(gòu)設(shè)計的內(nèi)容 1. 設(shè)計索引 2. 確定數(shù)據(jù)的存放位置 3. 確定系統(tǒng)配置5.5.2評價物理結(jié)構(gòu) 從時間效率、空間效率、維護代價和各種用戶需求對物理結(jié)構(gòu)的設(shè)計結(jié)果進行分析與評估。5.6 數(shù)據(jù)庫的實施 在數(shù)據(jù)庫的實施階段,首先要根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)構(gòu),利用具體的DB
43、MS系統(tǒng)提供的建庫方法建立實際的數(shù)據(jù)庫結(jié)構(gòu),然后組織數(shù)據(jù)入庫。 1建立實際數(shù)據(jù)庫結(jié)構(gòu) 2裝入試驗數(shù)據(jù) 3裝入實際數(shù)據(jù) 4數(shù)據(jù)庫的試運行 5.7 數(shù)據(jù)庫的運行和維護 數(shù)據(jù)庫的運行和維護工作主要由數(shù)據(jù)庫管理員(DBA:Database Administrator)來承擔,其工作主要包括以下內(nèi)容: (1)數(shù)據(jù)庫備份與恢復(fù)。 (2)保證數(shù)據(jù)庫的安全性與完整性。 (3)監(jiān)測與改善數(shù)據(jù)庫性能。 (4)數(shù)據(jù)庫的再組織與再構(gòu)造。 第6章 FoxPro 基礎(chǔ)6.1 Visual FoxPro的安裝與啟動6.2 Visual FoxPro幫助文件的安裝與使用6.3 命令窗口6.4 項目管理器6.1 Visual
44、FoxPro的安裝與啟動6.1.1 Visual FoxPro 6.0中文版的運行環(huán)境6.1.2 Visual FoxPro 6.0的安裝方法6.1.3 啟動Visual FoxPro 6.06.1.4 Visual FoxPro主窗口 6.1.4 Visual FoxPro 主窗口6.2 Visual FoxPro幫助文件的 安裝與使用6.2.1 安裝MSDN6.2.2 使用幫助文件 使用F1 使用目錄 使用關(guān)鍵詞索引 使用搜索功能6.3 命令窗口6.3.1 打開命令窗口6.3.2 輸入命令6.3.3 命令的出錯處理6.4 項目管理器 項目管理器可以將一個項目中的多種內(nèi)容分門別類地組織起來。
45、在Visual FoxPro的項目管理器中,這些內(nèi)容分為數(shù)據(jù)、文檔、類、代碼和其他等子類型,你可以很方便地在各個對應(yīng)的選項卡中查看相關(guān)內(nèi)容。 6.4 項目管理器(續(xù))第7章 Visual FoxPro程序設(shè)計基礎(chǔ) 7.1 數(shù)據(jù)類型7.2 常量與變量7.3 運算符與表達式7.4 程序文件7.5 程序的基本結(jié)構(gòu)7.6 過程與函數(shù)7.7 變量的作用域 7.1 數(shù)據(jù)類型類型示例數(shù)值型123,3.1415,-7整型1,2,3,256,-318浮點型45732.548,-5691.15雙精度型貨幣型$2789.21字符型“Test String”、“123”、“01/01/95”,邏輯型.T.,.F.日期
46、型2003-05-25日期時間型2003-05-25 12:30:00 p備注型通用型OLE對象等二進制字符型二進制備注型7.2 常量與變量7.2.1 常量7.2.2 變量7.2.3 數(shù)組7.2.4 字段變量 7.2.1 常量字符型常量 如:“People”、Women、人民等。數(shù)值型常量 如:2.13,0.45,315等。邏輯型常量 只有兩個值,用.T.、.t.、.Y.或.y.表示邏輯真,用.F.、.f.、.N.或.n.表示邏輯假。日期型和日期時間型常量 如2003/6/5、2003/5/17 16:40:35am。貨幣型常量 以$開頭,自動四舍五入,最多取四位小數(shù)。7.2.2 變量 變量是
47、指在命令操作和程序執(zhí)行過程中可以變化的數(shù)據(jù)項,一般用于暫時存放初始值、中間結(jié)果值、最終結(jié)果值或控制值等,它也被用于在多個程序模塊之間傳遞數(shù)據(jù)。一個變量對應(yīng)著內(nèi)存中存儲數(shù)據(jù)元素的一小塊區(qū)域。STORE 7 T0 MyVarMyVar = 7MyVar = “ABC”DISPLAY MEMORYCLEAR MEMORY7.2.3 數(shù)組 數(shù)組是一組有序的數(shù)據(jù)集合,其中的每個數(shù)據(jù)稱為數(shù)組元素,每個數(shù)組元素在數(shù)組中的位置都是固定的,可以通過下標編號訪問數(shù)組元素。DIMENSION MyArray5,2MyArray5,1 = 2MyArray5,2 = 256MyArray5,2 = abcdefgDI
48、SPLAY MEMORY7.2.4 字段變量 打開的數(shù)據(jù)表的每一個字段都是一個變量,字段名就是字段變量的名稱。7.3 運算符與表達式7.3.1 運算符7.3.2 表達式 7.3.1 運算符1. 字符運算符操作符例子+“Microsoft ” + ”Word”,結(jié)果為“Microsoft Word”-“abcd ” - “efg ”,結(jié)果為“abcdefg”$“cro” $ “Microsoft”,結(jié)果為.T.;“Word” $ “Microsoft”,結(jié)果為.F.。7.3.1 運算符(續(xù)1)2. 邏輯運算符運算符含義舉例NOT或!邏輯非NOT (2 = 3),結(jié)果為真。AND邏輯與(2 = 3
49、) AND (3 = 4),結(jié)果為假。OR邏輯或(2 = 2) OR (3 = 4),結(jié)果為真。7.3.1 運算符(續(xù)2)3. 關(guān)系運算符運算符運算大于=等于或!=不等于=大于等于=字符串等于7.3.1 運算符(續(xù)3)4. 算術(shù)運算符運算符運算( )用于構(gòu)成一個子表達式*或乘方運算*乘/除+加-減7.3.2 表達式 表達式就是通過運算符將常量、變量、函數(shù)連接起來的式子。 算術(shù)表達式 (2+3)*4/5 256*MyNum-147 字符表達式 “中國首都” + “北京” “ABC”+MyStr 日期表達式 2003-05-08+30 2003-05-08-2002-05-08 邏輯表達式 MyS
50、tr=213.05 AND MyStr=ABC 7.4 程序文件 在Visual FoxPro中,不但可以在命令窗口中執(zhí)行命令和函數(shù)和其它操作,還可以把它們一行行地組織起來,放在程序文件中。 1創(chuàng)建程序文件 依次單擊菜單欄上的【文件】【新建】菜單命令 在命令窗口中使用“MODIFY COMMAND”命令2修改程序文件 依次單擊菜單欄上的【文件】【打開】菜單命令 在命令窗口中使用“MODIFY COMMAND”命令 7.4 程序文件(續(xù)1)3運行程序文件 在項目管理器中選擇這個程序,然后單擊【運行】命令。 使用菜單欄上的【程序】【運行】菜單命令 在命令窗口中使用“DO”命令例子:計算并顯示兩個變
51、量的乘積 X=20 Y=30 Z=X*Y ?Z 7.4 程序文件(續(xù)2)4注釋與續(xù)行 * 下面的幾行程序是為幾個變量賦初值。Pai = 3.14 & 圓周率精確到小數(shù)點后兩位即可A = 30 & 設(shè)置為30的原因詳見需求說明書* 以下的程序是對數(shù)據(jù)處理 如果一條命令很長,允許把命令分成多行書寫,需要在未完的程序行后面添加一個分號“;”,但命令的最后一行不能加分號。7.5 程序的基本結(jié)構(gòu)7.5.1 分支結(jié)構(gòu)7.5.2 循環(huán)結(jié)構(gòu) 7.5.1 分支結(jié)構(gòu) IF 條件 語句序列1 ELSE 語句序列2 ENDIF 1. 簡單分支語句IF 條件語句序列1ENDIFIF Country = “中國” AND
52、 City = “北京” IsCapital = .T. ? “是首都”ELSE IsCapital = .F.ENDIF7.5.1 分支結(jié)構(gòu)(續(xù)1) 1. 簡單分支語句7.5.1 分支結(jié)構(gòu)(續(xù)2) 2. 多分支語句 DO CASE CASE 條件1 語句序列1 CASE 條件2 語句序列2 CASE 條件m 語句序列m OTHERWISE 語句序列n ENDCASE 7.5.2 循環(huán)結(jié)構(gòu)DO WHILE 語句序列ENDDO 1. DO WHILE語句TempInt = 50DO WHILE TempInt 100 TempInt = TempInt + 1 ?TempIntENDDO7.5.
53、2 循環(huán)結(jié)構(gòu)(續(xù)1)2. FOR循環(huán)語句FOR 循環(huán)變量 = 初值 TO 終值 STEP 步長 語句序列ENDFOR例子:計算1+2+3+4+ +100,并顯示結(jié)果。 TheResult = 0 FOR nVar = 1 TO 100 TheResult = TheResult + nVar ENDFOR ?STR(TheResult)7.5.2 循環(huán)結(jié)構(gòu)(續(xù)2)3. SCAN循環(huán)語句 SCAN 范圍 FOR 條件1 WHILE 條件2 語句序列 ENDSCAN使用SCAN循環(huán)語句的一個例子是: USE 圖書 SCAN FOR 物理 $ 書名 MessageBox(書名) ENDSCAN7.6
54、 過程與函數(shù)7.6.1 用戶定義過程或函數(shù)7.6.2 常用的函數(shù) 7.6.1 用戶定義過程或函數(shù)(續(xù)) 1. 定義過程的基本形式 PROCEDURE 過程中要執(zhí)行的語句 ENDPROC 2. 定義函數(shù)的基本形式 FUNCTION 函數(shù)中要執(zhí)行的語句 ENDFUNC7.6.1 用戶定義過程或函數(shù)PROCEDURE 過程中要執(zhí)行的語句ENDPROC FUNCTION 函數(shù)中要執(zhí)行的語句ENDFUNCDO Myproc WITH Pl,P2或MyProc(P1,P2)MyVar = MyFunc(P1,P2) 7.6.1 用戶定義過程或函數(shù)(續(xù))A = 10?MyFunc(A, 12)FUNCTIO
55、N MyFunc(M, N) * 首先計算出M! MTotal = 0 FOR nVar = 1 TO M MTotal = MTotal + nVar ENDFOR * 然后計算出N! NTotal = 0 FOR nVar = 1 TO N NTotal = NTotal + nVar ENDFOR * 返回結(jié)果 RETURN MTotal + NTotalENDFUNC例子:編制一個函數(shù),求出M!+N! 7.6.2 常用的函數(shù) 在Visual FoxPro中最常用的三種函數(shù): 1. 數(shù)值型函數(shù) ?MAX(102.3,-545,92) & 結(jié)果為102.3 2. 字符型函數(shù) ?ALLTRI
56、M(“ AB CD ”) & 結(jié)果為“AB CD” 3. 日期型函數(shù) ?DTOC(2004-09-28) & 結(jié)果為“09/28/04” 7.7 變量的作用域1全局變量2局部變量3本地變量第8章 建立數(shù)據(jù)庫8.1 數(shù)據(jù)庫基本操作8.2 建立表8.3 自由表8.4 表的基本操作8.5 工作區(qū) 8.1 數(shù)據(jù)庫基本操作8.1.1 建立數(shù)據(jù)庫8.1.2 修改數(shù)據(jù)庫8.1.3 刪除數(shù)據(jù)庫 8.1.1 建立數(shù)據(jù)庫利用菜單欄的【新建】命令建立數(shù)據(jù)庫;在項目管理器中建立數(shù)據(jù)庫;使用建立數(shù)據(jù)庫的命令; 創(chuàng)建數(shù)據(jù)庫可以采取以下三種方法:8.2 建立表8.2.1 在數(shù)據(jù)庫中創(chuàng)建表8.2.2 修改表結(jié)構(gòu)8.2.3 使
57、用SQL命令建立表 8.2.1 在數(shù)據(jù)庫中創(chuàng)建表 1.打開表設(shè)計器8.2.1 在數(shù)據(jù)庫中創(chuàng)建表(續(xù)1)2.設(shè)計表結(jié)構(gòu)8.2.1 在數(shù)據(jù)庫中創(chuàng)建表(續(xù)2)在數(shù)據(jù)庫設(shè)計器中顯示的表:8.2.2 修改表結(jié)構(gòu)修改表結(jié)構(gòu)可以采用以下兩種方法:如果這個表是某個數(shù)據(jù)庫中的表,可以先打開數(shù)據(jù)庫設(shè)計器,在要修改的表上單擊鼠標右鍵,然后在彈出的快捷菜單中單擊【修改】菜單項。在命令窗口中執(zhí)行以下命令: USE MODIFY STRUCTURE 8.2.3 使用SQL命令建立表 可以使用CREATE TABLE-SQL命令創(chuàng)建表。 OPEN DATABASE 圖書銷售.dbc CREATE TABLE 圖書 ( 圖書
58、編號 C(6) NOT NULL , ; 書名 C(40) NULL , ; 作者 C(12) NULL , ; 庫存量 N(6,0) NULL , ; 定價 N(6,2) NULL ) 8.3 自由表 如果一個表不屬于任何數(shù)據(jù)庫,則稱之為自由表??梢园岩粋€表從數(shù)據(jù)庫中移去,使之成為自由表;也可以把一個自由表添加到數(shù)據(jù)庫中,從而成為一個數(shù)據(jù)庫表。1從數(shù)據(jù)庫中移去一個表 8.3 自由表(續(xù))2把自由表添加到數(shù)據(jù)庫中 8.4 表的基本操作 8.4.1 打開表8.4.2 瀏覽表中記錄8.4.3 向表中添加記錄8.4.4 編輯表中記錄8.4.5 刪除表中記錄8.4.6 記錄定位命令 8.4.1 打開表
59、 可以用以下三種方法打開表:1. 依次點擊菜單欄上的【文件】【打開】命令,在彈出的“打開”對話框中確定相關(guān)的表文件名。2. 直接單擊工具欄中的按鈕,彈出“打開”對話框。3. 在命令窗口中使用“USE”命令,其簡化的格式為: USE 8.4.2 瀏覽表中記錄 1. 使用菜單命令瀏覽記錄 (1)打開數(shù)據(jù)庫表。 (2)依次單擊菜單欄上的【顯示】【瀏覽】命令,你將看到打開的瀏覽窗口中的記錄。8.4.2 瀏覽表中記錄(續(xù)) 2. 數(shù)據(jù)瀏覽命令 在Visual FoxPro中,可以執(zhí)行BROWSE命令瀏覽表中記錄。以圖書表為例,你可以在命令窗口中執(zhí)行以下命令: USE 圖書.dbf BROWSE BROW
60、SE RECORD 5 BROWSE FIELDS 書名,庫存量 BROWSE FOR 庫存量1000 8.4.6 記錄定位命令1GOTO命令 GOTO | TOP | BOTTOM 2SKIP命令 SKIP 3LOCATE命令 LOCATE FOR 邏輯表達式 8.4.6 記錄定位命令(續(xù))LOCATE FOR 邏輯表達式DO WHILE FOUND 業(yè)務(wù)處理 CONTINUEENDDO8.5 工作區(qū)8.5.1 工作區(qū)與表8.5.2 工作區(qū)的選擇與當前工作區(qū)8.5.3 表別名8.5.4 字段變量 8.5.1 工作區(qū)與表 最多允許使用32767個工作區(qū); 在一個工作區(qū)中最多只能打開一個表8.5
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2(2024版)車輛掛靠應(yīng)急車輛調(diào)度合同
- 安全食品采購合同范例
- 農(nóng)村改水電合同范例
- 2024年山西c1道路客運從業(yè)資格證
- 云倉合同范例
- 2024年工程前期預(yù)付款合同模板
- 廠家房車出售合同范例
- 乳膠漆購銷合同范例
- 2024年實驗室場地租賃與使用合同
- 外包公司合同范例
- 珍愛生命主題班會
- 陳皮倉儲合同模板例子
- 2024年安全生產(chǎn)月全國安全生產(chǎn)知識競賽題庫及答案(共六套)
- 2024-2025學(xué)年滬教版小學(xué)四年級上學(xué)期期中英語試卷及解答參考
- 消除“艾梅乙”醫(yī)療歧視-從我做起
- DB23T 3844-2024煤礦地區(qū)地震(礦震)監(jiān)測臺網(wǎng)技術(shù)要求
- 第7課《回憶我的母親》課件-2024-2025學(xué)年統(tǒng)編版語文八年級上冊
- (高清版)JTGT 3610-2019 公路路基施工技術(shù)規(guī)范
- 躉船總體建造方案 投標方案(技術(shù)方案)
- 人教版(PEP)五年級英語上冊 unit 4《What can you do》A let's learn課件
- 可填充顏色的地圖(世界、中國、各省份)
評論
0/150
提交評論