版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
及其應(yīng)用系統(tǒng)開發(fā)
第一章數(shù)據(jù)庫技術(shù)基礎(chǔ)VisualFoxPro6.0
第一章數(shù)據(jù)庫技術(shù)基礎(chǔ)
§1.1數(shù)據(jù)管理技術(shù)的發(fā)展數(shù)據(jù):數(shù)據(jù)用來表示實(shí)體及其屬性。數(shù)據(jù)不僅指數(shù)值,還可是文字、圖形、圖像、色彩、聲音等多種類型。在計(jì)算機(jī)中,存貯、處理、傳輸?shù)臄?shù)據(jù)必須數(shù)字化。數(shù)據(jù)處理:對數(shù)據(jù)進(jìn)行加工處理的操作過程,通常包括:收集、存儲(chǔ)、分類、排序、檢索、匯總、計(jì)算等。信息:是對數(shù)據(jù)經(jīng)過加工處理,得到可以對人們社會(huì)實(shí)踐和生產(chǎn)活動(dòng)產(chǎn)生決策影響的數(shù)據(jù)。通過對數(shù)據(jù)處理而得到信息。數(shù)據(jù)管理:是指如何對數(shù)據(jù)進(jìn)行分類、組織、編碼、存儲(chǔ)、檢索和維護(hù),它是數(shù)據(jù)處理的核心問題。數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)歷了以下三個(gè)階段:
1.1.1.人工管理階段(1)人工管理方式出現(xiàn)在計(jì)算機(jī)數(shù)據(jù)管理的初期。(科學(xué)計(jì)算)(2)由于沒有必要的軟件、硬件環(huán)境的支持,用戶只能直接在裸機(jī)上操作。用戶的應(yīng)用程序中不僅要設(shè)計(jì)數(shù)據(jù)處理的方法,還要闡明數(shù)據(jù)在存貯器上的存貯地址。硬件:紙帶、卡片、磁帶軟件:無操作系統(tǒng)和管理數(shù)據(jù)的軟件該階段的特點(diǎn):
1.數(shù)據(jù)不保存
2.數(shù)據(jù)與程序不具獨(dú)立性
3數(shù)據(jù)冗余度大
應(yīng)用程序1
數(shù)據(jù)集1應(yīng)用程序2
數(shù)據(jù)集2應(yīng)用程序n
數(shù)據(jù)集n圖1-1人工管理階段的數(shù)據(jù)處理1.1.2文件系統(tǒng)管理階段文件管理方式即把有關(guān)的數(shù)據(jù)組織成一種文件,這種數(shù)據(jù)文件可以脫離程序而獨(dú)立存在,由一個(gè)專門的文件管理系統(tǒng)實(shí)施統(tǒng)一管理。硬件:磁盤、磁鼓軟件:操作系統(tǒng)出現(xiàn)(含文件系統(tǒng))在這一管理方式下,應(yīng)用程序通過文件管理系統(tǒng)對數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行加工處理。應(yīng)用程序的數(shù)據(jù)具有一定的獨(dú)立性,也比手工管理方式前進(jìn)了一步。但是,數(shù)據(jù)文件仍高度依賴于其對應(yīng)的程序,不能被多個(gè)程序所通用。
應(yīng)用程序1
數(shù)據(jù)集1應(yīng)用程序2
數(shù)據(jù)集2應(yīng)用程序n
數(shù)據(jù)集n圖1-2文件系統(tǒng)階段的數(shù)據(jù)處理文件系統(tǒng)1.1.3數(shù)據(jù)庫系統(tǒng)管理階段在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)實(shí)現(xiàn)統(tǒng)一、集中、獨(dú)立的管理,實(shí)現(xiàn)數(shù)據(jù)的高度共享,保證了數(shù)據(jù)的完整性和安全性。對數(shù)據(jù)的一般處理,由獨(dú)立的數(shù)據(jù)庫管理系統(tǒng)完成,而不再依賴于應(yīng)用程序。數(shù)據(jù)庫系統(tǒng)的特點(diǎn):1.數(shù)據(jù)的結(jié)構(gòu)化
2.數(shù)據(jù)共享
3.數(shù)據(jù)獨(dú)立性(相對應(yīng)用程序的獨(dú)立)
4.可控冗余度(重復(fù)數(shù)據(jù)的控制)
5.有統(tǒng)一的數(shù)據(jù)管理和控制功能應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n圖1-3數(shù)據(jù)庫系統(tǒng)階段的數(shù)據(jù)處理數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫§1.2數(shù)據(jù)模型現(xiàn)實(shí)世界中的客觀事物是彼此相互聯(lián)系的。
一方面,某一事物內(nèi)部的諸因素和諸屬性具有聯(lián)系,構(gòu)成一個(gè)相對獨(dú)立的系統(tǒng);
另一方面,某一事物同時(shí)也作為一個(gè)更大系統(tǒng)的一個(gè)因素或一種屬性而存在,并與系統(tǒng)的其它因素或?qū)傩园l(fā)生聯(lián)系??陀^事物的這種普遍聯(lián)系性決定了作為事物屬性記錄符號(hào)的數(shù)據(jù)與數(shù)據(jù)之間也存在著一定的聯(lián)系性。
數(shù)據(jù)總是按照一定的組織關(guān)系排列,從而構(gòu)成一定的結(jié)構(gòu),對這種結(jié)構(gòu)的描述就是數(shù)據(jù)模型。常用的數(shù)據(jù)模型有層次模型、網(wǎng)絡(luò)模型和關(guān)系模型三種。1.2.1
層次模型(hierarchicalmodel)
:是用樹形(倒向樹)結(jié)構(gòu)來表示實(shí)體之間的聯(lián)系模型。倒向樹以結(jié)點(diǎn)與連線組成,結(jié)點(diǎn)表示實(shí)體,連線表示相連兩實(shí)體之間的聯(lián)系。
其主要特征如下:
(1)有且僅有一個(gè)根結(jié)點(diǎn)。
(2)根結(jié)點(diǎn)以外的子結(jié)點(diǎn),向上僅有一個(gè)父結(jié)點(diǎn)。ABCDEFGHIJ根結(jié)點(diǎn)父結(jié)點(diǎn)子結(jié)點(diǎn)
層次模型表示的是從父結(jié)點(diǎn)到子結(jié)點(diǎn)的一對多,或從子結(jié)點(diǎn)到父結(jié)點(diǎn)的多對一的數(shù)據(jù)間的聯(lián)系。1.2.2
網(wǎng)狀模型(networkmodel)
:是層次模型的擴(kuò)展,在網(wǎng)絡(luò)模型中,每一個(gè)結(jié)點(diǎn)都可以與其它任一結(jié)點(diǎn)建立聯(lián)系。
1.2.3
關(guān)系模型(relationalmodel)
:用二維表格數(shù)據(jù)來表示實(shí)體之間的聯(lián)系模型,稱為關(guān)系模型。關(guān)系模型涉及的基本概念
關(guān)系:
元組:
屬性:
值域:一個(gè)二維表對應(yīng)一個(gè)關(guān)系。表中每一行描述一個(gè)實(shí)體,稱作“記錄”;各行的每一列表示各實(shí)體的不同屬性,稱作“字段”或“數(shù)據(jù)項(xiàng)”;關(guān)系模型的主要特點(diǎn)有:
關(guān)系中每一數(shù)據(jù)項(xiàng)不可再分,是最基本的單位;各列的順序是任意的;
各行(記錄)的順序可以是任意的;
一個(gè)關(guān)系是一張二維表,不允許有相同的字段名,也不允許有相同的記錄行。
關(guān)系數(shù)據(jù)庫的關(guān)系運(yùn)算1.選擇(篩選、過濾)在數(shù)據(jù)表中,選取符合一定條件的記錄。2.投影
對數(shù)據(jù)表中的某些字段進(jìn)行操作。3.連接連接是從兩個(gè)或多個(gè)關(guān)系中選取屬性間滿足一定條件的元組,組成一個(gè)新的關(guān)系?!?.3數(shù)據(jù)庫系統(tǒng)的組成
數(shù)據(jù)庫系統(tǒng)包括:數(shù)據(jù)庫DataBase(一般概念)數(shù)據(jù)庫管理系統(tǒng)DBMS
數(shù)據(jù)庫應(yīng)用系統(tǒng)DBAS數(shù)據(jù)庫系統(tǒng)包括:數(shù)據(jù)庫
(廣義)數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫應(yīng)用系統(tǒng)數(shù)據(jù)庫管理員DBA
用戶USER
數(shù)據(jù)庫DataBase
數(shù)據(jù)的倉庫。所謂數(shù)據(jù)庫,就是以一定的組織方式將相關(guān)的數(shù)據(jù)組織在一起存放在計(jì)算機(jī)存儲(chǔ)器上形成的、能為多個(gè)用戶共享的、與應(yīng)用程序彼此獨(dú)立的一組相關(guān)數(shù)據(jù)的集合。數(shù)據(jù)庫管理系統(tǒng)DBMS
(DataBaseManagementSystem)是對數(shù)據(jù)進(jìn)行定義、獲取、存儲(chǔ)、組織、操作、使用、維護(hù)和管理的軟件系統(tǒng)。數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心數(shù)據(jù)庫管理系統(tǒng)應(yīng)具有以下功能:
1數(shù)據(jù)定義功能DDL2數(shù)據(jù)操作功能DML3控制和管理功能DCL數(shù)據(jù)庫應(yīng)用系統(tǒng)DBAS
常由數(shù)據(jù)庫和應(yīng)用程序組成,大都在DBMS支持下開發(fā)。USER數(shù)據(jù)庫DBMSUSER應(yīng)用程序§1.4數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)是數(shù)據(jù)庫系統(tǒng)的一個(gè)總的框架。盡管實(shí)際的數(shù)據(jù)庫系統(tǒng)的軟件產(chǎn)品多種多樣,但絕大多數(shù)的數(shù)據(jù)庫系統(tǒng)在總的體系結(jié)構(gòu)上都具有三級(jí)模型結(jié)構(gòu)的結(jié)構(gòu)特征。
外模式三級(jí)模式概念模式內(nèi)模式見課本P11,圖1-6§1.5新一代數(shù)據(jù)庫技術(shù)發(fā)展1.分布式數(shù)據(jù)庫2.面向?qū)ο髷?shù)據(jù)庫3.多媒體數(shù)據(jù)庫4.模糊數(shù)據(jù)庫硬件OSDBMS應(yīng)用開發(fā)工具軟件應(yīng)用系統(tǒng)含數(shù)據(jù)庫的計(jì)算機(jī)系統(tǒng)構(gòu)成圖習(xí)題1、VisualFoxPro關(guān)系數(shù)據(jù)庫管理系統(tǒng)能夠?qū)崿F(xiàn)的三種基本關(guān)系運(yùn)算是。A)索引、排序、查找B)建庫、錄入、排序C)選擇、投影、聯(lián)接D)顯示、統(tǒng)計(jì)、復(fù)制2、關(guān)系數(shù)據(jù)庫系統(tǒng)中所使用的數(shù)據(jù)結(jié)構(gòu)是()A、樹B、圖C、表格D、二維表3、從數(shù)據(jù)庫的整體結(jié)構(gòu)看,數(shù)據(jù)庫系統(tǒng)采用的數(shù)據(jù)模型有()A、網(wǎng)狀模型、鏈狀模型和層次模型B、網(wǎng)狀模型、環(huán)狀模型和層次模型C、網(wǎng)狀模型、關(guān)系模型和層次模型D、結(jié)構(gòu)模型、關(guān)系模型和環(huán)狀模型4、VFP中的數(shù)據(jù)庫系統(tǒng)是()A、網(wǎng)狀B、層次C、關(guān)系D、鏈狀5、在關(guān)系數(shù)據(jù)庫中,二維表的列稱為
,二維表的行稱為
.
6、兩個(gè)表之間的關(guān)系有以下三種一對一關(guān)系、一對多關(guān)系、多對多關(guān)系。Johnson192-83-7465AlmaPaloAltoA-101Smith019-28-3746NorthRyeA-215Hayes677-89-9011MainHarrisonA-102Johnson192-83-7465AlmaPaloAltoA-201Jones321-12-3123MainHarrisonA-217Lindsay336-66-9999ParkPittsfieldA-222Smith019-28-3746NorthRyeA-210A-101500A-215700A-102400A-217750A-222700A-201900A-210900姓名身份證號(hào)碼街道城市銀行帳號(hào)銀行帳號(hào)存款余額Johnson192-83-7465AlmaPaloAltoA-101Johnson192-83-7465AlmaPaloAltoA-201選擇姓名為Johnson的記錄,形成新的關(guān)系:JohnsonA-101SmithA-125HayesA-102JohnsonA-201JonesA-217LindsayA-222SmithA-201通過投影得到的新的關(guān)系
§2.1VFP的發(fā)展簡述
美國Fox軟件公司于1984年開始先后推出FoxBASE、FoxPro?1.0、FoxPro?2.0。1992年Microsoft公司收購了Fox軟件公司后,先后推出了FoxPro?2.5、2.6。1995年開始,Microsoft公司先后推出了適用于Windows環(huán)境的VisualFoxPro?3.0(簡稱VFP?3.0)、VFP?5.0、VFP?6.0,其中VFP?5.0和VFP?6.0既適用于Windows95/?98操作系統(tǒng)環(huán)境,又適用于WindowsNT?3.5/4.0操作系統(tǒng)環(huán)境。本書的內(nèi)容是基于Windows95/98環(huán)境下的VFP?6.0中文版。
§2.2VFP功能與特點(diǎn)
1可視化開發(fā)工具
2增強(qiáng)的項(xiàng)目管理器
3豐富的開發(fā)工具
4面向?qū)ο蟮某绦蛟O(shè)計(jì)
5良好的兼容性
6多用戶訪問
7比較完善的數(shù)據(jù)字典
8支持網(wǎng)絡(luò)應(yīng)用VFP主要是針對中小型企業(yè)和個(gè)人用戶相關(guān)的DBMS產(chǎn)品:MicrosoftAccess,SQLserverOracle,Sybase,Informix,DB2,……§2.3.安裝環(huán)境
在安裝VisualFoxPro6.0之前,我們要了解VisualFoxPro6.0的硬件和軟件必備環(huán)境,做好安裝前的準(zhǔn)備工作。
IBM兼容機(jī),具有8048650MHz以上處理器。
鼠標(biāo)。
內(nèi)存為16MB。
硬盤的最小空間為15MB;用戶自定義安裝需要100MB
硬盤空間;完全安裝所有聯(lián)機(jī)文檔需要240MB硬盤空間。
VGA或更高分辯的顯示器。
對于網(wǎng)絡(luò)操作,需要有一個(gè)與Windows兼容的網(wǎng)絡(luò)和一個(gè)網(wǎng)絡(luò)服務(wù)器。
Windows98或WindowsNT以上操作系統(tǒng)的支持。§2.4啟動(dòng)與退出VFP2.4.1.啟動(dòng)VisualFoxPro6.0
幾種方法
(1)從“開始”菜單啟動(dòng)
“開始”“程序”MicrosoftVisualFoxPro6.0選項(xiàng)。
(2)從資源管理器中啟動(dòng)
利用資源管理器找到\VFP98目錄,再從\VFP98目錄下找到VFP6圖標(biāo),雙擊左鍵。
(3)從“運(yùn)行”對話框中啟動(dòng)
打開“開始”菜單,進(jìn)入“運(yùn)行”窗口;在對話框中輸\VFP6.EXE。2.4.2.退出VisualFoxPro6.0
幾種方法
(1)在VFP主菜單下,打開“文件”菜單,選擇“退出”選項(xiàng);
(2)按Alt+F4組合鍵;
(3)按Ctrl+Alt+Del組合鍵,進(jìn)入“關(guān)閉程序”窗口,按“結(jié)束任務(wù)”按鈕;
(4)在“命令”窗口,輸入命令QUIT,并按回車。§2.5VFP應(yīng)用開發(fā)環(huán)境VisualFoxPro是一個(gè)關(guān)系數(shù)據(jù)庫的操作和應(yīng)用程序開發(fā)的集成環(huán)境,它的用戶界面的窗口外觀和工作方式,與Windows及Windows的其他應(yīng)用程序類同。
WIMP界面即:Windows,Icons,Menus和Pointingdevice
標(biāo)題欄菜單欄工具欄
狀態(tài)欄工作區(qū)域命令窗口1.標(biāo)題欄
標(biāo)題欄位于屏幕界面的第一行,它包含系統(tǒng)程序圖標(biāo)、主屏幕標(biāo)題、最小化按鈕、最大化按鈕和關(guān)閉按鈕五個(gè)對象。
(1)系統(tǒng)程序圖標(biāo)
單擊系統(tǒng)程序圖標(biāo),可以打開窗口控制菜單,在窗口控制菜單下,可以移動(dòng)屏幕并改變屏幕的大小;雙擊系統(tǒng)程序圖標(biāo),可以關(guān)閉系統(tǒng)。
(2)主屏幕標(biāo)題
主屏幕標(biāo)題是系統(tǒng)定義的該窗口名稱。
(3)最小化按鈕
單擊“最小化”按鈕,可將系統(tǒng)的屏幕縮小成圖標(biāo),并存放在Windows桌面的底部的任務(wù)欄中。
(4)最大化按鈕
單擊“最大化”按鈕,可將系統(tǒng)的屏幕定義為最大窗口。
(5)關(guān)閉按鈕
單擊“關(guān)閉”按鈕,可將關(guān)閉VisualFoxPro系統(tǒng)。
2.主菜單欄
主菜單欄位于屏幕的第二行,它包含:文件、編輯、顯示、格式、工具、程序、窗口和幫助八個(gè)菜單選項(xiàng)。當(dāng)單擊其中一個(gè)菜單選項(xiàng)時(shí),就可以打開一個(gè)對應(yīng)的“下拉式”菜單,在該“下拉式”菜單下,通常還有若干個(gè)子菜單選項(xiàng),當(dāng)選擇其中一個(gè)子菜單選項(xiàng)時(shí),就可以執(zhí)行一個(gè)操作。
3.工具欄
初次打開VisualFoxPro時(shí),工具欄位于菜單欄下面,用戶可以根據(jù)需要用鼠標(biāo)將它托到任意位置。
VisualFoxPro系統(tǒng)提供了不同環(huán)境下的十一種常用的工具欄,它們是:常用工具欄、布局工具欄、表單控件工具欄、表單設(shè)計(jì)器工具欄、查詢設(shè)計(jì)器工具欄、視圖設(shè)計(jì)器工具欄、數(shù)據(jù)庫設(shè)計(jì)器工具欄、報(bào)表控件工具欄、報(bào)表設(shè)計(jì)器工具欄、調(diào)色板工具欄和打印預(yù)覽工具欄。
4.命令窗口
命令窗口位于菜單欄和狀態(tài)欄之間,是VisualFoxPro系統(tǒng)命令執(zhí)行、編輯的窗口。在命令窗口中,可以輸入命令實(shí)現(xiàn)對數(shù)據(jù)庫的操作管理;也可以用各種編輯工具對操作命令進(jìn)行修改、插入、刪除、剪切、拷貝、粘貼等操作;還可以在此窗口建立命令文件及運(yùn)行命令文件。命令窗口的使用可以通過“窗口”菜單控制。在“窗口”菜單下,選擇“隱藏”,可以關(guān)閉命令窗口。選擇“命令窗口”,可以彈出命令窗口。
5.工作區(qū)
在工具欄與狀態(tài)行之間的一大塊空白區(qū)域是系統(tǒng)工作區(qū),各種工作窗口將在這里展開。
6.狀態(tài)行
狀態(tài)行位于屏幕的最底部,用于顯示某一時(shí)刻的管理數(shù)據(jù)的工作狀態(tài)。狀態(tài)行可以隨時(shí)關(guān)閉或重新打開。如果Setstatus是Off狀態(tài),屏幕上不出現(xiàn)狀態(tài)行;如果Setstatus是On狀態(tài),屏幕上有狀態(tài)行出現(xiàn)。
如果當(dāng)前工作區(qū)中,沒有表文件打開,狀態(tài)行的內(nèi)容是空白;如果當(dāng)前工作區(qū)中,有表文件打開,狀態(tài)行顯示(表名、表所在的數(shù)據(jù)庫名、表中當(dāng)前記錄的記錄號(hào)、表中的記錄總數(shù)、表中的當(dāng)前記錄的共享狀態(tài))等內(nèi)容。
主窗口包括:標(biāo)題欄、菜單欄、普通工具欄、狀態(tài)欄、命令窗口和工作區(qū)域。當(dāng)進(jìn)入不同的開發(fā)界面時(shí),還會(huì)出現(xiàn)項(xiàng)目管理器窗口、表單設(shè)計(jì)窗口、菜單設(shè)計(jì)窗口、屬性窗口等設(shè)計(jì)界面。關(guān)于VFP的菜單、工具欄、向?qū)?、生成器、設(shè)計(jì)器、項(xiàng)目管理器等,參見課本。以后結(jié)合應(yīng)用再作具體介紹。
§2.6設(shè)置工作環(huán)境“工具”菜單中“選項(xiàng)”“文件位置”確定(臨時(shí)有效)設(shè)置為默認(rèn)值(永久有效)初學(xué)者留意:
F1聯(lián)機(jī)幫助快捷萊單(鼠標(biāo)右鍵)§2.7項(xiàng)目管理器項(xiàng)目管理器是VFP的“控制中心”,可以用項(xiàng)目管理器處理數(shù)據(jù),組織、管理各種對象和文件,在建立表、數(shù)據(jù)庫、查詢、表單、報(bào)表以及應(yīng)用程序時(shí),都可以通過項(xiàng)目管理器完成。項(xiàng)目管理器的打開方式:1.用MODIFYPROJECT命令
2.用資源管理器(.pjx)
§2.8向?qū)?、生成器和設(shè)計(jì)器(1)向?qū)В╓izards)VFP系統(tǒng)為用戶提供許多功能強(qiáng)大的向?qū)АS脩敉ㄟ^系統(tǒng)提供的向?qū)гO(shè)計(jì)器,不用編程就可以創(chuàng)建良好的應(yīng)用程序界面并完成許多對數(shù)據(jù)庫的操作。例如,利用[表向?qū)建立數(shù)據(jù)表,利用[表單向?qū)建立表單;利用[查詢向?qū)建立標(biāo)準(zhǔn)查詢等。
(課本P22表1.2)(2)生成器(Builders)VisualFoxPro系統(tǒng)提供的生成器,可以簡化創(chuàng)建和修改用戶界面程序的設(shè)計(jì)過程,提高軟件開發(fā)的質(zhì)量。每個(gè)生成器都由一系列選項(xiàng)卡組成,允許用戶訪問并設(shè)置所選對象的屬性。用戶可以將生成器生成的用戶界面直接轉(zhuǎn)換成程序代碼,把用戶從逐條編寫程序、反復(fù)調(diào)試程序的工作中解放出來。
(課本P24表1.4)(3)設(shè)計(jì)器(Designers)VisualFoxPro系統(tǒng)提供的設(shè)計(jì)器,為用戶提供了一個(gè)友好的圖形界面。用戶可以通過它創(chuàng)建并定制數(shù)據(jù)表結(jié)構(gòu)、數(shù)據(jù)庫結(jié)構(gòu)、報(bào)表格式和應(yīng)用程序組件等。
(課本P23表1.3)§2.9VFP的文件類型:擴(kuò)展名文件類型擴(kuò)展名文件類型.app生成的應(yīng)用程序.frx報(bào)表.exe可執(zhí)行程序.frt報(bào)表備注.pjx項(xiàng)目.lbx標(biāo)簽.pjt項(xiàng)目備注.lbt標(biāo)簽備注.dbc數(shù)據(jù)庫.prg程序.dct數(shù)據(jù)庫備注.fxp編譯后的程序.dcx數(shù)據(jù)庫索引.err編譯錯(cuò)誤.dbf表.mnx菜單.fpt表備注.mnt菜單備注.cdx復(fù)合索引.mpr生成的菜單程序.idx單索引.mpx編譯后的菜單程序.qpr生成的查詢程序.vcx可視類庫.qpx編譯后的查詢程序.vct可視類庫備注.scx表單.txt文本.sct表單備注.bak備份文件§3.1數(shù)據(jù)類型數(shù)據(jù)是反映客觀事物屬性的記錄。通常分為數(shù)值型和字符型兩種基本類型。數(shù)據(jù)類型一旦被定義,就確定了其存儲(chǔ)方式和使用方式。VisualFoxPro系統(tǒng)將數(shù)據(jù)細(xì)化分為以下十三種類型。
(1)字符型
(Character)字符型(C型)數(shù)據(jù)可以包含任何可顯示的ASCII碼字符,包括字母、數(shù)字、漢字、符號(hào)、空格等,長度范圍是0~254個(gè)字符,使用時(shí)必須用定界符單引號(hào),雙引號(hào),方括號(hào)括起來。
‘’、“”、[]
(2)數(shù)值型
(Numeric)數(shù)值型(N型)是由數(shù)字(0~9)、小數(shù)點(diǎn)和正負(fù)號(hào)組成。最大長度為20位(包括+、-和小數(shù)點(diǎn))。
(3)整型
(Integer)整型(N型)表示整數(shù),僅用于字段變量,數(shù)據(jù)占4個(gè)字節(jié)。(4)浮點(diǎn)型
(Float)浮點(diǎn)型(N型)與數(shù)值型等價(jià),為與其它軟件的兼容而設(shè)。(5)雙精度型
(Double)雙精度型(N型)是更高精度的數(shù)值型數(shù)據(jù),只用于字段變量,固定占用8個(gè)字節(jié),并采用固定長度浮點(diǎn)格式存儲(chǔ)。(6)貨幣型
(Currency)貨幣型(Y型)用來表示貨幣值,系統(tǒng)默認(rèn)的貨幣符號(hào)是“$”
。
(7)日期型
(Data)日期型(D型)用于表示日期,用默認(rèn)格式{mm/dd/yyyy}來表示,長度固定為8位,yyyy表示年,占4字節(jié),mm表示月,占2字節(jié),dd表示日,占2字節(jié)。(8)日期時(shí)間型
(DataTime)日期時(shí)間型數(shù)據(jù)是描述日期和時(shí)間的數(shù)據(jù)。
其默認(rèn)格式為{mm/dd/yyyyhh:mm:ss}。
其中yyyy代表年,前兩個(gè)mm代表月,dd代表日,hh代表小時(shí),后兩個(gè)mm代表分鐘,ss代表秒,長度固定為8位。
(9)邏輯型
(Logical)邏輯型數(shù)據(jù)(Logic)是描述客觀事物真假的數(shù)據(jù),用于表示邏輯判斷結(jié)果。
邏輯型數(shù)據(jù)只有真(.T.)和假(.F.)兩種值,長度固定為1位。(10)備注型
(Memo)備注型數(shù)據(jù)(Memo)用于存放較長的字符型數(shù)據(jù)類型??梢园阉闯墒亲址蛿?shù)據(jù)的特殊形式。
備注型字段固定占4個(gè)字節(jié),用來存儲(chǔ)一個(gè)指向備注文件(.FPT)的指針,實(shí)際數(shù)據(jù)長度僅受限于現(xiàn)有的磁盤空間。(11)通用型
(General)通用型(G型)用于存儲(chǔ)OLE對象,可以是電子表格、文檔、圖片等。僅適用于表中的字段,固定占4個(gè)字節(jié),實(shí)際數(shù)據(jù)長度僅受限于現(xiàn)有的磁盤空間。(12)字符型(二進(jìn)制)與字符類相似,但若代碼頁(不同語系代碼)改變時(shí),其值并不會(huì)隨之改變,即VFP不會(huì)自動(dòng)轉(zhuǎn)換成相應(yīng)國家的語系。
(13)備注型(二進(jìn)制)與字符型(二進(jìn)制)一樣,當(dāng)代碼頁改變時(shí),其值不會(huì)隨之改變。
§3.2數(shù)據(jù)存儲(chǔ)類型(常量、變量)
3.2.1常量
在數(shù)據(jù)處理過程中其值不發(fā)生變化的量叫常量。1.數(shù)值型(N型)數(shù)值型常量是由數(shù)字0—9、小數(shù)點(diǎn)、正負(fù)號(hào)和E(科學(xué)計(jì)數(shù)法)組成的數(shù)值。如整數(shù):100,-35
小數(shù):2.54358
科學(xué)計(jì)數(shù)法如:1.2E+5表示1.2乘以10的5次方。
0.3926E1,2.7E02
2.字符型(C型)字符型常量是由“
”、‘
’、[]括起來的字符或字符串。例如,“ABCD”、’No_4’、[北京]、“I’mastudent”等。注意:引號(hào)和括號(hào)必須是英文字符3.
邏輯型(L型)只有邏輯“真”值和邏輯“假”值兩個(gè)值,真:.T.、.t.、.Y.、.y.
假:.F.、.f.、.N.、.n.4.貨幣型(Y型)貨幣型常數(shù)是以“$”作為前綴的數(shù)值,如$986.35、$1234.5678。保留四位小數(shù)如:$231.12345,實(shí)際在計(jì)算機(jī)里存放的是:$231.12355.日期型(D型)日期常量是用{}括起來的日期形式的常量。如{10/01/1992},{10/01/92},{10-01-92}。嚴(yán)格的日期格式Y(jié)MD(VFP默認(rèn)){^yyyy-mm-dd}或{^yyyy/mm/dd}。如{^2000-09-20},{^2000/10/01}。6.日期時(shí)間型(T型)日期時(shí)間型常量也用{}括起來表示,如{10/01/928:45}嚴(yán)格的日期時(shí)間格式為:
{^yyyy-mm-dd[hh[:mm[:ss]][a|p]]}或
{^yyyy/mm/dd[hh[:mm[:ss]][a|p]]}
如{^2000-09-208:45}2.3.2
變量
在命令操作和程序運(yùn)行過程中其值允許變化的量稱為變量。
一、內(nèi)存變量
定義內(nèi)存變量時(shí)應(yīng)取名并賦初值,變量建立后存儲(chǔ)于內(nèi)存中,并可以改變其值,直到清除該變量。
內(nèi)存變量的命名規(guī)則:
變量名可以由字母、數(shù)字、下劃線和漢字組成,但第一個(gè)字符不可以是數(shù)字,至多128個(gè)字符,不可與系統(tǒng)保留字同名。
內(nèi)存變量的定義和賦值
在內(nèi)存變量賦值同時(shí),也定義了內(nèi)存變量及數(shù)據(jù)類型。[格式1]STORE<表達(dá)式>TO<內(nèi)存變量表>[格式2]<內(nèi)存變量>=<表達(dá)式>例:NAME="李華"STORE5*4TOA,B,C?NAME?A?NAME??'同志'?'NAME=',NAME結(jié)果:李華20李華同志NAME=李華二、數(shù)組變量數(shù)組:按一定順序排列的一組內(nèi)存變量。
“先定義后使用如定義:DIMENSION|DECLAREa(2,3),b(4)
賦值:a=4,b(1)=“foxpro”a(2,1)=3等價(jià)a(4)=3三、字段變量表的各個(gè)字段都是字段變量use學(xué)生表?學(xué)號(hào)go5?姓名內(nèi)存變量和字段變量同名時(shí):字段變量優(yōu)先,若要顯示內(nèi)存變量,用?m.編號(hào)或?m->編號(hào)四、記錄記錄是表中的一行字段的集合。五、對象對象是構(gòu)成程序的基本單位和運(yùn)行實(shí)體。§3.3函數(shù)函數(shù)是系統(tǒng)內(nèi)部預(yù)先編制好的一組程序,分別實(shí)現(xiàn)某些特定的運(yùn)算或操作。函數(shù)的一般調(diào)用形式:<函數(shù)名>([<參數(shù)1>,<參數(shù)2>,……])其中函數(shù)名是系統(tǒng)規(guī)定的,參數(shù)可以是一個(gè)或多個(gè),也可為空,即:函數(shù)名(),但圓括號(hào)不能省略。
VFP提供了200余種函數(shù),常用函數(shù)P50表2.7~表2.11。按功能可劃分為:數(shù)學(xué)函數(shù)、字符串函數(shù)、日期和時(shí)間函數(shù)、類型轉(zhuǎn)換函數(shù)、測試函數(shù)。1、數(shù)學(xué)函數(shù)(數(shù)值函數(shù))
(1)求絕對函數(shù)ABS
格式:ABS(〈數(shù)值表達(dá)式〉)
?ABS(-4)結(jié)果為4
(2)求整函數(shù)INT
格式:INT(〈數(shù)值表達(dá)式〉)
?INT(4.8)結(jié)果為4
(3)四舍五入函數(shù)ROUND
格式:ROUND(〈數(shù)值表達(dá)式〉,〈保留小數(shù)位〉)
功能:按保留小數(shù)位指定的位數(shù)對〈數(shù)值表達(dá)式〉的數(shù)值進(jìn)行四舍五入。
?ROUND(3.14159,3)→3.142
?ROUND(3.14159,0)→3(4)指數(shù)函數(shù)EXP、平方根函數(shù)SQRT、
格式:EXP|SQRT(〈數(shù)值表達(dá)式〉)
?EXP(2)→7.39
?SQRT(9)→3
(5)取模(求余數(shù))函數(shù)MOD
格式:MOD(〈數(shù)值表達(dá)式1〉,〈數(shù)值表達(dá)式2〉)
功能:取〈數(shù)值表達(dá)式1〉除以〈數(shù)值表達(dá)式2〉的余數(shù)。?MOD(20,3)→2(6)求最大值MAX、最小值MIN
格式:MAX|MIN(〈表達(dá)式1〉,〈表達(dá)式2〉)
功能:求〈表達(dá)式1〉和〈表達(dá)式2〉中的大者、小者。2、字符串函數(shù)
(1)判子字符串位置AT
格式:AT(〈字符表達(dá)式1〉,〈字符表達(dá)式2〉,〈數(shù)值表達(dá)式〉)
功能:求〈字符表達(dá)式1〉在〈字符表達(dá)式2〉中第〈數(shù)值表達(dá)式〉次出現(xiàn)的起始位置。〈數(shù)值表達(dá)式〉默認(rèn)值為1。
說明:①若〈字符表達(dá)式2〉中不包含〈字符表達(dá)式1〉,則函數(shù)值為零;
②大小寫字母在檢索中視為不同。?AT("OK","COMPUTEROKOK",2)→12?AT("數(shù)據(jù)","計(jì)算機(jī)數(shù)據(jù)管理系統(tǒng)")→7
?AT("BOOK","COMPUTER")→0
(2)求子串函數(shù)SUBSTR
格式:SUBSTR〈字符表達(dá)式〉,〈起始位置〉[,〈長度〉]
功能:對〈字符表達(dá)式〉從給定的〈起始位置〉開始截取指定長度的字符,生成一個(gè)新的字符串;
?SUBSTR("110102490217041",7,6)→490217(3)取左、右子串函數(shù)
格式:LEFT|RIGHT(〈字符表達(dá)式〉,〈數(shù)值表達(dá)式〉)
功能:LEFT從〈字符表達(dá)式〉左邊截取由〈數(shù)值表達(dá)式〉的值指定的字符,生成一個(gè)新的字符串;
RIGHT從〈字符表達(dá)式〉右邊截取由〈數(shù)值表達(dá)式〉的值指定的字符,生成一個(gè)新的字符串;?LEFT('FOXPRO數(shù)據(jù)庫管理系統(tǒng)',6)→FOXPRO
?RIGHT('FOXPRO數(shù)據(jù)庫管理系統(tǒng)',14)→數(shù)據(jù)庫管理系統(tǒng)(4)ALLTRIM刪除首部和尾部空格格式:ALLTRIM(〈字符表達(dá)式〉)
功能:ALLTRIM刪除字符串首部和尾部的空格?ALLTRIM(“man”)→man
(5)構(gòu)造空格函數(shù)SPACE
格式:SPACE(〈數(shù)值表達(dá)式〉)
功能:產(chǎn)生由〈數(shù)值表達(dá)式〉的值決定的空格數(shù)。?“姓名”+SPACE(3)+“李寧”
→姓名李寧(6)字符串長度函數(shù)LEN
格式:LEN(〈字符表達(dá)式〉)
功能:測定字符串的長度(字符個(gè)數(shù))。?LEN('FOXPRO數(shù)據(jù)庫管理系統(tǒng)')→20(7)大小寫字母轉(zhuǎn)換函數(shù)LOWER|UPPER
格式:(〈字符表達(dá)式〉)
功能:LOWER把〈字符表達(dá)式〉中的大寫字母轉(zhuǎn)換為小寫字母;
UPPER把〈字符表達(dá)式〉中的小寫字母轉(zhuǎn)換為大寫字母。?LOWER([FoxPro])→foxpro
?UPPER([FoxPro])→FOXPRO
3、日期和時(shí)間函數(shù)
(1)系統(tǒng)日期函數(shù)DATE
格式:DATE()
?DATE()→99/11/15
(2)系統(tǒng)時(shí)間函數(shù)TIME
格式:TIME()
?TIME()→08:50:43
(3)年、月、日函數(shù)YEAR|MONTH|DAY
格式:YEAR|MONTH|DAY(〈日期表達(dá)式〉)
功能:從〈日期表達(dá)式〉中求出年份、月份、日份的數(shù)值。
?DATE()→99/11/15
?YEAR(DATE())→1999
?MONTH(DATE())→11
?DAY(DATE())→15
4、類型轉(zhuǎn)換函數(shù)
(1)字符轉(zhuǎn)換為數(shù)值函數(shù)VAL
格式:VAL(〈字符表達(dá)式〉)
功能:將字符型數(shù)據(jù)轉(zhuǎn)換為數(shù)值型數(shù)據(jù)。
說明:
①若<字符表達(dá)式>由數(shù)字字符和小數(shù)點(diǎn)組成,則轉(zhuǎn)換成相應(yīng)的數(shù)值,但只保留兩位小數(shù),其余小數(shù)四舍五入。
②若<字符表達(dá)式>由非數(shù)字字符打頭,則轉(zhuǎn)換為0.00。
③若<字符表達(dá)式>由數(shù)字字符打頭,且混有非數(shù)字字符時(shí),則轉(zhuǎn)換到第一個(gè)非數(shù)字字符。?VAL("1234.5678")→1234.57
?VAL("FoxPro")→0.00
?VAL("1234FOX.5678")→1234.00(2)數(shù)值轉(zhuǎn)換為字符函數(shù)STR
格式:STR(〈數(shù)值表達(dá)式〉[,〈長度〉][,〈小數(shù)位數(shù)〉]))
功能:把〈數(shù)值表達(dá)式〉的運(yùn)算結(jié)果轉(zhuǎn)換為指定長度的字符串。
?STR(1234.5678,7,2)→‘1234.57’
(3)字符轉(zhuǎn)換為日期函數(shù)CTOD
格式:CTOD(〈字符表達(dá)式〉)
功能:將符合yy/mm/dd、mm/dd/yy日期格式的字符串轉(zhuǎn)換為相應(yīng)日期。
?CTOD(‘99/11/15’)→99/11/15
(4)日期轉(zhuǎn)換為字符函數(shù)DTOC
格式:DTOC(〈日期表達(dá)式〉)
功能:將<日期表達(dá)式>轉(zhuǎn)換為相應(yīng)的字符串。
說明:按mm/dd/yy格式轉(zhuǎn)換;
?DTOC(DATE())→‘99/11/15’
(5)ASCII碼值轉(zhuǎn)換為字符函數(shù)CHR
格式:CHR(〈數(shù)值表達(dá)式〉)
功能:將<數(shù)值表達(dá)式>所表示的ASCII碼值轉(zhuǎn)換為相應(yīng)的字符。
?CHR(65),CHR(97),CHR(48)→Aa0
(6)字符轉(zhuǎn)換成ASCII碼值函數(shù)ASC
格式:ASC(〈字符表達(dá)式〉)
功能:返回<字符表達(dá)式>最左邊的一個(gè)字符的ASCII碼值。
?ASC('A'),ASC('a'),ASC('0')→6597485、測試函數(shù)
(1)記錄號(hào)測試函數(shù)RECNO
格式:RECNO([數(shù)值型表達(dá)式])
功能:給出<數(shù)值表達(dá)式>指定的工作區(qū)中打開的數(shù)據(jù)庫的當(dāng)前記錄號(hào)。
(2)文件起始測試函數(shù)BOF
格式:BOF([數(shù)值型表達(dá)式])
功能:測試<數(shù)值表達(dá)式>指定的工作區(qū)中庫文件記錄指針是否指向起始位置。是函數(shù)值為邏輯真(.T.),否則為假(.F.)。(3)文件結(jié)束測試函數(shù)EOF
格式:EOF([數(shù)值型表達(dá)式])
功能:測試<數(shù)值表達(dá)式>指定工作區(qū)中庫文件記錄指針是否指向結(jié)束位置。是函數(shù)值為邏輯真(.T.),否則函數(shù)值為假(.F.)。(4)文件測試函數(shù)FILE
格式:FILE(〈文件名〉)
功能:測試<字符表達(dá)式>指定的磁盤文件是否存在,若存在,函數(shù)值為邏輯真(.T.),否則函數(shù)值為假(.F.)。
(5)記錄測試函數(shù)RECOUNT
格式:RECOUNT([數(shù)值型表達(dá)式])
功能:測試<數(shù)值表達(dá)式>指定的工作區(qū)中數(shù)據(jù)庫的記錄個(gè)數(shù)。(6)數(shù)據(jù)類型測試函數(shù)TYPE
TYPE(“〈字符表達(dá)式〉”)返回表達(dá)式類型,如N,C,D,L等?TYPE("date()")?TYPE(“[字符表達(dá)式]”)?TYPE(".t.")(7)檢索測試函數(shù)FOUND
與LOCATE,SEEK,F(xiàn)IND,CONTINUE等同用,查到返回.T.,否則.F.(8)庫文件名測試函數(shù)DBF
返回當(dāng)前工作區(qū)打開的表名§3.4表達(dá)式
常量、變量、函數(shù)通過運(yùn)算符連接起來構(gòu)成表達(dá)式。VFP中的表達(dá)式有算術(shù)表達(dá)式、字符表達(dá)式、日期表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式。1.算術(shù)表達(dá)式:由常量、變量、函數(shù)和算術(shù)運(yùn)算符構(gòu)成。運(yùn)算符號(hào):()括號(hào)
**或∧乘方,例:3**2或3^2*、/乘、除
%取模(余數(shù)),例:15%4結(jié)果是3+、-加、減(單目運(yùn)算為“+”、“-”號(hào))
優(yōu)先次序同數(shù)學(xué)相同如一元二次方程的一個(gè)根:(-b+sqrt(b**2-4*a*c))/(2*a)2.字符表達(dá)式:由常量、變量、函數(shù)和字符算術(shù)運(yùn)算符構(gòu)成。字符運(yùn)算符有兩個(gè):完全鏈接(+)和去空鏈接(-)+
:將幾個(gè)字符串連接成一個(gè)新字符串。例:?"ABCD"+"EFGH"+"1234"
結(jié)果為:”ABCDEFGH1234”
-
:將第一個(gè)字符串尾部空格移到后面一個(gè)字符串末尾后,連接成一個(gè)新字符串。例:?"莆田"–"學(xué)院"+"機(jī)電系"
結(jié)果為:“莆田學(xué)院會(huì)計(jì)系”
?"莆田"-"學(xué)院"-"機(jī)電系"+"通信專業(yè)"3.日期表達(dá)式:日期及時(shí)間運(yùn)算符有“+”和“-”
日期及日期時(shí)間型表達(dá)式的運(yùn)算有三種情況:(1)兩個(gè)日期(時(shí)間)型數(shù)據(jù)相減,表示兩個(gè)日期相差天數(shù)。例:?{^2000-10-01}-{^2000-09-01}結(jié)果為30,表示兩個(gè)日期相距30天。(2)一個(gè)日期(時(shí)間)型數(shù)據(jù)加一個(gè)表示天數(shù)的數(shù)值型數(shù)據(jù),結(jié)果是一個(gè)向后推算的日期(時(shí)間)型數(shù)據(jù)。例:?{^2000-09-01}+60結(jié)果為{^2000-10-31}?{^2000-09-0117:34}+60結(jié)果為{^2000-09-0117:35}(3)一個(gè)日期(時(shí)間)型數(shù)據(jù)減一個(gè)表示天數(shù)的數(shù)值型數(shù)據(jù),結(jié)果是一個(gè)向前推算的日期(時(shí)間)型數(shù)據(jù)。例:?{^2000-09-01}–30結(jié)果為{^2000-08-02}4.關(guān)系表達(dá)式:關(guān)系表達(dá)式對同一類型的數(shù)據(jù)進(jìn)行比較運(yùn)算,比較的結(jié)果符合邏輯,其值為.T.;否則為.F.。關(guān)系運(yùn)算符為:
=、
<、
>、<=、
>=、<>或#、==、
$
等于小于大于小于等于大于等于不等于全等于子字符串比較運(yùn)算規(guī)則
①數(shù)值型數(shù)據(jù)按數(shù)值的大小比較
②字符型數(shù)據(jù)按字符從左到右比較
③日期型數(shù)據(jù)按年、月、日順序比較
④使用“=”比較字符串時(shí),系統(tǒng)默認(rèn)為非精確比較,即當(dāng)“=”左邊的字符串與右邊的字符串的前半部分或全部相當(dāng)時(shí),系統(tǒng)均認(rèn)為相等,即.T.。如:?‘ABCDE’=‘ABC’→.T.可以使用SETEXACTON|OFF命令設(shè)置精確比較或非精確比較。例:?2+3=6→.F.
?‘C1’<‘C2’→.T.
?‘ABC’==‘ABCDE’→.F.?'student'>'study'→.F.
?'Student'>'study'→.F.
?'CD'$'ABCDEF'→.T.
?'BD'$'ABCDEF'→.F.
SETEXACTOFF(非精確比較)?‘ABCDE’=‘ABC’→.T.?‘ABC’=‘ABCDE’→.F.SETEXACTON(精確比較)?‘ABCDE’=‘ABC’→.F.?‘ABC’=‘ABCDE’→.F.5.邏輯表達(dá)式:兩個(gè)或兩個(gè)以上的關(guān)系表達(dá)式,及邏輯型常量、變量、函數(shù),之間用邏輯運(yùn)算符連接起來,構(gòu)成邏輯表達(dá)式。運(yùn)算符:.NOT..AND..OR.圓點(diǎn)可以省略。運(yùn)算規(guī)則:
邏輯非(.NOT.):對(.NOT.)右邊的L型數(shù)據(jù)求反;
邏輯與(.AND.):當(dāng).AND.兩邊為真時(shí),結(jié)果才為真(.T.);
邏輯或(.OR.):當(dāng).OR.兩邊至少一個(gè)為真時(shí),結(jié)果為(.T.)。優(yōu)先次序:邏輯非→邏輯與→邏輯或
運(yùn)算結(jié)果:
.T.或.F.6.運(yùn)算的優(yōu)先順序:課本P49表3-8
算術(shù)運(yùn)算→關(guān)系運(yùn)算→邏輯運(yùn)算
()括號(hào)最優(yōu)先
例:?3>2AND5+2>5運(yùn)算結(jié)果為.T.?“A”>”B”.OR.4+3<4*3.AND.“D”>”d”
運(yùn)算結(jié)果為.F.?“Ab”>”aB”.OR..NOT.“Ab”>”aB”
運(yùn)算結(jié)果為.T.
習(xí)題1、以下數(shù)據(jù)那些不是字符型數(shù)據(jù)()A)01/01/98B)”01/01/97”C)”12345”D)”ASDF”2、備注型字段的長度固定為()A)8B)1C)4D)103、STR(109.87,7,3)的值是()A)109.87B)”109.87”C)109.870D)”109.870”4、若要將字符串“莆田學(xué)院”按豎排顯示,試用字符函數(shù)將其實(shí)現(xiàn)5、在邏輯運(yùn)算中,依照哪一個(gè)優(yōu)先級(jí)進(jìn)行運(yùn)算?()a)not-or-andb)not-and-orc)and-or-notd)or-and-not6、xs表中有10條記錄,其中2條已邏輯刪除,在VFP命令窗口輸入setdeleon,在用count命令數(shù)記錄,問共有幾條記錄?()a)2b)8c)10d)12習(xí)題7.在一對多關(guān)系中,表A的一個(gè)記錄在表B中可以有多個(gè)記錄與之對應(yīng),表B中的一個(gè)記錄在表A中()記錄與之對應(yīng)。A)最多只能有一個(gè)B)可以有二個(gè) C)也可以有多個(gè)D)一般沒有8.執(zhí)行下列操作中,不能獲得VFP幫助信息的是()。A)單擊VFP工具欄上的按鈕B)在Windows下執(zhí)行Foxhelp.chm文件C)在VFP下執(zhí)行help命令 D)從“開始”菜單上選擇“幫助”選項(xiàng)9.在VFP主菜單上,每個(gè)菜單項(xiàng)右側(cè)括號(hào)內(nèi)帶有下劃線的字母稱為()。A)快捷鍵 B)組合鍵 C)訪問鍵 D)菜單10.實(shí)現(xiàn)“打開”文件功能的快捷鍵是()。A)Alt+F B)Ctrl+N C)Ctrl+O D)Shift+Open11.關(guān)閉VFP主窗口的命令是()。A)clear B)close C)qiut D)closebox1.在桌面上創(chuàng)建VFP6.0快捷方式(分別從“開始”菜單和VFP6.EXE創(chuàng)建)。2.啟動(dòng)VFP6.0,并打開數(shù)據(jù)庫設(shè)計(jì)器工具欄。3.在VFP命令窗口中依次執(zhí)行l(wèi)iststatus和clear命令。4.隱藏VFP命令窗口,再顯示它。1.執(zhí)行A1=“計(jì)算機(jī)”命令后,再執(zhí)行?type(“A1”)命令,結(jié)果顯示()。A)A1 B)計(jì)算機(jī) C)C D)62.下面各數(shù)中,屬于常量的是()。A)–203.75 B)計(jì)算機(jī) C)T D)9/3/013.依次執(zhí)行Ab=12和aB=“VFP”命令后,再執(zhí)行?Ab+aB命令的結(jié)果是()。A)12 B)VFP C)12VFP D)VFPVFP.4.系統(tǒng)變量有70多個(gè),這些變量名都是以()開始。A)字母 B)漢字 C)下劃線 D)數(shù)字5.執(zhí)行dimensiona(5)命令后,再執(zhí)行?a(5)命令,結(jié)果顯示()。A)0 B)1 C)a(5) D).F.6.執(zhí)行?len(“VFP課程”)命令后的結(jié)果顯示()。A)“VFP課程”
B)VFP課程 C)5 D)77.執(zhí)行?left(“VFP課程”,3)命令的結(jié)果顯示是()。A)VFP B)VFP課程 C)3 D)5
§4.1表的建立表:是指存放在磁盤文件中的一張二維表。自由表:不屬于任何數(shù)據(jù)庫的表。數(shù)據(jù)庫表:包含在一個(gè)數(shù)據(jù)庫中的表。區(qū)分?jǐn)?shù)據(jù)庫表和自由表,實(shí)現(xiàn)兩者的轉(zhuǎn)換(1)建立表結(jié)構(gòu)建表分兩步驟:(2)數(shù)據(jù)的輸入
一、創(chuàng)建表的結(jié)構(gòu)
建立表結(jié)構(gòu)就是定義各個(gè)字段的屬性(字段名、字段類型、字段寬度、小數(shù)位數(shù)等)。
利用表設(shè)計(jì)器定義數(shù)據(jù)表的結(jié)構(gòu),操作方法有二種。
【方法一】
從VFP系統(tǒng)的主菜單,打開“文件”→“新建”→選擇“表”→“新建文件”→輸入新建的表名→在“表設(shè)計(jì)器”窗口,逐一定義表中所有字段名、類型、寬度和是否建立索引,完成對數(shù)據(jù)表結(jié)構(gòu)的建立。
【方法二】
命令格式:CREATE[〈表文件名〉]
通用型字段用于存儲(chǔ)多媒體數(shù)據(jù)。
通用型字段數(shù)據(jù)的輸入
打開通用型字段窗口的命令:MODIFYGENERAL<通用字段>通用型字段的數(shù)據(jù)可通過剪貼板粘貼,或通過編輯菜單的插入對象命令來插入圖形。
WINDOWS應(yīng)用程序之間交換數(shù)據(jù)的兩種方法:對象的鏈接與嵌入(ObjectLinkingandEmbedding,簡稱OLE)
通用字段數(shù)據(jù)的編輯
使用圖形編輯工具
二、表數(shù)據(jù)的輸入(注意通用型字段的操作)
通用型字段數(shù)據(jù)的刪除
通過編輯菜單→清除§4.2表的維護(hù)表結(jié)構(gòu)維護(hù)通常利用表設(shè)計(jì)器來修改表的結(jié)構(gòu),(1)用菜單調(diào)出表設(shè)計(jì)器:打開所需的表文件→從顯示菜單中調(diào)出的表設(shè)計(jì)器(2)用命令調(diào)出表設(shè)計(jì)器:USE<表文件名>MODIFYSTRUCTURE表記錄的維護(hù)表記錄的添加、修改、刪除§4.3表的維護(hù)命令
1.記錄的定位
GOTOP|BOTTOM
GO<數(shù)值表達(dá)式>
2.記錄的移位
SKIP[<數(shù)值表達(dá)式>]3.插入新記錄(在當(dāng)前記錄前或后插入)
INSERT[BLANK][BEFORE]
4.追加新記錄(在表尾追加)
APPEND[BLANK]
INSERTINTO表名[(字段1[,字段2,…])]VALUES(表達(dá)式
1[,表達(dá)式2,…])
APPENDFROM<文件名>[常用子句][其它子句]
5.邏輯刪除
(加刪除標(biāo)記)DELETE[<范圍>][for<條件>]如:deleallfor性別=“男”6.物理刪除命令
(刪除帶有刪除標(biāo)記的記錄)PACK7.記錄恢復(fù)命令(去掉刪除標(biāo)記)
RECALL[<范圍>][for<條件>]如:recallallfor性別=“男”8.物理清除所有記錄
ZAP
相當(dāng)于DELETEALL+PACK9.成批修改數(shù)據(jù)
REPLACE<字段名1>WITH<表達(dá)式1>[ADDITIVE][,<字段名2>WITH<表達(dá)式2>
[ADDITIVE]]…[范圍][FOR<條件>][WHERE<條件>]
如:usesbreplaceall價(jià)格with價(jià)格-1000
replace備注
with‘,’+編號(hào)+名稱additivefor主要設(shè)備
通過使用過濾器和字段表,可為一個(gè)表設(shè)置邏輯表,設(shè)置好后,則對該表的任何操作都一直有效,直到撤消邏輯表為止。一、過濾器設(shè)置:SETFILTERTO<條件>例:usesbsetfilterto價(jià)格>1800撤消:SETFILTERTO
二、字段表設(shè)置:SETFIELDSTO[[<字段名1>[,<字段名2>…]]|ALL
例:usesbsetfieldsto編號(hào),名稱,部門撤消:SETFIELDSOFF
§4.4邏輯表的設(shè)置§4.5表的索引1.索引的概念
索引是一種邏輯排序方法,它不改變當(dāng)前表的物理排列順序,而是按關(guān)鍵字的升序或降序建立一個(gè)與當(dāng)前表文件相對應(yīng)的索引表,表中的指針指向原表的對應(yīng)記錄。表文件中的記錄被修改或刪除時(shí),索引文件可自動(dòng)更新。2.索引的種類
(1)按擴(kuò)展名分:復(fù)合索引.CDX
單索引.IDX(2)按功能分:
普通索引:允許關(guān)鍵字重復(fù)值可作一對多永久關(guān)系中的“多方”唯一索引:允許關(guān)鍵字重復(fù)值,但輸出無重復(fù)值為與前版本兼容而設(shè)置候選索引:不允許關(guān)鍵字重復(fù)值,可用作主關(guān)鍵字,可在永久關(guān)系中建立參照完整性主索引:不允許關(guān)鍵字重復(fù)值,僅用于數(shù)據(jù)庫表,可在永久關(guān)系中建立參照完整性一張表最多只能有一個(gè)主索引(3)索引的創(chuàng)建P73
單字段的索引涉及多字段的索引§4.6數(shù)據(jù)工作期
數(shù)據(jù)工作期是一個(gè)用來設(shè)置數(shù)據(jù)工作環(huán)境的交互操作窗口??纱蜷_的表及其索引,建立多個(gè)表之間的關(guān)聯(lián)等。
利用數(shù)據(jù)工作期來建立環(huán)境還有以下優(yōu)點(diǎn):
(1)用命令來建立環(huán)境需有一定的經(jīng)驗(yàn),而數(shù)據(jù)工作期窗口對操作有向?qū)ё饔?,比較方便。
(2)在數(shù)據(jù)工作期設(shè)置的環(huán)境可以作為視圖文件保存起來,需要時(shí)將視圖文件打開就能恢復(fù)它所保存的環(huán)境。一、數(shù)據(jù)工作期窗口
例3-9二、視圖文件數(shù)據(jù)工作期設(shè)置的環(huán)境可以作為視圖文件保存,以便在需要時(shí)恢復(fù)它所保存的環(huán)境。
文件名.VUE
1、視圖文件的建立
(1)菜單操作
(2)命令操作
CREATEVIEW<視圖文件名>
2、視圖文件的打開打開視圖文件意味著恢復(fù)環(huán)境,相當(dāng)于重新執(zhí)行一系列先前設(shè)置的命令。(1)菜單操作
(2)命令操作
SETVIEWTO<視圖文件名>
三、工作區(qū)
1、工作區(qū):
VFP的工作區(qū)號(hào):1~32767,其中1-10→A-J(工作區(qū)別名)
2、表別名
(1)VFP自動(dòng)使用文件名作為默認(rèn)表別名。
(2)可用USE<文件名>ALIAS<別名>來指定表別名。
3、工作區(qū)的使用
SELECT<工作區(qū)號(hào)>∣<別名>
&&指定要打開表的工作區(qū)號(hào)
SELECT0
&&選定當(dāng)前尚未使用的最小號(hào)工作區(qū)
SELECT()
&&返回當(dāng)前工作區(qū)號(hào)
別名.字段名
&&引用其它工作區(qū)中打開的表的字段
USE<表名>IN<工作區(qū)號(hào)>∣<別名>&&在指定的工作區(qū)打開表,但不改變當(dāng)前工作區(qū)
四、表的關(guān)聯(lián)
1、關(guān)聯(lián)的概念
所謂關(guān)聯(lián),就是令不同工作區(qū)的記錄指針建立一種臨時(shí)的聯(lián)動(dòng)關(guān)系,使一個(gè)表的記錄指針移動(dòng)時(shí)另一個(gè)表的記錄指針能隨之移動(dòng)。
關(guān)聯(lián)條件:
(1)建立關(guān)聯(lián)的兩個(gè)表,一為父表,一為子表。父表記錄指針的移動(dòng),會(huì)使子表記錄指針自動(dòng)移到滿足關(guān)聯(lián)條件的記錄上。
(2)必須先為子表的字段表達(dá)式建立索引。
多一關(guān)系:父表有多條記錄對應(yīng)子表中的一條記錄
一多關(guān)系:父表的一條記錄對應(yīng)子表中的多條記錄2、在數(shù)據(jù)工作期窗口建立關(guān)聯(lián)
(1)一般步驟課本P84頁
(2)例3-10
3、用命令來建立關(guān)聯(lián)(1)建立關(guān)聯(lián)(一父表可與一個(gè)或多個(gè)子表關(guān)聯(lián))
SETRELATIONTO[<表達(dá)式1>INTO<別名1>,…,
<表達(dá)式N>INTO<別名N>][ADDITIVE]
課本P87頁
(2)解除關(guān)聯(lián):
SETRELATIONTO
(3)說明一多關(guān)系:
SETSKIPTO[<表別名1>[,<表別2>]…]
(4)取消一多關(guān)系:
SETSKIPTO習(xí)題一、選擇題1.不能打開當(dāng)前表編輯窗口的命令是()。A)append B)change C)edit D)replace.2.對于自由表,1個(gè)字段名最少需要1個(gè)字符,最多不能超過()個(gè)字符。A)2 B)5 C)10 . D)2543.基本上是由數(shù)碼組成的學(xué)號(hào)或電話號(hào)碼,設(shè)計(jì)結(jié)構(gòu)時(shí),一般采用()數(shù)據(jù)類型。A)字符型 B)數(shù)值型 C)備注型 D)序號(hào)型
4.在表文件中,如果包含有2個(gè)備注型字段和1個(gè)通用型字段,則創(chuàng)建表文件后,VFP將自動(dòng)建立()個(gè)FPT文件。A)0 B)1. C)2 D)35.在設(shè)計(jì)表結(jié)構(gòu)時(shí),允許用戶定義字段寬度的數(shù)據(jù)類型是()。A)數(shù)值型. B)日期型 C)邏輯型 D)備注型6.不能關(guān)閉當(dāng)前表文件的命令是()。A)browse. B)use C)colsetable D)clearall7.如果要以獨(dú)占方式打開db2.dbf表,應(yīng)使用的命令是()。A)usedb2all B)usedb2lock C)usedb2sharedD)usedb2exclusive8.對于當(dāng)前表來說,依次執(zhí)行List命令和?Eof()命令后,最后顯示的內(nèi)容是()。A)1 B)10 C).T. . D).F.9.物理刪除當(dāng)前表中所有記錄的命令是()。A)deleteall B)pack C)recallall D)zap10.在當(dāng)前表中,如果“金額=數(shù)量*單價(jià)”,則可用()命令自動(dòng)填寫所有記錄的“金額”字段值。A)browse金額=數(shù)量*單價(jià) B)replaceallje=sl*djC)replaceall金額with數(shù)量*單價(jià) D)replacealljewithsl*dj11.如果在第1、2、5工作區(qū)中分別打開一個(gè)表,則執(zhí)行usestu23in0命令后,stu23.dbf表打開在()工作區(qū)中。A)0 B)1 C)3 . D)612.對82年出生而且是團(tuán)員的記錄(出生日期,birth,D;是否團(tuán)員,member,L),建立篩選條件的命令是()。
A)setfiltertobirth=1982andmember=.T. B)setfiltertoyear(birth)=1982andmember.C)locateforbirth=1982andmember=.T. D)indexonbirth=1982andmember=.T.tostu913.項(xiàng)目文件的默認(rèn)擴(kuò)展名是()。
A)item B)dbc C)dbf D)pjx.14.如果要在項(xiàng)目中創(chuàng)建程序文件,應(yīng)該選用()選項(xiàng)卡。
A)數(shù)據(jù) B)文檔 C)類 D)代碼.15.如果要打開“數(shù)據(jù)庫設(shè)計(jì)器”工具欄,可以選擇()菜單
選擇“工具欄”進(jìn)行操作。
A)文件 B)顯示. C)格式 D)工具
§4.1數(shù)據(jù)庫一、數(shù)據(jù)庫的基本概念
為減少數(shù)據(jù)的冗余,保護(hù)數(shù)據(jù)的完整性,數(shù)據(jù)庫集中了一系列相互具有數(shù)據(jù)聯(lián)系的表,并且各表之間建立了若干固定的關(guān)系(關(guān)聯(lián))。一個(gè)數(shù)據(jù)庫包括:數(shù)據(jù)庫表本地視圖、遠(yuǎn)程視圖連接、存儲(chǔ)過程二、用數(shù)據(jù)庫設(shè)計(jì)器設(shè)計(jì)數(shù)據(jù)庫
P109例3-26
數(shù)據(jù)庫設(shè)計(jì)器
CREATEDATABASE<數(shù)據(jù)庫名>
三、用項(xiàng)目管理器管理數(shù)據(jù)
項(xiàng)目管理器用于組織和管理項(xiàng)目中的文件,即建立、修改、查看這些文件,可作為應(yīng)用系統(tǒng)開發(fā)維護(hù)的控制中心。P110例3-27創(chuàng)建命令:CREATEPROJECT<項(xiàng)目名>
打開命令:MODIFYPROJECT<項(xiàng)目名>§4.2數(shù)據(jù)詞典
數(shù)據(jù)詞典用于保存對數(shù)據(jù)庫中各種數(shù)據(jù)的定義或設(shè)置信息,包括表的屬性、字段屬性、記錄規(guī)則、表間關(guān)系,以及參照完整性(ReferentialIntegrity,簡稱RI)等。
注意,只有數(shù)據(jù)庫表的數(shù)據(jù)才有數(shù)據(jù)詞典。自由表沒有。一、長名(長表名/長字段名)與注釋
VFP允許在數(shù)據(jù)詞典中為表/字段設(shè)置不超過128個(gè)字符的長名,以及對表/字段增加適當(dāng)?shù)淖⑨尅iL表名/長字段名一般能在瀏覽窗口或各種設(shè)計(jì)器的標(biāo)題欄內(nèi)顯示;而注釋則通常出現(xiàn)在項(xiàng)目管理器的底部。二、設(shè)置字段級(jí)規(guī)則:用于字段數(shù)據(jù)輸入正確性的檢驗(yàn),在插入或修改字段值時(shí)被激活。格式
格式文本框用于鍵入格式表達(dá)式,確定字段在瀏覽窗口、表單或報(bào)表中顯示時(shí)采用的大小寫、字體大小和樣式。輸
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度科研儀器租賃及技術(shù)服務(wù)合同
- 2024年定制:5G網(wǎng)絡(luò)技術(shù)研發(fā)與技術(shù)服務(wù)合同
- 2024合作開發(fā)合同的開發(fā)內(nèi)容和合作方式
- 04版加工承攬合同生產(chǎn)工藝與質(zhì)量控制
- 2024年度校園租賃:電動(dòng)自行車合同
- 2024光電子技術(shù)研發(fā)與生產(chǎn)合同
- 2024廣州市勞動(dòng)合同范文新版
- 2024營業(yè)租賃合同范文
- 2024年度電力設(shè)備安裝與維護(hù)合同
- 2024年度計(jì)算機(jī)軟件開發(fā)與銷售合同
- 項(xiàng)目式課程與全課程設(shè)計(jì)
- 少兒體智能特色課程設(shè)計(jì)
- AFP、DCP和GGT聯(lián)合檢測在原發(fā)性肝癌診斷中的應(yīng)用價(jià)值演示稿件
- 植物生理學(xué)試題及答案7
- 《消毒隔離制度》課件
- 新生入學(xué)校查驗(yàn)預(yù)防接種證培訓(xùn)課件
- 建筑施工現(xiàn)場車輛管理方案
- 藥物警戒質(zhì)量管理規(guī)范試題
- 新課標(biāo)視域下的小學(xué)數(shù)學(xué)大單元教學(xué)
- 物理學(xué)(高職)全套教學(xué)課件
- Unit 8 Section B(2a-2e)Thanksgiving in North America教學(xué)設(shè)計(jì)2022-2023學(xué)年人教版八年級(jí)英語上冊
評(píng)論
0/150
提交評(píng)論