第4章表與數據庫_第1頁
第4章表與數據庫_第2頁
第4章表與數據庫_第3頁
第4章表與數據庫_第4頁
第4章表與數據庫_第5頁
已閱讀5頁,還剩72頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

第4章表與數據庫本章主要講述數據表和數據庫的建立、修改、編輯、瀏覽、復制、索引的方法及其相關命令用法,另外還介紹了表間關系,數據庫與數據表的關系及其設置等概念。在學習這些概念和相關命令的使用方法中,唯有通過自己操作實例才能更為有效地理解與掌握。2表與數據庫主要內容4.1表結構的建立、修改與輸出4.2表記錄的錄入、編輯與顯示4.3表記錄索引4.4多表操作4.5數據庫4.6數據庫表的特有設置34.1表結構VisualFoxPro數據表分為數據庫表和自由表兩種,在此先講述自由表的建立,有關數據庫表在4.5數據庫一節中再做介紹。4.1.1二維表與數據表學生信息表4-1是常見的簡單二維表,利用VisualFoxPro的關系數據模型,能夠將這種二維表作為數據表文件存入計算機。通過分析學生信息表4-1的數據可為該表設計結構如表4-3所示。45學號姓名性別生日班級黨員否入學成績照片備注20090090張婷女1991-10-1009078否51120090091肖萌女1991-2-2209078否53320090092李銘男1990-12-1209078否57720090093張力男1990-1-1109078否.62220090120朋蓬男1991-5-509101是55020090121李園女1991-1-109101否58820090122胡虎男1991-7-1709101否52220090370劉冬女1990-11-1109123是63320090371嚴巖男1991-3-1309123否55520090372王平男1990-6-1609123否5446字段名類型寬度小數位數學號字符8姓名字符8性別字符2生日日期8班級字符5黨員否邏輯1入學成績整型4照片通用型4備注備注型4字段類型與寬度字段類型與寬度詳見書中表4-2

說明:(1)字段名。字段名的命名必須以漢字或字母開頭,自由表的字段名長度不超過10個字節,可以是字母、漢字、數字下劃線組成的序列。一個漢字占有2個字節寬度。(2)類型與寬度。字段的類型與其寬度相關,不同類型的字段其寬度有所不同,寬度以字節為單位。對于字符型、數值型、浮點型3種字段要根據實際需要合理選擇寬度,其它類型字段寬度均由VisualFoxPro統一規定(系統默認值)。例如,日期型寬度為8字節,邏輯型為1字節,而備注型與通用型為4字節(僅僅表示數據在.FPT文件中的位置)。(3)小數位數。只有數值型、浮點型、雙精度型才需要設置小數位數。小數點與正負號都要在字段寬度中占一位。例如,若需要7位整數,2位小數,則數據寬度就要選擇10個字節。74.1.2創建表結構數據表結構的建立方法有兩種,一種是在表設計器中,以交互方式建立,另一種是通過執行命令來建立。1.使用命令打開表設計器建立表結構命令格式:CREATE[<表文件名>|?]命令功能:當有選項<表文件名>時,按指定表文件名建立數據表。若無或選“?”,則從文件夾選擇對話框中指定建立表文件所在的路徑與文件名。2.使用菜單打開表設計器建立表結構例4-1創建學生表xs.dbf。84.1.3修改表結構1.打開表文件(1)菜單方式(2)命令方式命令格式:USE[<表文件名>|?]命令功能:①USE<表文件名>,打開指定的表文件。②USE?,進入文件夾對話框選擇需要打開的表文件。③USE,關閉當前打開的表文件。92.修改表結構(1)菜單方式(2)命令方式命令格式:MODIFYSTRUCTURE命令功能:若數據表已經打開,直接進入表設計器。否則通過【打開】對話框指定要打開的表文件后,再進入表設計器。例4-2修改xs.dbf中的“生日”字段名為“出生日期”。USExsMODIFYSTRUCTURE104.1.4輸出表結構如果需要顯示、打印表的結構信息,可以使用以下命令:命令格式:LIST|DISPLAYSTRUCTURE[TOPRINT]功能說明:顯示或打印當前表的結構信息。例4-3顯示并打印表xs.dbf的結構信息。114.2表記錄4.2.1輸入記錄1.輸入記錄要點2.輸入記錄示例4.2.2顯示記錄通常用來顯示表信息的命令有DISPLAY、LIST和BROWSE。1213(1)LIST命令命令格式:LIST[[FIELDS]<字段名列表>][<范圍>][FOR<條件1>][WHILE<條件2>]

[OFF][TOPRINT]命令功能:列表顯示當前表指定范圍內滿足條件記錄的指定字段值。(2)DISPLAY命令命令格式:DISPLAY[[FIELDS]<字段名列表>][<范圍>][FOR<條件1>][WHILE<條件2>]

[OFF][TOPRINT]命令功能:分頁顯示當前表指定范圍內滿足條件記錄的指定字段值。LIST和DISPLAY命令從功能上講非常相似,在使用上有以下幾點需要說明:①<范圍>省略的時候,LIST默認為ALL,DISPLAY默認為當前記錄。②OFF子句表示不顯示記錄號③TOPRINT子句表示送打印機輸出,省略的時候,僅在主窗口顯示記錄。④<字段名列表>省略的時候,表示除備注型和通用型之外的所有字段。14(3)BROWSE命令命令簡單格式:BROWSE[FIELDS<字段名列表>][FOR<條件1>][WHILE<條件2>]

[NOAPPEND][NODELETE][NOEDIT|NOMODIFY]

[FREEZE<字段名>][LOCK<N型表達式>]命令功能:在瀏覽窗口中顯示當前表滿足條件記錄的指定字段值。15說明:①NOAPPEND子句:不容許追加記錄。②NODELETE子句:不容許邏輯刪除記錄。③NOEDIT|NOMODIFY子句:不容許修改記錄。④FREEZE<字段名>:僅列出的那一個字段容許修改,其余字段只讀。⑤LOCK<N型表達式>:把左邊的n列鎖定在瀏覽窗口(n表示N型表達式的值)。BROWSE是個功能十分豐富的命令,它有多達幾十個的子句,在此僅給出以上的簡單格式,完整的格式可查看系統幫助文檔。163.命令方式顯示示例例4-4用命令LIST或DISPLAY顯示入學成績大于600分的黨員的學生的學號、姓名和性別。在命令窗口依次輸入如下命令序列:SETDEFAULTTOd:\USExsLISTFIELDS學號,姓名,性別FOR入學成績>600AND黨員否USE17例4-5用BROWSE命令顯示班級為09101的學生的學號、姓名和班級。UsexsBROWSEFIELDS學號,姓名,班級FOR班級=“09101”184.2.3追加記錄命令方式(1)APPEND命令命令格式:APPEND命令功能:以交互方式在當前表記錄之后追加若干條新記錄。例如,若要給學生表xs.dbf追加記錄,可以執行下列兩條命令:USExsAPPEND(2)APPENDBALNK命令命令格式:APPENDBLANK命令功能:給當前表追加一條空白記錄。19INSERT命令(3)INSERT命令命令格式:INSERT[BEFORE]命令功能:以交互方式在當前表的當前記錄之后(或之前)插入若干新記錄。說明:若有BEFORE子句,則在當前記錄之前插入新記錄,否則在當前記錄之后插入。(4)INSERTBLANK命令命令格式:INSERTBLANK[BEFORE]命令功能:當前表的當前記錄之后(或之前)插入一條空白記錄。20例4-7在學生表xs.dbf的首記錄位置加入一條空白記錄。UsexsInsertblankbefore21APPENDFROM命令命令格式:APPENDFROM<表文件名>|?[FIELDS<字段名列表>][FOR<條件>]命令功能:從指定表文件中讀出符合要求的記錄,并追加到當前表文件中。說明:若有FIELDS<字段名列表>子句,則只追加字段名列表中指定的字段值,否則,只追加兩個表文件共有的字段.22例4-8表xsbf.dbf與表xs.dbf具有相同的結構,但沒有記錄,將xs的記錄全部追加到xsbf中。(可先將xs.dbf的表結構復制到xsbf.dbf中:usexscopystructuretoxsbf)UsexsbfAppendfromxs234.2.4修改記錄1.REPLACE命令命令格式:REPLACE[<范圍>][FOR<條件1>][WHILE<條件2>]

<字段名1>WITH<表達式1>[ADDITIVE]

[,<字段名2>WITH<表達式2>[ADDITIVE]…]命令功能:對當前表指定范圍內滿足條件的記錄,用WITH子句中的表達式值替換對應字段值。說明:(1)ADDITIVE子句僅適用于備注型字段,有ADDITIVE時,將表達式值追加在原數據之后,否則替換原數據。(2)<范圍>的省略值為當前記錄。24例4-9將學生表xs.dbf中姓名為張力的班級編號改為09123。執行如下命令:USExsREPLACE班級WITH"09123"FOR姓名="張力"BROWSE252.GATHER和SCATTER命令(1)用數組元素值替換記錄字段值命令格式:GATHERFROM<數組名>[FIELDS<字段名列表>][MEMO]命令功能:用數組變量各元素的值依次替換當前記錄各個字段的數據。說明:①用第一個元素值代替第一個字段的值,依次類推。當有FIELDS<字段名列表>子句時,用數組各元素的值替換指定字段的值。②當有MEMO子句時,用對應元素的值替代該備注型字段的內容。通用型字段不在此命令的操作范圍內。26(2)將記錄字段值存放到數組

命令格式:SCATTERTO<數組名>[FIELDS<字段名列表>][MEMO]命令功能:將當前記錄數據存入數組變量的各個元素中。說明:用法和GATHER類似,不再重復。只是命令中的數組無需事先定義,即使已經定義而數組元素少于字段數,系統也可以自動重新定義該數組,以滿足需要。27要將表xs.dbf中的第一條記錄的值存入數組ss可以執行以下命令實現。USExsSCATTERTOssLISTMEMOLIKEss*284.2.5定位記錄在對數據表的記錄進行操作時,通常需要先進行記錄定位。記錄定位就是將記錄指針指向某個記錄,使之成為當前記錄,函數RECNO()的返回值就是當前記錄的記錄號。在打開表時,記錄指針總是指向第一個記錄。1.絕對定位命令命令格式1:GO[TO]TOP|BOTTOM命令格式2:[GO[TO][RECORD]]<數值表達式>292.相對定位命令

命令格式:SKIP[<數值表達式>]命令功能:從當前記錄開始移動記錄指針,指針的移動步長為表達式的絕對值。說明:當表達式的值為正時,記錄指針向記錄尾部方向移動,否則向頂部方向移動。若無子句<數值表達式>時,默認為1。304.2.6記錄的刪除與恢復通常記錄的刪除要分兩步,先在要刪除的記錄上加刪除標記,稱邏輯刪除,再用PACK命令將帶有刪除標記的記錄從表中真正刪除,稱為物理刪除。1.邏輯刪除命令命令格式:DELETE[<范圍>][FOR<條件1>][WHILE<條件2>]2.物理刪除命令命令格式:PACK313.恢復記錄命令命令格式:RECALL[<范圍>][FOR<條件1>][WHILE<條件2>]命令功能:對當前表指定范圍內滿足條件的記錄去掉刪除標記。4.記錄清除命令命令格式:ZAP命令功能:物理刪除當前表中的所有記錄。說明:ZAP等價于執行DELETEALL和PACK兩條命令。32例4-11從表xs.dbf中徹底刪除班級為09123的記錄。UsexsDeletefor班級=“09123”pack334.3表記錄索引4.3.1索引的概念表的索引是對表建立各種關鍵字與表記錄的對應關系,從而達到對表記錄進行快速檢索和處理的目的。通常情況下一個索引主要由以下兩部分組成。(1)索引關鍵字表達式:它是索引的依據,是由表字段組成的表達式。(2)索引標識:它是索引的名稱,以字母或下劃線開始,由字母、數字等組成。但長度不能超過10個字符。34表的記錄順序的幾個概念。(1)物理順序:記錄在表中的實際排列次序。此順序在表記錄輸入時已經確定,也就是記錄號的順序。(2)邏輯順序:對于打開的表文件,若有主控索引在使用,則表文件中的記錄將按主控索引中的順序展現給用戶,供用戶使用。記錄在主控索引中的順序稱為邏輯順序。(3)使用順序:實際展現給用戶,提供用戶使用的記錄順序稱為記錄的使用順序。若有主控索引在起作用,則使用順序就是邏輯順序;否則使用順序就是物理順序。354.3.2索引類型1.按索引文件類型分復合索引和單索引兩類索引文件2.按索引關鍵字特征分按索引關鍵字特征,可以分為主索引、候選索引、普通索引和唯一索引4種。說明:(1)主關鍵字是能唯一標識記錄的索引關鍵字,不會出現關鍵字重復值。例如,一般姓名字段不用作主關鍵字,因為姓名可能會出現同名同姓。(2)唯一索引,對關鍵字值相同的記錄,索引只列其中的第一個記錄。364.3.3創建索引1.建立索引命令命令格式:INDEXON<索引關鍵字>TAG<索引標識名>[FOR<條件>][ASCENDING|DESCENDING][CANDIDATE]命令功能:給當前表建立一個結構復合索引,存入表的結構復合索引文件。說明:(1)<索引關鍵字>表示要建立索引的字段或字段表達式。(2)TAG<索引標識名>子句為索引定義一個標識。(3)有FOR<條件>子句的時候,僅對滿足條件的記錄索引,否則對所有記錄索引。(4)ASCENDING表示按升序索引,DESCENDING表示按降序索引,省略的時候默認為升序。(5)CANDIDATE表示建立候選索引,默認為普通索引。372.基于單字段的索引所謂基于單字段的索引,就是按某一個字段來建立索引,即索引關鍵字就是某個字段名,如下例。例4-8創建索引,對學生表xs.dbf的記錄按入學成績降序排序。執行以下命令序列:USExsINDEXON入學成績TAGrxcjDESCENDINGBROWSE383.基于多字段的索引相對于單字段索引就很容易理解所謂多字段索引,指的是按照多個字段的某種計算關系進行索引,即索引關鍵字是由幾個字段構成的一個表達式,如下例。例4-9

創建索引,對學生表xs.dbf的記錄先按班級升序排序,班級相同再按入學成績降序排序。則執行如下命令:USExsINDEXON(班級+STR(1000-入學成績))TAGbjrxBROWSE394.3.4使用索引如前所述一個復合索引文件可以容納多個索引,但任意時刻最多只有一個索引起作用,那個起作用的索引被稱為主控索引。1.主控索引的指定命令格式:SETORDERTO[<值表達式>|TAG<索引標識>[ASCENDING|DESCENDING]]命令功能:為當前表指定索引順序,即指定主控索引。說明:(1)<數值表達式>表示索引建立的次序號,可以依此指定主控索引。(2)SETORDERTO或SETORDERTO0用于取消主控索引。402.索引的更新(1)自動更新。若在有主控索引狀態下,數據表中的記錄數據發生變化,則索引自動更新。(2)重新索引。若在未指定主控狀態下,數據表中的記錄數據發生變化,索引文件不會自動更新。如果要維持記錄的邏輯順序,可用REINDEX命令重新索引,也可以重新建立索引413.索引的刪除

命令格式:DELETETAGALL|<索引標識1>[,<索引標識2>…...]命令功能:將所列出的索引從當前表的結構復合索引文件中刪除。說明:(1)ALL表示刪除所有索引。(2)若當前表的所有索引都被刪除,則其結構復合索引文件被自動刪除。424.3.5記錄的查找1.順序查找命令格式:LOCATEFOR<條件>[<范圍>]說明:(1)<范圍>的省略值為ALL。(2)找到記錄的時候,FOUND()函數為邏輯真值(.T.),否則為邏輯假值(.F.)。(3)LOCATE找到一個符合條件的記錄后,就停止查找。如果要繼續查找后面滿足條件的記錄,需要執行CONTINUE命令,CONTINUE命令相當于在縮小了的范圍內又執行了一次LOCATE命令。]432.索引查找

命令格式:SEEK<表達式>命令功能:在當前主控索引關鍵字中搜索與<表達式>的值相匹配的第一條記錄,若找到,則使該記錄成為當前記錄,否則記錄指針定位到文件尾。說明:查找成功時函數FOUND()為邏輯真值(.T.),否則為邏輯假值(.F.),且函數EOF()為邏輯真值(.T.)。444.3.6記錄的統計1.計數命令命令格式:COUNT[<范圍>][FOR<條件1>][WHILE<條件2>][TO<內存變量名>]命令功能:計算當前表指定范圍內滿足條件的記錄的個數。說明:(1)<范圍>的省略值為ALL。(2)TO子句的作用是將記錄數保存在指定的內存變量中,若省略則計算結果僅在主窗口的狀態條中顯示。452.求和命令命令格式:SUM[<數值表達式列表>][<范圍>][FOR<條件1>][WHILE<條件2>]

[TO<內存變量名列表>|ARRAY<數組>]功能:對當前表指定范圍內滿足條件的記錄,分別計算各個數值表達式的和。說明:(1)<范圍>的省略值為ALL。(2)TO子句的作用是將計算結果保存在指定的內存變量或數組中,若省略則計算結果顯示在主窗口中。(3)若省略<數值表達式列表>,則分別求每個數值型字段的和。463.求平均命令

命令格式:AVERAGE[<數值表達式列表>][<范圍>][FOR<條件1>][WHILE<條件2>]

[TO<內存變量名列表|ARRAY<數組>]命令功能:在打開的表中,對[數值表達式表]的各個表達式分別求平均值。說明:對當前表指定范圍內滿足條件的記錄,分別計算各個數值表達式的平均值。說明:(1)<范圍>的省略值為ALL。(2)TO子句的作用是將計算結果保存在指定的內存變量或數組中,若省略則計算結果顯示在主窗口中。(3)若省略<數值表達式列表>,則分別求每個數值型字段的平均值。473.匯總命令

命令格式:TOTALTO<表文件名>ON<字段名>

[<范圍>][FOR<條件1>][WHILE<條件2>][FIELDS<數值型字段名列表>]命令功能:對當前表指定范圍內滿足條件的記錄,按<字段名>值分類,分別求各個數值型字段的和,并將結果存入表文件中。說明:(1)<范圍>的省略值為ALL。(2)分類字段值相同的記錄在新表中產生一條記錄,對非求和字段,只有分類字段值相同的第一條記錄的字段值出現在記錄中,也就是說,存放匯總結果的表文件的記錄數是分類字段值的種類數。(3)分類字段應該是當前表的主控索引,或者當前表在分類字段上是有序的,否則匯總結果是不正確的。(4)FIELDS<數值型字段名列表>若省略,則對所有數值型字段匯總。484.3.7表的復制1.復制表命令基本格式:COPYTO<表文件名>[<范圍>][FOR<條件1>][WHILE<條件2>][FIELDS<字段名表>]命令功能:將當前表指定范圍內滿足條件記錄的指定字段復制到指定表文件中。說明:當省略全部可省略子句時,復制全部記錄的所有字段到新表。492.復制表的結構

命令格式:COPYSTRUCTURETO<表文件名>[FIELDS<字段名表>]命令功能:復制當前表的指定字段形成新表的結構。說明:省略FIELDS<字段名表>時,復制當前表的全部字段到新表。503.復制任何文件

命令格式:COPYFILE<文件1>TO<文件2>命令功能:復制文件1到文件2。說明:文件必須寫完整文件名,且不能為打開的。514.4多表操作通常在一個數據庫應用系統中,往往有多個表文件,有時需要同時打開幾個表文件,這種操作稱為多表操作。在前面對表的各種操作示例中,均以學生基本信息表xs.dbf為例說明表的各種操作的。事實上學生管理系統還要涉及課程、班級、必修課成績和選修課成績等數據表。524.4.1工作區1.工作區與當前工作區2.選擇當前工作區(1)工作區標號有32767個工作區的標號(2)工作區別名命令格式:USE<表文件名>[ALIAS<表別名>](3)選擇當前工作區命令53(3)選擇當前工作區命令命令格式:SELECT<工作區號>︱<別名>︱0命令功能:指定<工作區號>或<別名>代表的工作區為當前工作區。說明:①SELECT0表示選定當前尚未使用的最小號工作區。②函數SELECT()能夠返回當前工作區的區號。③使用命令:USE<表名>IN<工作區號>︱<別名>能在指定的工作區打開表,但不改變當前工作區,要改變工作區仍需要使用SELECT命令。④引用非當前工作區的字段可以有如下兩種格式:格式1:<工作區別名>.<字段名>格式2:<工作區別名>-><字段名>

54例如執行下列命令觀察其區別。

CLOSEALL&&關閉所有打開的表,當前工作區默認為1號工作區?SELECT()&&顯示:1USEbxcjGO3?學號,高等數學&&顯示:2009009254SELECT2&&選定2號工作區為當前工作區USExsGO3?姓名,bxcj.學號,bxcj.高等數學&&顯示:李銘2009009254

553.數據工作期除了用命令方式選擇工作區和打開多個數據表外,為了方便用戶了解和配置當前的數據工作環境,VisualFoxPro提供一種稱為數據工作期(DataSession)的窗口用于打開或顯示表、建立表間關系、設置工作區屬性。564.4.2多表間的關聯通常,表與表之間存在以下3種關系:一對多關系:一個表的一條記錄對應另一個表的多條記錄。例如,表xs.dbf與表xxcj.dbf按學號具有一對多關系。多對一關系:一個表的多條記錄對應另一個表的一條記錄。例如,表xxcj.dbf與表xs.dbf按學號具有多對一關系。一對一關系:一個表的一條記錄僅對應另一個表的一條記錄。例如,表xs.dbf與表bxcj.dbf按學號具有一對一關系。按兩個表的主從關系分,通常分為父表(又稱主表)和子表兩種。在建立關聯的兩個表中總有一個是父表,一個是子表。571.RELATION命令命令格式:SETRELATIONTO[<表達式1>INTO<別名1>,…,<表達式N>INTO<別名N>]

[ADDITIVE]命令功能:以當前表為父表,分別按給定表達式與相應別名表建立關聯。說明:(1)<表達式>用來指定父表的關聯字段表達式,其值將與子表的主控索引關鍵字構成對照,相匹配的記錄構成關聯,<別名>表示子表或其所在的工作區。(2)ADDITIVE保證在建立關聯時不取消以前建立的關聯。58例4-21

用命令方式建立表xs.dbf和bxcj.dbf的關聯,觀察相關表的記錄指針變化情況和顯示結果。

select2usebxcjindexon學號tagxhselect1usexssetrelationto學號intobxcjdisplay學號,姓名,bxcj.高等數學,bxcj.計算機

go5display學號,姓名,bxcj.高等數學,bxcj.計算機

browsefields學號,姓名,bxcj.高等數學,bxcj.計算機592.在數據工作期窗口建立關聯

在數據工作期窗口建立關聯的基本步驟如下:①打開數據工作期窗口。②打開需要建立關聯的表。③為子表按關聯的關鍵字建立索引或確定主控索引。④選定父表工作區為當前工作區,并與一個或多個子表建立關聯。⑤說明建立的關聯為一對多關系。若省略本步驟則表示多對一關系。604.5數據庫數據庫是一個容器,它按照數據庫的組織結構構成表的集合,從而提高數據的一致性和有效性,降低數據冗余。同時,在數據庫中還可以建立和保存數據表之間的永久關系,以使各表保持相互協調和相互制約機制。另外,與自由表相比,數據庫表增加了許多自由表所不具備的特性,例如字段的標題、默認值、顯示格式、輸入掩碼、觸發器和有效性規則等等,從而使表的功能更強大。614.5.1數據庫的創建與修改1.創建數據庫(1)交互方式創建數據庫(2)使用命令創建數據庫命令格式:CREATEDATABASE[<數據庫文件名>|?]命令功能:按指定的數據庫文件名建立數據庫文件,或在【創建】對話框中指定數據庫文件的存儲位置和文件名來建立。622.修改數據庫命令格式:MODIFYDATABASE[<數據庫名>|?]命令功能:在數據庫設計器中顯示指定的數據庫。說明:若當前有打開的數據庫,則可以省略文件名;若當前沒有打開的數據庫又省略了文件名或者使用了?,則需通過【打開】對話框來指定要打開修改的文件。634.5.2打開與關閉數據庫1.打開數據庫命令命令格式:OPENDATABASE[<數據庫名>|?]功能:打開指定的數據庫文件,或從【打開】對話框中指定數據庫文件來打開。說明:使用該命令可以打開多個數據庫文件。2.關閉數據庫的命令命令格式:CLOSEDATABASE[ALL]功能說明:ALL子句表示關閉所有打開的數據庫文件,若無子句ALL,則僅關閉當前數據庫文件。644.5.3數據庫表的添加與移除1.向數據庫添加自由表2.從數據庫中移去表使用下列命令移去表。命令格式:REMOVETABLES<表文件名>命令功能:從當前數據庫中移去指定的數據庫表,被移去的數據庫表變為自由表。654.5.4設置當前數據庫1.設置當前數據庫命令格式:SETDATABASETO[<數據庫文件名>]命令功能:設置指定數據庫為當前數據庫。說明:如果省略<數據庫文件名>,則沒有設置當前數據庫。2.非當前數據庫的引用非當前數據庫表的引用格式:<非當前數據庫文件名>!<表文件名>說明:其中<非當前數據庫文件名>為<表文件>所在的數據庫文件名。664.5.5刪除數據庫命令格式:DELETEDATABASE<數據庫文件名>[DELETETABLES]命令功能:當使用DELETETABLES子句時,將數據庫及其中的表一并刪除,否則僅刪除數據庫文件,并將其中的表變為自由表。應該注意的是,若要刪除數據庫,必須先關閉它。674.5.6數據庫表的關聯永久關系建立的前提是相關聯的兩個表在關聯字段上已建立索引。如果兩個表之間是一對多的關系,則對父表的關聯字段必須是主索引或候選主索引,而子表的關聯字段可以是任何類型的索引,但通常是普通索引。若是一對一關系,則子表的關聯字段必須也是主索引或候選索引。1.建立關聯關系2.刪除關聯關系3.編輯關聯關系684.5.7參照完整性設置對于彼此相關的數據庫表,在更新、插入或刪除記錄時,如果只改其一不改其二,將會影響相關數據的一致性和完整性。而當數據庫表之間建立了永久關系之后,可以通過設置參照完整性規則來建立必要的制約機制,以保證相關數據的完整性。1.打開參照完整性生成器2.參照完整性生成器界面694.6數據庫表的特有設置

所謂數據完整性,主要是指數據的正確性和相容性。無論單用戶或多用戶數據庫,用戶在操作中難免發生差錯。如果對數據操作缺乏經驗及必要的約束,就難以保證數據的有效性。在VisualFoxPro中,對于向數據庫表中輸入的數據允許設置三級驗證,即字段級驗證、記錄級驗證和表間驗證。其中前兩級屬于表內檢驗,其規則一般在表設計器窗口中進行設置;最后一級屬于表間檢驗,其規則可通過參照完整性生成器進行設置。704.6.1字段級設置1.設置顯示屬性(1)格式:用以確定當前字段在瀏覽窗口、表單或報表中的顯示格式。例如,使用格式碼“!”,則當前字段在瀏覽窗口輸出時全部字母均為大寫;若換為格式碼“L”,則表示輸出數值型數據時,用0填滿前導空格。常用的格式碼參考書中描述712.設置字段有效性規則

字段有效性規則用來檢驗對當前字段輸入的數據是否有效。可在文本框中直接輸入表達式,也可單擊其右邊的按鈕,在【表達式生成器】中生成表達式。(1)規則:當前字段的有效性檢驗表達式,對于在該字段輸入的數據,

溫馨提示

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

評論

0/150

提交評論