數(shù)據(jù)庫(kù)與表的創(chuàng)建及使用.ppt_第1頁(yè)
數(shù)據(jù)庫(kù)與表的創(chuàng)建及使用.ppt_第2頁(yè)
數(shù)據(jù)庫(kù)與表的創(chuàng)建及使用.ppt_第3頁(yè)
數(shù)據(jù)庫(kù)與表的創(chuàng)建及使用.ppt_第4頁(yè)
數(shù)據(jù)庫(kù)與表的創(chuàng)建及使用.ppt_第5頁(yè)
已閱讀5頁(yè),還剩90頁(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)介

1、,第三章 數(shù)據(jù)庫(kù)與表的創(chuàng)建和使用,3.1 數(shù)據(jù)庫(kù)概述 3.2 數(shù)據(jù)庫(kù)的創(chuàng)建、打開與使用 3.3 表的創(chuàng)建與使用 3.4 永久性關(guān)系與參照完整性 3.5 有關(guān)數(shù)據(jù)庫(kù)及其對(duì)象的常用函數(shù),3.1 VFP數(shù)據(jù)庫(kù)概述,數(shù)據(jù)庫(kù)是一個(gè)容器,是許多相關(guān)的數(shù)據(jù)庫(kù)表及其關(guān)系的集合。在數(shù)據(jù)庫(kù)中可以存儲(chǔ)和管理各種對(duì)象,如表、視圖、關(guān)系、連接以及存儲(chǔ)過(guò)程等。,VFP數(shù)據(jù)庫(kù)的組成 數(shù)據(jù)庫(kù)表 視圖(View) 連接(Connection) 存儲(chǔ)過(guò)程,數(shù)據(jù)字典,數(shù)據(jù)字典是指存儲(chǔ)在數(shù)據(jù)庫(kù)中用于描述所管理的表和對(duì)象的數(shù)據(jù),即關(guān)于數(shù)據(jù)的數(shù)據(jù),這些數(shù)據(jù)稱為元數(shù)據(jù)。,數(shù)據(jù)字典可以創(chuàng)建和指定以下內(nèi)容: 表中字段的標(biāo)題、注釋、默認(rèn)值、輸入

2、掩碼和顯示格式,以及表單中使用的默認(rèn)控件類等 表的主索引關(guān)鍵字 數(shù)據(jù)庫(kù)表之間的永久性關(guān)系 長(zhǎng)表名和表注釋 字段級(jí)和記錄級(jí)有效性規(guī)則 存儲(chǔ)過(guò)程 插入、更新和刪除事件的觸發(fā)器,3.2 數(shù)據(jù)庫(kù)的創(chuàng)建、打開與使用,每創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)都將生成三個(gè)文件:數(shù)據(jù)庫(kù)文件(.dbc)、關(guān)聯(lián)的數(shù)據(jù)庫(kù)備注文件(.dct)和關(guān)聯(lián)的數(shù)據(jù)庫(kù)索引文件(.dcx)。,一、數(shù)據(jù)庫(kù)的創(chuàng)建 利用界面操作方式創(chuàng)建數(shù)據(jù)庫(kù) 在“項(xiàng)目管理器”窗口中創(chuàng)建新的數(shù)據(jù)庫(kù) 通過(guò)“新建”對(duì)話框創(chuàng)建 利用命令方式創(chuàng)建數(shù)據(jù)庫(kù) 格式:CREATE DATABASE DatabaseName|? 其中: DatabaseName為創(chuàng)建的數(shù)據(jù)庫(kù)文件名,二、數(shù)據(jù)

3、庫(kù)的打開 格式:OPEN DATABASE DatabaseName EXCLUSIVE|SHAREDNOUPDATEVALIDATE 功能:打開指定的數(shù)據(jù)庫(kù) 其中:VALIDATE用于說(shuō)明在打開數(shù)據(jù)庫(kù)時(shí)進(jìn)行數(shù)據(jù)庫(kù)的有效性檢驗(yàn)。,三、設(shè)置當(dāng)前數(shù)據(jù)庫(kù) 數(shù)據(jù)庫(kù)可以同時(shí)打開多個(gè)。只有一個(gè)是當(dāng)前數(shù)據(jù)庫(kù)。在打開數(shù)據(jù)庫(kù)時(shí),最后一個(gè)打開的數(shù)據(jù)庫(kù)為當(dāng)前數(shù)據(jù)庫(kù)。可以把其他的數(shù)據(jù)庫(kù)設(shè)置為當(dāng)前數(shù)據(jù)庫(kù)。 格式:SET DATABASE TO DatabaseName 功能:將指定的數(shù)據(jù)庫(kù)設(shè)置為當(dāng)前數(shù)據(jù)庫(kù),四、檢查數(shù)據(jù)庫(kù)的有效性 格式:VALIDATE DATABASE RECOVERTO PRINTER|TO FIL

4、E FileName 其中:RECOVER用于說(shuō)明更新鏈接,缺省時(shí)僅檢查數(shù)據(jù)庫(kù)的有效性;TO子句用于說(shuō)明檢查結(jié)果信息的去向,缺省時(shí)在VFP主窗口是顯示。該命令只能處理以獨(dú)占方式打開的當(dāng)前數(shù)據(jù)庫(kù)。在更新鏈接時(shí),如果數(shù)據(jù)庫(kù)表文件不在原位置,系統(tǒng)會(huì)打開“檢查數(shù)據(jù)庫(kù)”對(duì)話框,要求用戶進(jìn)行文件定位。,五、關(guān)閉數(shù)據(jù)庫(kù) 格式:CLOSE DATABASE 功能:關(guān)閉當(dāng)前數(shù)據(jù)庫(kù) 格式:CLOSE DATABASE ALL 功能:關(guān)閉所有打開的數(shù)據(jù)庫(kù) 六、刪除數(shù)據(jù)庫(kù) 從“項(xiàng)目管理器”窗口中通過(guò)“移去”操作進(jìn)行刪除,則該數(shù)據(jù)庫(kù)不包含在項(xiàng)目中。,3.3 表的創(chuàng)建與使用,表(Table)是指存儲(chǔ)在磁盤文件中的二維表,

5、一張二維表保存為一個(gè)表文件(.dbf)。表文件名必須遵守Windows系統(tǒng)對(duì)文件名的約定外,不可用A-J中的單個(gè)字母作文件名。 表中的列稱為字段(Field),它規(guī)定了數(shù)據(jù)的特征;表的行叫做記錄(Record),每一條記錄表示一個(gè)實(shí)體。,一、表結(jié)構(gòu)概述 字段名 字段名命名規(guī)則: 名稱中只能包含字母、下劃線“_”、數(shù)字符號(hào)和漢字符號(hào); 名稱的開頭只能是字母、漢字或下劃線,不能是數(shù)字; 名稱長(zhǎng)度為110個(gè)字符; 應(yīng)避免使用系統(tǒng)保留字。,字段的數(shù)據(jù)類型,字段的寬度 小數(shù)位數(shù) 空值(NULL)支持 空值是用來(lái)指示記錄中的一個(gè)字段有或沒(méi)有數(shù)據(jù)的標(biāo)識(shí)。NULL不是一種數(shù)據(jù)類型或一個(gè)值,它是用來(lái)指示數(shù)據(jù)存在

6、或不存在的一種屬性。,二、表結(jié)構(gòu)的創(chuàng)建和修改 1、表結(jié)構(gòu)的創(chuàng)建 用“表設(shè)計(jì)器”(Table Designer)創(chuàng)建表結(jié)構(gòu),用CREATE TABLE-SQL命令創(chuàng)建表結(jié)構(gòu) CREATE TABLE TableName (FieldName1 FieldType (nFieldWidth,nPrecision) NULL|NOT NULL ,Fieldname2),2表結(jié)構(gòu)的修改 用“表設(shè)計(jì)器”(Table Designer)修改表的結(jié)構(gòu) 用ALTER TABLE-SQL命令修改表結(jié)構(gòu) 增加字段: ALTER TABLE TableName ADD COLUMN FieldName FieldT

7、ype (nFieldWidth ,nPricision),修改字段:(此命令不能修改字段名) ALTER TABLE TableName ALTER COLUMN FieldName FieldType (nFieldWidth ,nPricision) 刪除字段: ALTER TABLE TableName DROP COLUMN FieldName 修改字段名: ALTER TABLE TableName RENAME COLUMN FieldName1 TO FieldName2,三、字段屬性與表屬性,字段的擴(kuò)展屬性,字段顯示屬性 字段的格式(Format) 字段的格式用于指定字段顯示

8、時(shí)的格式,包括在瀏覽窗口、表單或報(bào)表中顯示時(shí)的大小寫和樣式等。 輸入掩碼(Input Mask) 字段的輸入掩碼用于指定字段中輸入數(shù)據(jù)的格式。 字段的標(biāo)題(Caption)和注釋(Comment) 標(biāo)題和注釋都是為了使表具有更好的可讀性。在設(shè)置表結(jié)構(gòu)時(shí),如果字段名不能明確地表達(dá)列的含義,可以為字段設(shè)置一個(gè)標(biāo)題。如果標(biāo)題還不能充分地表達(dá)含義或需要給字段以詳細(xì)的說(shuō)明,還可以給字段加上注釋。,字段驗(yàn)證 字段驗(yàn)證用來(lái)限定字段的取值及取值范圍,包括字段有效性規(guī)則、字段有效性信息和默認(rèn)值。 字段有效性規(guī)則和有效性信息 字段有效性規(guī)則用來(lái)控制輸入到字段中的數(shù)據(jù)的取值范圍。該規(guī)則是一個(gè)邏輯表達(dá)式。字段有效性規(guī)

9、則在字段值改變時(shí)發(fā)生作用,它將所輸入的值用定義的邏輯表達(dá)式進(jìn)行驗(yàn)證,如不滿足(即邏輯表達(dá)式的值為.F.),則拒絕該字段值,并顯示一個(gè)提示框。,字段有效性信息是一個(gè)字符型表達(dá)式,通常與字段有效性規(guī)則配合使用,用于指定在不滿足規(guī)則要求時(shí)顯示的提示信息。 如果表中已有記錄,且需要設(shè)置或修改某字段的有效性規(guī)則,則首先必須確保表中所有記錄滿足將要設(shè)置的有效性規(guī)則,否則,有效性規(guī)則無(wú)法設(shè)置或在確認(rèn)保存時(shí)選擇對(duì)現(xiàn)有數(shù)據(jù)不作檢查。,默認(rèn)值 向一張數(shù)據(jù)庫(kù)表中添加新記錄時(shí),為字段所指定的最初的值稱為該字段的默認(rèn)值。在設(shè)置字段默認(rèn)值時(shí),默認(rèn)值必須是一個(gè)與字段類型相同的表達(dá)式。 在使用CREATE TABLE-SQL

10、命令創(chuàng)建數(shù)據(jù)庫(kù)表時(shí),可用CHECK子句、ERROR子句和DEFAULT子句設(shè)置字段的有效性規(guī)則、有效性信息和默認(rèn)值。在使用ALTER TABLE-SQL命令修改表結(jié)構(gòu)時(shí),可通過(guò)SET CHECK子句、SET DEFAULT子句設(shè)置字段的有效性規(guī)則(信息)、默認(rèn)值;通過(guò)DROP CHECK和DROP DEFAULT子句刪除字段的有效性規(guī)則(信息)、默認(rèn)值。,數(shù)據(jù)庫(kù)表的表屬性 長(zhǎng)表名與表注釋 可在數(shù)據(jù)庫(kù)表的“表設(shè)計(jì)器”對(duì)話框中的“表”選項(xiàng)卡中的“表名”文本框中輸入長(zhǎng)表名。也可在使用CREATE TABLE-SQL命令創(chuàng)建表時(shí),用NAME子句指定長(zhǎng)表名。 表注釋是表的說(shuō)明信息。,記錄驗(yàn)證 記錄驗(yàn)證包

11、括記錄有效性規(guī)則和有效性信息,用于定義記錄級(jí)校驗(yàn)規(guī)則及相應(yīng)的提示信息。字段有效性規(guī)則僅對(duì)當(dāng)前字段有效,而使用記錄有效性規(guī)則可以校驗(yàn)多個(gè)字段間的關(guān)系是否滿足某種規(guī)則。 記錄有效性規(guī)則在記錄值發(fā)生改變時(shí)被激活。如對(duì)一張已有記錄的表增設(shè)記錄有效性規(guī)則,則在設(shè)置結(jié)束時(shí)要按此規(guī)則對(duì)所有記錄進(jìn)行規(guī)則檢查。 記錄有效性規(guī)則除了可在數(shù)據(jù)庫(kù)表的“表設(shè)計(jì)器”對(duì)話框中設(shè)置,也可在CREATE TABLE-SQL命令中通過(guò)CHECK子句或在ALTER TABLE-SQL命令中通過(guò)SET CHECK子句進(jìn)行設(shè)置。在ALTER TABLE-SQL命令中通過(guò)DROP CHECK可刪除記錄的有效性規(guī)則。,表的觸發(fā)器 插入觸發(fā)

12、器:每次向表中插入或追加記錄時(shí)觸發(fā)該規(guī)則 更新觸發(fā)器:每次向表中修改記錄時(shí)觸發(fā)該規(guī)則 刪除觸發(fā)器:每次向表中刪除記錄時(shí)觸發(fā)該規(guī)則 觸發(fā)器值返回.T.,則允許執(zhí)行相應(yīng)的操作,否則不允許執(zhí)行相應(yīng)的操作。,格式:CREATE TRIGGER ON TableName FOR DELETE|INSERT|UPDATE AS lExpression 功能:創(chuàng)建表的觸發(fā)器 其中:AS子句用于說(shuō)明觸發(fā)器的使用規(guī)則 格式: DELETE TRIGGER ON TableName FOR DELETE|INSERT|UPDATE 功能:刪除表的觸發(fā)器,四、 表的打開與關(guān)閉,1、工作區(qū) 所謂工作區(qū)是指用于標(biāo)識(shí)一張

13、打開的表的區(qū)域。每個(gè)工作區(qū)有一個(gè)編號(hào),稱為工作區(qū)號(hào),其編號(hào)范圍為1-32767(前10個(gè)工作區(qū)號(hào)也可以用A-J表示)。如果某工作區(qū)中已有表打開,可以用表的“別名”作為工作區(qū)號(hào)。,一個(gè)工作區(qū)中只能打開一張表,用戶可以同時(shí)在多個(gè)工作區(qū)中打開多張表,也可以將一張表同時(shí)在多個(gè)工作區(qū)中打開。 VFP正在使用的工作區(qū)稱為當(dāng)前工作區(qū),即默認(rèn)工作區(qū)。 SELECT nWorkArea|cTableAlias nWorkArea為工作區(qū)號(hào);cTableAlias為表別名。工作區(qū)號(hào)為0時(shí),選擇未被使用的最小編號(hào)的工作區(qū)。,2、“數(shù)據(jù)工作期”窗口 在VFP主菜單上選擇窗口,再選擇數(shù)據(jù)工作期,3、表的打開 使用表時(shí)首

14、先必須把表打開。表的打開可以是顯式地打開,也可以是隱式地打開。 通過(guò)界面操作打開 使用菜單命令“文件/打開”或單擊“常用”工具條上的“打開”按鈕打開 在“數(shù)據(jù)工作期”窗口中單擊“打開”按鈕 在“項(xiàng)目管理器”窗口中選擇需要打開的表,然后單擊“修改”或“瀏覽”按鈕,使用命令打開 USE TableName IN nWorkArea|cWorkAliasAGAIN ALIAS cTableAliasNOUPDATE SHARED|EXCLUSIVE,其中: IN子句用于指定在哪個(gè)工作區(qū)中打開,缺省時(shí)則表示在當(dāng)前工作區(qū)中打開; AGAIN子句用于說(shuō)明該表再次打開,即表在多個(gè)工作區(qū)中同時(shí)被打開; ALI

15、AS子句用于定義表的別名,缺省時(shí)表的別名與表名相名; NOUPDATE指定表打開后不允許修改其結(jié)構(gòu)和數(shù)據(jù); SHARED指定表為共享方式打開,EXCLUSIVE指定表為獨(dú)占方式打開。,4、表的關(guān)閉 通過(guò)界面操作 在“數(shù)據(jù)工作期”窗口中選定一張表的別名,單擊“關(guān)閉”按鈕。 使用命令 USE IN nWorkArea|cTableAlias 功能:關(guān)閉指定工作區(qū)中的表。 其中:不使用IN子句時(shí)關(guān)閉當(dāng)前工作區(qū)的表。,CLOSE TABLES ALL 功能:關(guān)閉所有工作區(qū)中的表。 CLOSE ALL 功能:關(guān)閉所有的數(shù)據(jù)庫(kù)、表和索引,且將當(dāng)前工作區(qū)設(shè)置為1號(hào)工作區(qū)。,5、表的獨(dú)占與共享 VFP是一個(gè)多

16、用戶的開發(fā)環(huán)境,網(wǎng)絡(luò)上的多個(gè)用戶可以在同一時(shí)刻訪問(wèn)同一張表。這種一張表可以同時(shí)被多個(gè)用戶訪問(wèn)的情況,就是表的共享使用。反之,當(dāng)一張表只能被一個(gè)用戶打開時(shí),稱為表的獨(dú)占使用。 默認(rèn)狀態(tài)下,表是以獨(dú)占方式打開的,可以使用命令來(lái)設(shè)置打開方式。,SET EXCLUSIVE OFF 設(shè)置“共享”為默認(rèn)打開方式 SET EXCLUSIVE ON 設(shè)置“獨(dú)占”為默認(rèn)打開方式 改變SET EXCLUSIVE的設(shè)置,并不能改變已經(jīng)打開的表的狀態(tài)。另外,一張表同時(shí)被多次打開時(shí),只以第一次的打開方式為準(zhǔn)。,五、 記錄的處理,1、記錄的輸入 表結(jié)構(gòu)創(chuàng)建后立即輸入記錄 輸入結(jié)束時(shí),單擊窗口的“關(guān)閉”按鈕?;虬碈trl+

17、End或Ctrl+W組合鍵,在瀏覽窗口中追加記錄 瀏覽當(dāng)前工作區(qū)中的表的方法 單擊菜單“顯示”“瀏覽” 單擊菜單“窗口”“數(shù)據(jù)工作期” 選擇表“瀏覽” 在命令窗口使用命令BROWSE 在項(xiàng)目管理器中選擇表單擊“瀏覽”按鈕,在瀏覽窗口中追加記錄 單擊菜單“表”“追加新記錄”或在命令窗口中輸入命令A(yù)PPEND BLANK,可追加一條空白記錄,且處于編輯狀態(tài)等待用戶輸入數(shù)據(jù) 單擊菜單“顯示”“追加方式” ,可追加多條記錄 單擊菜單“顯示” “瀏覽”或“顯示” “編輯”,可在瀏覽窗口和編輯窗口間切換,使用INSERT-SQL命令追加記錄 命令格式: INSERT INTO TableName(Fiel

18、dName1,FieldName2,) VALUES (eExpression1,eExpression2,) 字段名列表用于指定插入的新記錄的哪些字段需要填值,缺省表示全部字段;表達(dá)式列表指定新插入記錄的字段值。字段列表與表達(dá)式列表必須對(duì)應(yīng),且數(shù)據(jù)類型一致。,使用APPEND與APPEND FROM命令追加記錄 APPEND命令格式: APPEND BLANK IN nWorkArea | cTableAlias 其中:BLANK用于說(shuō)明向表中追加一條空白記錄; IN nWorkArea | cTableAlias用于指定表所在的工作區(qū),缺省時(shí)為當(dāng)前工作區(qū)。,將其他文件中的數(shù)據(jù)導(dǎo)入當(dāng)前工作區(qū)

19、表中 單擊菜單“表” “追加記錄”,可將其他文件中的數(shù)據(jù)導(dǎo)入當(dāng)前工作區(qū)表中。 常用的追回文件的文件類型有表文件(.dbf)、文本文件(.txt)和Excel文件(.xls)等。 或用命令: APPEND FROM FileName DELIMITED | XLS DELIMITED用于說(shuō)明追加文件類型為文本文件,XLS為Excel文件,缺省時(shí)為表文件。,備注型字段和通用型字段的數(shù)據(jù)輸入 備注型字段: 在瀏覽窗口中,備注型字段顯示“memo”(表示無(wú)內(nèi)容)或“Memo”(表示有內(nèi)容)。將光標(biāo)移到備注型字段,按Ctrl+Home或雙擊該字段,在出現(xiàn)的編輯窗口中輸入備注字段內(nèi)容,結(jié)束時(shí)關(guān)閉編輯窗口。

20、 通用型字段: 在瀏覽窗口中,通用型字段顯示“gen”(表示無(wú)內(nèi)容)或“Gen”(表示有內(nèi)容)。將光標(biāo)移到通用型字段,按Ctrl+Home或雙擊該字段,在出現(xiàn)的編輯窗口中單擊菜單“編輯” “插入對(duì)象”,插入內(nèi)容,結(jié)束時(shí)關(guān)閉編輯窗口。,2、瀏覽窗口 BROWSE FIELDS Fieldlist FOR lExpression FREEZE FieldName NOAPPEND NODELETE NOMODIFY TITLE cExpression,FIELDS子句用于指定在瀏覽窗口中出現(xiàn)的字段(字段間以逗號(hào)分隔),缺省時(shí)表示所有字段; FOR子句用于篩選記錄,僅有滿足條件的記錄在瀏覽窗口中顯示

21、; FREEZE子句用于指定可以修改的字段,其他字段的數(shù)據(jù)不可修改; NOAPPEND指定不可追加記錄; NODELETE指定不可刪除記錄; NOMODIFY指定不可修改記錄,但可追加或刪除記錄; TITLE子句指定瀏覽窗口的標(biāo)題,缺省時(shí)為表名。,3、記錄的篩選 如果用戶只想查看和處理滿足一定條件的一部分記錄,可以對(duì)表記錄進(jìn)行篩選。 通過(guò)FOR子句的使用可以完成篩選功能; 當(dāng)表處于瀏覽狀態(tài)時(shí),單擊菜單“表”“屬性”打開“工作區(qū)屬性”對(duì)話框,設(shè)置“數(shù)據(jù)過(guò)濾器”,可以對(duì)記錄進(jìn)行篩選; 使用命令: SET FILTER TO lExpression 其中:條件表達(dá)式lExpression用于指定記錄

22、需要滿足的條件,省略時(shí)即取消篩選,4、限制對(duì)字段的訪問(wèn) 在瀏覽或使用表時(shí),如果只打算顯示或處理部分字段,或以設(shè)置字段篩選來(lái)限制對(duì)某些字段的訪問(wèn)。 通過(guò)FIELDS子句的使用可以完成篩選功能; 當(dāng)表處于瀏覽狀態(tài)時(shí),單擊菜單“表”“屬性”打開“工作區(qū)屬性”對(duì)話框,設(shè)置“字段篩選”,可以對(duì)字段進(jìn)行篩選; 使用命令: SET FIELDS TO FieldList 其中:字段名表FieldList用于列出所需的字段(字段名間用逗號(hào)分隔),省略時(shí)即取消篩選,5、記錄的定位 記錄指針 當(dāng)一張表打開后,系統(tǒng)自動(dòng)地為該表生成三個(gè)控制標(biāo)志:記錄的開始標(biāo)志、記錄指針標(biāo)志、記錄的結(jié)束標(biāo)志。記錄指針標(biāo)志用于指示當(dāng)前處

23、理的記錄位置,記錄指針指向的那個(gè)記錄稱為“當(dāng)前記錄”。每當(dāng)打開一個(gè)表文件時(shí),記錄指針總是指向第1條記錄。,格式:RECNO(nWorkArea) 功能:返回指定工作區(qū)中指針?biāo)赣涗浀挠涗浱?hào),缺省任選項(xiàng)表示當(dāng)前工作區(qū)。 格式:BOF(nWorkArea) 功能:測(cè)試指定工作區(qū)中指針是否指向記錄的開始標(biāo)志,如是,則返回.T.,否則為.F.,缺省任選項(xiàng)表示當(dāng)前工作區(qū)。 格式:EOF(nWorkArea) 功能:測(cè)試指定工作區(qū)中指針是否指向記錄的結(jié)束標(biāo)志,如是,則返回.T.,否則為.F.,缺省任選項(xiàng)表示當(dāng)前工作區(qū)。,記錄的定位 記錄指針的絕對(duì)定位:把指針移到指定位置。 記錄指針的相對(duì)定位:把指針從當(dāng)前

24、位置開始,相對(duì)于當(dāng)前記錄向前或向后移動(dòng)若干條記錄位置。 記錄指針的條件定位:按照一定的條件自動(dòng)地在整張表(或表的某個(gè)指定范圍)中查找符合條件的記錄,如找到符合條件的記錄,則把指針定位到該記錄上,否則,指針將指向表的末尾。,通過(guò)界面操作方式定位 當(dāng)表處于瀏覽狀態(tài)時(shí),記錄的定位可以利用菜單命令“表”“轉(zhuǎn)到記錄”進(jìn)行,也可以直接在瀏覽窗口中通過(guò)鼠標(biāo)操作或鍵盤上的光標(biāo)移動(dòng)操作。 All:表中的全部記錄 Next n:從當(dāng)前記錄開始的n條記錄 Record n:記錄號(hào)為n的記錄 Rest:當(dāng)前記錄及其后的所有記錄,使用命令進(jìn)行記錄定位 絕對(duì)定位 GOTO nRecordNumber IN nWorkAr

25、ea|IN cTableAlias|TOP|BOTTOM 其中:記錄號(hào)nRecordNumber必須在表記錄的有效范圍內(nèi);TOP指首記錄;BOTTOM指末記錄。 相對(duì)定位 SKIP nRecordsIN nWorkArea|cTableAlias 其中:nRecordNumber用于指定記錄指針需要移動(dòng)的記錄個(gè)數(shù)(正表示向后移動(dòng),負(fù)表示向前移動(dòng)),缺省時(shí)為1。,條件定位 LOCATE FOR lExpression Scope CONTINUE 其中:條件表達(dá)式lExpression用于表示記錄的定位條件;范圍Scope用于指定進(jìn)行條件定位的范圍。CONTINUE命令表示從當(dāng)前記錄開始繼續(xù)進(jìn)行

26、條件定位,即找到下一條滿足條件的記錄。,6、記錄的修改 界面方式的記錄修改 對(duì)于當(dāng)前工作區(qū)中的表,可以在瀏覽窗口(或編輯窗口)中對(duì)記錄進(jìn)行修改。 如需對(duì)所有記錄(或滿足某種條件的記錄)的某個(gè)字段內(nèi)容進(jìn)行有“規(guī)律”的修改,則可進(jìn)行“批量修改”。在游覽狀態(tài)下,利用菜單命令“表” “替換字段”對(duì)話框,在該對(duì)話框中選擇和輸入字段替換的有關(guān)要求。(如下圖所示),界面方式的記錄修改(續(xù)),使用命令修改記錄 REPLACE命令 REPLACE FieldName1 WITH eExpression1 ADDITIVE,FieldName2 WITH eExpression2 ADDITIVEScope FO

27、R lExpression 功能:對(duì)當(dāng)前工作區(qū)中的表進(jìn)行替換修改。 其中:字段名FieldName與表達(dá)式eExpression用于指定要更新的字段以及這些字段的新值;ADDITIVE僅對(duì)備注型字段有效,使用時(shí)表示替換的內(nèi)容追加到原備注中,否則替換原有內(nèi)容;當(dāng)FOR和Scope同時(shí)缺省時(shí),僅對(duì)當(dāng)前記錄進(jìn)行替換。,UPDATE-SQL命令 UPDATE TableName SET Column_Name1=eExpression1 ,Column_Name2=eExpression2,WHERE FilterCondition 功能:對(duì)指定表的內(nèi)容進(jìn)行替換修改。 其中:表名TableName用于

28、指定要更新記錄的表;Column_Name=eExpression用于指定要更新的字段以及這些字段的新值;WHERE子句用于指定要更新的記錄,缺省時(shí)表示所有記錄。需要說(shuō)明的是,用該命令更新表時(shí),被更新的表不必事先打開。,7、記錄的刪除與恢復(fù) 徹底刪除表中的部分記錄,分兩個(gè)步驟:首先標(biāo)記要?jiǎng)h除的記錄,然后徹底刪除帶刪除標(biāo)記的記錄。 標(biāo)記要?jiǎng)h除的記錄(邏輯刪除) 采用界面操作方式 在瀏覽狀態(tài)下,用鼠標(biāo)單擊“刪除標(biāo)記列”或完成刪除標(biāo)記的切換,或在記錄定位后利用菜單命令“表”“切換刪除標(biāo)記”來(lái)完成;或用菜單命令“表” “刪除記錄”,打開“刪除”對(duì)話框,可刪除指定范圍內(nèi)的一組符合指定條件的記錄。,采用命

29、令方式 格式:DELETE Scope FOR lExpression IN nWorkArea|cTableAlias 其中:缺省工作區(qū)或工作表別名時(shí),指當(dāng)前工作區(qū)中的表;當(dāng)范圍和條件同時(shí)缺省時(shí),僅對(duì)當(dāng)前記錄加刪除標(biāo)記。有條件無(wú)范圍時(shí)為ALL。 格式:DELETE FROM TableName WHERE FilterCondition 其中:TableName為表名,缺省條件時(shí)為所有記錄,此DELETE-SQL命令可在不預(yù)先打開表的情況下刪除指定記錄。,恢復(fù)帶刪除標(biāo)記的記錄 采用界面操作方式 在瀏覽狀態(tài)下,用鼠標(biāo)單擊“刪除標(biāo)記列”或完成刪除標(biāo)記的切換,或在記錄定位后利用菜單命令“表”“切換

30、刪除標(biāo)記”來(lái)完成;或用菜單命令“表” “恢復(fù)記錄”,打開“恢復(fù)記錄”對(duì)話框,可恢復(fù)指定范圍內(nèi)的一組符合指定條件的記錄。 采用命令方式 格式:RECALL Scope FOR lExpression 其中:當(dāng)范圍和條件同時(shí)缺省時(shí),僅恢復(fù)當(dāng)前記錄。有條件無(wú)范圍時(shí)為ALL。,徹底刪除記錄(物理刪除) 采用界面操作方式 在瀏覽狀態(tài)下,用菜單命令“表” “徹底刪除” ,可徹底刪除帶有刪除標(biāo)記的記錄。 采用命令方式 格式:PACK 功能:物理刪除帶刪除標(biāo)記的記錄 格式:ZAP 功能:刪除當(dāng)前工作區(qū)中所打開表中的所有記錄 注意:物理刪除后記錄不可恢復(fù)。,對(duì)帶有刪除標(biāo)記的記錄的訪問(wèn) 格式:SET DELETE

31、D ON|OFF 功能:指定VFP是否對(duì)有刪除標(biāo)記的記錄進(jìn)行處理 其中:ON表示忽略有刪除標(biāo)記的記錄;OFF(系統(tǒng)默認(rèn))表示允許訪問(wèn)有刪除標(biāo)記的記錄。,8、數(shù)據(jù)的復(fù)制 利用COPY TO命令可以將表(在當(dāng)前工作區(qū)中已打開)中的數(shù)據(jù)復(fù)制到其他表文件或其他類型的文件中。 格式:COPY TO FileName FIELDS FieldList Scope FOR lExpression TYPE SDF|XLS|DELIMITED WITH Delimiter|WITH BLANK| WITH TAB|WITH CHARACTER Delimiter,其中: FileName:指定COPY TO要

32、創(chuàng)建的新文件名。 FIELDS FieldList:指定要復(fù)制到新文件的字段,省略則為全部字段。 Scope:指定要復(fù)制到新文件的記錄范圍,省略為ALL。 FOR lExpression:指定要復(fù)制的記錄需滿足的條件。 最后一個(gè)選項(xiàng):指定復(fù)制生成的文件類型,缺省則為表文件。,9、數(shù)據(jù)的統(tǒng)計(jì) 格式:COUNT Scope FOR lExpression TO VarName 功能:統(tǒng)計(jì)指定范圍內(nèi)滿足條件的記錄數(shù)。 格式:SUM nExpression Scope FOR lExpression TO VarName 功能:對(duì)指定范圍內(nèi)滿足條件記錄的數(shù)值表達(dá)式進(jìn)行求和。,格式:AVERAGE nE

33、xpression Scope FOR lExpression TO VarName 功能:對(duì)指定范圍內(nèi)滿足條件記錄的數(shù)值表達(dá)式進(jìn)行求平均值。 其中: TO VarName是將統(tǒng)計(jì)結(jié)果在屏幕上顯示的同時(shí)保存到指定的內(nèi)存變量中,缺省則不保存,只在屏幕上顯示; nExpression為指定要進(jìn)行求和或求平均值的表達(dá)式,缺省則為全部數(shù)值型字段,六、 表的索引,記錄的順序 物理順序:表中的記錄通常是按其輸入的時(shí)間順序存放的,這種順序稱為記錄的物理順序。 邏輯順序:表中的記錄可按某個(gè)字段值或某些字段值排序,這種順序稱為邏輯順序。,1、索引概述 索引:索引是根據(jù)索引關(guān)鍵字的值進(jìn)行邏輯排序的一組指針,它提供

34、了對(duì)數(shù)據(jù)的快速訪問(wèn),且可以對(duì)表中的各條記錄強(qiáng)制實(shí)現(xiàn)唯一性。 索引關(guān)鍵字:索引關(guān)鍵字是建立索引的依據(jù),它通常是一個(gè)字段或由多個(gè)字段組成 的表達(dá)式。 索引標(biāo)識(shí):索引的名稱。,索引的類型 候選索引(Candidate Index):候選索引是以表的候選關(guān)鍵字為索引表達(dá)式而創(chuàng)建的索引。 注意:對(duì)于表的所有記錄來(lái)說(shuō),指定的索引表達(dá)式的值不可重復(fù)。 主索引(Primary Index):對(duì)于數(shù)據(jù)庫(kù)表來(lái)說(shuō),可以從候選索引中選取一個(gè)作為該表的主索引。每張數(shù)據(jù)庫(kù)表只能創(chuàng)建一個(gè)主索引。 普通索引(Regular Index):普通索引的索引表達(dá)式的值允許出現(xiàn)重復(fù),一張表可以創(chuàng)建多個(gè)普通索引。 唯一索引(Uniqu

35、e Index):唯一索引的索引表達(dá)式的值也可以重復(fù),但在索引文件中重復(fù)的值僅存儲(chǔ)一次。,2、索引文件的種類 結(jié)構(gòu)復(fù)合索引文件(Structure Compound Index) 非結(jié)構(gòu)復(fù)合索引文件(Non-structure Compound Index) 獨(dú)立索引文件(Independent Index),3、創(chuàng)建結(jié)構(gòu)復(fù)合索引 用“表設(shè)計(jì)器”創(chuàng)建結(jié)構(gòu)復(fù)合索引,用命令創(chuàng)建結(jié)構(gòu)復(fù)合索引 格式: INDEX ON eExpression TAG TagName FOR lExpression ASCENDING|DESCENDING UNIQUE|CANDIDATE 其中:eExpression

36、為索引表達(dá)式;TagName為索引標(biāo)識(shí);FOR子句用于篩選參加索引的記錄; ASCENDING和DESCENDING用于指定索引是按升序還是降序排序,缺省時(shí)為升序; UNIQUE和CANDIDATE用于指定索引文件類型為唯一索引還是候選索引,缺省時(shí)為普通索引。,4、索引的修改和刪除 索引的修改 用表設(shè)計(jì)器修改索引 用命令修改索引 通過(guò)創(chuàng)建同索引名的索引覆蓋原索引 索引的刪除 用表設(shè)計(jì)器刪除索引,用命令刪除索引 格式:DELETE TAG TagName1 ,TagName2, 功能:刪除結(jié)構(gòu)復(fù)合文件中指定的索引 格式:DELETE TAG ALL 功能:刪除結(jié)構(gòu)復(fù)合索引文件中的所有索引,并從磁

37、盤上刪除該索引文件。,5、索引的使用 打開表的同時(shí)指定主控索引 格式:USE TableName ORDER TagName 功能:打開表的同時(shí)指定索引標(biāo)識(shí)TagName為主控索引。 打開表后再設(shè)置主控索引 格式:SET ORDER TO TagName IN nWorkArea |cTableAlias ASCENDING|DESCENDING 其中:索引名TagName用于指定主控索引,缺省時(shí)取消主控索引。,6、利用索引快速定位記錄 格式:SEEK eExpression ORDER TagName ACENDING|DESCENDING IN nWorkArea |cTableAlias

38、 功能:在一張表中搜索指定表達(dá)式的值首次出現(xiàn)的記錄,這條記錄的索引關(guān)鍵字必須與指定的表達(dá)式匹配。,七、 有關(guān)表操作的常用函數(shù),SELECT()函數(shù) 格式:SELECT(0|1|cTableAlias) 功能:測(cè)試工作區(qū)號(hào) 其中:參數(shù)0用于返回當(dāng)前工作區(qū)號(hào),1用于返回當(dāng)前未被使用的最大工作區(qū)號(hào);別名cTableAlias用于返回該表所在的工作區(qū)號(hào),使用別名時(shí)必須加引號(hào)。 USED()函數(shù) 格式:USED(nWorkArea|cTableAlias) 功能:用于測(cè)試一張表的別名是否已被使用,或在指定的工作區(qū)中是否有表打開。 其中:任選項(xiàng)省略時(shí)表示當(dāng)前工作區(qū)。,ALIAS()函數(shù) 格式:ALIAS(

39、nWorkArea) 功能:返回當(dāng)前或指定工作區(qū)中表的別名。 FIELD()函數(shù) 格式:FIELD(nFieldNumber , nWorkArea| cTableAlias) 功能:用于返回已打開表的指定序號(hào)的字段名。 其中:字段序號(hào)nFieldNumber是指表結(jié)構(gòu)建立時(shí)的 字段順序號(hào),第一個(gè)字段的序號(hào)為1;工作區(qū)號(hào)與別 名缺省時(shí)表示當(dāng)前工作區(qū)。,FCOUNT()函數(shù) 格式:FCOUNT( nWorkArea| cTableAlias) 功能:用于返回已打開表的字段個(gè)數(shù)。 其中:工作區(qū)號(hào)與別名缺省時(shí)表示當(dāng)前工作區(qū)。 DELETED()函數(shù) 格式:DELETED( ) 功能:用于測(cè)試表的當(dāng)前記錄是否帶有刪除標(biāo)記。 如果函數(shù)返回.T.,說(shuō)明記錄帶有刪除標(biāo)記,否則不 帶刪除標(biāo)記。,八、數(shù)據(jù)庫(kù)表的添加與移去 向數(shù)據(jù)庫(kù)中添加或移去表可在“項(xiàng)目管理器”窗口或“數(shù)據(jù)庫(kù)設(shè)計(jì)器”窗口中進(jìn)行,也可用命令實(shí)現(xiàn)。 格式:ADD TABLE TableName NAME LongTableName 功能:向數(shù)據(jù)庫(kù)中添加表 其中:NAME子句用于指定長(zhǎng)表名,格式:REMOVE TABLE TableName DELETE 功能:將表從數(shù)據(jù)庫(kù)中移去 其中:DELET

溫馨提示

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