Visual FoxPro程序設(shè)計(jì):第四章 VFP6.0數(shù)據(jù)庫(kù)及其操作_第1頁(yè)
Visual FoxPro程序設(shè)計(jì):第四章 VFP6.0數(shù)據(jù)庫(kù)及其操作_第2頁(yè)
Visual FoxPro程序設(shè)計(jì):第四章 VFP6.0數(shù)據(jù)庫(kù)及其操作_第3頁(yè)
Visual FoxPro程序設(shè)計(jì):第四章 VFP6.0數(shù)據(jù)庫(kù)及其操作_第4頁(yè)
Visual FoxPro程序設(shè)計(jì):第四章 VFP6.0數(shù)據(jù)庫(kù)及其操作_第5頁(yè)
已閱讀5頁(yè),還剩99頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第四章VFP6.0數(shù)據(jù)庫(kù)及其操作4.3自由表4.1VisualFoxPro數(shù)據(jù)庫(kù)及其建立4.2建立數(shù)據(jù)庫(kù)表(重點(diǎn))4.4表的基本操作與相關(guān)命令(重點(diǎn))4.5索引與排序(難點(diǎn))4.6數(shù)據(jù)完整性與表間永久性關(guān)系4.7多個(gè)表的同時(shí)使用教學(xué)要求:1一、建立表1、設(shè)計(jì)表結(jié)構(gòu)一個(gè)數(shù)據(jù)表由數(shù)據(jù)表名、數(shù)據(jù)表的結(jié)構(gòu)、數(shù)據(jù)表的記錄三要素構(gòu)成。表的結(jié)構(gòu):定義數(shù)據(jù)表中的字段個(gè)數(shù)、各個(gè)字段的名稱(chēng)、屬性、類(lèi)型、寬度。定義數(shù)據(jù)表的結(jié)構(gòu)需注意的問(wèn)題:

數(shù)據(jù)表名及字段類(lèi)型的設(shè)置(N、I、C、D、L、M、G、T、Y、B),可以是漢字、英文字母、數(shù)字與下劃線(xiàn),數(shù)字與下劃線(xiàn)不能是第一個(gè)字符。

小數(shù)點(diǎn)和正負(fù)號(hào)在字段寬度中各占一位4.3自由表(.dbf)2字段名字段名稱(chēng)寬度學(xué)號(hào)字符型9姓名字符型10出生日期日期型8性別字符型2民族字符型10專(zhuān)業(yè)字符型10身高數(shù)值型6(2位小數(shù))照片通用型4個(gè)人簡(jiǎn)介備注型464Student表結(jié)構(gòu)Why?3字段名字段名稱(chēng)寬度課程號(hào)字符型10課程名稱(chēng)字符型16課程類(lèi)型字符型10學(xué)分?jǐn)?shù)值型3(1位小數(shù))學(xué)時(shí)整型4course表結(jié)構(gòu)4字段名字段名稱(chēng)寬度課程號(hào)字符型10學(xué)號(hào)字符型9考試時(shí)間日期型8分?jǐn)?shù)數(shù)值型10考試地點(diǎn)字符型10及格否邏輯型1scores表結(jié)構(gòu)52、創(chuàng)建表表向?qū)П碓O(shè)計(jì)器:文件——新建——表——新建文件——輸入表名——保存——打開(kāi)表設(shè)計(jì)器63、輸入表記錄在表設(shè)計(jì)器里設(shè)置完后,確定:如果選擇“是”,可以以立即方式向表中輸入數(shù)據(jù);選擇“否”則結(jié)束表結(jié)構(gòu)的建立。表的記錄可以通過(guò)記錄編輯窗口按記錄逐個(gè)字段輸入:顯示——瀏覽/編輯——追加方式74、特殊數(shù)據(jù)的輸入邏輯型字段只接受T、Y、F、N

日期型數(shù)據(jù)必須與日期格式相符,默認(rèn)為MM/DD/YY,也可自行設(shè)置:工具——選項(xiàng)——區(qū)域備注型數(shù)據(jù)的輸入:memo——Memo

通用型數(shù)據(jù)的輸入:gen——Gen8二、修改表結(jié)構(gòu)——表設(shè)計(jì)器表設(shè)計(jì)器的打開(kāi):

打開(kāi)表后,顯示——表設(shè)計(jì)器

表打開(kāi)后,命令窗口中輸入MODIFYSTRUCTURE修改完后,點(diǎn)擊“確定”則:94.1VFP6.0數(shù)據(jù)庫(kù)及其建立一、數(shù)據(jù)庫(kù)的組成結(jié)構(gòu)與相關(guān)資源在數(shù)據(jù)庫(kù)開(kāi)發(fā)過(guò)程中還會(huì)創(chuàng)建和使用查詢(xún)、報(bào)表、表單等資源。10數(shù)據(jù)表同二維表,擁有列(字段(Field))與行(記錄)。一個(gè)字段由字段名和字段值組成,所有字段名的集合構(gòu)成了表的第一行(又稱(chēng)為表頭),叫做數(shù)據(jù)表的結(jié)構(gòu)。視圖

視圖是提取數(shù)據(jù)庫(kù)記錄、更新數(shù)據(jù)庫(kù)數(shù)據(jù)的一種操作方式,是從一個(gè)或多個(gè)數(shù)據(jù)表中導(dǎo)出的“表”。它與數(shù)據(jù)表不同的是,視圖中的數(shù)據(jù)還是存儲(chǔ)在原來(lái)的數(shù)據(jù)表中,因此可以把它看作是一個(gè)“虛表”。視圖是不能單獨(dú)存在的,它依賴(lài)于數(shù)據(jù)表而存在,只有打開(kāi)與視圖相關(guān)的數(shù)據(jù)庫(kù)才能創(chuàng)建和使用視圖。11存儲(chǔ)過(guò)程存儲(chǔ)過(guò)程類(lèi)似于編程時(shí)的函數(shù),將常用的或很復(fù)雜的工作,預(yù)先用SQL語(yǔ)句寫(xiě)好并用一個(gè)指定的名稱(chēng)存儲(chǔ)起來(lái),那么以后要求數(shù)據(jù)庫(kù)提供與已定義好的存儲(chǔ)過(guò)程的功能相同的服務(wù)時(shí),只需調(diào)用執(zhí)行,即可自動(dòng)完成命令。查詢(xún)查詢(xún)是一種相對(duì)獨(dú)立且功能強(qiáng)大、結(jié)果多樣的數(shù)據(jù)庫(kù)資源,利用查詢(xún)可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的瀏覽、篩選、排序、檢索、統(tǒng)計(jì)和加工等操作;利用查詢(xún)可以為其他數(shù)據(jù)庫(kù)提供新的數(shù)據(jù)表,可以從單個(gè)表中提取有用的數(shù)據(jù),也可以從多個(gè)表中提取綜合信息。12報(bào)表

在對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作時(shí),數(shù)據(jù)和文檔的輸出通常有兩種方式:屏幕顯示和打印機(jī)打印。報(bào)表就是用戶(hù)使用打印機(jī)輸出數(shù)據(jù)和文檔的一種實(shí)用方式。表單

在VisualFoxPro系統(tǒng)中,表單是數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的主要工作界面,表單為數(shù)據(jù)庫(kù)信息的顯示、輸入和編輯提供了非常簡(jiǎn)便的方式,也可以作為系統(tǒng)流程控制的窗口。13二、數(shù)據(jù)庫(kù)的創(chuàng)建在VisualFoxPro中,數(shù)據(jù)庫(kù)文件的擴(kuò)展名是.DBC。在建立數(shù)據(jù)庫(kù)時(shí),還會(huì)自動(dòng)建立一個(gè)擴(kuò)展名為.DCT的數(shù)據(jù)庫(kù)備注文件和一個(gè)擴(kuò)展名為.DCX的數(shù)據(jù)庫(kù)索引文件。這三個(gè)文件是供VisualFoxPro管理數(shù)據(jù)庫(kù)使用的,用戶(hù)不能直接使用這些文件。1、默認(rèn)目錄的設(shè)置:要求將默認(rèn)目錄設(shè)置到C盤(pán)下的學(xué)生成績(jī)數(shù)據(jù)庫(kù)2、數(shù)據(jù)庫(kù)文件的建立:在上一目錄下創(chuàng)建一數(shù)據(jù)庫(kù)“學(xué)生成績(jī)”:文件——新建——數(shù)據(jù)庫(kù)——輸入數(shù)據(jù)庫(kù)名——打開(kāi)數(shù)據(jù)庫(kù)設(shè)計(jì)器也可在項(xiàng)目里創(chuàng)建數(shù)據(jù)庫(kù)14圖4-5數(shù)據(jù)庫(kù)設(shè)計(jì)器153、數(shù)據(jù)庫(kù)操作命令:1)建立數(shù)據(jù)庫(kù):格式:CREATEDATABASE[數(shù)據(jù)庫(kù)名]說(shuō)明:其中數(shù)據(jù)庫(kù)名是要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)名稱(chēng),可以帶有路徑?!纠?-1】如果數(shù)據(jù)庫(kù)Test并不存在,建立該數(shù)據(jù)庫(kù)16創(chuàng)建數(shù)據(jù)庫(kù)Test之前的當(dāng)前數(shù)據(jù)庫(kù)窗口創(chuàng)建數(shù)據(jù)庫(kù)Test之后的當(dāng)前數(shù)據(jù)庫(kù)窗口注:此時(shí)系統(tǒng)將在當(dāng)前目錄下建立Test數(shù)據(jù)庫(kù),但系統(tǒng)并不同時(shí)打開(kāi)Test數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)設(shè)計(jì)器。當(dāng)數(shù)據(jù)庫(kù)被創(chuàng)建后,該數(shù)據(jù)就成為當(dāng)前打開(kāi)的數(shù)據(jù)庫(kù),在VisualFoxPro系統(tǒng)中,若要對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,必須先打開(kāi)數(shù)據(jù)庫(kù)。172)打開(kāi)數(shù)據(jù)庫(kù):格式:OPENDATABASE[數(shù)據(jù)庫(kù)文件名|?][EXCLUSIVE][SHARED]說(shuō)明:①如果這個(gè)數(shù)據(jù)庫(kù)不在當(dāng)前目錄下,那么“數(shù)據(jù)庫(kù)文件名”應(yīng)帶有路徑,如果不帶參數(shù)或者使用“?”號(hào),則彈出“打開(kāi)”對(duì)話(huà)框,提示用戶(hù)選擇要打開(kāi)的數(shù)據(jù)庫(kù)。②如果帶參數(shù)EXCLUSIVE,則以獨(dú)占方式打開(kāi)數(shù)據(jù)庫(kù),其他用戶(hù)無(wú)法訪問(wèn)。③如果帶參數(shù)SHARED,則以共享方式打開(kāi)數(shù)據(jù)庫(kù),允許其他用戶(hù)同時(shí)訪問(wèn)18eg.opendatabasee:\vf\學(xué)生管理

opendatabasee:\xl\data\databaseTWO

setdatabasetoe:\xl\data\databaseTWO一個(gè)項(xiàng)目可以建立并打開(kāi)多個(gè)數(shù)據(jù)庫(kù),但是當(dāng)前數(shù)據(jù)庫(kù)只有一個(gè)補(bǔ)充:指定當(dāng)前數(shù)據(jù)庫(kù)setdatabaseto[數(shù)據(jù)庫(kù)名]193)修改數(shù)據(jù)庫(kù):格式:MODIFYDATABASE[數(shù)據(jù)庫(kù)文件名|?]功能:該命令打開(kāi)“數(shù)據(jù)庫(kù)設(shè)計(jì)器”窗口,以便修改數(shù)據(jù)庫(kù)中的內(nèi)容,“數(shù)據(jù)庫(kù)名”是要修改的數(shù)據(jù)庫(kù)名稱(chēng),如果使用“?”號(hào),則彈出“打開(kāi)”對(duì)話(huà)框;不帶參數(shù)時(shí),則打開(kāi)當(dāng)前數(shù)據(jù)庫(kù)的“數(shù)據(jù)庫(kù)設(shè)計(jì)器”窗口。204)關(guān)閉數(shù)據(jù)庫(kù):格式:CLOSEDATABASES[ALL]說(shuō)明:如果不帶參數(shù)ALL,則關(guān)閉當(dāng)前數(shù)據(jù)庫(kù)以及它的所有表;如果當(dāng)前沒(méi)有打開(kāi)的數(shù)據(jù)庫(kù),則關(guān)閉所有工作區(qū)中的自由表、索引和格式文件;如果帶參數(shù)ALL,則關(guān)閉所有打開(kāi)的數(shù)據(jù)庫(kù)和表、索引、格式文件。21補(bǔ)充:刪除數(shù)據(jù)庫(kù)

deletedatabaseDeletedatabasee:\xl\data\databaseTWOdbc()函數(shù)作用:返回當(dāng)前數(shù)據(jù)庫(kù)的名稱(chēng)和路徑返回值類(lèi)型:字符型如果沒(méi)有當(dāng)前數(shù)據(jù)庫(kù),則返回空字符串Opendatabasee:\vf\學(xué)生管理?dbc()22在VFP中,表有兩種:數(shù)據(jù)庫(kù)表和自由表區(qū)別—數(shù)據(jù)庫(kù)表與數(shù)據(jù)庫(kù)相關(guān)聯(lián);自由表不屬于任何數(shù)據(jù)庫(kù)聯(lián)系—可以相互轉(zhuǎn)換數(shù)據(jù)庫(kù)表自由表移出添加234.2建立數(shù)據(jù)庫(kù)表(.dbf)一、在數(shù)據(jù)庫(kù)中建立表數(shù)據(jù)庫(kù)表必須先打開(kāi)數(shù)據(jù)庫(kù),然后再建表(同自由表)也可將已有的自由表變?yōu)閿?shù)據(jù)庫(kù)表24數(shù)據(jù)庫(kù)表的特性:更規(guī)范的管理長(zhǎng)表名和表中的長(zhǎng)字段名表中字段的標(biāo)題和注釋默認(rèn)值、輸入掩碼和表中字段格式化表字段的默認(rèn)控件類(lèi)字段級(jí)規(guī)則和記錄級(jí)規(guī)則支持參照完整性的主關(guān)鍵字索引和表件關(guān)系具有insert、update或delete事件的觸發(fā)器251、顯示設(shè)置顯示設(shè)置用于指定輸入和顯示字段的格式。選中相應(yīng)字段后,就可以設(shè)置該字段的顯示格式了。注意這里設(shè)置的并不是數(shù)據(jù)存儲(chǔ)在磁盤(pán)上的格式。顯示設(shè)置包括“格式”、“輸入掩碼”和“標(biāo)題”三項(xiàng)字段屬性。格式:設(shè)置字段顯示時(shí)的大小寫(xiě)、字體大小和樣式等內(nèi)容。26格式的代碼功能用途A只允許英文字母,且不允許標(biāo)點(diǎn)符號(hào)和空格D依照目前的規(guī)定格式來(lái)編輯與顯示日期型和日期時(shí)間型數(shù)據(jù)K當(dāng)鼠標(biāo)游移至此字段時(shí),便選取整個(gè)字段以便進(jìn)行編輯T刪除字段的前置空格與結(jié)尾空格Z如果字段的內(nèi)容為數(shù)值0,則它將顯示空白。此格式代碼只能用于數(shù)字類(lèi)型字段!可輸入任何字符,但所有輸入的英文字母將被轉(zhuǎn)換成大寫(xiě)。此格式代碼只能用于字符類(lèi)型字段$將數(shù)值數(shù)據(jù)以貨幣格式顯示例4-527輸入掩碼:字段或控件的一種屬性,用于限制或控制用戶(hù)輸入的格式。這樣字段中的值就具有了統(tǒng)一的風(fēng)格,從而可以減少數(shù)據(jù)輸入錯(cuò)誤,提高輸入效率。輸入掩碼的格式化代碼功能用途A只能輸入英文字母L只能輸入英文字母T或FN只能輸入英文字母和數(shù)字Y只能輸入英文字母Y、y、N和n9只能輸入字符數(shù)據(jù)的數(shù)字或數(shù)值數(shù)據(jù)的數(shù)字#只能輸入數(shù)字、空格、正負(fù)號(hào)和英文句點(diǎn)(.)!可輸入任何字符,但所有輸入的英文字母將被轉(zhuǎn)換成大寫(xiě)。例4-628“輸入掩碼”屬性與“格式”屬性間存在著實(shí)質(zhì)性的差異,使用各種“輸入掩碼”的格式化代碼,可以完成對(duì)當(dāng)前字段值的一對(duì)一格式化控制;而格式的各類(lèi)代碼所做的是對(duì)當(dāng)前字段值的全局性格式化控制。例如:設(shè)置“Student”數(shù)據(jù)表的“民族”字段,使其可以輸入任何字符,但是所有輸入的英文字母都會(huì)被轉(zhuǎn)換成大寫(xiě)。利用“格式”屬性29“輸入掩碼”屬性與“格式”屬性間存在著實(shí)質(zhì)性的差異,使用各種“輸入掩碼”的格式化代碼,可以完成對(duì)當(dāng)前字段值的一對(duì)一格式化控制;而格式的各類(lèi)代碼所做的是對(duì)當(dāng)前字段值的全局性格式化控制。例如:設(shè)置“Student”數(shù)據(jù)表的“民族”字段,使其可以輸入任何字符,但是所有輸入的英文字母都會(huì)被轉(zhuǎn)換成大寫(xiě)。利用“輸入掩碼”屬性30標(biāo)題:它是顯示給用戶(hù)看的字段標(biāo)題。如果不設(shè)置標(biāo)題,則當(dāng)顯示數(shù)據(jù)時(shí),VisualFoxPro自動(dòng)用字段名作為標(biāo)題。標(biāo)題最長(zhǎng)可達(dá)128個(gè)字符。312、字段注釋?zhuān)嚎梢栽凇白侄巫⑨尅本庉嬁蛑休斎朐撟侄蔚恼f(shuō)明文字,主要是為了方便程序員編程和書(shū)寫(xiě)系統(tǒng)文檔。323、字段有效性:在字段級(jí)別對(duì)數(shù)據(jù)的約束(1)規(guī)則:是對(duì)字段內(nèi)容進(jìn)行有效性檢查,可在規(guī)則框中輸入規(guī)則表達(dá)式。如果輸入的表達(dá)式比較復(fù)雜,可以單擊文本框右端的按鈕打開(kāi)生成器對(duì)話(huà)框,利用生成器輔助輸入表達(dá)式,注意:規(guī)則表達(dá)式的值必為邏輯型,因此應(yīng)該是邏輯表達(dá)式或者關(guān)系表達(dá)式。(2)信息:當(dāng)輸入的數(shù)據(jù)違反有效性規(guī)則時(shí),顯示的錯(cuò)誤提示信息。例4-9注意雙引號(hào)的使用33(3)默認(rèn)值:可以節(jié)省數(shù)據(jù)輸入人員每次都必須重新鍵入的時(shí)間。要設(shè)置字段的默認(rèn)值,請(qǐng)先選定字段,然后將光標(biāo)移至“默認(rèn)值”文本輸入框中,直接鍵入默認(rèn)值。注意:默認(rèn)值的類(lèi)型必須與該字段的數(shù)據(jù)類(lèi)型相同,并且不可以和字段的有效性規(guī)則相沖突。例4-10注意雙引號(hào)的使用34設(shè)置記錄規(guī)則——表設(shè)計(jì)器——表選項(xiàng)卡記錄有效性:檢查同一記錄中不同字段之間的邏輯關(guān)系eg.規(guī)則是:left(學(xué)號(hào),2)=“89”andyear(入學(xué)年月)=1989

信息是:“不是89級(jí)學(xué)生”可以設(shè)置記錄的有效性規(guī)則及出錯(cuò)提示信息,還可以指定記錄插入、更新及刪除規(guī)則。規(guī)則:指定記錄級(jí)有效性檢查規(guī)則,光標(biāo)離開(kāi)當(dāng)前記錄時(shí)進(jìn)行校驗(yàn)。信息:指定出錯(cuò)提示信息。35觸發(fā)器:指定規(guī)則eg.年齡>10and年齡<=50插入觸發(fā)器:指定插入記錄時(shí)觸發(fā)該規(guī)則,看是否滿(mǎn)足,如不滿(mǎn)足,則提示觸發(fā)器失敗信息框。如,在插入觸發(fā)器中輸入:表示向表中插入或追加記錄時(shí),如果輸入的年齡不在指定范圍內(nèi),則當(dāng)光標(biāo)離開(kāi)該記錄時(shí)會(huì)顯示觸發(fā)器失敗信息框.36eg.recno()>=3更新觸發(fā)器:指定一個(gè)規(guī)則,每次更新記錄時(shí)觸發(fā)該規(guī)則表示從第3條記錄起才符合條件,前兩條記錄不允許修改37eg.left(學(xué)號(hào),2)#“89”刪除觸發(fā)器:指定一個(gè)規(guī)則,每次在表中刪除記錄(添加刪除標(biāo)記)時(shí)觸發(fā)該規(guī)則表示89級(jí)的學(xué)生記錄不能刪除,只能刪除非89級(jí)學(xué)生的記錄38三、使用“瀏覽”窗口操作表改變行高和列寬:拖動(dòng)兩個(gè)窗口(瀏覽和編輯)顯示數(shù)據(jù):窗口拆分條改變字段的顯示順序刪除記錄:刪除標(biāo)記刪除標(biāo)記(邏輯刪除):?jiǎn)螕粲涗涀髠?cè)矩形框,變成黑框,再次單擊,變?yōu)榘咨∠麆h除標(biāo)記徹底刪除(物理刪除):加上刪除標(biāo)記后,菜單“表”—徹底刪除例4-11394.4表的基本操作與相關(guān)命令一、打開(kāi)和關(guān)閉數(shù)據(jù)表命令1、打開(kāi)數(shù)據(jù)表命令:USE格式:USE[[數(shù)據(jù)庫(kù)名!]表名|視圖名][IN<工作區(qū)號(hào)>|<表別名>][EXCLUSIVE]|[SHARED]功能:所謂“打開(kāi)”,就是將表文件的控制信息和具體內(nèi)容讀入內(nèi)存的工作區(qū)中,以便程序或用戶(hù)訪問(wèn)數(shù)據(jù)。所謂“關(guān)閉”,就是釋放文件所占用的內(nèi)存區(qū)域,將文件更新的內(nèi)容保存到外存儲(chǔ)器中。例4-12例4-1340工作區(qū):編號(hào)區(qū)域,標(biāo)識(shí)一個(gè)已打開(kāi)的表。VisualFoxPro最多可以同時(shí)打開(kāi)32767個(gè)數(shù)據(jù)表,每個(gè)打開(kāi)的表都要在存儲(chǔ)器中開(kāi)辟一個(gè)存儲(chǔ)區(qū)域,這個(gè)存儲(chǔ)區(qū)域就叫做工作區(qū)。使用數(shù)字編號(hào)如:1-10,或用字母A-J來(lái)表示,稱(chēng)為工作區(qū)別名。如果命令中出現(xiàn)的工作區(qū)編號(hào)是0,表示在當(dāng)前序號(hào)最小的可用空閑工作區(qū)中打開(kāi)文件。在VisualFoxPro系統(tǒng)中,可以在多個(gè)工作區(qū)中多次打開(kāi)一個(gè)表文件,但一個(gè)工作區(qū)中最多只能打開(kāi)一個(gè)表文件。當(dāng)打開(kāi)表文件時(shí),如果不人為指定工作區(qū),VisualFoxPro將自動(dòng)選擇序號(hào)最小的可用工作區(qū)打開(kāi)數(shù)據(jù)表文件。當(dāng)我們?yōu)g覽表文件時(shí),系統(tǒng)將會(huì)自動(dòng)打開(kāi)表,該表將占據(jù)一個(gè)工作區(qū)。412、選擇工作區(qū):SELECT格式:SELECT[IN<工作區(qū)號(hào)>|<表別名>]功能:工作區(qū)號(hào)用于指定工作區(qū)的編號(hào),它是一個(gè)整數(shù);表別名用于指定工作區(qū)中表的別名,它是一個(gè)字符串。說(shuō)明:選擇未被占用的最小號(hào)工作區(qū)可以使用SELECT0

命令。例4-14例4-1542二、表中記錄操作命令的常用子句

1、顯示指定字段內(nèi)容子句:格式:FIELDS<字段名列表>功能:用于指定需要操作的字段。說(shuō)明:關(guān)鍵字FIELDS可省略,<字段名列表>各個(gè)字段名稱(chēng)之間請(qǐng)使用逗號(hào)分隔,此子句用于在命令中實(shí)現(xiàn)投影操作,如果缺省此子句,則操作表中除備注型、通用型字段外的所有字段。4344RECORDN表示指定僅操作第N條記錄NEXTN表示指定僅操作從當(dāng)前記錄開(kāi)始的N條記錄REST表示指定操作從當(dāng)前記錄開(kāi)始到表結(jié)尾的全部記錄ALL表示指定操作所有的數(shù)據(jù)記錄2、范圍子句范圍子句可以限定顯示記錄的范圍,即確定該命令涉及的記錄,該子句確定的范圍共有四種限定法方法,如表所示。缺省范圍子句時(shí)默認(rèn)范圍通常默認(rèn)為ALL,除了刪除命令DELETE和顯示記錄命令DISPLAY在缺省范圍子句時(shí)默認(rèn)范圍為當(dāng)前記錄。453、FOR子句格式:FOR<條件表達(dá)式>功能:在指定范圍內(nèi)查找符合條件的記錄,而且只有這些符合條件記錄會(huì)被命令所操作。說(shuō)明:要求<條件表達(dá)式>是一個(gè)值為邏輯型的表達(dá)式。4、WHILE子句格式:WHILE<條件表達(dá)式>功能:從當(dāng)前記錄開(kāi)始,逐一測(cè)試記錄是否滿(mǎn)足條件,命令將對(duì)包括當(dāng)前記錄在內(nèi)的一組連續(xù)的滿(mǎn)足條件的記錄進(jìn)行操作,表中其他記錄將不會(huì)被操作;如果當(dāng)前記錄不滿(mǎn)足條件,將沒(méi)有任何記錄被命令所操作。46三、顯示記錄命令以列舉的形式顯示當(dāng)前表的數(shù)據(jù)記錄LIST|DISPLAY[[FIELDS]<字段名列表>][<范圍>][FOR<條件表達(dá)式1>][WHILE<條件表達(dá)式2>]功能:在表中按指定范圍與條件篩選出記錄并顯示。LIST和DISP區(qū)別:LIST命令默認(rèn)操作范圍是所有數(shù)據(jù)記錄(即ALL),而DISPLAY命令的默認(rèn)操作范圍是當(dāng)前數(shù)據(jù)記錄(即NEXT1);DISPLAY分頁(yè)方式顯示,并提示用戶(hù)繼續(xù),而LIST滾動(dòng)顯示,直到最后一行記錄在屏幕上顯示出來(lái)為止。例4-17——例4-2347命令和子句的書(shū)寫(xiě)規(guī)則:(重復(fù)講一遍,重點(diǎn))(1)命令動(dòng)詞與子句、子句與子句、子句的各部分(如NEXT與5,F(xiàn)OR與邏輯條件表達(dá)式)之間必須用空格隔開(kāi),但各個(gè)子句的次序允許任意排列,這對(duì)于執(zhí)行結(jié)果沒(méi)有影響。(2)命令動(dòng)詞與各子句的保留字,包括函數(shù)的名字都可以簡(jiǎn)寫(xiě)為前四個(gè)字母,而且對(duì)于其中出現(xiàn)的英文字母,使用大小寫(xiě)不區(qū)分。48(3)一條命令的長(zhǎng)度可達(dá)8192個(gè)字符,若一行寫(xiě)不下,可在適當(dāng)位置輸入續(xù)行符“;”并回車(chē),然后在下一行中繼續(xù)鍵入該命令。(4)命令或函數(shù)格式中以“|”分隔開(kāi)的兩項(xiàng)表示兩者之中只選其一,例如EXCLUSIVE|SHARED表示要么使用獨(dú)占方式,要么使用共享方式;用中括號(hào)“[]”括起來(lái)的部分表示可選項(xiàng);用尖括號(hào)“<>”括起來(lái)的部分表示由用戶(hù)定義的內(nèi)容,但這些符號(hào)并非命令或函數(shù)的組成部分。(5)標(biāo)點(diǎn)符號(hào)須是半角狀態(tài)。49四、刪除記錄命令邏輯刪除和物理刪除。1、為記錄加刪除標(biāo)記、執(zhí)行邏輯刪除格式:DELETE[<范圍>][FOR<條件表達(dá)式>]功能:對(duì)符合條件的記錄加刪除標(biāo)記。相當(dāng)于在“表”菜單下執(zhí)行“刪除記錄”命令。其中<范圍>子句用于指定范圍,而FOR子句用于指出須符合的條件。例4-24例4-25502、從磁盤(pán)上刪除帶有刪除標(biāo)記的記錄

格式:PACK[MEMO][DBF]功能:將那些被邏輯刪除的記錄實(shí)際移出表,MEMO子句:從和表文件同名的.FPT備注文件中刪除未使用的空間,但不從表中刪除帶有刪除標(biāo)記的記錄;DBF子句,則從表中刪除所有帶刪除標(biāo)記的記錄,但不影響備注文件。相當(dāng)于執(zhí)行“表”菜單下的“徹底刪除”命令。513、取消帶有刪除標(biāo)記的記錄:恢復(fù)被DELETE命令標(biāo)示成刪除狀態(tài)的記錄。格式:RECALL[<范圍>][FOR<條件表達(dá)式>]功能:對(duì)當(dāng)前表在指定范圍內(nèi)滿(mǎn)足FOR條件子句的記錄去掉刪除標(biāo)記,若各子句都缺省,則只恢復(fù)當(dāng)前記錄。說(shuō)明:RECALL命令必須在還沒(méi)有對(duì)表使用PACK命令以前執(zhí)行,否則那些被標(biāo)示為刪除的記錄早已被實(shí)際移出表外。例4-26524、徹底刪除表中所有記錄ZAP命令可一次性將當(dāng)前表中所有記錄徹底刪除。數(shù)據(jù)記錄雖然被刪除了,但數(shù)據(jù)表的結(jié)構(gòu)仍完整地存在。相當(dāng)于DELETEALL和PACK聯(lián)用,因此一定要謹(jǐn)慎使用。53五、修改記錄的命令:REPLACE格式:REPLACE<字段名1>WITH<表達(dá)式1>[,<字段名2>WITH<表達(dá)式2>]...[<范圍>][FOR<條件表達(dá)式>]功能:指定用表達(dá)式的值代替字段中的數(shù)據(jù)。當(dāng)然在多數(shù)程序中,REPLACE只用于對(duì)一個(gè)字段進(jìn)行修改。FOR子句用于指出表中哪些記錄將被修改,<范圍>則指出命令修改記錄的操作范圍。說(shuō)明:需要注意的是,這里的默認(rèn)范圍是當(dāng)前記錄。例4-27例4-2854六、查詢(xún)定位命令與相關(guān)函數(shù)記錄號(hào)、記錄指針(移動(dòng))和當(dāng)前記錄(使用USE命令打開(kāi)表以后,記錄指針指向第一條記錄)。1、GO|GOTO命令:絕對(duì)移動(dòng)記錄指針格式1:GO|GOTO<數(shù)值表達(dá)式>格式2:GOTOP|BOTTOM2、RECNO()函數(shù):測(cè)試當(dāng)前記錄的記錄號(hào)例4-29553、SKIP命令:相對(duì)移動(dòng)記錄指針格式:SKIP<數(shù)值表達(dá)式>功能:正數(shù):向下移動(dòng);負(fù)數(shù):向上移動(dòng);缺省時(shí)默認(rèn)值為1。564、函數(shù)BOF()確定記錄指針是否已經(jīng)到文件頭,其返回值為邏輯型數(shù)據(jù)。575、函數(shù)EOF()確定記錄指針是否已經(jīng)到文件尾,其返回值為邏輯型數(shù)據(jù)。586、條件定位命令格式:LOCATE[<范圍>]FOR[<條件表達(dá)式>]功能:在當(dāng)前表中指定<范圍>內(nèi),查找表中滿(mǎn)足“條件表達(dá)式”的第一條記錄,并將其設(shè)置為當(dāng)前記錄;若表中無(wú)此記錄,搜索后VisualFoxPro主屏幕的狀態(tài)條中將顯示“已到定位范圍末尾”,此時(shí)記錄指針指向文件尾位置。缺省范圍為全部記錄。按搜索條件順序查找當(dāng)前表的命令LOCATE

命令,經(jīng)常和CONTINUE命令、FOUND()函數(shù)結(jié)合使用。597、FOUND()函數(shù)格式:FOUND([<工作區(qū)號(hào)>])功能:用于判斷最近一次執(zhí)行LOCATE、CONTINUE、FIND或SEEK命令的執(zhí)行結(jié)果。查找成功則返回邏輯真值,查找失敗則返回邏輯假值。8、CONTINUE命令當(dāng)數(shù)據(jù)表中存在多個(gè)滿(mǎn)足條件的記錄時(shí),我們首先使用LOCATE查找到第一條符合查找條件的記錄,然后使用CONTINUE命令逐次找出后面的記錄。CONTINUE命令第一次執(zhí)行將查找到第二條符合查找條件的記錄,例4-326061七、復(fù)制表命令1、COPY命令:復(fù)制數(shù)據(jù)表文件格式:COPY[STRUCTURE]TO<新建文件全名>FIELDS<字段名表>[<范圍>][FOR<條件表達(dá)式>]功能:導(dǎo)出當(dāng)前表中的數(shù)據(jù)到一個(gè)新表或其他類(lèi)型的文件中,假如命令包含關(guān)鍵字STRU則只復(fù)制數(shù)據(jù)表的結(jié)構(gòu),當(dāng)使用FOR子句時(shí)表中滿(mǎn)足邏輯表達(dá)式條件的部分記錄會(huì)被復(fù)制。對(duì)于含有備注型字段的表,系統(tǒng)在復(fù)制擴(kuò)展名為DBF的文件的同時(shí)會(huì)自動(dòng)復(fù)制擴(kuò)展名為FPT的文件。例4-33例4-34例4-35622、COPYFILE命令:復(fù)制任何文件格式:COPYFILE<文件名1>TO<文件名2>功能:從<文件名1>文件復(fù)制到<文件名2>文件;如果是對(duì)數(shù)據(jù)表進(jìn)行復(fù)制,那么該數(shù)據(jù)表必須處于關(guān)閉狀態(tài);<文件名1>和<文件名2>都可以使用通配符*號(hào)和?號(hào)。例4-3663八、追加記錄的命令1、APPEND命令格式:APPEND[BLANK][IN<工作區(qū)號(hào)>]功能:在當(dāng)前表的尾部添加一條或多條記錄。如果使用BLANK子句,表示在表的最后添加一個(gè)空記錄,此時(shí)并不會(huì)自動(dòng)打開(kāi)編輯或?yàn)g覽窗口;不加此子句則會(huì)自動(dòng)打開(kāi)編輯或?yàn)g覽窗口,并且窗口內(nèi)會(huì)有空白的記錄位置,使用戶(hù)可以編輯新增記錄。642、APPENDFROM命令從各種格式的數(shù)據(jù)文件(包括其他數(shù)據(jù)處理軟件的文件)中讀取數(shù)據(jù),并追加到當(dāng)前表中。格式:APPENDFROM<數(shù)據(jù)文件名>[FIELDS<字段名表>][FOR[<條件表達(dá)式>]]功能:將其它文件的內(nèi)容追加到當(dāng)前表的尾部,其中“數(shù)據(jù)文件名”用于指定要讀取數(shù)據(jù)的文件名,默認(rèn)擴(kuò)展名是.DBF,如果要追加的數(shù)據(jù)文件的擴(kuò)展名不是.DBF,則源文件必須包括擴(kuò)展名。例4-3765九、數(shù)據(jù)統(tǒng)計(jì)命令1、COUNT命令格式:COUNT[<范圍>][FOR<條件表達(dá)式1>][WHILE<條件表達(dá)式2>][TO<變量名>]功能:計(jì)算指定范圍內(nèi)滿(mǎn)足條件的記錄個(gè)數(shù),<范圍>子句用于指出范圍,默認(rèn)范圍時(shí)是指表中的全部記錄;而FOR子句則用于指出條件;若使用了TO子句,則還可以將記錄數(shù)存儲(chǔ)在內(nèi)存變量中,便于以后引用,如果指定的變量不存在,系統(tǒng)會(huì)自動(dòng)創(chuàng)建它。例4-38662、SUM命令格式:SUM[<數(shù)值型字段名表>][<范圍>][FOR<條件表達(dá)式1>][WHILE<條件表達(dá)式2>][TO<變量名>]功能:<數(shù)值型字段名表>用于指定數(shù)據(jù)表的一個(gè)或多個(gè)數(shù)值型字段或數(shù)值型表達(dá)式對(duì)其求和值。如果省略它,則對(duì)選定表的所有數(shù)值型字段分別求和。TO<變量名>將求得的和保存在變量列表中,如果指定的變量不存在,系統(tǒng)會(huì)自動(dòng)創(chuàng)建它。例4-39673、AVERAGE命令格式:AVERAGE[<數(shù)值型字段名表>][<范圍>][FOR<條件表達(dá)式1>][WHILE<條件表達(dá)式2>][TO<變量名>]功能:<數(shù)值型字段名表>用于指定數(shù)據(jù)表的一個(gè)或多個(gè)數(shù)值型字段或數(shù)值型表達(dá)式對(duì)其求平均值。如果省略它,則對(duì)選定表的所有數(shù)值型字段分別求和。TO<變量名>將求得的和保存在變量列表中,如果指定的變量不存在,系統(tǒng)會(huì)自動(dòng)創(chuàng)建它。例4-40684、匯總命令格式:TOTALTO<表名>ON<關(guān)鍵字段名>[FIELDS<數(shù)值型字段列表>][<范圍>][FOR<條件表達(dá)式1>][WHILE<條件表達(dá)式2>]功能:在當(dāng)前表中,分別對(duì)關(guān)鍵字段的值相同且相鄰的記錄,按<數(shù)值型字段列表>中的各表達(dá)式的值進(jìn)行求和,并將結(jié)果存儲(chǔ)到一個(gè)新表中,<表名>用于指出新的表文件的名字,而ON<關(guān)鍵字段名>用于指出哪個(gè)字段作分組關(guān)鍵字段。例4-4169排序:根據(jù)表中某些字段的值重新排列記錄,排序后生成一個(gè)新表,原表不變SORTTO

新文件名ON

字段名1[/A][/D][/C][,字段名2[/A][/D][/C]…][范圍][FOR|WHILE條件][FIELDS字段名表]注意:

ON后的字段名不能是備注型或通用型的

/A升序(默認(rèn)),/D降序,/C表示不區(qū)分字母的大小寫(xiě)4.5排序與索引70UsestudentListSorttostudent1on專(zhuān)業(yè),學(xué)號(hào)

FIELDS學(xué)號(hào),姓名,性別,專(zhuān)業(yè)USEstudent1LIST例:對(duì)student.dbf按專(zhuān)業(yè)升序排序,當(dāng)專(zhuān)業(yè)相同時(shí),則按學(xué)號(hào)升序排序,新表student1.dbf中只包含學(xué)號(hào),姓名,性別和專(zhuān)業(yè)4個(gè)字段。71物理順序:表中記錄的存儲(chǔ)順序,用記錄號(hào)表示。邏輯順序:表打開(kāi)后被使用時(shí)記錄的處理順序。排序后,生成的新表的物理順序改變;索引則不改變物理順序,按索引關(guān)鍵字建立記錄的邏輯順序,生成索引文件中只包含關(guān)鍵字和記錄號(hào),而且當(dāng)索引文件打開(kāi)時(shí),增加刪除原表中的記錄或修改關(guān)鍵字,索引文件會(huì)自動(dòng)更新比原表小,占空間比原表小的多索引72一、索引與索引文件的概念與分類(lèi)1、索引的分類(lèi)

主索引(PrimaryIndex)不允許出現(xiàn)NULL值和重復(fù)值的索引。在數(shù)據(jù)庫(kù)表中,每張表只能創(chuàng)建一個(gè)主索引,而自由表不能創(chuàng)建主索引,主索引只能保存在數(shù)據(jù)庫(kù)表的結(jié)構(gòu)復(fù)合索引中。

候選索引(CandidateIndex)可用作主關(guān)鍵字的索引,不允許有重復(fù)值的索引。即主索引的“候選項(xiàng)”。候選索引可用于數(shù)據(jù)庫(kù)表和自由表,并且一張表中可以建立多個(gè)候選索引。73

唯一索引(UniqueIndex)允許出現(xiàn)重復(fù)值,但索引文件入口值是唯一的,盡量少使用唯一索引。

普通索引(RegularIndex)允許重復(fù),即在普通索引上查找的記錄不具有唯一性。對(duì)一張數(shù)據(jù)表可以創(chuàng)建多個(gè)普通索引。742、索引文件的分類(lèi)索引本身并不改變數(shù)據(jù)的物理順序,只是把索引保存到另一個(gè)文件中,這一文件就是索引文件。

結(jié)構(gòu)復(fù)合索引文件(StructuralCompoundIndexFile)結(jié)構(gòu)復(fù)合索引將一張表的一個(gè)或多個(gè)索引的索引信息存儲(chǔ)在一個(gè)索引文件中,且索引文件的主文件名與數(shù)據(jù)表名相同,擴(kuò)展名為.CDX。結(jié)構(gòu)復(fù)合索引文件自動(dòng)與數(shù)據(jù)表文件同步打開(kāi)和關(guān)閉,并且在表修改時(shí)可以進(jìn)行自動(dòng)更新。75

非結(jié)構(gòu)復(fù)合索引文件(CompoundIndex)非結(jié)構(gòu)復(fù)合索引文件將一張表的一個(gè)或多個(gè)索引的索引信息存儲(chǔ)在一個(gè)索引文件中,擴(kuò)展名為.CDX,但其文件名與表名不同,且不會(huì)自動(dòng)隨表的打開(kāi)而打開(kāi),只有用打開(kāi)索引文件命令將其打開(kāi),才能起作用。

獨(dú)立索引文件(IndependentIndexFile)單索引文件包含一個(gè)索引入口的索引文件,它只存儲(chǔ)一個(gè)索引,一般作為臨時(shí)索引文件,其擴(kuò)展名為“.IDX”。獨(dú)立索引文件不會(huì)隨表的打開(kāi)自動(dòng)打開(kāi)。76索引文件存放哪些索引?結(jié)構(gòu)復(fù)合索引文件:表的主索引和候選索引必須存放在其中,同時(shí)將索引的屬性存儲(chǔ)在數(shù)據(jù)庫(kù)中。因?yàn)檫@兩種索引必須和表同時(shí)打開(kāi)。唯一索引和普通索引可以存儲(chǔ)在這兩種索引文件之中。77二、索引的創(chuàng)建1、在表設(shè)計(jì)器中建立索引例4-42、4-43782、用命令建立索引建立主索引和候選索引:SQL語(yǔ)言中的CREATETABLE和ALTERTABLE命令建立除主索引之外的各種類(lèi)型的索引:用INDEX命令創(chuàng)建字段表達(dá)式索引。格式:INDEXON<索引表達(dá)式>[TO<獨(dú)立索引文件>|TAG<索引標(biāo)識(shí)>[OF<復(fù)合索引文件>]][FOR<條件表達(dá)式1>][ASCENDING|DESCENDING][UNIQUE|CANDIDATE]例4-44、4-4579三、打開(kāi)與設(shè)置索引要利用索引查詢(xún),必須同時(shí)打開(kāi)表和索引文件。一個(gè)表可以打開(kāi)多個(gè)索引文件,同一個(gè)復(fù)合索引文件也可能包含多個(gè)索引標(biāo)識(shí),但任何時(shí)候只能有一個(gè)索引文件能起作用,在復(fù)合索引文件中也只有一個(gè)索引標(biāo)識(shí)能起作用。當(dāng)前起作用的索引文件稱(chēng)為主控索引文件,當(dāng)前起作用的索引標(biāo)識(shí)稱(chēng)為主控索引。實(shí)現(xiàn)索引查詢(xún)必須滿(mǎn)足以下條件:打開(kāi)表;打開(kāi)索引文件;確定主控索引文件或確定復(fù)合索引文件的主控索引。801、打開(kāi)索引文件

若當(dāng)前數(shù)據(jù)表僅有一個(gè)獨(dú)立索引文件打開(kāi),它就成為主控索引文件,此外使用命令剛建立索引時(shí),索引文件呈打開(kāi)狀態(tài)且會(huì)成為主控索引文件。需要注意的是,結(jié)構(gòu)復(fù)合索引總是隨數(shù)據(jù)表的打開(kāi)而被打開(kāi),其他索引文件必須使用命令顯式打開(kāi)。(1)與數(shù)據(jù)表同時(shí)打開(kāi)格式:USE<數(shù)據(jù)表名>INDEX<索引文件名>例4-4681(2)使用SETINDEX命令打開(kāi)索引SETINDEX命令可以用于打開(kāi)當(dāng)前表的索引,可以同時(shí)打開(kāi)多個(gè)索引。格式:SETINDEXTO<索引文件列表>[ORDER<獨(dú)立索引文件>|TAG<索引標(biāo)識(shí)>[OF<復(fù)合索引文件名>]]例4-47822、設(shè)置主控索引由于在復(fù)合索引的多個(gè)索引中,在某一時(shí)刻只有一個(gè)索引對(duì)表起作用,這個(gè)索引標(biāo)志稱(chēng)為主控索引。格式:SETORDERTO[TAG]<索引標(biāo)識(shí)>[OF<復(fù)合索引文件名>]說(shuō)明:[TAG]<索引標(biāo)識(shí)>[OF<復(fù)合索引文件名>]用于指定.CDX文件中的一個(gè)索引標(biāo)識(shí)為主控索引標(biāo)識(shí)。標(biāo)識(shí)名可以來(lái)自任何打開(kāi)的.CDX文件。如果在各打開(kāi)的.CDX中存在相同的索引標(biāo)識(shí),則需使用[OF<復(fù)合索引文件名>]來(lái)指定包含此標(biāo)識(shí)的.CDX文件。例4-4883四、索引查詢(xún)命令

與順序查詢(xún)比較:順序查詢(xún)速度較慢,只適用于記錄較少的表。索引查詢(xún)速度很快,但其算法要求表的記錄是有序的,這就需要事先對(duì)表進(jìn)行索引。84格式:SEEK<表達(dá)式>[ORDERTAG<索引標(biāo)識(shí)>[OF<復(fù)合索引文件>]][IN<工作區(qū)號(hào)>|<表別名>]說(shuō)明:①<表達(dá)式>用于指定搜索的索引關(guān)鍵字。②ORDERTAG<索引標(biāo)識(shí)>[OF<復(fù)合索引文件>]用于指定搜索關(guān)鍵字的索引文件或索引標(biāo)識(shí)。例4-4985

SEEK命令只能對(duì)有索引的數(shù)據(jù)表進(jìn)行查詢(xún),并且只能搜索索引關(guān)鍵字。匹配的結(jié)果受SETEXACT設(shè)置的影響。如果找到了符合條件的記錄,則RECNO()函數(shù)將返回匹配記錄的記錄號(hào),F(xiàn)OUND()函數(shù)將返回真,EOF()函數(shù)返回假;如果沒(méi)有找到了符合條件的記錄,則RECNO()函數(shù)將返回表中記錄的個(gè)數(shù)加1,F(xiàn)OUND()函數(shù)將返回假,EOF()函數(shù)返回真。864.6數(shù)據(jù)完整性與表間永久性關(guān)系定義:數(shù)據(jù)完整性是數(shù)據(jù)的準(zhǔn)確性和一致性的測(cè)度,它是為防止數(shù)據(jù)庫(kù)中存在不符合語(yǔ)義規(guī)定的數(shù)據(jù)和防止因錯(cuò)誤信息的輸入輸出造成無(wú)效操作或錯(cuò)誤信息而提出的。分類(lèi):實(shí)體完整性(EntityIntegrity)、域完整性(DomainIntegrity)、參照完整性(ReferentialIntegrity)、用戶(hù)自定義的完整性。87一、實(shí)體完整性與關(guān)鍵字

實(shí)體完整性約束要求關(guān)系的主鍵中屬性值不能為空,這是數(shù)據(jù)庫(kù)完整性的最基本要求,因?yàn)橹麈I是惟一決定元組的,如為空則其惟一性就成為不可能的了。在VisualFoxPro系統(tǒng)中,即是要求一個(gè)數(shù)據(jù)表中不允許出現(xiàn)重復(fù)記錄,因此,一個(gè)數(shù)據(jù)表應(yīng)該至少有一個(gè)關(guān)鍵字,主索引和候選索引都可以擔(dān)當(dāng)關(guān)鍵字。二、域完整性與約束規(guī)則域完整性是指對(duì)屬性的取值范圍作出的要求。在建立表時(shí),各字段的數(shù)據(jù)類(lèi)型的設(shè)置就屬于域完整性的范疇。在表設(shè)計(jì)器中為數(shù)據(jù)表的字段設(shè)置的有效性規(guī)則,也就是一種域完整性約束規(guī)則。88三、參照完整性1、表間永久性關(guān)系(1)表之間的關(guān)系一對(duì)一、一對(duì)多和多對(duì)多三種關(guān)系。(2)建立關(guān)系永久關(guān)系:在數(shù)據(jù)庫(kù)中建立的表與表之間的關(guān)系,將作為數(shù)據(jù)庫(kù)的組成部分而被永久保存。在“數(shù)據(jù)庫(kù)設(shè)計(jì)器”中,選擇主表中想要關(guān)聯(lián)的索引名,然后把它拖到相關(guān)表匹配的索引名上即可。前提:必須在父表中建立主索引或候選索引例4-5089(3)刪除關(guān)系90(4)編輯關(guān)系在“編輯關(guān)系”對(duì)話(huà)框中有兩個(gè)下拉列表,分別列出了兩個(gè)表的索引,可以在其中選擇合適的索引,VisualFoxPro會(huì)自動(dòng)判斷索引的類(lèi)型,建立“一對(duì)一”或“一對(duì)多”的關(guān)系。其中,在父表的下拉列表中,僅列出主索引和候選索引;而在子表的下拉列表中,則會(huì)列出各種索引。912、參照完整性規(guī)則及其設(shè)置(1)概念參照完整性(ReferentialIntegrity,RI)是指在永久關(guān)系的基礎(chǔ)上可設(shè)置

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論