




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第三章數據庫和表的設計與操作
主講:數據庫和表的設計與操作
自由表的創建
表的基本操作
表的排序、索引和查詢表的統計與匯總
多表的使用數據庫的創建及基本操作
建立表與表之間的關系
退出3.1自由表的創建--分析自由表的組成
建立自由表時,首先要對所處理的對象進行調查分析,再根據需要設計一張二維表,當表的行、列個數及每列數據的屬性確定后,再把數據集合放在其中。下面將以學生表(表3-1)的設計過程為例,具體介紹VisualFoxPro6.0系統中自由表的建立過程。表3-1學生表學
號姓
名性別出生日期團員否入學成績班
級照
片簡
歷05011001李平女10/21/85T502.00計算機略略05011002章立新男02/14/86T489.50計算機略略05011003趙智慧女05/07/85T467.00計算機略略05021001林敏女08/01/85T498.00金融略略05021002劉欣男11/05/84F500.00金融略略05021003于晶女03/04/85T488.00金融略略05021004朱健華男10/20/86T496.00金融略略05031001李國華男11/21/85T482.00會計略略05031002陳炳章男06/01/83T466.00會計略略05031003崔新榮女02/11/85T478.00會計略略返回3.1自由表的創建--分析自由表的組成
1.分析表的組成從上面這張二維表可以看到,它是由以下幾部分組成的。(1)表的名字:每一張表都有一個名字,用來概括表的內容,例如,表3-1的名字為“學生表”。(2)表中每一個欄目標題序列為表頭,它標明了每一列對應數據的屬性。例如,表3-1中的“學號”、“姓名”、“性別”、“出生日期”等。(3)表中每一行的數據是表的內容,每一行表示一個人的基本信息。2.定義表文件的數據類型在VisualFoxPro6.0中,一張二維表對應一個數據表,稱為表文件,是由表名、表結構、表的記錄3個部分組成。(1)表文件的名字相當于二維表中的表名,它是表文件的主要標識,用戶可以依靠表名在磁盤上存取、使用指定的表文件。(2)表文件的結構相當于二維表的表頭,二維表的每一列對應了表文件中的一個字段,其屬性決定了字段名、字段類型和字段長度。(3)表文件的記錄是表的內容,是表中不可分割的基本項,表的大小取決于它擁有的數據記錄的多少。返回3.1自由表的創建—創建自由表1.使用表設計器創建自由表方法一:使用菜單方式建立表結構。操作步驟:(1)在VisualFoxPro系統主菜單下,打開“文件”菜單,選擇“新建”選項,彈出“新建”窗口。(2)選擇“表”,再單擊“新建文件”按鈕,進入“創建”窗口。(3)在“創建”窗口,輸入要建立的表的名字“學生表”,然后單擊“保存”按鈕,進入“表設計器”窗口。(4)在表設計器中,可以逐一定義表中所有字段的名字、類型和寬度等。如果根據表內容定義“學生表”的結構,就要在“表設計器”窗口輸入字段信息。(5)當表中所有字段的屬性定義完成后,單擊“確定”按鈕,進入系統窗口。(6)根據自己的需要,如果選擇“是”,可以立即向表文件中輸入數據,如果選擇“否”,以后再輸入數據,將結束表結構的建立。方法二:使用命令方式建立表結構。命令格式:CREATE[<表文件名>/?]命令功能:創建表文件。說明:(1)當在命令窗口輸入CREATE學生表,將進入如圖3-3“表設計器”窗口,其他操作與方法一相同;(2)當在命令窗口輸入CREATE?,將進入如圖3-2“表設計器”窗口,其他操作與方法一相同。2.使用表向導創建自由表使用表向導,就是把已有的表作為“樣本”,在向導的引導下,通過篩選、修改操作完成新表的創建過程。返回3.1自由表的創建—創建自由表2.以追加的方式輸入數據建立表結構時,如果用戶沒有選擇立即方式向表輸入數據,可以用追加的方式向表輸入數據,操作步驟如下。(1)打開要輸入數據的自由表。(2)在VisualFoxPro系統主菜單下,單擊“顯示”菜單,選擇“瀏覽”選項,然后選擇“編輯”選項,可進入表的“編輯”窗口,再單擊“顯示”菜單下的“追加方式”選項,即可向表文件中追加數據。(3)也可以在“顯示”菜單下,選擇“瀏覽”選項,再進行“追加”,同樣可以達到向表中輸入數據或修改數據的目的。返回3.2表的基本操作—表文件的打開、關閉
1.打開表文件常用的方法有菜單、按鈕和命令3種。方法一:菜單方式(1)在VisualFoxPro主窗口中,單擊“文件”菜單,選擇“打開”選項,彈出“打開”對話框。(2)在“文件類型”處,選擇“表(*.dbf)”,選中“獨占”復選框。(3)選擇“學生表”所在的位置,選中“學生表”,在“文件名”處就有了被選中的文件名,單擊“確定”按鈕,即可打開“學生表”。方法二:命令按鈕方式單擊工具欄上的打開按鈕,彈出如圖3-23的“打開”窗口,其余與方法一相同。方法三:命令方式命令格式:USE<表文件名>/?命令功能:打開指定的表文件。說明:若在命令窗口輸入USE?,則打開類似圖3-23所示的打開窗口,選擇要打開的表文件。2.關閉表文件在“命令”窗口中輸入如下格式的命令:命令格式:USE命令功能:關閉當前打開的表文件。說明:從表的打開和關閉的命令方式中,都使用了USE命令。(1)當USE后有文件名時,表示要打開<表文件名>指定的表文件。(2)僅有USE時,為關閉當前打開的表文件。(3)打開表文件時,若表中含有備注型字段,則該表的備注文件也同時被打開。(4)在同一時刻,每個工作區只能打開一個表文件,若在本工作區打開另外一個表文件的同時,則前一個表文件被關閉。返回3.2表的基本操作—表結構的顯示和修改
1.顯示表結構命令格式:LIST/DISPLAYSTRUCTURE命令功能:顯示當前表文件的結構。說明:(1)顯示當前表文件的結構包括文件名、表記錄的個數、最近更新的時間、每個字段的字段號、字段名、類型、寬度和小數位數,以及一個記錄的字節總數等。(2)LIST與DISPLAY區別是:當表結構的內容比較多,需要多屏顯示時,DISPLAY會每顯示一屏信息后暫停,等待用戶按鍵繼續顯示,而LIST顯示信息時不暫停,直到顯示完畢,即只能看到最后一屏信息。2.修改表結構方法一:菜單方式(1)選擇以“獨占”的方式打開需要修改的表文件。(2)單擊“顯示”菜單,選擇“表設計器”選項,彈出“表設計器”對話框,選中“班級”字段,單擊“刪除”按鈕,然后選中“入學成績”,單擊“插入”按鈕,此時在“入學成績”字段前插入了一個新字段,把“新字段”改為“電話”字段的各項信息。(3)單擊“確定”按鈕,彈出詢問是否永久性更改表結構,單擊“是”按鈕即可。方法二:命令方式在“命令”窗口中輸入修改表結構的命令:命令格式:MODIFYSTRUCTURE命令功能:顯示并修改當前表文件的結構。說明:(1)輸入此命令,也會彈出“表設計器”窗口。(2)改變表的結構時,系統會自動備份當前的表文件,備份文件的擴展名是.BAK,備注備份文件的擴展名為.TBK。如果在修改表結構時出現了錯誤,可以把新表結構文件刪除,把.BAK文件和.TBK文件改變為原文件擴展名.DBF和.FPT,從而恢復原來的表文件結構。返回3.2表的基本操作—記錄的顯示與定位
1.顯示表記錄命令格式1:
LIST[范圍][FOR/WHILE<條件表達式>][FIELDS<字段名表>][OFF][TOPRINT/FILE<文件名>]命令功能:連續顯示當前表中指定范圍內符合條件的記錄的指定字段內容。命令格式2:
DISPLAY[<范圍>][FOR/WHILE<條件>][FIELDS<字段名表>][OFF][TOPRINT/FILE<文件名>]命令功能:分屏顯示當前表中指定范圍內符合條件的記錄的指定字段內容。說明:(1)[]是可選項,可有可無,各可選項的先后順序任意,各項之間要用空格分開,但任意可選項內部的內容作為一個整體不能分開,<>和[]只是分界符,在書寫命令時不要帶上。(2)[范圍]表示表文件記錄的范圍,可以是以下內容,如表3-3所示。表3-3范圍項可使用的子句選
項說
明ALL表示全部記錄NEXTn表示從當前記錄起以下的n
個記錄,包括當前記錄RECORDn表示第n
號記錄,n表示記錄號REST表示從當前記錄開始到文件尾的所有記錄返回3.2表的基本操作—記錄的顯示與定位
(3)FOR<條件表達式>表示在指定范圍內篩選出所有滿足條件的記錄進行操作,<條件>為邏輯表達式。(4)WHILE<條件表達式>表示在指定范圍內篩選滿足條件的記錄進行操作,直到第一個不滿足條件的記錄為止。(5)FIELDS<字段名表>,顯示<字段名表>指定的字段,若沒有該選項,則顯示當前表中的所有字段,各字段名間用英文狀態下“,”分隔,除非在<字段名表>中指明,否則在LIST和DISPLAY都不顯示備注型字段的內容,只是在字段名下方顯示“Memo”。(6)若在命令中有OFF可選項,則不顯示記錄號,反之顯示記錄號。(7)若在命令中有TOPRINT,則表示把顯示的內容同時打印;有FILE<文件名>,則把顯示的內容送到指定的文件中。LIST與DISPLAY的命令書寫格式相同,但它們之間的區別為:(1)DISPLAY命令在沒有[范圍]和<條件>子句時僅顯示當前記錄;而LIST命令則顯示所有記錄。所以,要顯示所有記錄時,可用LIST或DISPLAYALL命令。(2)當一次要顯示的記錄多于一個屏幕時,DISPLAYALL命令能分屏顯示,每顯示完一屏就暫停,并提示按任意鍵繼續顯示,而LIST命令則連續顯示。返回3.2表的基本操作—記錄的顯示與定位
2.記錄指針的定位方法一:在“瀏覽”窗口中移動指針打開表文件,在如圖3-27的窗口中,單擊“表”菜單,選擇“轉到記錄”命令,彈出下一級菜單,菜單中各項命令功能如下。第一個:將指針指向第一條記錄。最后一個:將指針指向最后一條記錄。下一個:將指針指向當前記錄的下一條記錄。上一個:將指針指向當前記錄的上一條記錄。記錄號:若選擇此項,可在彈出的對話框中輸入記錄號即可直接定位。定位:若選擇此項,可在彈出的對話框中輸入范圍、條件即可定位。方法二:用命令移動指針可以在命令窗口或程序中使用命令來移動記錄指針,移動記錄指針的命令分絕對移動和相對移動兩種。(1)絕對移動命令格式:GO/GOTO<記錄號>命令功能:將記錄指針移到<記錄號>指定的位置,<記錄號>可以是數值表達式,必須是正數且位于有效的記錄范圍之內。特別地,<記錄號>也可以是TOP和BOTTOM。GOTOP指針定位表文件的第一條記錄GOTOBOTTOM指針定位表文件的最后一條記錄(2)相對移動命令格式:SKIP[數值表達式]命令功能:在當前表文件中,將記錄指針從當前位置向上或向下移動。說明:[數值表達式]:指定記錄指針需要移動的記錄個數,如果記錄數是正數,記錄指針向下移動,如果記錄數是負數,記錄指針向上移動,當沒有這個可選項時,表示記錄指針向下移動一個記錄。返回3.2表的基本操作—表記錄的修改
1.BROWSE命令格式:BROWSE[FOR<條件表達式>][FIELDS<字段名表>][LOCK<數值表達式>][FREEZE<字段名>]命令功能:打開瀏覽窗口,顯示表文件中指定記錄的指定字段,可以用全屏幕編輯鍵移動光標,對記錄內容進行修改。說明:(1)[FOR<條件表達式>]:指定在瀏覽窗口中顯示的記錄要滿足的條件表達式。(2)[FIELDS<字段名表>]:指定在瀏覽窗口中顯示的字段,并且使字段按著<字段名表>指定的順序顯示。(3)[LOCK<數值表達式>]:指定在窗口的左分區看到的字段數。(4)[FREEZE<字段名>]:使光標凍結在某字段上,只能修改該字段,其他字段只能顯示,不能修改。(5)BROWSE命令中沒有任何可選項時,在瀏覽窗口中顯示除了備注型和通用型之外的所有記錄的所有字段內容,以便用戶根據實際需要進行修改。備注型和通用型字段可直接雙擊“memo”,“gen”進行修改。(6)修改完數據后,按Ctrl+W或瀏覽窗口的關閉按鈕,退出并保存修改結果。2.EDIT命令格式:EDIT[范圍][FIELDS<字段名表>][FOR/WHILE<條件表達式>]命令功能:以EDIT窗口方式修改記錄。3.CHANGECHANGE命令與EDIT命令的使用方法相似。返回3.2表的基本操作—表記錄的修改
4.REPLACE前面的所有命令在修改記錄內容時,只能逐條進行,若需要有規律地修改大量記錄的某個字段的值,則可以成批替換記錄。成批替換記錄主要使用菜單方式和命令方式。方法一:菜單方式將學生表中的班級為“計算機”的記錄改為班級為“計算機應用”。(1)打開“學生表”。(2)單擊“顯示”菜單,選擇“瀏覽”選項,彈出“瀏覽”窗口。(3)單擊“表”菜單,選擇“替換字段”選項,彈出“替換字段”對話框,并按如圖3-33所示的內容填寫,然后單擊“替換”按鈕。(4)此時的“瀏覽”窗口的記錄已經按要求修改完畢。方法二:命令方式命令格式:REPLACE[范圍][FOR/WHILE<條件表達式>]<字段名1>WITH<表達式1>[ADDITIVE][,<字段名2>WITH<表達式2>]……命令功能:在當前表文件中,對指定范圍內滿足條件的記錄進行批量修改。說明:(1)用<表達式1>的值替換<字段1>中的數據,用<表達式2>的值替換<字段2>中的數據,以此類推。(2)字段類型與其后的表達式類型應匹配。(3)[ADDITIVE]選項,只適用于備注型字段的修改,若有此選項,則表示將WITH后面的<表達式>的內容添加在原來備注內容的后面;否則,WITH后面<表達式>的內容將覆蓋原來的備注內容。(4)若沒有[范圍]和[FOR/WHILE<條件表達式>],則僅對當前記錄進行替換,若沒有[范圍]但有[FOR/WHILE<條件表達式>],則在整個數據范圍內對滿足條件的記錄進行替換,若沒有[FOR/WHILE<條件表達式>],但有[范圍],則對范圍指定的記錄進行替換。返回3.2表的基本操作—追加記錄與插入記錄
1.追加記錄可以使用菜單和命令兩種方式向表文件中追加記錄。方法一:菜單方式在瀏覽窗口中,單擊“表”菜單,選擇“追加新記錄”選項,記錄指針自動移動到最后一條記錄的后面,此時可以直接輸入新記錄的信息,還可以繼續追加更多的記錄。方法二:命令方式命令格式:APPEND[BLANK]命令功能:在當前表文件的尾部添加記錄。說明:(1)當有[BLANK]可選項時,表示在表文件的尾部追加一條空記錄。(2)當沒有[BLANK]可選項時,彈出“瀏覽”窗口或“編輯”窗口,指針定位到最后一條記錄的后面,等待輸入數據。2.從其他表文件中向當前表文件成批添加記錄命令格式:APPENDFROM<表文件名>[FIELDS<字段名表>][FOR/WHILE<條件表達式>]命令功能:將<表文件名>指定的表文件的內容追加到當前表文件的尾部。說明:(1)如果源文件與當前表文件有不同的字段,則只追加兩表中具有的相同字段名和類型的字段,其他字段為空。(2)如果源文件中字段寬度大于當前表文件的寬度,則自動截去超長部分,小于時用空格填充。3.插入記錄命令格式:INSERT[BEFORE][BLANK]命令功能:在打開表中的當前記錄的前或后插入記錄。說明:(1)當有[BLANK]可選項時,表示插入一個空白記錄。(2)當有[BEFORE]可選項時,在當前記錄之前插入一個記錄,否則,在當前記錄之后插入一個記錄。返回3.2表的基本操作—表記錄的刪除
表中不需要的記錄可以隨時刪除,刪除分為邏輯刪除和物理刪除兩步。除的方法有菜單和命令方式兩種。1.方法一:菜單方式在瀏覽窗口中,單擊“表”菜單,選擇“刪除記錄”選項,彈出“刪除”對話框,輸入要刪除記錄的條件和所選擇的范圍,然后單擊“刪除”按鈕。此時,被刪除的記錄并沒有真正地刪除,而是在記錄的左邊加上了黑色的刪除標記,此時是邏輯刪除。若單擊“表”菜單,選擇“恢復記錄”選項,在彈出的“恢復記錄”對話框中輸入要恢復記錄的條件,單擊“恢復記錄”按鈕,可取消邏輯刪除。要完全刪除該記錄,單擊“表”菜單,選擇“徹底刪除”選項,彈出“刪除”對話框。單擊“是”按鈕,這時才真正刪除了該記錄,此時是物理刪除。2.方法二:命令方式1)邏輯刪除命令格式:DELETE[范圍][FOR/WHILE<條件表達式>]命令功能:給當前表文件中滿足條件的記錄加上刪除標記“*”。2)恢復記錄命令格式:RECALL[范圍][FOR/WHILE<條件表達式>]命令功能:將當前表文件中指定范圍內帶刪除標記且滿足條件的記錄去掉刪除標記。說明:若命令中省略[范圍]和[條件表達式],則只對當前記錄取消刪除標記;若省略[范圍]但有<條件表達式>時,則[范圍]默認為ALL。3)物理刪除命令格式:PACK命令功能:將當前表文件中所有帶刪除標記的記錄徹底刪除。返回3.2表的基本操作—其他文件操作
1.表文件的復制命令格式:COPYTO<新表文件名>[范圍][FIELDS<字段名表>][FOR/WHILE<條件表達式>]命令功能:把當前表文件的內容全部或部分復制到新文件中。說明:(1)對已打開的表文件進行復制,復制后的新表是關閉的。(2)FIELDS<字段名表>表示將字段名表中列出的字段內容復制到新表文件中,若沒有此選項,則表示復制所有的字段。2.表結構的復制命令格式:COPYSTRUCTRUETO<新表文件名>[FIELDS<字段名表>]命令功能:將當前表文件的結構全部或部分復制到新表文件中。說明:此命令是僅復制結構,而前一個命令是結構和指定記錄一起復制到新文件中。3.任意類型文件的復制命令格式:COPYFILE<源文件名>TO<目標文件名>命令功能:將源文件內容復制到目標文件中。說明:(1)該命令可以復制任何類型的文件,<源文件名>和<目標文件名>必須加擴展名。(2)復制時源文件必須關閉。4.文件的更名命令格式:RENAME<源文件名>TO<新文件名>命令功能:將源文件名改為新文件名。說明:(1)<源文件名>和<新文件名>必須加擴展名。(2)更名時源文件必須關閉。返回3.3表的排序、索引和查詢
—表的排序表的排序有時也稱“分類”,即按照關鍵字來重新排列表文件中的數據,數據從小到大排列稱為按升序排序;由大到小排列稱為按降序排序。排序操作的結果將生成一個新的表文件,原表文件名及記錄的順序不變。數據大小的比較規則是:如果是數值型、日期型的數據進行比較,則由其本身的大小決定,字符型數據由其ASCII碼值確定,漢字由機內碼確定大小(即按拼音)。排序的目的是為了快速查找。命令格式:SORTON<字段名1>[/A][/D][/C][,<字段名2>[/A][/D][/C]…]TO<新表文件名>[范圍][FOR/WHILE<條件表達式>][FIELDS<字段名列表>]命令功能:對當前表文件中指定范圍內滿足條件的記錄,按指定字段的升序或降序進行重新排序,并把排序的結果以表文件的形式保存在新文件中。說明:(1)/A表示按升序排列,為系統默認值;/D表示按降序排序;/C表示不區分大小寫字母。(2)[范圍][FOR/WHILE<條件表達式>]使用方式與其他命令相同。(3)ON子句:表示按哪些字段排序,字段列表中的第一個字段是最重要的排序關鍵字,通常稱為“主關鍵字”,即首先按第一個字段值進行排序,遇到第一個關鍵字值相同的情況下,再按第二個關鍵字排序,以此類推。(4)FIELDS字段名列表時,則生成的新表文件中僅包含字段名列表所列的字段,默認此項表示所有字段。(5)排序后生成的新表文件是關閉的,使用前必須先打開。返回3.3表的排序、索引和查詢
—表的索引
索引文件是由索引關鍵字和指針構成的,或者說索引就是一個已排序的關鍵字與記錄的對應列表。索引文件和表文件分別存儲,并且索引并不改變表中記錄的存儲順序,它只是改變了讀取表中記錄的順序。索引文件是根據選定的關鍵字建立起來的,“關鍵字”可以是一個字段,或者是幾個字段的組合,由于各記錄均有與此關鍵字對應的項,便可根據這些項的值對各記錄按邏輯順序進行排列。索引文件就是按此邏輯順序記錄著各關鍵字項及對應的記錄號的。1.索引文件的分類
索引文件分為獨立索引文件和復合索引文件兩種。獨立索引文件只能存儲一個索引,擴展名為.IDX;而復合索引可以存儲多個索引,擴展名為.CDX。2.獨立索引文件1)索引文件的建立命令格式:INDEXON<關鍵字表達式>TO<索引文件名>[FOR<條件表達式>]命令功能:對當前表文件中符合條件的記錄按給定的關鍵字表達式建立索引文件。說明:(1)<關鍵字表達式>可以是一個字段,也可以是多個字段,當為多個字段時,必須用字符串運算符“+”連接,各字段必須轉換為相同類型的數據才能相加;(2)關鍵字的類型可以是字符型、數值型、日期型的數據,不能是備注型;(3)[FOR<條件表達式>]只對當前表文件中滿足條件的記錄建立索引。返回3.3表的排序、索引和查詢
—表的索引2)索引文件的打開命令格式1:USE<表文件名>INDEX<索引文件名列表>命令功能1:打開表文件的同時打開指定的索引文件命令格式2:SETINDEXTO<索引文件名列表>命令功能2:若表文件已經是打開的,則用格式2打開指定索引文件。說明:
<索引文件名列表>中列出要打開的索引文件的名字,若要同時打開多個索引文件,則要打開的索引文件名之間用英文狀態下的“,”分隔。其中第一個索引文件是主索引文件。此時,是按主索引文件的進行顯示表中記錄的。3)索引文件的關閉命令格式:SETINDEXTO(或CLOSEINDEX)命令功能:關閉所有已打開的索引文件。4)設置主索引文件
剛建立的索引本身就是主索引,打開多個索引文件時,默認排在第一位的索引文件是主索引,在獨立索引文件中,設置主索引的命令是:命令格式:SETORDERTO<數值表達式>/<索引文件名>命令功能:在打開的索引文件中指定主索引文件。說明:(1)<數值表達式>:從1開始為打開索引文件依次排號,<數值表達式>的值即為該索引文件在<索引文件名列表>中的順序號;(2)<索引文件名>:將<索引文件名>所指的索引文件設置為主索引。返回3.3表的排序、索引和查詢
—表的索引3.復合索引文件(.CDX)
復合索引文件分為:結構復合索引文件和非結構復合索引文件。結構復合索引文件與表文件同名,并且只要表文件打開,該索引文件也隨之打開;非結構復合索引文件與表文件不同名,并且不會隨著表文件的打開而打開,需要使用命令打開。1)復合索引文件的建立命令格式:INDEXON<關鍵字表達式>TAG<索引標識符>[OF<索引文件名>][FOR<條件>][ASCENDING/DESCENDING][UNIQUE/CANDINATE][ADDITIVE]命令功能:對當前表文件按給定關鍵字表達式值建立擴展名為.CDX的復合索引文件。說明:(1)TAG<索引標識符>[OF索引文件名]:用于創建一個擴展名為.CDX的復合索引文件。若無[OF索引文件名]項,則是創建結構復合索引文件,將索引標識加在結構復合索引文件中,索引文件名與表文件命相同,但擴展名為.CDX;若有[OF<索引文件名>]項,則創建非結構復合索引文件,將索引標識加在指定的非結構復合索引文件中。(2)[ASCENDING/DESCENDING]:建立升序或降序索引,默認是升序。(3)[UNIQUE/CANDINATE]:UNIQUE表示當表文件中具有關鍵字表達式值相同的記錄時,只有第一個記錄被放入索引文件中,CANDINATE則表示創建一個候選結構化索引標識。(4)[ADDITIVE]:在建立索引時是否關閉以前的索引,默認是關閉已經使用的索引,使新建的索引成為當前索引。若有此選項,則不關閉原先打開的所有索引文件。返回3.3表的排序、索引和查詢
—表的索引2)復合索引文件的打開結構復合索引文件由于與表文件同名,所以隨表的打開而自動打開,非結構復合索引文件的打開與關閉與獨立索引文件相同。命令格式1:USE<表文件名>INDEX<非結構復合索引文件名列表>命令功能1:打開表文件的同時打開指定的非結構復合索引文件。命令格式2:SETINDEXTO<非結構復合索引文件名列表>命令功能2:若表文件已經是打開的,則用命令格式2打開指定非結構復合索引文件。3)復合索引文件的關閉結構復合索引文件的關閉是隨著表文件的關閉來完成的。非結構復合索引文件的關閉與獨立索引文件的操作相同。命令格式:SETINDEXTO(或CLOSEINDEX)命令功能:關閉所有已打開的索引文件。4)設置主索引文件復合索引文件打開后,其中的索引不會自動設置主索引標識,必須使用命令設置。命令格式:SETORDERTO<TAG索引標識>/<數值表達式>命令功能:在打開的復合索引文件中設置主索引標識。說明:(1)<TAG索引標識>:將復合索引文件中給定的<索引標識>設置為主索引標識。(2)<數值表達式>:將復合索引文件中第幾個索引標識設置為主索引標識。返回3.3表的排序、索引和查詢
—表的索引5)利用表設計器建立結構復合索引文件(1)打開表文件,單擊“顯示”菜單,選擇“表設計器”選項,彈出“表設計器”對話框。(2)在“表設計器”對話框中,選擇“索引”標簽,輸入索引內容,在“索引名”框中輸入索引的標識名、“類型”列表中選定索引類型。(3)在“表達式”框中,鍵入作為記錄排序依據的字段名,或者通過選擇“表達式”框后面的對話框按鈕,用“表達式生成器”來建立表達式。(4)若想有選擇地輸出記錄,可在圖3-42中的“篩選”框中輸入篩選表達式,或者選擇該框后面的按鈕,通過“表達式生成器”來建立表達式。(5)單擊“確定”按鈕。4.重新索引
對表文件進行修改、插入、刪除等操作時,如果打開相應的索引文件,則這些索引文件會隨著表文件的更新而自動更新,否則就不會跟著變化,必須使用重新索引命令。命令格式:REINDEX命令功能:重新建立打開的索引文件。5.刪除復合索引文件中的標識在使用復合索引文件中,可以隨時刪除索引標識。命令格式1:DELETETAG<標識名>[OF<復合索引文件名>]命令功能1:從指定的復合索引文件中刪除指定的索引標識。命令格式2:DELETEALL[OF<復合索引文件名>]命令功能2:刪除指定復合索引文件的全部標識,該復合索引文件將自動被刪除。說明:(1)以上兩個命令都要求復合索引文件是打開狀態。(2)如果沒有[OF<復合索引文件名>]選項,表示刪除結構復合文件中的索引標識。返回3.3表的排序、索引和查詢
—表的查找1.LOCATE和CONTINUE命令格式:LOCATE[<范圍>][FOR/WHILE<條件表達式>]命令功能:在當前表文件中,查找指定范圍內滿足條件的記錄,并把指針定位到第一個滿足條件的記錄上。說明:(1)[范圍]:當缺省時,默認為ALL。(2)若要繼續查找,則需使用CONTINUE命令。命令格式:CONTINUE命令功能:把指針定位到下一條滿足條件的記錄上。2.FIND命令格式:FIND<字符串/字符型變量/數值>命令功能:在索引文件中查找索引關鍵字與指定查找條件相符的第一條記錄,并將指針指向它。說明:(1)必須打開索引文件進行查找,而且索引文件的關鍵字必須是要查找的字段。(2)要查找的是字符型內存變量時,要使用宏替換“&”把字符型變量的值替換出來。(3)此命令只能查找符合條件的第一條記錄,若還有符合條件的記錄,可使用SKIP命令定位到該記錄上。(4)若查找成功,則FOUND()函數值為.T.,EOF()函數的值為.F.3.SEEK命令格式:SEEK<表達式>命令功能:在索引文件中查找關鍵字內容與表達式相同的第一條記錄。說明:(1)<表達式>可以是字符型、數值型、日期型和邏輯型數據,表文件必須按相應表達式索引。(2)可以直接查找字符型、數值型、日期型、邏輯型等內存變量,不需要任何變換。返回3.4表的統計與匯總
—統計記錄與求和、求平均命令格式:COUNT[范圍][FOR/WHILE<條件表達式>][TO<內存變量>]命令功能:統計表中指定范圍內滿足條件的記錄的個數。說明:(1)如果默認全部可選項,則統計表中全部記錄的個數。(2)TO<內存變量名>:統計結果可以保存在內存變量中,如果沒有此項,只顯示不保存。命令格式:SUM[范圍][字段表達式表][FOR/WHILE<條件表達式>][TO<內存變量名表>]命令功能:對當前表指定范圍內滿足條件的記錄按指定的數值型字段進行列向求和。說明:(1)如果默認全部可選項,則對表中所有的數值型字段進行求和。(2)[范圍]、[條件]:當沒有[范圍]時,表示為ALL;[條件]與以前命令的使用方法相同。(3)[字段表達式表]:指定求和字段名,字段名之間用英文狀態的“,”分隔,若沒有此選項,則對所有數值型字段求和。(4)TO<內存變量名表>:將求得結果保存到內存變量中。命令格式:AVERAGE[范圍][字段表達式表][FOR/WHILE<條件表達式>][TO<內存變量名表>]命令功能:對當前表指定范圍內滿足條件的記錄按指定的數值型字段進行求平均值,用法與SUM相同。返回3.4表的統計與匯總
—分類匯總
匯總命令是針對已經排序的或已經做了索引的表文件進行的。它把與關鍵字段具有相同值的所有記錄中的數值字段的內容進行求和,作為一個記錄存放在表文件中。其中,非數值型字段的內容就是原來表文件中與關鍵字段值相同的那一組記錄的第一個記錄的對應字段的內容。命令格式:TOTALON<關鍵字>TO<新表文件名>[范圍][FOR/WHILE<條件表達式>][FIELDS<字段名表>]命令功能:對當前表指定范圍內滿足條件的記錄,按指定的關鍵字段的不同值為類別,對指定字段分類求和,結果保存在新文件中。說明:(1)在使用TOTAL之前,當前表文件必須按<關鍵字>進行排序或索引。(2)若沒有任何可選項,表示對全部記錄的所有數值型字段按關鍵字進行分類求和。(3)分類的結果生成新的表文件,新表文件的結構與原來的表文件結構相同,但沒有備注型字段。返回3.5多表的使用
—選擇工作區
對表文件做任何操作之前必須先打開該文件。要想同時使用多個表,就必須同時打開多個表,但默認情況下,任意時刻VisualFoxPro只能打開一個表文件。原因是任何一個被打開的表文件都要占用一個“工作區”,默認情況下只使用1號工作區。因此,表文件打開時要占用一個工作區,關閉時釋放該工作區。所以在同一時刻要再打開另外一個表文件,只能自動關閉前一個表文件。
在VisualFoxPro6.0中,可以使用32767個工作區,在不同的工作區可以打開不同的表,但在任意時刻用戶只能選擇一個工作區進行工作,即用戶只能對一個工作區中的表文件進行操作,這個表文件被稱為當前表,它所在的工作區稱為當前工作區。1.工作區的表示方法
(1)數字表示法:用1,2,3,4,…,32767表示。
(2)字母表示法:用A,B,C,…表示(也可以是小寫字母)。
(3)別名表示法:在工作區打開表時指定了別名,可用別名表示該工作區。2.選擇工作區命令格式:SELECT數字區號/字母區號/別名。命令功能:選擇指定的工作區。說明:(1)打開表文件時,可以給表起一個別名。格式為:USE<文件名>ALIAS<別名>(2)用該命令選擇工作區時,最后選擇的工作區是當前工作區。(3)當前工作區內的表文件的字段可以直接使用,若要使用其他工作區表文件的字段,要在被訪問字段名之前加入“別名”或加“區名”,具體使用如下:別名->字段名或別名.字段名;區名->字段名或區名.字段名。返回3.5多表的使用
—表之間建立關聯
在兩個工作區分別打開兩個表文件,讓兩個表的記錄指針能根據要求進行同步移動,實現這種操作方法是在兩個區建立關聯。通過建立關聯,可以使用LIST命令顯示兩個工作區表文件的內容。命令格式:SETRELATIONTO[<關鍵字表達式>/<數值表達式>]INTO<工作區號>/<別名>命令功能:當前工作區中的表文件與其他工作區中的表文件通過關鍵字建立關聯。說明:(1)<關鍵字表達式>的值必須是相關聯的兩個表文件共同具有的字段,并且<別名>表文件必須已經按<關鍵字表達式>建立了索引文件并處于打開狀態;(2)如果命令中使用了<數值表達式>,則活動區中指針變化時,<別名>區中將以<數值表達式>計算的結果作為記錄序號,把指針定位在對應記錄上,此時,<別名>區中的表文件不再使用索引文件;(3)執行此命令不產生新表文件,稱為表間的邏輯連接;(4)當執行不帶參數的SETRELATIONTO命令,則是刪除當前工作區中所有的關聯。
返回3.5多表的使用
—表之間的連接
命令格式:JOINWITH<工作區號>/<別名>TO<新表文件名>[FIELDS<字段名表>][FOR/WHILE<條件表達式>]命令功能:將不同工作區的兩個表文件,根據一定的條件進行連接,生成新的表文件。(1)此命令應該在當前工作區輸入,<別名>是被連接的表文件的別名,它應該在另一個工作區被打開。(2)新的表文件生成后,處于關閉狀態。(3)FIELDS<字段名表>:指定新表文件中所包含的字段及其排列順序,但該表中的字段必須是原來兩個表文件中所包含的字段,如果沒有此選項,新表文件中的字段將包含原來兩表文件的所有字段,同名字段只保留一項。(4)[FOR/WHILE<條件表達式>]:指定兩個表文件連接的條件,只有滿足條件的記錄才能連接。(5)連接的過程:在當前工作區的表文件中順序抽出各個記錄,每次抽出一個記錄后,就在另一個工作區的表中尋找符合條件的記錄,每找到一個,就與當前工作區的表文件中的記錄進行連接而成為一個新記錄。這些新記錄中可能包含兩個表文件的任意字段。顯然,如果原來兩個表文件的記錄個數分別為M和N,則新表文件中就有可能有M*N個記錄。注意:JOIN命令執行時間比較長,而且當兩個表文件都相當大、符合條件的情況又很多時,可能會產生一個極其龐大的新的表文件,使用時要注意防止產生文件過大。返回3.5多表的使用
—根據另外的表文件更新當前表文件
UPDATE命令則可以實現用另一個表文件中的數據來修改當前表文件。命令格式:UPDATEON<關鍵字段名>FROM<工作區號>/<別名>REPLACE<字段名1>WITH<表達式1>[,<字段名2>WITH<表達式2>…][RANDOM]命令功能:用指定<表達式>的值修改當前表文件中該記錄指定<字段>的值。說明:(1)<關鍵字段名>指定的字段必須是兩個表文件中都具有的。(2)如果有[RANDOM]選項,則只需要當前表文件按關鍵字段建立索引或排序;如果無此選項,則兩個表文件都必須以關鍵字段建立索引或排序。(3)當前表文件中關鍵字段值相同的記錄有多個時,只有第一個記錄被更新;如果在別名表中可以找到多個關鍵字段值相同的記錄,則先對別名表中關鍵字段值相同的記錄進行匯總,然后再更新;如果在別名表中找不到關鍵字段相同的記錄,則不對當前表文件中的記錄進行更新。
返回3.6數據庫的創建及基本操作—創建數據庫
數據庫是指存儲在計算機系統內有結構的、相互關聯的數據的集合。數據庫是指存儲在計算機系統內有結構的、相互關聯的數據的集合。1.菜單方式(1)在VisualFoxPro系統主菜單下,打開“文件”菜單,選擇“新建”命令,進入“新建”窗口(2)在“新建”窗口,選擇“數據庫”選項,再單擊“新建文件”按鈕,進入“創建”窗口,在“數據庫名”后的文本框中輸入“學生成績管理”(3)單擊“保存”按鈕,返回到VisualFoxPro系統主菜單下,此時空數據庫文件“學生成績管理”已經建成。2.命令方式命令格式:CREATEDATABASE[<數據庫名>]命令功能:創建一個新的數據庫。說明:如果在執行CREATEDATABASE命令時沒有[<數據庫名>]可選項,則彈出窗口,要求輸入數據庫文件名,確定文件所在的位置,單擊“保存”按鈕即可。返回3.6數據庫的創建及基本操作—打開數據庫
1.菜單方式在VisualFoxPro系統主菜單下,打開“文件”菜單,選擇“打開”命令,進入“打開”窗口,在“文件類型”下拉框內,選擇數據庫類型,然后輸入要打開的數據庫名,或找到要打開的數據庫文件,單擊“確定”按鈕,進入“數據庫設計”窗口。2.命令方式命令格式:OPENDATABASE[<數據庫名>]命令功能:打開指定的數據庫文件。說明:如果在執行OPENDATABASE命令時沒有[<數據庫名>]可選項,則彈出如圖3-47的“打開”窗口,輸入要打開的數據庫文件名,確定文件所在的位置,單擊“打開”按鈕即可。返回3.6數據庫的創建及基本操作—向數據庫添加數據表
通常一個表文件只能屬于一個數據庫文件,如果想向當前數據庫中添加的表已經被添加到了別的數據庫中,則必須先將其從其他數據庫中移去后才能添加到當前數據庫中。1.菜單方式(1)在VisualFoxPro系統主菜單下,打開“學生成績管理”數據庫,進入“數據庫設計器”窗口,在此窗口中右擊,彈出“數據庫”快捷菜單(2)選擇“添加表”選項,進入“打開”窗口,在此窗口選擇要添加的表文件名“學生表”,則表文件添加到“學生成績管理”數據庫中,單擊“確定”按鈕,返回“數據庫設計器”窗口。2.命令方式命令格式:ADDTABLE<表文件名>命令功能:向已經打開的數據庫中添加指定的表文件。返回3.6數據庫的創建及基本操作—從數據庫移去數據表
1.菜單方式在“數據庫設計器”窗口,先激活要刪除的表文件,然后在VisualFoxPro系統主菜單中,打開“數據庫”菜單,選擇“移去”命令,單擊“移去”按鈕即可。2.命令方式命令格式:REMOVETABLE<表文件名>[DELETE]命令功能:從當前數據庫中移去或刪除一個數據表。說明:執行該命令時,如果有[DELETE]選項,表示在移去數據表的同時刪除數據表文件,否則是從數據庫中移去數據表文件,使之成為自由表。關閉數據庫命令格式:CLOSEDATABASE或CLOSEALL命令功能:關閉所有打開的數據庫和表。刪除數據庫命令格式:DELETEDATABASE<數據庫名>[DELETETABLES]命令功能:刪除指定的數據庫文件。說明:如果有[DELETETABLES]選項,表示刪除數據庫的同時也刪除庫中的表文件;否則表示刪除數據庫之后,庫中的表將成為自由表。返回3.6數據庫的創建及基本操作—設置字段屬性
3.6.7設置字段屬性在將表添加到數據庫中后,可以獲得許多自由表中不具備的屬性。作為數據庫的一部分,這些屬性將被保存,當表從數據庫中移去時,這些屬性也就不再存在了。1.設置字段標題【例3-42】給“學生成績管理”數據庫中的“學生表”的“學號”字段設置標題為“入學年號系號序號”。操作步驟如下:(1)打開“學生成績管理”數據庫,進入到“數據庫設計器”窗口,單擊“學生表”并選中它,在“學生表”內右擊,彈出快捷菜單;(2)選中“修改”選項,打開“表設計器”窗口,選中“學號”字段,在下面的“標題”文本框內輸入“入學年號系號序號”。(3)單擊“確定”按鈕,彈出對話框,單擊“是”按鈕,返回到“數據庫設計器”窗口(4)打開“顯示”菜單,選擇“瀏覽”選項,打開了“學生表”的瀏覽窗口,原來“學號”字段由“入學年號系號序號”替代。返回3.6數據庫的創建及基本操作—設置字段屬性
2.設置有效性規則及說明【例3-43】給“學生表”中的“入學成績”字段設置有效規則。操作步驟如下:(1)打開“學生成績管理”數據庫,選中“學生表”,并右擊選擇“修改”選項,進入“表設計器”,選中“學生表”的“入學成績”字段,在“規則”后的文本框中輸入“入學成績<600”,“信息”后的文本框中輸入“入學成績應該小于600分”。(2)單擊“確定”按鈕,單擊“是”,返回到“數據庫設計器”窗口。(3)打開“顯示”菜單,選擇“瀏覽”選項,打開了“學生表”的瀏覽窗口,修改第一條記錄的“入學成績”為666.60,此時彈出對話框,給出輸入錯誤的提示。(4)單擊“還原”按鈕,返回“瀏覽”窗口,恢復修改前的數據;若單擊“確定”按鈕,則光標回到入學成績處,可繼續修改。3.設置字段的默認值為了提高表中數據輸入的速度和準確性,可以設置字段的默認值,這樣就可以使系統在建立新記錄后自動給字段賦默認值。【例3-44】給“學生表”中的“團員否”字段設置默認值.T.。操作步驟如下:(1)打開“學生成績管理”數據庫,選中“學生表”并右擊,選擇“修改”,進入“表設計器”,選中“學生表”的“團員否”字段,在“默認值”后的文本框中輸入“.T.”。(2)單擊“確定”。此時,在“瀏覽”窗口,打開“顯示”菜單,選中“追加”選項,會看到追加了一條記錄,指針定位在追加記錄上,并且“團員否”字段的值自動為.T.。返回3.6數據庫的創建及基本操作—設置字段屬性
4.設置輸入掩碼和字段注釋為了提高表中數據輸入的速度和準確性,可以設置字段的掩碼;為了提高數據表的使用效率及其共享性,可以對字段加以注釋,以清楚地掌握字段的屬性、意義及用途。【例3-45】給“學生表”中增加“電話號碼”字段,并為其設置“輸入掩碼”和“字段注釋”。操作步驟如下:(1)打開“學生成績管理”數據庫,選中“學生表”并右擊,選擇“修改”,進入“表設計器”,選擇“班級”字段,單擊“插入”按鈕,在“班級”字段前插入了新字段。(2)在新字段處輸入“電話號碼”,在“輸入掩碼”后的文本框中輸入“9999-99999999”,在“字段注釋”中輸入“輸入學生的家庭電話或能與家庭聯系的電話”,(3)單擊“確定”,單擊“是”,返回到“
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 語文文學常識歸納試題及答案
- 語文寫作思路引導試題及答案
- 如何選擇寵物殯葬師考試試題及答案
- 2025-2030年退紙機項目投資價值分析報告
- 2025-2030年運動頭帶項目商業計劃書001
- 2024年理療考試知識梳理
- 2025-2030年超濾礦泉水水處理裝置項目商業計劃書001
- 初中語文語篇理解題試題及答案
- 2025-2030年蝴蝶布項目投資價值分析報告
- 2025-2030年蔬果保鮮球項目投資價值分析報告
- 安全員試用期轉正述職報告
- 甲亢課件教學課件
- 典籍里的中國課件
- 【MOOC】國際交英文寫作-湖南大學 中國大學慕課MOOC答案
- 《移動通信》任務10 5G基站勘查
- 鸚鵡主題課件教學課件
- GB/T 625-2024化學試劑硫酸
- 多重耐藥感染的集束化護理
- 對外貿易操作流程作業指導書
- 江蘇省歷年中考語文現代文閱讀之非連續性文本閱讀39篇(含答案)(2003-2023)
- 2024住院患者靜脈血栓栓塞癥預防護理與管理專家共識要點(全文)
評論
0/150
提交評論