-表的基本操作課件_第1頁
-表的基本操作課件_第2頁
-表的基本操作課件_第3頁
-表的基本操作課件_第4頁
-表的基本操作課件_第5頁
已閱讀5頁,還剩133頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第三章表的基本操作第三講——表的基本操作課件1本章教學計劃

目的:掌握數(shù)據(jù)表的建立及表的維護操作,掌握表與數(shù)組間數(shù)據(jù)的傳遞操作

重點:表的建立和維護

難點:表的維護

課時:課堂講授2課時本章教學計劃目的:掌握數(shù)據(jù)表的建立及表的維護操作,掌握表2

表是關系數(shù)據(jù)庫管理系統(tǒng)的基本結(jié)構,是數(shù)據(jù)庫中數(shù)據(jù)組織并存儲的單元,幾乎所有的數(shù)據(jù)處理都是建立在表的基礎上的。1、表的組成

表通常描述一實體信息,由結(jié)構和數(shù)據(jù)組成。結(jié)構表現(xiàn)為字段(列),數(shù)據(jù)表現(xiàn)為記錄(行)3.1表的基本概念編號名稱啟用日期價格016-1車床11990-3-562044.61016-2車床21992-1-1527132.73記錄字段表是關系數(shù)據(jù)庫管理系統(tǒng)的基本結(jié)構,是數(shù)32、表的分類VFP中表分為數(shù)據(jù)庫表和自由表。數(shù)據(jù)庫表:歸屬于某一數(shù)據(jù)庫,與該數(shù)據(jù)庫的其他

表之間存在聯(lián)系,具有數(shù)據(jù)庫管理的許多特性。(數(shù)據(jù)唯一性,有效性,準確性)自由表:不屬于任何數(shù)據(jù)庫。3、表的建立、操作方式交互方式:菜單、鼠標操作命令方式:VFP數(shù)據(jù)庫操作語句、SQL語句(后面課程細講)3.1表的基本概念2、表的分類3.1表的基本概念43.1表的基本概念4、表名定義在VFP表文件的擴展名為.dbf。命名規(guī)則:與windows操作系統(tǒng)一樣,文件名不能包括字符\/:*<>?

“|VFP中A、B、C¨¨J十個字母和W11、W12、W13¨¨W32767有特定意義(工作區(qū)別名),不能用于命名。3.1表的基本概念4、表名定義53.2表的建立

表組成:表結(jié)構(字段、列)+數(shù)據(jù)記錄(行)建表步驟:創(chuàng)建結(jié)構輸入數(shù)據(jù)自由表與數(shù)據(jù)庫表結(jié)構和操作基本相同3.2表的建立表組成:表結(jié)構(字段、列)+數(shù)據(jù)記錄(行63.2表的建立

3.2.1表結(jié)構的建立1.設計表的結(jié)構表結(jié)構字段名字段數(shù)據(jù)類型字段寬度小數(shù)位數(shù)Null值支持3.2表的建立3.2.1表結(jié)構的建立1.設計表73.2表的建立

3.2.1表結(jié)構的建立1.設計表的結(jié)構(1)字段名字段名是表中每個字段的名稱,用來標識不同的字段。字段名必須以漢字、字母或下劃線開頭,由漢字、字母、數(shù)字或下劃線組成。自由表中的字段名最多可為10個字符,數(shù)據(jù)庫表中的字段名最多可為128個字符,當數(shù)據(jù)庫表轉(zhuǎn)化為自由表時截去超長部分的字符。3.2表的建立3.2.1表結(jié)構的建立1.設計表8(2)字段類型字段類型表示該字段中存放數(shù)據(jù)的類型。在設計表的結(jié)構時,可根據(jù)需要確定表中各字段的數(shù)據(jù)類型。(3)字段寬度字段寬度用以表明該字段允許存放的最大字節(jié)數(shù)或數(shù)值位數(shù)。在建立表結(jié)構時,需要規(guī)定字符型、數(shù)值型、浮動型這3種字段的寬度,若有小數(shù)部分則小數(shù)點也占一位。3.2.1表結(jié)構的建立1.設計表的結(jié)構(2)字段類型(3)字段寬度3.2.1表結(jié)構的建立19注意:備注型和通用型字段的內(nèi)容都沒有直接存放在表文件中,而是存放在一個與表文件同名的備注文件(擴展名為.fpt)中。表文件中所定義的4個字節(jié)的字段寬度僅用于表示數(shù)據(jù)在.FPT文件中的存儲地址。

第三講——表的基本操作課件10(4)小數(shù)位數(shù)只有數(shù)值型與浮動型及雙精度型字段才有小數(shù)位數(shù),小數(shù)點和正負號在字段寬度中占一位。

若為整數(shù),則應定義小數(shù)位數(shù)為0。(5)是否允許為空是否允許該字段接受空值(NULL)。空值是指無確定的值,與空字符串、數(shù)值0是不同的。一個字段是否允許為空值與該字段的性質(zhì)有關,例如關鍵字的字段不允許為空值。3.2.1表結(jié)構的建立1.設計表的結(jié)構(4)小數(shù)位數(shù)3.2.1表結(jié)構的建立1.設計表的結(jié)構112、建立表的結(jié)構用表設計器用菜單或工具欄或項目管理器的“新建”命令用向?qū)в孟到y(tǒng)給定模板和已定義的表建立表結(jié)構用CREATETABLE-SQL命令CREATETABLETableName(FieldName1FieldType[(nFieldWidth[,nPrecision])][NULL|NOTNULL][,FieldName2…])3.2表的建立

2、建立表的結(jié)構用表設計器3.2表的建立122、建立表的結(jié)構設計器和向?qū)Х绞?、建立表的結(jié)構設計器和向?qū)Х绞?3命令操作方式在命令窗口中使用CREATE命令建立表結(jié)構。命令格式:CREATE[<表文件名|?>]

功能:建立一個表。說明:若在命令中使用?或省略該參數(shù)時,將打開“創(chuàng)建”對話框,提示輸入表名并選擇保存表的位置;若在CREATE后加上表文件名,屏幕將直接彈出“表設計器”對話框,以后的操作方法與菜單操作方式相同。2、建立表的結(jié)構3.2表的建立

命令操作方式在命令窗口中使用CREATE命令建立表結(jié)構14例:在D盤工資管理文件夾下建立表文件,文件名為:員工表.DBF。SETDEFAULTTOD:\工資管理CREATE員工表例:在D盤工資管理文件夾下建立表文件,文件名為:員工表.DB153.2.2表記錄的輸入創(chuàng)建表結(jié)構后立即輸入記錄在瀏覽或編輯窗口內(nèi)鍵盤輸入顯示>>追加方式;

表>>追加新記錄別的數(shù)據(jù)表記錄導入到當前表

表>>追加記錄(成批增加)用APPEND命令添加(表最后添加)INSERT命令添加(指針所指記錄后添加)用INSERT-SQL命令添加3.2.2表記錄的輸入創(chuàng)建表結(jié)構后立即輸入記錄161、數(shù)據(jù)輸入要點邏輯型字段只接受T,Y,F(xiàn),N這4個字母之一(大小寫不嚴格區(qū)分)。T與Y同義,F(xiàn)與N同義。例如,鍵入Y,屏幕顯示T。日期型數(shù)據(jù)必須與日期格式相符,默認按美國日期格式mm/dd/yy輸入。VisualFoxPro中,日期的顯示格式有多種,在輸入日期型字段數(shù)據(jù)時,必須清楚當前采用的日期格式。1、數(shù)據(jù)輸入要點172、備注型字段數(shù)據(jù)的輸入備注型字段(memo)編輯時,VisualFoxPro提供了一個字處理環(huán)境,用戶可以輸入和編輯文本。在備注型字段輸入數(shù)據(jù)后,該字段的memo標志變成Memo。2、備注型字段數(shù)據(jù)的輸入183.通用型字段數(shù)據(jù)的輸入通用型字段在編輯窗口中標識是Gen或gen,其中該字段為空時為gen,若在其中已經(jīng)存入對象,則變?yōu)镚en。通用型字段的輸入可使用編輯菜單的插入對象命令,或通過剪貼板粘貼。清除輸入需使用編輯菜單的插入對象命令。若不是將已存在的文件實際插入表中,而是建立一種鏈接的關系,則需單擊“鏈接”復選框。3.通用型字段數(shù)據(jù)的輸入193.3表的基本操作基本操作:記錄的定位、顯示、修改、增加、刪除、統(tǒng)計和表的復制等表只有在打開的狀態(tài)下才能被操作。對于數(shù)據(jù)庫表,打開前需先打開其數(shù)據(jù)庫。表關閉時數(shù)據(jù)會自動存盤。編輯窗口被關閉并不等于表被關閉。3.3表的基本操作基本操作:記錄的定位、顯示、修改、增加、203.3.1表的打開與關閉3.3表的基本操作界面操作菜單或工具欄“數(shù)據(jù)工作期”窗口在項目管理器中使用命令USETableNameCLOSETableName3.3.1表的打開與關閉3.3表的基本操作界面操213.3.1表的打開與關閉1、用命令方式打開或關閉表表打開時,若該表有備注型或通用型字段,則自動打開與表文件的主文件名相同的.FPT文件。3.3表的基本操作格式:

USE[<表文件名>][IN<工作區(qū)號|0>][EXCLUSIVE|SHARED]被打開的表的名字。以只讀方式打開表網(wǎng)絡上以獨占的方式打開表網(wǎng)絡上以共享的方式打開表3.3.1表的打開與關閉1、用命令方式打開或關閉表22說明:(1)打開新表時,指定工作區(qū)中原來打開的表會自動關閉。(2)已打開的表總有一個記錄指針,指針所指的記錄為當前記錄。表剛打開時,記錄指針指向第一個記錄。(3)表操作結(jié)束后應及時關閉,以便將內(nèi)存的數(shù)據(jù)保存到表中。格式:

USE[<表文件名>][IN<工作區(qū)號|0>][EXCLUSIVE|SHARED]格式:USE[<表文件名>][IN<工作區(qū)號|0>]232、打開表的其它常用方法菜單“打開”對話框數(shù)據(jù)工作期“打開”對話框2、打開表的其它常用方法菜單“打開”對話框數(shù)據(jù)工作期“打開”243、關閉表的方法(1)不帶任何參數(shù)的USE命令.CLOSETABLES[ALL](2)當前工作區(qū)打開新表自動關閉舊表(3)數(shù)據(jù)工作期中關閉(4)通過退出VisualFoxPro來關閉。選定“文件”菜單中的“退出”命令,或在命令窗口中鍵入命令QUIT。編輯窗口被關閉并不等于表被關閉。3、關閉表的方法編輯窗口被關閉并不等于表被關閉。253.3.2表的顯示表由表結(jié)構和表記錄兩部分組成,因此表的顯示有兩類命令,分別為顯示表結(jié)構和表記錄。

表結(jié)構的顯示

表設計器。命令方式:liststructure記錄的顯示

編輯窗口和瀏覽窗口。命令方式:list和browse3.3.2表的顯示表由表結(jié)構和表記263.3.2表的顯示1、表結(jié)構的顯示

LIST|DISPLAYSTRUCTURE[TOPRINTER[PROMPT]|TOFILE<文件名>]連續(xù)顯示,當顯示的內(nèi)容超過一屏時,自動向上滾動,直到顯示完成為止分屏顯示,顯示滿屏時暫停,待用戶按任一鍵后繼續(xù)顯示后面的內(nèi)容一邊顯示一邊打印表結(jié)構在打印前顯示一個對話框,用于設置打印機在顯示的同時將表結(jié)構輸出到指定的文本文件中命令方式。3.3.2表的顯示1、表結(jié)構的顯示LIS27例:顯示員工表.DBF的結(jié)構。SETDEFAULTTOD:\工資管理USE員工表LISTSTRUCTURE主窗口顯示例:顯示員工表.DBF的結(jié)構。SETDEFAULTTO282、表記錄的顯示LIST命令格式:(1)LIST|DISPLAY(2)LIST|DISPLAY[[FIELDS]<表達式表>][<范圍>][FOR<條件>][WHILE<條件>][TOPRINTER[PROMPT]|TOFILE<文件名>][OFF]功能:在指定范圍內(nèi)篩選出滿足條件的記錄并顯示或打印出來,或送至指定文件保存。DISPLAY是分屏輸出,LIST是連續(xù)輸出。[OFF]是否顯示記錄號2、表記錄的顯示29BROWSE命令格式:(1)BROWSE(2)BROWSE[FIELDS<表達式表>][FOR<條件>][WHILE<條件>]2、表記錄的顯示BROWSE命令格式:2、表記錄的顯示303.3.3表記錄指針及定位在VFP表中的記錄是逐條處理的。某一時刻只能處理一條數(shù)據(jù)。記錄指針:VFP為每一個打開的表設置的一個內(nèi)部指針。當前記錄:記錄指針指向記錄,該記錄可以被操作。剛打開的表默認第一個記錄為當前記錄文件頭信息首記錄(top)第2條記錄……第i條記錄(當前記錄)……尾記錄(bottom)文件尾文件開始標志記錄指針文件結(jié)束標志3.3.3表記錄指針及定位在VFP表中的記錄是逐條處理的。31測試文件尾函數(shù):EOF()測試文件頭函數(shù):BOF()測試記錄指針的值:RECNO()測試記錄個數(shù):RECCOUNT()1、與記錄指針相關的函數(shù)1、與記錄指針相關的函數(shù)322、指針移動定位(1)、菜單方式選擇“表”菜單,在下拉菜單中選擇“轉(zhuǎn)到記錄”選項,指針定位:對表中某條記錄操作前,需移動記錄指針到該條記錄,移動步驟稱為指針定位定位分類:相對定位、絕對定位和條件定位定位操作方式:菜單式、命令式2、指針移動定位(1)、菜單方式指針定位:對表中某條記錄操作33最簡單的方法:在瀏覽窗口中,用鼠標點擊需要定位記錄的字段,該記錄最前面的灰色方框中就出現(xiàn)了黑三角,表明該記錄為當前記錄。

最簡單的方法:在瀏覽窗口中,用鼠標點擊需要定位記錄的字段,該342、命令方式(a)絕對定位絕對定位是將記錄指針定位到指定的記錄。命令格式:GOTO|GO[RECORD<數(shù)值表達式>]|TOP|BOTTOM(b)相對定位相對對定位是從當前記錄開始移動記錄指針格式:SKIP[<數(shù)值表達式>]<數(shù)值表達式>表示記錄指針移動的記錄的個數(shù)。2、命令方式(b)相對定位35例:在命令窗口中執(zhí)行下列命令,分析執(zhí)行結(jié)果(表中總共有7個記錄)。USE員工表?RECNO(),BOF()&&顯示:1.F.SKIP-1&&指針向文件頭方向移動1個記錄?RECNO(),BOF()&&顯示:1.T.記錄號為1SKIP6&&指針從第1個記錄向文件尾方向移動6個記錄?RECNO(),EOF()&&顯示:7.F.SKIP&&指針向文件尾方向移動1個記錄?RECNO(),EOF()&&顯示:8.T.例:在命令窗口中執(zhí)行下列命令,分析執(zhí)行結(jié)果(表中總共有7個記36分析:記錄指針指向最后一個記錄,然后執(zhí)行SKIP,則RECNO()返回一個比表總記錄數(shù)大1的數(shù),且EOF()返回.T.。記錄指針指向第一個記錄,后執(zhí)行SKIP-1,則RECNO()返回值為1,且BOF()返回.T.。當BOF()函數(shù)的值已經(jīng)為.T.時,再執(zhí)行SKIP-1命令,屏幕顯示“已到文件頭?!钡脑浇缧畔?;當EOF()函數(shù)的值已經(jīng)為.T.時,再執(zhí)行SKIP命令,屏幕顯示“已到文件尾。”的越界信息。分析:37(C)條件定位格式:LOCATE[范圍][FOR|WHILE]功能:將指針定位于滿足條件的第1條記錄。說明:若需要定位到下一條滿足條件的記錄,用CONTINUE。FOUND()可測試是否找到滿足條件記錄若未找到滿足條件的記錄,指針指向文件結(jié)束位置,EOF()返回真。2、命令方式(C)條件定位2、命令方式383.3.2表的修改1、表結(jié)構的修改

表設計器。命令方式:MODIFYSTRUCTUREALTERTABLE-SQL命令修改2、表記錄的修改

編輯窗口或瀏覽窗口手工修改成批命令修改3.3.2表的修改1、表結(jié)構的修改表設計393.3.4表的修改2、表記錄手工修改菜單方式命令方式

EDIT|CHANGE[范圍][FIELDS<字段名表>][FOR<條件>|WHILE<條件>]功能:在指定范圍內(nèi)篩選出滿足條件的記錄來接受手工修改3.3.4表的修改2、表記錄手工修改菜單方式E403.3.4表的修改2、表記錄成批修改(1)菜單方式3.3.4表的修改2、表記錄成批修改(1)菜單方式413.3.4表的修改1、表記錄成批修改(2)命令方式

REPLACE[范圍]<字段名表1>WITH<表達式1>[,<字段名表1>WITH<表達式1>][FOR<條件>|WHILE<條件>]例如:USEREPLACEALL基本工資WITH基本工資*1.23.3.4表的修改1、表記錄成批修改(2)命令方式42VisualFoxPro中刪除記錄是分兩步進行,首先對要刪除的記錄打上刪除標記,稱為邏輯刪除;然后才是將記錄從表中徹底刪除,稱為物理刪除。邏輯刪除的記錄還可以恢復,物理刪除的則不能。1、瀏覽窗口中刪除

3.3.5表內(nèi)容的刪除和恢復邏輯刪除邏輯刪除恢復1、瀏覽窗口中刪除3.3.5表內(nèi)容的刪除和恢復邏輯431、瀏覽窗口中刪除

3.3.5表內(nèi)容的刪除和恢復物理刪除1、瀏覽窗口中刪除3.3.5表內(nèi)容的刪除和恢復物理442、命令刪除

(1)、邏輯刪除:

DELETE[<范圍>][FOR<條件>][WHILE<條件>]

3.3.5表內(nèi)容的刪除和恢復(2)、恢復帶刪除標記的記錄RECALL[<范圍>][FOR<條件>][WHILE<條件>]

2、命令刪除3.3.5表內(nèi)容的刪除和恢復(2)、恢45(4)、刪除全部記錄:ZAP功能:物理刪除當前表中所有記錄,只留下表結(jié)構。執(zhí)行ZAP相當于執(zhí)行DELETEALL和PACK兩條命令。2、命令刪除(3)、物理刪除:PACK功能:將當前表中帶刪除標記的記錄物理刪除。說明:PACK命令刪除的記錄是不可被恢復的。3.3.5表內(nèi)容的刪除和恢復(4)、刪除全部記錄:ZAP2、命令刪除3.3.5463.3.6表的復制

表的復制是指在已經(jīng)建立的源表的基礎上,根據(jù)需要產(chǎn)生源表的副本以及各種新表。

1、復制表的結(jié)構功能:將當前表的結(jié)構復制到指定的文件中。僅復制當前表的結(jié)構,不復制其中的數(shù)據(jù)。

COPYSTRUCTURETO<文件名>[FIELDS<字段名表>]生成的空表文件中只含有<字段名表>中給出的字段,若省略此項,則復制的空表文件的結(jié)構和當前表相同復制產(chǎn)生的表名,復制后只有結(jié)構而無任何記錄3.3.6表的復制表的復制是指在472、復制表文件菜單格式:文件>>導出命令格式:COPYTO<文件名>[[FIELDS]<字段名表>][<范圍>][FOR<條件>][WHILE<條件>][[TYPE]SDF|DELIMITED|XLS][WITH<定界符|BLANK]

功能:將當前表中選定的部分記錄和部分字段復制成一個新表或其它類型的文件。3.3.6表的復制2、復制表文件3.3.6表的復制48[TYPE]:當用戶生成的新文件不是DBF格式文件時,可以用TYPE選項指定新文件的格式。TYPE文件類型包括下列幾種:

SDF:為標準格式,記錄定長,不用分隔符和定界符,每個記錄均從頭部開始存放,均以回車符結(jié)束。默認擴展名為.TXT。

DELIMITED:為通用格式,記錄不等長,每個記錄均以回車符結(jié)束。默認擴展名為.TXT。

XLS:得到一個Excel文件,該文件只能在Excel中打開,擴展名為.XLS。[TYPE]:當用戶生成的新文件不是DBF格式文件時,可以用49例:分別以SDF和DELIMITED格式將員工表.DBF的前4個記錄復制到SS1和SS2文本文件。USE員工表COPYTOSS1NEXT4SDFTYPESS1.TXT&&顯示SS1文本文件的內(nèi)容COPYTOSS2NEXT4DELIMITEDTYPESS2.TXT&&顯示SS2文本文件的內(nèi)容例:分別以SDF和DELIMITED格式將員工表.DBF的前503.3.7表內(nèi)容統(tǒng)計COUNT[<范圍>][FOR<條件>][WHILE<條件>][TO<內(nèi)存變量>]SUM[<范圍>][<字段名表>][<[FOR<條件>][WHILE<條件>][TO<內(nèi)存變量表>|TOARRAY<數(shù)組>]AVERAGE[<范圍>][<字段名表>][<[FOR<條件>][WHILE<條件>][TO<內(nèi)存變量列表>]TOTALTO<文件名>ON<關鍵字段名>[FIELDS<字段名表>][范圍][FOR<條件>][WHILE<條件>]功能:統(tǒng)計當前表文件中指定范圍內(nèi)滿足條件的記錄個數(shù)。功能:在當前表文件中,對指定范圍內(nèi)滿足條件的字段縱向求和。功能:在當前表文件中,對指定范圍內(nèi)滿足條件的字段求縱向平均值。功能:在當前表文件中,對指定范圍內(nèi)滿足條件的記錄按關鍵字段名分類匯總求和,并生成一個新的表文件。3.3.7表內(nèi)容統(tǒng)計COUNT[<范圍>][F51數(shù)據(jù)查詢和瀏覽中經(jīng)常需要把表中的內(nèi)容按某個字段進行排序,VFP中有兩種方式實現(xiàn)這種功能。2、索引(INDEX)

3.4表的索引及應用兩種不同的數(shù)據(jù)組織方法

1、排序(SORT)按要求對記錄排序并產(chǎn)生一新表來存儲。一種記錄邏輯排列技術數(shù)據(jù)查詢和瀏覽中經(jīng)常需要把表中的內(nèi)容按某個字段523.4.1排序

概念:根據(jù)指定的字段值,重新排列當前表記錄的存放次序,產(chǎn)生一個新表來存放排序后的記錄,對當前表沒有任何影響。

格式:

SORTTO<文件名>ON<字段名1>[/A|/D][/C][,<字段名2>[/A|/D][/C]...][<范圍>][FOR<條件1>][WHILE<條件2>][FIELDS<字段表>]

參數(shù)描述:新生成的表文件的文件名。新生成的表是關閉的。

/A表示按字段值的升序排序;/D表示降序排序;/C表示不區(qū)分字母的大小寫排序。<字段名1>、<字段名2>等是關鍵字段,是進行記錄排序時的依據(jù)。當有多個關鍵字段時,先按字段1進行排序,當字段1的值相等時,再按字段2的值進行排序,依此類推。缺省[范圍]、[FOR<條件>]、[WHILE<條件>]表示以所有記錄進行排序。指定新生成的數(shù)據(jù)表文件所包含的字段。缺省則包含當前表的所有字段。3.4.1排序概念:根據(jù)指定的字段值,重新排列當前表記53概念:索引是一種對記錄有序地進行邏輯排列的技術,是進行快速顯示、快速查詢數(shù)據(jù)的重要手段。特點:不改變當前數(shù)據(jù)表記錄的物理順序,也不建立新表,而是建立一個與數(shù)據(jù)表對應的索引文件,索引文件只保留索引關鍵字表達式值的邏輯順序的索引條目。索引是對數(shù)據(jù)表而言的,一個表可建立以不同字段為關鍵字的索引,不同的索引按其作為關鍵字的字段對記錄進行排序。3.4.2索引概念和分類概念:索引是一種對記錄有序地進行邏輯排列的技術,是進行快速顯54記錄號工號姓名15001張三22001李四34001王五41001劉甲53001馬乙序號工號記錄號110014220012330015440013550011按工號索引原數(shù)據(jù)順序索引文件的邏輯結(jié)構及排序原理記錄號工號姓名15001張三22001李四34001王五41554.1.2索引1.排序要生成一個新的表文件,記錄的物理順序發(fā)生了改變;2.索引生成索引文件,僅僅是表中記錄的邏輯順序發(fā)生了變化,物理順序未變化。3.排序生成的表可以單獨使用。4、索引文件不能單獨使用,它必須同表一起配合使用。索引與排序的區(qū)別4.1.2索引1.排序要生成一個新的表文件,記錄的物理順561.索引文件的類型

分類屬性

單索引文件復合索引文件結(jié)構復合非結(jié)構復合打開與維護手動自動手動文件名不限與表同名不與表同名擴展名.idx.cdx形式壓縮或非壓縮

壓縮文件1.索引文件的類型分類單索引文件復合索引文件57按照索引文件排序的功能,分為以下四種功能類型:2.索引的類型(1)主索引:能夠惟一性地確定數(shù)據(jù)表中一條記錄的關鍵字表達式,即關鍵字表達式的值在數(shù)據(jù)表的全部記錄中是惟一的。每個表僅能建立一個主索引,主索引只用于數(shù)據(jù)庫表。(2)候選索引:與主索引的惟一性功能相同,每個表只能有一個主索引,但可以有多個候選索引。凡是具備惟一性驗證能力的字段或字段組合,都可以指定為候選索引。

(3)普通索引:VFP默認索引方式,允許字段中出現(xiàn)重復值。表記錄排序時,會把關鍵字表達式值相同的記錄排列在一起,并按自然順序的先后排列。在一個表中可以加入多個普通索引。(4)惟一索引:指數(shù)據(jù)表在排序時,相同關鍵字值的第一條記錄收入索引中。

按照索引文件排序的功能,分為以下四種功能類型:2.索引的583.建立索引(菜單方式)索引選項卡移動按鈕排序按鈕在此框中輸入索引標記在此列表框中選擇索引類型在此文本框中輸入索引表達式在此輸入條件表達式表達式生成按鈕3.建立索引(菜單方式)索引選項卡移動按鈕排序按鈕在此框中59單索引文件的建立3.建立索引(命令方式)INDEXON<索引表達式>TO<索引文件名>[UNIQUE]FOR<條件>[ADDITIVE][COMPACT]復合索引文件的建立INDEXON<索引表達式>TAG<索引文件名>[OF<復合索引文件名>][FOR<條件>][UNIQUE|CANDIDATE][ADDITIVE][ASCENDING|DESCENDING]單索引文件的建立3.建立索引(命令方式)INDEX60部分參數(shù)描述:<索引表達式>:指包含當前表中字段名的表達式,表達式中的操作數(shù)應具有相同的數(shù)據(jù)類型。[COMPACT]:若選擇此項,則以壓縮的方式建立索引,用于單索引文件。[UNIQUE|CANDIDATE]:UNIQUE表示在索引表達式中,如果有相同的值,索引文件中只取相同值的第一條記錄。CANDIDATE表示建立候選索引。缺省該項系統(tǒng)默認為普通索引。[ADDITIVE]:若選擇此項,在打開一個索引的同時不關閉已打開的索引,缺省時,系統(tǒng)將關閉先前打開的索引。部分參數(shù)描述:61第一步:打開索引文件第二步:確定主控索引4.索引的使用索引文件必須先打開才能使用。結(jié)構復合索引隨著數(shù)據(jù)表的打開而自動打開,但單索引和非結(jié)構復合索引必須由用戶打開。使用索引時的注意事項索引的關閉、刪除和更新第一步:打開索引文件4.索引的使用索引文件必須先打開才能使62打開索引文件在打開表時打開索引文件USE<表文件名>INDEX<索引文件名表>在打開表后打開索引文件SETINDEXTO[<索引文件名表>][ADDITIVE]功能:打開指定的索引文件或關閉索引文件。省略所有選項為關閉當前工作區(qū)中除結(jié)構復合索引文件外的所有索引文件。說明:缺省[ADDITIVE]選項時,則在打開索引文件的同時,關閉當前工作區(qū)除結(jié)構復合索引之外的全部索引文件。

功能:打開指定的表,并且打開由<索引文件名表>指定的所有索引文件。打開索引文件在打開表時打開索引文件USE<表文件名63確定主控索引導言——

一個表可能有多個索引文件被打開,但在一個時刻只有一個索引文件起控制作用,這就是主控索引文件。打開索引文件時,排在索引文件表中第一位的是主控索引文件,如果主控索引文件是單索引文件,那么它所包含的索引就成為主控索引,如果主控索引文件是復合索引文件,還得進一步確定哪個索引標志是主控索引。對于新建立的索引,它是當然的主控索引。確定主控索引導言——64格式:SETORDERTO[<數(shù)值表達式>|<單索引文件名>|TAG<索引標識>[OF<復合索引文件名>]]功能:為當前表的打開一個或多個索引文件。說明:①缺省所有選項時,命令SETORDERTO或SETORDERTO0,將取消主控索引,記錄按物理順序排列。②<數(shù)值表達式>表示已打開的索引文件的序號,用以指定主控索引。序號排列方法是:按單索引文件打開的先后次序,先排單索引文件;按索引標識的生成順序,再排結(jié)構復合索引;最后排非結(jié)構復合索引的索引標識。③TAG<索引標識名>[OF〈復合索引文件名〉選項用以指定復合索引的索引標識為主控索引。④〈單索引文件名〉選項指定一個單索引文件為主控索引文件。

格式:SETORDERTO[<數(shù)值表達式>|65【例4.5】

假設已針對員工表建立單索引文件dsy.idx,結(jié)構復合索引文件員工表.cdx(索引標識為bh,gzjbs),非結(jié)構復合索引文件fjgfh.cdx(索引標識為names),現(xiàn)執(zhí)行以下命令序列并分析命令的功能。

USE員工表

&&打開員工表LIST

&&盡管結(jié)構復合索引打開,因未指定主控索引,排列為物理順序SETINDEXTOdsy,fjgfh

&&打開索引文件dsy.idx,fjgfh.cdx

SETORDERTO2

&&設置主控索引為bh,即員工編號字段的降序

LIST

SETORDERTOTAGgzjbs

&&設置主控索引為gzjbs

LIST

SETORDERTO0

&&取消主控索引,按物理順序

USE

&&關閉員工表及索引文件

【例4.5】假設已針對員工表建立單索引文件ds66注意事項在使用GO命令時,GO<數(shù)值表達式>使記錄指針指向具體的物理記錄號,與索引無關;而命令GOTOP或GOBOTTOM將使記錄指針指向邏輯首記錄或邏輯尾記錄,這時GOTOP不等于GO1。SKIP命令按邏輯順序移動記錄指針。注意事項在使用GO命令時,GO<數(shù)值表達式>使記錄指針指向具67索引的關閉、刪除和更新

關閉

CLOSEINDEXSETINDEXTOUSE更新

REINDEX

&&重建打開的索引文件

說明:如果在對表進行修改時,凡是已打開的索引文件都會自動進行內(nèi)容重更新,而沒有打開的索引文件,則需要重新打開索引文件,再進行重建索引。

刪除

索引的關閉、刪除和更新關閉更新刪除68刪除索引格式1:DELETEFILE<索引文件名>格式2:DELETETAGALL|<索引標識名表>[OF<復合索引文件名>]功能:刪除指定的索引文件或索引標識。說明:①格式1多用于刪除單索引文件。單索引文件需關閉才能刪除,刪除時要用文件全名。例如,使用delete

dsy.idx。②格式2用于刪除打開復合索引文件中的索引標識,ALL子句用于刪除復合索引中的所有索引標識。若一個復合索引文件中的所有索引標識都刪除,則該復合索引文件也被刪除了。

刪除索引格式1:DELETEFILE<索引文件名>69第三章表的基本操作第三講——表的基本操作課件70本章教學計劃

目的:掌握數(shù)據(jù)表的建立及表的維護操作,掌握表與數(shù)組間數(shù)據(jù)的傳遞操作

重點:表的建立和維護

難點:表的維護

課時:課堂講授2課時本章教學計劃目的:掌握數(shù)據(jù)表的建立及表的維護操作,掌握表71

表是關系數(shù)據(jù)庫管理系統(tǒng)的基本結(jié)構,是數(shù)據(jù)庫中數(shù)據(jù)組織并存儲的單元,幾乎所有的數(shù)據(jù)處理都是建立在表的基礎上的。1、表的組成

表通常描述一實體信息,由結(jié)構和數(shù)據(jù)組成。結(jié)構表現(xiàn)為字段(列),數(shù)據(jù)表現(xiàn)為記錄(行)3.1表的基本概念編號名稱啟用日期價格016-1車床11990-3-562044.61016-2車床21992-1-1527132.73記錄字段表是關系數(shù)據(jù)庫管理系統(tǒng)的基本結(jié)構,是數(shù)722、表的分類VFP中表分為數(shù)據(jù)庫表和自由表。數(shù)據(jù)庫表:歸屬于某一數(shù)據(jù)庫,與該數(shù)據(jù)庫的其他

表之間存在聯(lián)系,具有數(shù)據(jù)庫管理的許多特性。(數(shù)據(jù)唯一性,有效性,準確性)自由表:不屬于任何數(shù)據(jù)庫。3、表的建立、操作方式交互方式:菜單、鼠標操作命令方式:VFP數(shù)據(jù)庫操作語句、SQL語句(后面課程細講)3.1表的基本概念2、表的分類3.1表的基本概念733.1表的基本概念4、表名定義在VFP表文件的擴展名為.dbf。命名規(guī)則:與windows操作系統(tǒng)一樣,文件名不能包括字符\/:*<>?

“|VFP中A、B、C¨¨J十個字母和W11、W12、W13¨¨W32767有特定意義(工作區(qū)別名),不能用于命名。3.1表的基本概念4、表名定義743.2表的建立

表組成:表結(jié)構(字段、列)+數(shù)據(jù)記錄(行)建表步驟:創(chuàng)建結(jié)構輸入數(shù)據(jù)自由表與數(shù)據(jù)庫表結(jié)構和操作基本相同3.2表的建立表組成:表結(jié)構(字段、列)+數(shù)據(jù)記錄(行753.2表的建立

3.2.1表結(jié)構的建立1.設計表的結(jié)構表結(jié)構字段名字段數(shù)據(jù)類型字段寬度小數(shù)位數(shù)Null值支持3.2表的建立3.2.1表結(jié)構的建立1.設計表763.2表的建立

3.2.1表結(jié)構的建立1.設計表的結(jié)構(1)字段名字段名是表中每個字段的名稱,用來標識不同的字段。字段名必須以漢字、字母或下劃線開頭,由漢字、字母、數(shù)字或下劃線組成。自由表中的字段名最多可為10個字符,數(shù)據(jù)庫表中的字段名最多可為128個字符,當數(shù)據(jù)庫表轉(zhuǎn)化為自由表時截去超長部分的字符。3.2表的建立3.2.1表結(jié)構的建立1.設計表77(2)字段類型字段類型表示該字段中存放數(shù)據(jù)的類型。在設計表的結(jié)構時,可根據(jù)需要確定表中各字段的數(shù)據(jù)類型。(3)字段寬度字段寬度用以表明該字段允許存放的最大字節(jié)數(shù)或數(shù)值位數(shù)。在建立表結(jié)構時,需要規(guī)定字符型、數(shù)值型、浮動型這3種字段的寬度,若有小數(shù)部分則小數(shù)點也占一位。3.2.1表結(jié)構的建立1.設計表的結(jié)構(2)字段類型(3)字段寬度3.2.1表結(jié)構的建立178注意:備注型和通用型字段的內(nèi)容都沒有直接存放在表文件中,而是存放在一個與表文件同名的備注文件(擴展名為.fpt)中。表文件中所定義的4個字節(jié)的字段寬度僅用于表示數(shù)據(jù)在.FPT文件中的存儲地址。

第三講——表的基本操作課件79(4)小數(shù)位數(shù)只有數(shù)值型與浮動型及雙精度型字段才有小數(shù)位數(shù),小數(shù)點和正負號在字段寬度中占一位。

若為整數(shù),則應定義小數(shù)位數(shù)為0。(5)是否允許為空是否允許該字段接受空值(NULL)??罩凳侵笩o確定的值,與空字符串、數(shù)值0是不同的。一個字段是否允許為空值與該字段的性質(zhì)有關,例如關鍵字的字段不允許為空值。3.2.1表結(jié)構的建立1.設計表的結(jié)構(4)小數(shù)位數(shù)3.2.1表結(jié)構的建立1.設計表的結(jié)構802、建立表的結(jié)構用表設計器用菜單或工具欄或項目管理器的“新建”命令用向?qū)в孟到y(tǒng)給定模板和已定義的表建立表結(jié)構用CREATETABLE-SQL命令CREATETABLETableName(FieldName1FieldType[(nFieldWidth[,nPrecision])][NULL|NOTNULL][,FieldName2…])3.2表的建立

2、建立表的結(jié)構用表設計器3.2表的建立812、建立表的結(jié)構設計器和向?qū)Х绞?、建立表的結(jié)構設計器和向?qū)Х绞?2命令操作方式在命令窗口中使用CREATE命令建立表結(jié)構。命令格式:CREATE[<表文件名|?>]

功能:建立一個表。說明:若在命令中使用?或省略該參數(shù)時,將打開“創(chuàng)建”對話框,提示輸入表名并選擇保存表的位置;若在CREATE后加上表文件名,屏幕將直接彈出“表設計器”對話框,以后的操作方法與菜單操作方式相同。2、建立表的結(jié)構3.2表的建立

命令操作方式在命令窗口中使用CREATE命令建立表結(jié)構83例:在D盤工資管理文件夾下建立表文件,文件名為:員工表.DBF。SETDEFAULTTOD:\工資管理CREATE員工表例:在D盤工資管理文件夾下建立表文件,文件名為:員工表.DB843.2.2表記錄的輸入創(chuàng)建表結(jié)構后立即輸入記錄在瀏覽或編輯窗口內(nèi)鍵盤輸入顯示>>追加方式;

表>>追加新記錄別的數(shù)據(jù)表記錄導入到當前表

表>>追加記錄(成批增加)用APPEND命令添加(表最后添加)INSERT命令添加(指針所指記錄后添加)用INSERT-SQL命令添加3.2.2表記錄的輸入創(chuàng)建表結(jié)構后立即輸入記錄851、數(shù)據(jù)輸入要點邏輯型字段只接受T,Y,F(xiàn),N這4個字母之一(大小寫不嚴格區(qū)分)。T與Y同義,F(xiàn)與N同義。例如,鍵入Y,屏幕顯示T。日期型數(shù)據(jù)必須與日期格式相符,默認按美國日期格式mm/dd/yy輸入。VisualFoxPro中,日期的顯示格式有多種,在輸入日期型字段數(shù)據(jù)時,必須清楚當前采用的日期格式。1、數(shù)據(jù)輸入要點862、備注型字段數(shù)據(jù)的輸入備注型字段(memo)編輯時,VisualFoxPro提供了一個字處理環(huán)境,用戶可以輸入和編輯文本。在備注型字段輸入數(shù)據(jù)后,該字段的memo標志變成Memo。2、備注型字段數(shù)據(jù)的輸入873.通用型字段數(shù)據(jù)的輸入通用型字段在編輯窗口中標識是Gen或gen,其中該字段為空時為gen,若在其中已經(jīng)存入對象,則變?yōu)镚en。通用型字段的輸入可使用編輯菜單的插入對象命令,或通過剪貼板粘貼。清除輸入需使用編輯菜單的插入對象命令。若不是將已存在的文件實際插入表中,而是建立一種鏈接的關系,則需單擊“鏈接”復選框。3.通用型字段數(shù)據(jù)的輸入883.3表的基本操作基本操作:記錄的定位、顯示、修改、增加、刪除、統(tǒng)計和表的復制等表只有在打開的狀態(tài)下才能被操作。對于數(shù)據(jù)庫表,打開前需先打開其數(shù)據(jù)庫。表關閉時數(shù)據(jù)會自動存盤。編輯窗口被關閉并不等于表被關閉。3.3表的基本操作基本操作:記錄的定位、顯示、修改、增加、893.3.1表的打開與關閉3.3表的基本操作界面操作菜單或工具欄“數(shù)據(jù)工作期”窗口在項目管理器中使用命令USETableNameCLOSETableName3.3.1表的打開與關閉3.3表的基本操作界面操903.3.1表的打開與關閉1、用命令方式打開或關閉表表打開時,若該表有備注型或通用型字段,則自動打開與表文件的主文件名相同的.FPT文件。3.3表的基本操作格式:

USE[<表文件名>][IN<工作區(qū)號|0>][EXCLUSIVE|SHARED]被打開的表的名字。以只讀方式打開表網(wǎng)絡上以獨占的方式打開表網(wǎng)絡上以共享的方式打開表3.3.1表的打開與關閉1、用命令方式打開或關閉表91說明:(1)打開新表時,指定工作區(qū)中原來打開的表會自動關閉。(2)已打開的表總有一個記錄指針,指針所指的記錄為當前記錄。表剛打開時,記錄指針指向第一個記錄。(3)表操作結(jié)束后應及時關閉,以便將內(nèi)存的數(shù)據(jù)保存到表中。格式:

USE[<表文件名>][IN<工作區(qū)號|0>][EXCLUSIVE|SHARED]格式:USE[<表文件名>][IN<工作區(qū)號|0>]922、打開表的其它常用方法菜單“打開”對話框數(shù)據(jù)工作期“打開”對話框2、打開表的其它常用方法菜單“打開”對話框數(shù)據(jù)工作期“打開”933、關閉表的方法(1)不帶任何參數(shù)的USE命令.CLOSETABLES[ALL](2)當前工作區(qū)打開新表自動關閉舊表(3)數(shù)據(jù)工作期中關閉(4)通過退出VisualFoxPro來關閉。選定“文件”菜單中的“退出”命令,或在命令窗口中鍵入命令QUIT。編輯窗口被關閉并不等于表被關閉。3、關閉表的方法編輯窗口被關閉并不等于表被關閉。943.3.2表的顯示表由表結(jié)構和表記錄兩部分組成,因此表的顯示有兩類命令,分別為顯示表結(jié)構和表記錄。

表結(jié)構的顯示

表設計器。命令方式:liststructure記錄的顯示

編輯窗口和瀏覽窗口。命令方式:list和browse3.3.2表的顯示表由表結(jié)構和表記953.3.2表的顯示1、表結(jié)構的顯示

LIST|DISPLAYSTRUCTURE[TOPRINTER[PROMPT]|TOFILE<文件名>]連續(xù)顯示,當顯示的內(nèi)容超過一屏時,自動向上滾動,直到顯示完成為止分屏顯示,顯示滿屏時暫停,待用戶按任一鍵后繼續(xù)顯示后面的內(nèi)容一邊顯示一邊打印表結(jié)構在打印前顯示一個對話框,用于設置打印機在顯示的同時將表結(jié)構輸出到指定的文本文件中命令方式。3.3.2表的顯示1、表結(jié)構的顯示LIS96例:顯示員工表.DBF的結(jié)構。SETDEFAULTTOD:\工資管理USE員工表LISTSTRUCTURE主窗口顯示例:顯示員工表.DBF的結(jié)構。SETDEFAULTTO972、表記錄的顯示LIST命令格式:(1)LIST|DISPLAY(2)LIST|DISPLAY[[FIELDS]<表達式表>][<范圍>][FOR<條件>][WHILE<條件>][TOPRINTER[PROMPT]|TOFILE<文件名>][OFF]功能:在指定范圍內(nèi)篩選出滿足條件的記錄并顯示或打印出來,或送至指定文件保存。DISPLAY是分屏輸出,LIST是連續(xù)輸出。[OFF]是否顯示記錄號2、表記錄的顯示98BROWSE命令格式:(1)BROWSE(2)BROWSE[FIELDS<表達式表>][FOR<條件>][WHILE<條件>]2、表記錄的顯示BROWSE命令格式:2、表記錄的顯示993.3.3表記錄指針及定位在VFP表中的記錄是逐條處理的。某一時刻只能處理一條數(shù)據(jù)。記錄指針:VFP為每一個打開的表設置的一個內(nèi)部指針。當前記錄:記錄指針指向記錄,該記錄可以被操作。剛打開的表默認第一個記錄為當前記錄文件頭信息首記錄(top)第2條記錄……第i條記錄(當前記錄)……尾記錄(bottom)文件尾文件開始標志記錄指針文件結(jié)束標志3.3.3表記錄指針及定位在VFP表中的記錄是逐條處理的。100測試文件尾函數(shù):EOF()測試文件頭函數(shù):BOF()測試記錄指針的值:RECNO()測試記錄個數(shù):RECCOUNT()1、與記錄指針相關的函數(shù)1、與記錄指針相關的函數(shù)1012、指針移動定位(1)、菜單方式選擇“表”菜單,在下拉菜單中選擇“轉(zhuǎn)到記錄”選項,指針定位:對表中某條記錄操作前,需移動記錄指針到該條記錄,移動步驟稱為指針定位定位分類:相對定位、絕對定位和條件定位定位操作方式:菜單式、命令式2、指針移動定位(1)、菜單方式指針定位:對表中某條記錄操作102最簡單的方法:在瀏覽窗口中,用鼠標點擊需要定位記錄的字段,該記錄最前面的灰色方框中就出現(xiàn)了黑三角,表明該記錄為當前記錄。

最簡單的方法:在瀏覽窗口中,用鼠標點擊需要定位記錄的字段,該1032、命令方式(a)絕對定位絕對定位是將記錄指針定位到指定的記錄。命令格式:GOTO|GO[RECORD<數(shù)值表達式>]|TOP|BOTTOM(b)相對定位相對對定位是從當前記錄開始移動記錄指針格式:SKIP[<數(shù)值表達式>]<數(shù)值表達式>表示記錄指針移動的記錄的個數(shù)。2、命令方式(b)相對定位104例:在命令窗口中執(zhí)行下列命令,分析執(zhí)行結(jié)果(表中總共有7個記錄)。USE員工表?RECNO(),BOF()&&顯示:1.F.SKIP-1&&指針向文件頭方向移動1個記錄?RECNO(),BOF()&&顯示:1.T.記錄號為1SKIP6&&指針從第1個記錄向文件尾方向移動6個記錄?RECNO(),EOF()&&顯示:7.F.SKIP&&指針向文件尾方向移動1個記錄?RECNO(),EOF()&&顯示:8.T.例:在命令窗口中執(zhí)行下列命令,分析執(zhí)行結(jié)果(表中總共有7個記105分析:記錄指針指向最后一個記錄,然后執(zhí)行SKIP,則RECNO()返回一個比表總記錄數(shù)大1的數(shù),且EOF()返回.T.。記錄指針指向第一個記錄,后執(zhí)行SKIP-1,則RECNO()返回值為1,且BOF()返回.T.。當BOF()函數(shù)的值已經(jīng)為.T.時,再執(zhí)行SKIP-1命令,屏幕顯示“已到文件頭。”的越界信息;當EOF()函數(shù)的值已經(jīng)為.T.時,再執(zhí)行SKIP命令,屏幕顯示“已到文件尾?!钡脑浇缧畔?。分析:106(C)條件定位格式:LOCATE[范圍][FOR|WHILE]功能:將指針定位于滿足條件的第1條記錄。說明:若需要定位到下一條滿足條件的記錄,用CONTINUE。FOUND()可測試是否找到滿足條件記錄若未找到滿足條件的記錄,指針指向文件結(jié)束位置,EOF()返回真。2、命令方式(C)條件定位2、命令方式1073.3.2表的修改1、表結(jié)構的修改

表設計器。命令方式:MODIFYSTRUCTUREALTERTABLE-SQL命令修改2、表記錄的修改

編輯窗口或瀏覽窗口手工修改成批命令修改3.3.2表的修改1、表結(jié)構的修改表設計1083.3.4表的修改2、表記錄手工修改菜單方式命令方式

EDIT|CHANGE[范圍][FIELDS<字段名表>][FOR<條件>|WHILE<條件>]功能:在指定范圍內(nèi)篩選出滿足條件的記錄來接受手工修改3.3.4表的修改2、表記錄手工修改菜單方式E1093.3.4表的修改2、表記錄成批修改(1)菜單方式3.3.4表的修改2、表記錄成批修改(1)菜單方式1103.3.4表的修改1、表記錄成批修改(2)命令方式

REPLACE[范圍]<字段名表1>WITH<表達式1>[,<字段名表1>WITH<表達式1>][FOR<條件>|WHILE<條件>]例如:USEREPLACEALL基本工資WITH基本工資*1.23.3.4表的修改1、表記錄成批修改(2)命令方式111VisualFoxPro中刪除記錄是分兩步進行,首先對要刪除的記錄打上刪除標記,稱為邏輯刪除;然后才是將記錄從表中徹底刪除,稱為物理刪除。邏輯刪除的記錄還可以恢復,物理刪除的則不能。1、瀏覽窗口中刪除

3.3.5表內(nèi)容的刪除和恢復邏輯刪除邏輯刪除恢復1、瀏覽窗口中刪除3.3.5表內(nèi)容的刪除和恢復邏輯1121、瀏覽窗口中刪除

3.3.5表內(nèi)容的刪除和恢復物理刪除1、瀏覽窗口中刪除3.3.5表內(nèi)容的刪除和恢復物理1132、命令刪除

(1)、邏輯刪除:

DELETE[<范圍>][FOR<條件>][WHILE<條件>]

3.3.5表內(nèi)容的刪除和恢復(2)、恢復帶刪除標記的記錄RECALL[<范圍>][FOR<條件>][WHILE<條件>]

2、命令刪除3.3.5表內(nèi)容的刪除和恢復(2)、恢114(4)、刪除全部記錄:ZAP功能:物理刪除當前表中所有記錄,只留下表結(jié)構。執(zhí)行ZAP相當于執(zhí)行DELETEALL和PACK兩條命令。2、命令刪除(3)、物理刪除:PACK功能:將當前表中帶刪除標記的記錄物理刪除。說明:PACK命令刪除的記錄是不可被恢復的。3.3.5表內(nèi)容的刪除和恢復(4)、刪除全部記錄:ZAP2、命令刪除3.3.51153.3.6表的復制

表的復制是指在已經(jīng)建立的源表的基礎上,根據(jù)需要產(chǎn)生源表的副本以及各種新表。

1、復制表的結(jié)構功能:將當前表的結(jié)構復制到指定的文件中。僅復制當前表的結(jié)構,不復制其中的數(shù)據(jù)。

COPYSTRUCTURETO<文件名>[FIELDS<字段名表>]生成的空表文件中只含有<字段名表>中給出的字段,若省略此項,則復制的空表文件的結(jié)構和當前表相同復制產(chǎn)生的表名,復制后只有結(jié)構而無任何記錄3.3.6表的復制表的復制是指在1162、復制表文件菜單格式:文件>>導出命令格式:COPYTO<文件名>[[FIELDS]<字段名表>][<范圍>][FOR<條件>][WHILE<條件>][[TYPE]SDF|DELIMITED|XLS][WITH<定界符|BLANK]

功能:將當前表中選定的部分記錄和部分字段復制成一個新表或其它類型的文件。3.3.6表的復制2、復制表文件3.3.6表的復制117[TYPE]:當用戶生成的新文件不是DBF格式文件時,可以用TYPE選項指定新文件的格式。TYPE文件類型包括下列幾種:

SDF:為標準格式,記錄定長,不用分隔符和定界符,每個記錄均從頭部開始存放,均以回車符結(jié)束。默認擴展名為.TXT。

DELIMITED:為通用格式,記錄不等長,每個記錄均以回車符結(jié)束。默認擴展名為.TXT。

XLS:得到一個Excel文件,該文件只能在Excel中打開,擴展名為.XLS。[TYPE]:當用戶生成的新文件不是DBF格式文件時,可以用118例:分別以SDF和DELIMITED格式將員工表.DBF的前4個記錄復制到SS1和SS2文本文件。USE員工表COPYTOSS1NEXT4SDFTYPESS1.TXT&&顯示SS1文本文件的內(nèi)容COPYTOSS2NEXT4DELIMITEDTYPESS2.TXT&&顯示SS2文本文件的內(nèi)容例:分別以SDF和DELIMITED格式將員工表.DBF的前1193.3.7表內(nèi)容統(tǒng)計COUNT[<范圍>][FOR<條件>][WHILE<條件>][TO<內(nèi)存變量>]SUM[<范圍>][<字段名表>][<[FOR<條件>][WHILE<條件>][TO<內(nèi)存變量表>|TOARRAY<數(shù)組>]AVERAGE[<范圍>][<字段名表>][<[FOR<條件>][WHILE<條件>][TO<內(nèi)存變量列表>]TOTALTO<文件名>ON<關鍵字段名>[FIELDS<字段名表>][范圍][FOR<條件>][WHILE<條件>]功能:統(tǒng)計當前表文件中指定范圍內(nèi)滿足條件的記錄個數(shù)。功能:在當前表文件中,對指定范圍內(nèi)滿足條件的字段縱向求和。功能:在當前表文件中,對指定范圍內(nèi)滿足條件的字段求縱向平均值。功能:在當前表文件中,對指定范圍內(nèi)滿足條件的記錄按關鍵字段名分類匯總求和,并生成一個新的表文件。3.3.7表內(nèi)容統(tǒng)計COUNT[<范圍>][F120數(shù)據(jù)查詢和瀏覽中經(jīng)常需要把表中的內(nèi)容按某個字段進行排序,VFP中有兩種方式實現(xiàn)這種功能。2、索引(INDEX)

3.4表的索引及應用兩種不同的數(shù)據(jù)組織方法

1、排序(SORT)按要求對記錄排序并產(chǎn)生一新表來存儲。一種記錄邏輯排列技術數(shù)據(jù)查詢和瀏覽中經(jīng)常需要把表中的內(nèi)容按某個字段1213.4.1排序

概念:根據(jù)指定的字段值,重新排列當前表記錄的存放次序,產(chǎn)生一個新表來存放排序后的記錄,對當前表沒有任何影響。

格式:

SORTTO<文件名>ON<字段名1>[/A|/D][/C][,<字段名2>[/A|/D][/C]...][<范圍>][FOR<條件1>][WHILE<條件2>][FIELDS<字段表>]

參數(shù)描述:新生成的表文件的文件名。新生成的表是關閉的。

/A表示按字段值的升序排序;/D表示降序排序;/C表示不區(qū)分字母的大小寫排序。<字段名1>、<字段名2>等是關鍵字段,是進行記錄排序時的依據(jù)。當有多個關鍵字段時,先按字段1進行排序,當字段1的值相等時,再按字段2的值進行排序,依此類推。缺省[范圍]、[FOR<條件>]、[WHILE<條件>]表示以所有記錄進行排序。指定新生成的數(shù)據(jù)表文件所包含的字段。缺省則包含當前表的所有字段。3.4.1排序概念:根據(jù)指定的字段值,重新排列當前表記122概念:索引是一種對記錄有序地進行邏輯排列的技術,是進行快速顯示、快速查詢數(shù)據(jù)的重要手段。特點:不改變當前數(shù)據(jù)表記錄的物理順序,也不建立新表,而是建立一個與數(shù)據(jù)表對應的索引文件,索引文件只保留索引關鍵字表達式值的邏輯順序的索引條目。索引是對數(shù)據(jù)表而言的,一個表可建立以不同字段為關鍵字的索引,不同的索引按其作為關鍵字的字段對記錄進行排序。3.4.2索引概念和分類概念:索引是一種對記錄有序地進行邏輯排列的技術,是進行快速顯123記錄號工號姓名15001張三22001李四34001王五41001劉甲53001馬乙序號工號記錄號110014220012330015440013550011按工號索引原數(shù)據(jù)順序索引文件的邏輯結(jié)構及排序原理記錄號工號姓名15001張三22001李四34001王五411244.1.2索引1.排序要生成一個新的表文件,記錄的物理順序發(fā)生了改變;2.索引生成索引文件,僅僅是表中記錄的邏輯順序發(fā)生了變化,物理順序未變化。3.排序生成的表可以單獨使用。4、索引文件不能單獨使用,它必須同表一起配合使用。索引與排序的區(qū)別4.1.2索引1.排序要生成一個新的表文件,記錄的物理順1251.索引文件的類型

分類屬性

單索引文件復合索引文件結(jié)構復合非結(jié)構復合打開與維護手動自動手動文件名不限與表同名不與表同名擴展名.idx.cdx形式壓縮或非壓縮

壓縮文件1.索引文件的類型分類單索引文件復合索引文件126按照索引文件排序的功能,分為以下四種功能類型:2.索引的類型(1)主索引:能夠惟一性地確定數(shù)據(jù)表中一條記錄的關鍵字表達式,即關鍵字表達式的值在數(shù)據(jù)表的全部記錄中是惟一的。每個表僅能建立一個主索引,主索引只用于數(shù)據(jù)庫表。(2)候選索引:與主索引的惟一性功能相同,每個表只能有一個主索引,但可以有多個候選索引。凡是具備惟一性驗證能力的字段或字段組合,都可以指定為候選索引。

(3)普通索引:VFP默認索引方式,允許字段中出現(xiàn)重復值。表記錄排序時,會把關鍵字表達式值相同的記錄排列在一起,并按自然順序的先后排列。在一個表中可以加入多個普通索引。(4)惟一索引:指數(shù)據(jù)表在排序時,相同關鍵字值的第一條記錄收入索引中。

按照索引文件排序的功能,分為以下四種功能類型:2.索引的1273.建立索引(菜單方式)索引選項卡移動按鈕排序按鈕在此框中輸入索引標記在此列表框中選擇索引類型在此文本框中輸入

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論