Visual-FoxPro程序設(shè)計3章-數(shù)據(jù)庫與表的創(chuàng)建與使用課件3_第1頁
Visual-FoxPro程序設(shè)計3章-數(shù)據(jù)庫與表的創(chuàng)建與使用課件3_第2頁
Visual-FoxPro程序設(shè)計3章-數(shù)據(jù)庫與表的創(chuàng)建與使用課件3_第3頁
Visual-FoxPro程序設(shè)計3章-數(shù)據(jù)庫與表的創(chuàng)建與使用課件3_第4頁
Visual-FoxPro程序設(shè)計3章-數(shù)據(jù)庫與表的創(chuàng)建與使用課件3_第5頁
已閱讀5頁,還剩77頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

VisualFoxPro程序設(shè)計主講:毛平南京理工大學(xué)泰州科技學(xué)院Dept.ofComputerSci.&tech.ofNJUSTTZ1VisualFoxPro程序設(shè)計主講:毛平1第3章數(shù)據(jù)庫與表的創(chuàng)建及使用2第3章數(shù)據(jù)庫與表的創(chuàng)建及使用2學(xué)習(xí)目標(biāo)掌握表記錄的輸入方法掌握表記錄的篩選方法掌握表記錄的定位、更新、刪除、復(fù)制方法3學(xué)習(xí)目標(biāo)掌握表記錄的輸入方法33.3表的創(chuàng)建與使用記錄的處理記錄的輸入表結(jié)構(gòu)創(chuàng)建后立即輸入在瀏覽窗口中追加記錄用INSERT-SQL命令追加記錄 INSERTINTOTableName [(FileName1[,FileName2…])] VALUES(eExp1[,eExp2…])例:INSERTINTOxs(xh,xdh)VALUES("990510","02“)43.3表的創(chuàng)建與使用記錄的處理4記錄的處理記錄的輸入使用APPEND與APPENDFROM命令追加記錄APPEND[BLANK][innWorkArea|cTableAlias]APPENDFROMFileName[FieldsFieldlist] [ForlExp][DELIMITED|XLS]備注型字段與通用型字段的數(shù)據(jù)輸入備注型:memo無內(nèi)容Memo有內(nèi)容通用型:gen無內(nèi)容Gen有內(nèi)容5記錄的處理5記錄的處理瀏覽窗口 在表的瀏覽窗口中,用戶可以對表記錄進(jìn)行多種操作。BROWSE[FieldsFieldList][ForlExp][FREEZEFieldName][NOAPPEND][NODELETE][NOMODIFY][TITLEcExp]6記錄的處理6記錄的處理記錄的篩選工作區(qū)屬性SETFILTER命令SETFILTERTO[lExp]例:USExs

SETFILTERTOxb=“女”

BROWSEFIELDSxh,xmNOMODIFY7記錄的處理7記錄的處理限制對字段的訪問BROWSE命令工作區(qū)屬性SETFIELDTOSETFIELDTO[FieldList]例:USExsSETFIELDTOxh,xmBROWSEFORxb=“女”NOMODIFY8記錄的處理8記錄的處理記錄的修改界面方式命令方式UPDATETabNameSETFieldName1=eExp1[,FieldName2=eExp2…][WHERElExp]REPLACEFieldName1WitheExp1[ADDI][,FieldName2WitheExp2[ADDI]…][Scope][ForlExp]9記錄的處理9記錄的處理記錄的刪除與恢復(fù)標(biāo)記要刪除的記錄(邏輯刪除) 界面方式 命令方式 Delete[Scope][ForlExp] [innWorkArea|cTableAlias] DeleteFromTableName[WherelExp]10記錄的處理10記錄的處理記錄的刪除與恢復(fù)恢復(fù)帶刪除標(biāo)記的記錄瀏覽窗口單擊刪除標(biāo)記菜單“表”->“恢復(fù)記錄”Recall命令 Recall[Scope][ForlExp]徹底刪除記錄(物理刪除)菜單“表”->“徹底刪除”Pack、Zap11記錄的處理11記錄的處理對帶有刪除標(biāo)記的訪問SETDELETEDON|OFF數(shù)據(jù)的復(fù)制CopyToFileName[FieldsFieldList][Scope][ForlExp][[SDF|XLS|DELEMITED[WithDelimiter|BLANK|TAB]]]12記錄的處理12記錄的處理記錄的定位記錄指針13記錄的處理13記錄的處理記錄的定位記錄指針相關(guān)函數(shù)BOF():測試記錄指針是否位于記錄開始標(biāo)志。EOF():測試記錄指針是否位于記錄結(jié)束標(biāo)志。RECNO():測試當(dāng)前記錄號。RECCOUNT():返回表中記錄的總條數(shù)。記錄指針可以理解為保存當(dāng)前記錄號的變量,其初值總是1,不能為0或負(fù)數(shù),最大值是表中記錄總數(shù)+1。14記錄的處理14記錄的處理記錄的定位定位記錄類型絕對定位:將記錄指針移動到指定的位置。相對定位:將記錄指針從當(dāng)前位置開始,相對于當(dāng)前記 錄向前或向后移動若干個記錄位置。條件定位:按給定條件在指定范圍中查找符合條件的記 錄。15記錄的處理15記錄的處理記錄的定位定位記錄方法使用菜單“表”->”轉(zhuǎn)到記錄”定位16記錄的處理16記錄的處理記錄的定位定位記錄作用范圍FOR:用于指明進(jìn)行操作的條件。While:也用于指明進(jìn)行操作的條件。17記錄的處理17記錄的處理記錄的定位定位記錄方法使用命令定位GOTOnRecordNumber[innWorkArea|cTableAlias]|TOP|BOTTOMSKIP[nRecords][innWorkArea|cTableAlias]LOCATEFORlExp[Scope]18記錄的處理18

例:設(shè)XS表中沒有記錄,現(xiàn)打開XS表,則有: 若XS表中有20條記錄,現(xiàn)打開表,則有:1919索引的創(chuàng)建和使用索引概述記錄的順序 物理順序:按其輸入的時間順序存放記錄。 邏輯順序:按某個字段值或某些字段對記錄排序。排序方法 把表記錄按某種邏輯順序排序后重新寫到一個新的表文件中。 建立一個邏輯順序號與原表物理順序的記錄號的對照表,并存入一個文件中。(索引法)20索引的創(chuàng)建和使用20索引的創(chuàng)建和使用索引文件的類型三種索引文件中,最常用的是結(jié)構(gòu)復(fù)合索引文件。21索引的創(chuàng)建和使用21索引的創(chuàng)建和使用使用表設(shè)計器創(chuàng)建結(jié)構(gòu)復(fù)合索引排序索引標(biāo)識(Tag)索引類型

普通索引(RegularIndexes) 唯一索引(UniqueIndexes) 候選索引(CandidateIndexes) 主索引(PrimaryIndexes)22索引的創(chuàng)建和使用22索引的創(chuàng)建和使用使用表設(shè)計器創(chuàng)建結(jié)構(gòu)復(fù)合索引索引表達(dá)式 建立索引的依據(jù),通常為一個字段和多個字段組成的表達(dá)式。若索引表達(dá)式為字符型表達(dá)式,則各個字段在索引表達(dá)式中的前后順序?qū)⒂绊懰饕慕Y(jié)果。若索引表達(dá)式為算術(shù)表達(dá)式,則按照表達(dá)式的運(yùn)算結(jié)果進(jìn)行排序。不同數(shù)據(jù)類型的字段構(gòu)成一個索引表達(dá)式時,必須轉(zhuǎn)換為同一數(shù)據(jù)類型(通常轉(zhuǎn)換為字符型)。23索引的創(chuàng)建和使用23索引的創(chuàng)建和使用使用表設(shè)計器創(chuàng)建結(jié)構(gòu)復(fù)合索引篩選24索引的創(chuàng)建和使用24索引的創(chuàng)建和使用索引的使用設(shè)置主控索引 一個表可以有多個索引,在需要使用某個索引時必須顯示地指定,即將某個索引設(shè)置為“主控索引”。打開表時指定主控索引USE表名ORDER索引標(biāo)識[ASC/DESC]表打開后,用SETORDER命令設(shè)置主控索引SETORDERTO[TagName[innWorkArea|cTableAlia][ASC/DESC]]25索引的創(chuàng)建和使用25索引的創(chuàng)建和使用索引的使用利用索引快速定位記錄SEEKeExp[ORDERTagName[ASC/DESC]][innWorkArea|cTableAlias]若找到匹配的記錄,則RECNO()返回記錄號,F(xiàn)OUND()返回.T.,EOF()返回.F.;否則,RECNO()返回表中記錄數(shù)加1,F(xiàn)OUND()返回.F.,EOF()返回.T.26索引的創(chuàng)建和使用26字段屬性與表屬性字段的擴(kuò)展屬性字段的標(biāo)題和注釋字段的顯示屬性(格式)27字段屬性與表屬性27字段屬性與表屬性字段的擴(kuò)展屬性字段的標(biāo)題和注釋字段的顯示屬性(輸入掩碼)28字段屬性與表屬性28字段屬性與表屬性字段的擴(kuò)展屬性默認(rèn)值字段的有效性規(guī)則和有效性信息例:性別必須為“男”或“女”Cj表中必須在0~100之間字段的默認(rèn)控件類29字段屬性與表屬性29字段屬性與表屬性數(shù)據(jù)庫表的表屬性30字段屬性與表屬性30字段屬性與表屬性數(shù)據(jù)庫表的表屬性長表名與表注釋記錄有效性規(guī)則和信息例:先出生后工作表的觸發(fā)器插入觸發(fā)器更新觸發(fā)器刪除觸發(fā)器CREATETRIGGERONTableNameForDelete|Insert|updateaslExp31字段屬性與表屬性313.4永久性關(guān)系與參照完整性表之間的永久性關(guān)系 數(shù)據(jù)庫表之間建立的一中關(guān)系,不僅運(yùn)行是存在,而且一直保持。作用在查詢設(shè)計器或視圖設(shè)計器窗口中,自動作為默認(rèn)聯(lián)接條件。作為表單和報表的默認(rèn)關(guān)系,在數(shù)據(jù)環(huán)境設(shè)計器窗口中顯示出來。用來存儲參照完整性信息。323.4永久性關(guān)系與參照完整性表之間的永久性關(guān)系32表之間的永久性關(guān)系構(gòu)建步驟確定兩張具有一對多或一對一關(guān)系的表。建立主表的主索引或候選索引。若是一對多關(guān)系,則在子表中以主表的關(guān)鍵字作為該表的外部關(guān)鍵字建立普通索引;若是一對一關(guān)系,則在子表中以與主表相同的關(guān)鍵字建立主索引或候選索引。在數(shù)據(jù)庫設(shè)計器中,將主表的主索引或候選索引標(biāo)識拖放到子表相應(yīng)的索引標(biāo)識上。33表之間的永久性關(guān)系33參照完整性 用來控制數(shù)據(jù)的完整性,尤其是控制數(shù)據(jù)庫中相關(guān)表之間的主關(guān)鍵字和外部關(guān)鍵字之間數(shù)據(jù)一致性的規(guī)則。參照完整性的一般要求子表中的每一個記錄在對應(yīng)的主表中必須有一個父記錄。在子表中插入記錄時,其外部關(guān)鍵字必須是主表主關(guān)鍵字值中的一個。在主表中刪除記錄時,與該記錄相關(guān)的子表中的記錄必須全部刪除。34參照完整性34參照完整性參照完整性的設(shè)置35參照完整性35VFP數(shù)據(jù)完整性綜述實(shí)體完整性:實(shí)體的主關(guān)鍵字值非空且惟一。參照完整性:指子表中外部關(guān)鍵字的取值要么為空,要么等于父表的某個主關(guān)鍵字值。自定義完整性:用戶根據(jù)具體應(yīng)用所設(shè)置的完整性規(guī)則。36VFP數(shù)據(jù)完整性綜述363.5有關(guān)數(shù)據(jù)庫及其對象的常用函數(shù)dbc()函數(shù)

返回當(dāng)前打開數(shù)據(jù)庫的完整文件名。dbused()函數(shù)

返回指定的數(shù)據(jù)庫文件是否已經(jīng)打開。 語法:dbused(cDatabaseName)dbgetprop()函數(shù)

返回當(dāng)前數(shù)據(jù)庫的屬性。 語法:dbgetprop(cName,cType,cProperty)373.5有關(guān)數(shù)據(jù)庫及其對象的常用函數(shù)dbc()函數(shù)37dbgetprop函數(shù)的類型的允許值dbgetprop函數(shù)的常用屬性名38dbgetprop函數(shù)的類型的允許值ddbsetprop()函數(shù)

設(shè)置當(dāng)前數(shù)據(jù)庫的屬性。 語法:dbsetprop(cName,cType,cProperty,ePropertyValue) 例:dbsetprop(‘xs.xh’,‘field’,‘caption’,‘學(xué)號’)39dbsetprop()函數(shù)39學(xué)習(xí)小結(jié)記錄的輸入記錄的篩選記錄的定位記錄的更新、刪除等40學(xué)習(xí)小結(jié)記錄的輸入40作業(yè)布置習(xí)題三第一題5、7、8、9、10第二題8、9預(yù)習(xí)3.4~3.541作業(yè)布置習(xí)題三第一題5、7、8、9、1041VisualFoxPro程序設(shè)計主講:毛平南京理工大學(xué)泰州科技學(xué)院Dept.ofComputerSci.&tech.ofNJUSTTZ42VisualFoxPro程序設(shè)計主講:毛平1第3章數(shù)據(jù)庫與表的創(chuàng)建及使用43第3章數(shù)據(jù)庫與表的創(chuàng)建及使用2學(xué)習(xí)目標(biāo)掌握表記錄的輸入方法掌握表記錄的篩選方法掌握表記錄的定位、更新、刪除、復(fù)制方法44學(xué)習(xí)目標(biāo)掌握表記錄的輸入方法33.3表的創(chuàng)建與使用記錄的處理記錄的輸入表結(jié)構(gòu)創(chuàng)建后立即輸入在瀏覽窗口中追加記錄用INSERT-SQL命令追加記錄 INSERTINTOTableName [(FileName1[,FileName2…])] VALUES(eExp1[,eExp2…])例:INSERTINTOxs(xh,xdh)VALUES("990510","02“)453.3表的創(chuàng)建與使用記錄的處理4記錄的處理記錄的輸入使用APPEND與APPENDFROM命令追加記錄APPEND[BLANK][innWorkArea|cTableAlias]APPENDFROMFileName[FieldsFieldlist] [ForlExp][DELIMITED|XLS]備注型字段與通用型字段的數(shù)據(jù)輸入備注型:memo無內(nèi)容Memo有內(nèi)容通用型:gen無內(nèi)容Gen有內(nèi)容46記錄的處理5記錄的處理瀏覽窗口 在表的瀏覽窗口中,用戶可以對表記錄進(jìn)行多種操作。BROWSE[FieldsFieldList][ForlExp][FREEZEFieldName][NOAPPEND][NODELETE][NOMODIFY][TITLEcExp]47記錄的處理6記錄的處理記錄的篩選工作區(qū)屬性SETFILTER命令SETFILTERTO[lExp]例:USExs

SETFILTERTOxb=“女”

BROWSEFIELDSxh,xmNOMODIFY48記錄的處理7記錄的處理限制對字段的訪問BROWSE命令工作區(qū)屬性SETFIELDTOSETFIELDTO[FieldList]例:USExsSETFIELDTOxh,xmBROWSEFORxb=“女”NOMODIFY49記錄的處理8記錄的處理記錄的修改界面方式命令方式UPDATETabNameSETFieldName1=eExp1[,FieldName2=eExp2…][WHERElExp]REPLACEFieldName1WitheExp1[ADDI][,FieldName2WitheExp2[ADDI]…][Scope][ForlExp]50記錄的處理9記錄的處理記錄的刪除與恢復(fù)標(biāo)記要刪除的記錄(邏輯刪除) 界面方式 命令方式 Delete[Scope][ForlExp] [innWorkArea|cTableAlias] DeleteFromTableName[WherelExp]51記錄的處理10記錄的處理記錄的刪除與恢復(fù)恢復(fù)帶刪除標(biāo)記的記錄瀏覽窗口單擊刪除標(biāo)記菜單“表”->“恢復(fù)記錄”Recall命令 Recall[Scope][ForlExp]徹底刪除記錄(物理刪除)菜單“表”->“徹底刪除”Pack、Zap52記錄的處理11記錄的處理對帶有刪除標(biāo)記的訪問SETDELETEDON|OFF數(shù)據(jù)的復(fù)制CopyToFileName[FieldsFieldList][Scope][ForlExp][[SDF|XLS|DELEMITED[WithDelimiter|BLANK|TAB]]]53記錄的處理12記錄的處理記錄的定位記錄指針54記錄的處理13記錄的處理記錄的定位記錄指針相關(guān)函數(shù)BOF():測試記錄指針是否位于記錄開始標(biāo)志。EOF():測試記錄指針是否位于記錄結(jié)束標(biāo)志。RECNO():測試當(dāng)前記錄號。RECCOUNT():返回表中記錄的總條數(shù)。記錄指針可以理解為保存當(dāng)前記錄號的變量,其初值總是1,不能為0或負(fù)數(shù),最大值是表中記錄總數(shù)+1。55記錄的處理14記錄的處理記錄的定位定位記錄類型絕對定位:將記錄指針移動到指定的位置。相對定位:將記錄指針從當(dāng)前位置開始,相對于當(dāng)前記 錄向前或向后移動若干個記錄位置。條件定位:按給定條件在指定范圍中查找符合條件的記 錄。56記錄的處理15記錄的處理記錄的定位定位記錄方法使用菜單“表”->”轉(zhuǎn)到記錄”定位57記錄的處理16記錄的處理記錄的定位定位記錄作用范圍FOR:用于指明進(jìn)行操作的條件。While:也用于指明進(jìn)行操作的條件。58記錄的處理17記錄的處理記錄的定位定位記錄方法使用命令定位GOTOnRecordNumber[innWorkArea|cTableAlias]|TOP|BOTTOMSKIP[nRecords][innWorkArea|cTableAlias]LOCATEFORlExp[Scope]59記錄的處理18

例:設(shè)XS表中沒有記錄,現(xiàn)打開XS表,則有: 若XS表中有20條記錄,現(xiàn)打開表,則有:6019索引的創(chuàng)建和使用索引概述記錄的順序 物理順序:按其輸入的時間順序存放記錄。 邏輯順序:按某個字段值或某些字段對記錄排序。排序方法 把表記錄按某種邏輯順序排序后重新寫到一個新的表文件中。 建立一個邏輯順序號與原表物理順序的記錄號的對照表,并存入一個文件中。(索引法)61索引的創(chuàng)建和使用20索引的創(chuàng)建和使用索引文件的類型三種索引文件中,最常用的是結(jié)構(gòu)復(fù)合索引文件。62索引的創(chuàng)建和使用21索引的創(chuàng)建和使用使用表設(shè)計器創(chuàng)建結(jié)構(gòu)復(fù)合索引排序索引標(biāo)識(Tag)索引類型

普通索引(RegularIndexes) 唯一索引(UniqueIndexes) 候選索引(CandidateIndexes) 主索引(PrimaryIndexes)63索引的創(chuàng)建和使用22索引的創(chuàng)建和使用使用表設(shè)計器創(chuàng)建結(jié)構(gòu)復(fù)合索引索引表達(dá)式 建立索引的依據(jù),通常為一個字段和多個字段組成的表達(dá)式。若索引表達(dá)式為字符型表達(dá)式,則各個字段在索引表達(dá)式中的前后順序?qū)⒂绊懰饕慕Y(jié)果。若索引表達(dá)式為算術(shù)表達(dá)式,則按照表達(dá)式的運(yùn)算結(jié)果進(jìn)行排序。不同數(shù)據(jù)類型的字段構(gòu)成一個索引表達(dá)式時,必須轉(zhuǎn)換為同一數(shù)據(jù)類型(通常轉(zhuǎn)換為字符型)。64索引的創(chuàng)建和使用23索引的創(chuàng)建和使用使用表設(shè)計器創(chuàng)建結(jié)構(gòu)復(fù)合索引篩選65索引的創(chuàng)建和使用24索引的創(chuàng)建和使用索引的使用設(shè)置主控索引 一個表可以有多個索引,在需要使用某個索引時必須顯示地指定,即將某個索引設(shè)置為“主控索引”。打開表時指定主控索引USE表名ORDER索引標(biāo)識[ASC/DESC]表打開后,用SETORDER命令設(shè)置主控索引SETORDERTO[TagName[innWorkArea|cTableAlia][ASC/DESC]]66索引的創(chuàng)建和使用25索引的創(chuàng)建和使用索引的使用利用索引快速定位記錄SEEKeExp[ORDERTagName[ASC/DESC]][innWorkArea|cTableAlias]若找到匹配的記錄,則RECNO()返回記錄號,F(xiàn)OUND()返回.T.,EOF()返回.F.;否則,RECNO()返回表中記錄數(shù)加1,F(xiàn)OUND()返回.F.,EOF()返回.T.67索引的創(chuàng)建和使用26字段屬性與表屬性字段的擴(kuò)展屬性字段的標(biāo)題和注釋字段的顯示屬性(格式)68字段屬性與表屬性27字段屬性與表屬性字段的擴(kuò)展屬性字段的標(biāo)題和注釋字段的顯示屬性(輸入掩碼)69字段屬性與表屬性28字段屬性與表屬性字段的擴(kuò)展屬性默認(rèn)值字段的有效性規(guī)則和有效性信息例:性別必須為“男”或“女”Cj表中必須在0~100之間字段的默認(rèn)控件類70字段屬性與表屬性29字段屬性與表屬性數(shù)據(jù)庫表的表屬性71字段屬性與表屬性30字段屬性與表屬性數(shù)據(jù)庫表的表屬性長表名與表注釋記錄有效性規(guī)則和信息例:先出生后工作表的觸發(fā)器插入觸發(fā)器更新觸發(fā)器刪除觸發(fā)器CREATETRIGGERONTableNameForDelete|Insert|updateaslExp72字段屬性與表屬性313.4永久性關(guān)系與參照完整性表之間的永久性關(guān)系 數(shù)據(jù)庫表之間建立的一中關(guān)系,不僅運(yùn)行是存在,而且一直保持。作用在查詢設(shè)計器或視圖設(shè)計器窗口中,自動作為默認(rèn)聯(lián)接條件。作為表單和報表的默認(rèn)關(guān)系,在數(shù)據(jù)環(huán)境設(shè)計器窗口中顯示出來。用來存儲參照完整性信息。733.4永久性關(guān)系與參照完整性表之間的永久性關(guān)系32表之間的永久性關(guān)系構(gòu)建步驟確定兩張具有一對

溫馨提示

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

評論

0/150

提交評論