




已閱讀5頁,還剩124頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第三章數(shù)據(jù)庫的基本操作 本章要點(diǎn) 建立數(shù)據(jù)庫與表表字段的基本操作表記錄的基本操作排序與索引查詢數(shù)據(jù)統(tǒng)計(jì)與計(jì)算多表的操作 建立數(shù)據(jù)庫與表 數(shù)據(jù)庫是表的集合 從VisualFoxPro3 0開始引入了真正意義上的數(shù)據(jù)庫概念 把一個(gè)二維表定義為表 把若干個(gè)關(guān)系比較固定的表集中起來放在一個(gè)數(shù)據(jù)庫中管理 在表間建立關(guān)系 設(shè)置屬性和數(shù)據(jù)有效性規(guī)則使相關(guān)聯(lián)的表協(xié)同工作 數(shù)據(jù)庫文件具有 dbc擴(kuò)展名 其中可以包含一個(gè)或多個(gè)表 關(guān)系 視圖和存儲(chǔ)過程等 一個(gè)VisualFoxPro表或 dbf文件 能夠存在以下兩種狀態(tài)之一 與數(shù)據(jù)庫相關(guān)聯(lián)的數(shù)據(jù)庫表 與數(shù)據(jù)庫不關(guān)聯(lián)的自由表 二者的絕大多數(shù)操作相同且可以相互轉(zhuǎn)換 相比之下 數(shù)據(jù)庫表的優(yōu)點(diǎn)要多一些 當(dāng)一個(gè)表是數(shù)據(jù)庫的一部分時(shí) 它就可以具有以下內(nèi)容 長表名和表中的長字段名 表中字段的標(biāo)題和注釋 默認(rèn)值 輸入掩碼和表中字段格式化 表字段的默認(rèn)控件類 要點(diǎn) 字段級(jí)規(guī)則和記錄級(jí)規(guī)則 支持參照完整性的主關(guān)鍵字索引和表間關(guān)系 INSERT UPDATE或DELETE事件的觸發(fā)器3 1 1建立數(shù)據(jù)庫1 命令方式 格式 CREATEDATABASE 功能 建立一個(gè)新的擴(kuò)展名為 DBC的數(shù)據(jù)庫文件并打開此數(shù)據(jù)庫 說明 指定生成的數(shù)據(jù)庫文件 若省略擴(kuò)展名 則默認(rèn)為 DBC 同時(shí)也自動(dòng)建立相關(guān)聯(lián)的數(shù)據(jù)庫備注文件擴(kuò)展名為 DCT 關(guān)聯(lián)的索引文件擴(kuò)展名為 DCX 如果未指定數(shù)據(jù)庫文件名或用 代替數(shù)據(jù)庫名 VisualFoxPro系統(tǒng)會(huì)彈出創(chuàng)建對(duì)話框 以 建立數(shù)據(jù)庫 便用戶選擇數(shù)據(jù)庫建立的路徑和輸入數(shù)據(jù)庫名 保存后該數(shù)據(jù)庫文件被建立 并且自動(dòng)以獨(dú)占方式打開該數(shù)據(jù)庫 2 菜單方式用菜單方式建立數(shù)據(jù)庫的具體步驟如下 1 選擇 文件 新建 出現(xiàn)新建對(duì)話框 2 選擇 數(shù)據(jù)庫 單選按鈕 再單擊 新建文件 按鈕 出現(xiàn) 創(chuàng)建 對(duì)話框 3 在 創(chuàng)建 對(duì)話框中輸入文件名 選擇 保存 按鈕 系統(tǒng)自動(dòng)打開數(shù)據(jù)庫文件 并且將數(shù)據(jù)庫設(shè)計(jì)器也自動(dòng)打開 3 利用項(xiàng)目管理器建立數(shù)據(jù)庫打開已建立的項(xiàng)目文件 出現(xiàn)項(xiàng)目管理器窗口 選擇 數(shù)據(jù) 標(biāo)簽的 數(shù)據(jù)庫 然后單擊 新建 按鈕 出現(xiàn)新建數(shù)據(jù)庫對(duì)話框 單擊 新建數(shù)據(jù)庫 按鈕 出現(xiàn) 新建 對(duì)話框 選擇數(shù)據(jù)庫的路徑并輸入數(shù)據(jù)庫名后單擊 保存 按鈕 完成數(shù)據(jù)庫的建立 并打開該數(shù)據(jù)庫設(shè)計(jì)器3 1 2刪除數(shù)據(jù)庫1 命令方式 格式 DELETEDATABASE 功能 從磁盤上刪除一個(gè)擴(kuò)展名為 DBC的數(shù)據(jù)庫文件 刪除數(shù)據(jù)庫 說明 被刪除的數(shù)據(jù)庫不能處于打開狀態(tài) 被刪除的數(shù)據(jù)庫中的表成為自由表 數(shù)據(jù)庫文件名可以包括數(shù)據(jù)庫的路徑和數(shù)據(jù)庫名字 如果用 代替數(shù)據(jù)庫文件名 將顯示打開對(duì)話框 用戶可從打開對(duì)話框中選擇要從磁盤上刪除的數(shù)據(jù)庫的名字 2 使用項(xiàng)目管理器打開已建立的項(xiàng)目文件 出現(xiàn)項(xiàng)目管理器窗口 單擊 數(shù)據(jù) 標(biāo)簽 選擇要?jiǎng)h除的 數(shù)據(jù)庫 然后單擊 移去 按鈕 出現(xiàn)圖3 4選擇對(duì)話框 若選擇 移去 僅將數(shù)據(jù)庫從項(xiàng)目中移去 若選擇 刪除 將從磁盤上刪除數(shù)據(jù)庫 被刪除的數(shù)據(jù)庫中的表成為自由表 3 1 3打開數(shù)據(jù)庫1 命令方式 格式 OPENDATABASE EXCLUSIVE SHARED 功能 將磁盤上一個(gè)擴(kuò)展名為 DBC的指定數(shù)據(jù)庫文件打開 說明 打開一個(gè)數(shù)據(jù)庫文件 同名的 DCT相關(guān)的數(shù)據(jù)庫備份文件與 DCX相關(guān)的索引文件也一起被打開 數(shù)據(jù)庫打開后 在常用工具欄中可以看見當(dāng)前正在使用的數(shù)據(jù)庫名 同時(shí)當(dāng)數(shù)據(jù)庫設(shè)計(jì)器為當(dāng)前窗口時(shí) 系統(tǒng)菜單上出現(xiàn) 數(shù)據(jù)庫 菜單項(xiàng) 指定要打開的數(shù)據(jù)庫名 如果用戶省略或用 代替數(shù)據(jù)庫名 系統(tǒng)會(huì)顯示打開對(duì)話框 打開數(shù)據(jù)庫 注意 在數(shù)據(jù)庫被打開的情況下 它所包含的所有表可以使用 但是 表并沒有被真正打開 用戶要打開它 仍要用USE命令 2 菜單方式 1 選擇 文件 打開 出現(xiàn)打開對(duì)話框 2 選擇數(shù)據(jù)庫文件所在的文件夾 將文件類型選擇為 數(shù)據(jù)庫 dbc 3 選擇所要打開的數(shù)據(jù)庫文件名 單擊 確定 按鈕 3 利用項(xiàng)目管理器打開數(shù)據(jù)庫打開已建立的項(xiàng)目文件 出現(xiàn)項(xiàng)目管理器窗口 選擇 數(shù)據(jù) 標(biāo)簽 選擇要打開的數(shù)據(jù)庫名 然后單擊 打開 按鈕 3 1 4數(shù)據(jù)庫的關(guān)閉數(shù)據(jù)庫文件操作完成后 或暫時(shí)不用時(shí) 必須將其關(guān)閉 保存在外部存貯器中以確保數(shù)據(jù)的安全性 關(guān)閉數(shù)據(jù)庫文件有以下幾種方式 1 命令方式 格式 CLOSE ALL DATABASE 功能 關(guān)閉當(dāng)前打開的數(shù)據(jù)庫 說明 ALL用于關(guān)閉所有對(duì)象 如數(shù)據(jù)庫 表 索引 項(xiàng)目管理器等 DATABASE關(guān)閉當(dāng)前數(shù)據(jù)庫和數(shù)據(jù)庫表 如果當(dāng)前沒有打開的數(shù)據(jù)庫 則關(guān)閉所有打開的自由表 所有工作區(qū)內(nèi)所有索引和格式文件 數(shù)據(jù)庫的關(guān)閉 2 利用項(xiàng)目管理器關(guān)閉數(shù)據(jù)庫打開已建立的項(xiàng)目文件 出現(xiàn)項(xiàng)目管理器窗口 選擇 數(shù)據(jù) 標(biāo)簽 選擇 數(shù)據(jù)庫 下面需要關(guān)閉的數(shù)據(jù)庫名 然后單擊 關(guān)閉 按鈕 在常用工具欄上的當(dāng)前數(shù)據(jù)庫下拉列表框中該數(shù)據(jù)庫名消失 同時(shí)在項(xiàng)目管理器中 關(guān)閉 按鈕變成 打開 按鈕 3 1 5建立表結(jié)構(gòu)前面我們已經(jīng)知道表有二種 一種是數(shù)據(jù)庫表 另一種是自由表 如果建表時(shí)數(shù)據(jù)庫是打開的 則建立的表為當(dāng)前數(shù)據(jù)庫表 否則 建立自由表 無論建立那種表 其方法都相同 一個(gè)表由表結(jié)構(gòu)和表記錄兩部分組成 表結(jié)構(gòu)描述了數(shù)據(jù)存放形式以及存貯的順序 確定了表的字段 就完成了對(duì)表結(jié)構(gòu)的定義 表記錄是表所要保存的數(shù)據(jù)主體 數(shù)據(jù)由記錄組成 字段是構(gòu)成記錄的基本單元 建立表結(jié)構(gòu) 建立一個(gè)表文件首先第一步就是建立表結(jié)構(gòu) 然后再輸入表記錄 建立表結(jié)構(gòu)的方法有很多 在這里主要講述三種方法 命令方式 菜單方式和使用項(xiàng)目管理器的方式 1 命令方式 格式 CREATE 功能 建立一個(gè)新的 擴(kuò)展名為 DBF的表文件 說明 指定生成的表文件名 若缺省擴(kuò)展名 則默認(rèn)為 DBF 如果使用 或末指定表文件名 VisualFoxPro系統(tǒng)會(huì)彈出創(chuàng)建對(duì)話框 以便用戶輸入表名 現(xiàn)在用命令方式來建立本章所用的stud dbf表 表內(nèi)容如下 用命令方式建立表的具體步驟為 1 如果沒有打開STUDENT數(shù)據(jù)庫 先打開它 如果創(chuàng)建自由表 該步可略去 2 在命令窗口中輸入CREATESTUD回車 系統(tǒng)打開 表設(shè)計(jì)器 對(duì)話框 如圖3 5所示 3 在 字段名 文本框中輸入第一個(gè)字段名 學(xué)號(hào) 在 類型 下拉列表框中 選擇字段的類型為字符型 在寬度輸入框中輸入10或單擊右邊的微調(diào)按鈕至10 4 將輸入光標(biāo)定位在第二個(gè)字段的字段名上 用同樣的方法依次輸入各個(gè)字段的字段名 類型 寬度和小數(shù)位數(shù) 5 將所有字段的參數(shù)確定好之后 單擊 確定 或按快捷鍵CTRL W存盤 系統(tǒng)會(huì)打開提示窗口 詢問用戶是否立即輸入記錄 選擇 是 立即開始輸入記錄 選擇 否 不輸入記錄 光標(biāo)返回命令窗口 只建立表結(jié)構(gòu) 表設(shè)計(jì)器對(duì)話框中包含 字段 索引 表 三個(gè)選項(xiàng)卡 1 字段 選項(xiàng)卡 適用于建立表結(jié)構(gòu) 確定表中每個(gè)字段的字段名 字段類型 字段寬度和小數(shù)位數(shù)等 字段名 是某字段的名字 在表中必須為唯一的 字段名必須以漢字 字母和下劃線開頭 由漢字 字母 數(shù)字和下劃線組成 對(duì)于數(shù)據(jù)庫表支持長字段名 字段名最多為128個(gè)字符 自由表不支持長字段名 字段名最多為10個(gè)字符 當(dāng)數(shù)據(jù)庫表轉(zhuǎn)化為自由表時(shí)截去超長部分的字符 字段名不能使用系統(tǒng)的保留字 字段類型 表示該字段中存放數(shù)據(jù)的類型 一個(gè)字段即二維表中的一列 其中的數(shù)據(jù)應(yīng)具有共同的屬性 若存放的是一些符號(hào) 不進(jìn)行數(shù)值運(yùn)算 則定義為字符型 若需要進(jìn)行數(shù)值運(yùn)算 則根據(jù)數(shù)值表示的實(shí)際意義 選擇數(shù)值型 貨幣型 浮點(diǎn)型 雙精度型 整型中的一種 對(duì)描述日期的字段 可根據(jù)需要定義為日期型或日期時(shí)間型 對(duì)取值只有兩種情況 為 真 或?yàn)?假 的數(shù)據(jù)定義為邏輯型 若 存儲(chǔ)的字符超過254 為節(jié)省存儲(chǔ)空間可定義為備注型 若要保存圖片或OLE對(duì)象 可定義為通用型 備注型和通用型字段的信息都沒有直接存放在表文件中 而是存放在一個(gè)與表文件同名的 FPT文件中 字段寬度 表示該字段所允許存放數(shù)據(jù)的最大寬度 由數(shù)據(jù)的最大寬度決定 過大浪費(fèi)存儲(chǔ)空間 過小數(shù)據(jù)溢出 字符型字段的最大寬度254個(gè)字符 數(shù)值型字段和浮點(diǎn)型字段的寬度為20位 邏輯型字段的寬度固定為1 日期型字段的寬度固定為8 通用型字段和備注型字段的寬度固定為4 小數(shù)位數(shù) 只對(duì)數(shù)值型字段和浮點(diǎn)型字符等數(shù)值類型有效 允許最大寬度20 在計(jì)算數(shù)值型字段和浮點(diǎn)型字段的寬度時(shí) 小數(shù)點(diǎn)本身也算作一個(gè)字符 數(shù)值型字段的小數(shù)位數(shù)由數(shù)據(jù)的精度決定位數(shù) 字段寬度 表示該字段所允許存放數(shù)據(jù)的最大寬度 由數(shù)據(jù)的最大寬度決定 過大浪費(fèi)存儲(chǔ)空間 過小數(shù)據(jù)溢出 字符型字段的最大寬度254個(gè)字符 數(shù)值型字段和浮點(diǎn)型字段的寬度為20位 邏輯型字段的寬度固定為1 日期型字段的寬度固定為8 通用型字段和備注型字段的寬度固定為4 小數(shù)位數(shù) 只對(duì)數(shù)值型字段和浮點(diǎn)型字符等數(shù)值類型有效 允許最大寬度20 在計(jì)算數(shù)值型字段和浮點(diǎn)型字段的寬度時(shí) 小數(shù)點(diǎn)本身也算作一個(gè)字符 數(shù)值型字段的小數(shù)位數(shù)由數(shù)據(jù)的精度決定位數(shù) 若建立的是數(shù)據(jù)庫表 則下面還有顯示 字段有效性等框 字段的顯示屬性 格式 控制字段在瀏覽窗口 表單 報(bào)表等顯示時(shí)的樣式 格式字符及功能如表3 2所示 輸入掩碼 控制輸入該字段的數(shù)據(jù)的格式 掩碼字符及功能如表3 3所示 表3 3字段的顯示掩碼字符 標(biāo)題 若表結(jié)構(gòu)中字段名用的是英文 則可以在標(biāo)題中輸入漢字 這樣顯示該字段值時(shí)就比較直觀了 沒有設(shè)置標(biāo)題 則將表結(jié)構(gòu)中的字段名作為字段的標(biāo)題 字段有效性 規(guī)則 限制該字段的數(shù)據(jù)的有效范圍 在規(guī)則中輸入 性別 男 OR 性別 女 這樣當(dāng)給 性別 字段輸入記錄值時(shí)就只能輸入 男 或 女 信息 當(dāng)向設(shè)置了規(guī)則的字段輸入不符合規(guī)則的數(shù)據(jù)時(shí) 就會(huì)將所設(shè)置的信息顯示出 默認(rèn)值 當(dāng)往表中添加記錄時(shí) 系統(tǒng)向該字段預(yù)置的值 在 性別 字段中輸入默認(rèn)值為 男 輸入記錄時(shí)只有女生才需要改變默認(rèn)值 可以減少輸入 字段有效性的設(shè)置如圖3 6所示 2 表選項(xiàng)卡 字段選項(xiàng)卡上主要介紹的是字段屬性 它控制了字段值的輸入 表選項(xiàng)卡則對(duì)表的記錄屬性進(jìn)行描述 控制記錄數(shù)據(jù) 在這里主要介紹記錄有效性和觸發(fā)器 記錄有效性 規(guī)則 指定記錄的有效條件 滿足該條件 數(shù)據(jù)才能輸入到表中 它確定的是該記錄各字段值之間的總體數(shù)據(jù)關(guān)系是否有錯(cuò) 信息 當(dāng)記錄的數(shù)據(jù)不符合規(guī)則時(shí) 由系統(tǒng)顯示給用戶的提示信息 觸發(fā)器當(dāng)對(duì)記錄進(jìn)行操作時(shí) 若設(shè)置了觸發(fā)器 則對(duì)觸發(fā)器設(shè)置的條件表達(dá)式進(jìn)行驗(yàn)證 若其值為真 T 則允許進(jìn)行相關(guān)操作 否則 則拒絕操作 插入觸發(fā)器 當(dāng)向表中插入或追加記錄時(shí) 判斷其表達(dá)式的值 為 真 允許插入或追加 為 假 不允許插入或追加 更新觸發(fā)器 當(dāng)要修改記錄時(shí) 判斷其表達(dá)式的值 為 真 允許修改 為 假 不允許修改 刪除觸發(fā)器 當(dāng)要?jiǎng)h除表中記錄時(shí) 判斷其表達(dá)式的值 為 真 允許刪除 為 假 不允許刪除 以上三類觸發(fā)器也可以用相應(yīng)的命令實(shí)現(xiàn) CREATETRIGGERON表名FORINSERTAS觸發(fā)條件表達(dá)式CREATETRIGGERON表名FORUPDATEAS觸發(fā)條件表達(dá)式CREATETRIGGERON表名FORDELETEAS觸發(fā)條件表達(dá)式2 菜單方式選擇 文件 新建 打開新建對(duì)話框 選擇 表 單擊 新建文件 出現(xiàn)創(chuàng)建對(duì)話框 確定需要建立表的路徑和表名 按 保存 按鈕后 出現(xiàn)圖3 5所示 表設(shè)計(jì)器 對(duì)話框 以下步驟同命令方式 3 用項(xiàng)目管理器新建表打開已建立的項(xiàng)目文件 出現(xiàn)項(xiàng)目管理器窗口 選擇 數(shù)據(jù) 選項(xiàng)卡中的 數(shù)據(jù)庫 下的表 然后單擊 新建 按鈕 出現(xiàn)新建表對(duì)話框 選擇 新建表 出現(xiàn)創(chuàng)建對(duì)話框 確定需要建立表的路徑和表名 按 保存 按鈕后 出現(xiàn)圖3 5所示的 表設(shè)計(jì)器 對(duì)話框 以下步驟同命令方式 3 1 6輸入表記錄如果在剛建好表結(jié)構(gòu)時(shí) 在系統(tǒng)提示是否立即輸入記錄的對(duì)話框中選擇 是 可直接進(jìn)入輸入記錄窗口 如果選擇了 否 再想輸入表記錄就要以追加方式輸入記錄 輸入表記錄的方法又分為命令方式和菜單方式兩種方法 1 命令方式 格式 APPEND BLANK 功能 在當(dāng)前已打開表的末尾追加一條或多條記錄 輸入表記錄 說明 BLANK 表示在表末尾追加一條空記錄 并自動(dòng)返回命令窗口 此時(shí)系統(tǒng)并不彈出編輯窗口 例如 在命令窗口輸入命令USESTUD 打開表APPE 或EDIT注意 輸入邏輯值時(shí)只輸入T或F 定界符系統(tǒng)自動(dòng)生成輸入日期值時(shí)只輸入數(shù)碼 分隔符系統(tǒng)自動(dòng)生成輸入備注值時(shí) 光標(biāo)位于MEMO上時(shí) 按CTRL PgDn進(jìn)入編輯窗口 完成后按CTRL W返回下一個(gè)字段繼續(xù)輸入 2 菜單方式 1 首先打開表STUD DBF 2 選擇 顯示 瀏覽 命令 3 選擇 表 追加新記錄 命令 用戶可以輸入追加記錄的各個(gè)字段 3 1 7表的打開與關(guān)閉1 表的打開表文件建好后 以文件的形式保存在磁盤上 在進(jìn)行各種操作之前 首先必須打開表 打開表的過程實(shí)質(zhì)上就是將表從磁盤調(diào)入內(nèi)存 這樣就可以對(duì)表中的數(shù)據(jù)進(jìn)行各種操作 系統(tǒng)在任何時(shí)刻都只能對(duì)內(nèi)存中的表進(jìn)行訪問 1 命令方式 格式 USE 功能 打開指定磁盤的指定路徑下的表和相關(guān)的索引文件 說明 和 指定表文件所在的驅(qū)動(dòng)器及路徑 若省略盤符和路徑參數(shù) 則打開當(dāng)前盤 當(dāng)前路徑下的表文件 表的打開與關(guān)閉 數(shù)據(jù)庫名 表文件名 指定打開指定數(shù)據(jù)庫中的表文件 若末指定數(shù)據(jù)庫名 則在當(dāng)前數(shù)據(jù)庫中查找 沒有則在自由表中查找 兩者同名 則打開數(shù)據(jù)庫中的表 如果表文件中含有通用型 備注型字段 同名的 FPT文件也同時(shí)打開 若不指定表文件名而使用 系統(tǒng)會(huì)彈出 使用 對(duì)話框 以便用戶指定打開表的文件名 例3 1 打開在E盤VFP子目錄中STUD DBF表 USEE VFP STUD 2 用項(xiàng)目管理器打開表在項(xiàng)目管理器中選中需要打開的表 選擇 瀏覽 或 修改 都能直接打開表且進(jìn)行瀏覽或修改 關(guān)閉瀏覽或修改窗口后 該表仍處于打開狀態(tài) 2 表的關(guān)閉表文件操作完成后 或暫時(shí)不用時(shí) 必須將其關(guān)閉 保存到外存中以確保數(shù)據(jù)的安全性 關(guān)閉表就是將表文件從內(nèi)存中調(diào)出 保存在磁盤上 關(guān)閉表文件有以下幾種方式 1 打開另一個(gè)表文件如果工作區(qū)中已打開有表文件 打開另一表文件時(shí) 系統(tǒng)將自動(dòng)將先前打開的表文件關(guān)閉 2 使用不帶任何選項(xiàng)的USE命令 格式 USE 功能 關(guān)閉當(dāng)前已打開的表文件 3 使用CLEAR命令 格式 CLEARALL 功能 關(guān)閉所有工作區(qū)中已打開的表文件 索引文件 格式文件及備注文件等 同時(shí)釋放所有的內(nèi)存變量 并選擇工作區(qū)1為當(dāng)前工作區(qū) 4 使用CLOSE命令 格式1 CLOSEALL 功能 關(guān)閉各種類型文件 并選擇工作區(qū)1為當(dāng)前工作區(qū) 格式2 CLOSEDATABASES 功能 關(guān)閉所有已打開的數(shù)據(jù)庫文件 表文件 索引文件 格式文件及備注文件等 并選擇工作區(qū)1為當(dāng)前工作區(qū) 5 退出VisualFoxPro系統(tǒng)QUIT 功能 退出VisualFoxPro系統(tǒng) 并關(guān)閉所有打開的文件 返回操作系統(tǒng) 6 在數(shù)據(jù)工作窗口中關(guān)閉在數(shù)據(jù)工作窗口中選擇要關(guān)閉的表文件 然后選擇 關(guān)閉 按鈕 系統(tǒng)將關(guān)閉所選擇的表文件 3 1 8表的刪除1 刪除自由表 格式 DELETEFILE 表文件名 功能 將指定的表文件從磁盤上刪除 說明 如果刪除的表文件存在有與之相關(guān)的 fpt備注文件和 cdx或 idx 索引文件 則同時(shí)刪除這些文件 刪除一個(gè)表文件 應(yīng)保證該表文件是處于關(guān)閉狀態(tài)的 要?jiǎng)h除的表文件如果不是在默認(rèn)的路徑下 則文件名應(yīng)指明路徑 表文件名不能包含通配符 表的刪除 若不指定文件名或使用 系統(tǒng)會(huì)彈出 刪除 對(duì)話框 選擇要?jiǎng)h除的表文件路徑 文件類型及文件名后 單擊 刪除 按鈕 2 刪除數(shù)據(jù)庫表先將數(shù)據(jù)庫表從數(shù)據(jù)庫中移去 然后再用刪除自由表的方法進(jìn)行刪除 移去數(shù)據(jù)庫表的命令是 格式 REMOVETABLE 表文件名 DELETE RECYCLE 功能 從當(dāng)前數(shù)據(jù)庫中移去一個(gè)表 說明 表文件名 準(zhǔn)備從數(shù)據(jù)庫中移去的表文件名 選擇 將出現(xiàn)移去對(duì)話框 從中選擇一個(gè)要從當(dāng)前數(shù)據(jù)庫中移去的表 選擇DELETE在移去數(shù)據(jù)庫表的同時(shí) 從磁盤上刪除 選擇RECYCLE在移去數(shù)據(jù)庫表的同時(shí) 不會(huì)立即從磁盤上刪除 而是放入回收站中 3 在項(xiàng)目管理器中刪除表在項(xiàng)目管理器中選中需要?jiǎng)h除的表 選擇 移去 按鈕或選擇主菜單中 項(xiàng)目 移去文件 命令 出現(xiàn)一個(gè)選擇對(duì)話框 若選擇 移去 按鈕 則將表文件移出項(xiàng)目文件 若選擇 刪除 按鈕 則將表文件從磁盤上刪除 3 2 1表結(jié)構(gòu)的顯示在表的使用過程 要經(jīng)常查看表的結(jié)構(gòu)和記錄 以隨時(shí)了解表的變化情況 格式 LIST DISPLAYSTRUCTURE TOPRINT PROMPT TO FILE 功能 顯示或打印當(dāng)前表文件的結(jié)構(gòu) 表字段的基本操作 在執(zhí)行以上命令時(shí) 如果系統(tǒng)中沒有已打開的表文件 系統(tǒng)提示輸入文件名 用LIST命令 所有信息連續(xù)顯示 信息較多時(shí) 屏幕停止在最后一屏 用DISPLAY命令 如果信息較多則分屏顯示 敲任意鍵繼續(xù)顯示下一屏 例3 2 顯示表STUD DBF的結(jié)構(gòu) USESTUDLISTSTRUCTURE需要指出的是 最后一行顯示出的記錄字節(jié)數(shù)是所有字段寬度之和再加1 這額外的一個(gè)字節(jié)是用來存放記錄的刪除標(biāo)記 的 3 2 2表結(jié)構(gòu)的修改表結(jié)構(gòu)的改變有時(shí)會(huì)引起表記錄的變化 所以在一般情況下不輕易進(jìn)行修改 但在確實(shí)需要時(shí)也可以進(jìn)行修改 無論進(jìn)行何種修改 使用的命令都是一個(gè) 表結(jié)構(gòu)的修改 1 命令方式 格式 MODIFYSTRUCTURE 功能 將當(dāng)前已打開的表文件的表設(shè)計(jì)器打開進(jìn)行修改 說明 要修改表結(jié)構(gòu)必須要先打開需要修改結(jié)構(gòu)的表文件 如果當(dāng)前工作區(qū)中沒有已打開的數(shù)據(jù)庫 執(zhí)行此命令時(shí)系統(tǒng)會(huì)彈出 打開 對(duì)話框 以便用戶選擇需要修改表結(jié)構(gòu)的文件名及路徑等信息 用戶選擇完成后 系統(tǒng)將彈出表設(shè)計(jì)器對(duì)話框 主要有增加 修改 刪除和移動(dòng)幾種操作 1 增加字段 將光標(biāo)移至需插入位置上的字段上 選擇 插入 按鈕或按快捷鍵ALT I 在該位置上出現(xiàn)一個(gè)新字段 原位置以下的各字段均下移一行 確定增加字段的字段名 字段類型 字段寬度等參數(shù) 選擇 確定 按鈕即可 2 修改字段 將光標(biāo)定位在需要修改處 編輯修改 完成后選擇 確定 按鈕即可 3 刪除字段 將光標(biāo)移至需刪除的字段上 選擇 刪除 按鈕或按快捷鍵ALT D 在該位置上的字段被刪除 原位置以下各字段均上移一行 選擇 確定 按鈕即可 4 移動(dòng)字段 將光標(biāo)移至需移動(dòng)位置的字段上 用鼠標(biāo)拖動(dòng)字段名前的 按鈕 出現(xiàn)一個(gè)虛框 當(dāng)虛框出現(xiàn)在目標(biāo)位置上時(shí)松開鼠標(biāo) 移動(dòng)完成 選擇 確定 按鈕即可 無論是何種修改 選擇 確定 按鈕后 由于表結(jié)構(gòu)的變化要影響表記錄數(shù)據(jù) 所以都要出現(xiàn)對(duì)話框由用戶確認(rèn)修改是否有效 使用MODIFYSTRUCTURE命令要注意以下幾點(diǎn) 在MODIFYSTRUCTURE命令的執(zhí)行期間 如果強(qiáng)行退出 有可能丟失數(shù)據(jù) 不能同時(shí)修改字段名和它的類型 否則系統(tǒng)將不能正確地送回原來的數(shù)據(jù)而造成數(shù)據(jù)的丟失 如果在修改字段名的同時(shí)插入或刪除了字段 會(huì)引起字段位置發(fā)生變化 有可能造成數(shù)據(jù)丟失 但是 在插入或刪除字段的同時(shí)卻可以修改字段的寬度或字段的類型 MODIFYSTRUCTURE將根據(jù)字段名正確地從備份文件中傳送數(shù)據(jù) 如果修改表結(jié)構(gòu)完成后出現(xiàn)了數(shù)據(jù)丟失現(xiàn)象 或者對(duì)其不滿意 可利用備份文件將表恢復(fù)到修改前的狀態(tài) 方法是先將新的表文件刪除掉 再將備份文件的擴(kuò)展名 BAK改為表文件擴(kuò)展名 DBF 將備注備份文件擴(kuò)展名 TBK改為備注文件的擴(kuò)展名 FPT 2 利用數(shù)據(jù)庫設(shè)計(jì)器在數(shù)據(jù)庫設(shè)計(jì)器中選中需要修改的表文件 再選擇主菜單中 數(shù)據(jù)庫 修改 命令 具體的修改方法同命令方式 3 利用項(xiàng)目管理器在項(xiàng)目管理器中選中需要修改的表文件 再選擇主菜單中 項(xiàng)目 修改 命令或單擊項(xiàng)目管理器中的 修改 按鈕 3 3 1表記錄的顯示1 命令方式 格式 LIST DISPLAY FIELDS FOR WHILE OFF NOCONSOLE TOPRINTER PROMPT TOFILE 功能 將當(dāng)前表文件的記錄按照指定的選項(xiàng)進(jìn)行顯示 表記錄的基本操作 說明 DISPLAY命令與LIST命令的功能相似 當(dāng)表文件的數(shù)據(jù)記錄較多時(shí) 用DISPLAY命令較為方便 還有一點(diǎn)不同之處就是 如果同時(shí)缺省和子句 DISPLAY命令只顯示當(dāng)前的一條記錄 而LIST命令則是取默認(rèn)值A(chǔ)LL而顯示全部記錄 FIELDS 用來指定顯示的字段 用來指定顯示哪些記錄 范圍 有以下四種表示方法 ALL 所有記錄 NEXTN 從當(dāng)前記錄開始 后面的N條記錄 包括當(dāng)前記錄 RECORDN 第N條記錄 REST 當(dāng)前記錄后的全部記錄 包括當(dāng)前記錄 FOR 指定對(duì)表文件中指定范圍內(nèi)滿足條件的記錄進(jìn)行操作 WHILE 也是指定對(duì)表文件中指定范圍內(nèi)滿足條件的記錄進(jìn)行操作 但是 當(dāng)?shù)谝淮斡龅讲粷M足條件的記錄時(shí) 停止繼續(xù)往后搜索 WHILE若與FOR同時(shí)使用 則WHILE項(xiàng)優(yōu)先 若兩者都不選用 則顯示中指定的全部記錄 OFF 表示不顯示記錄號(hào) 若不選此項(xiàng) 則在各記錄前顯示記錄號(hào) 例3 3 顯示表STUD DBF的全部記錄 USESTUDLIST 例3 4 顯示男生的記錄 USESTUDDISPLAYFOR性別 男 FIELDS學(xué)號(hào) 姓名 性別 班級(jí)名 系別代號(hào) 例3 5 顯示表中所有記錄的學(xué)號(hào) 姓名和性別 USESTUDLISTFIELDS學(xué)號(hào) 姓名 性別 例3 6 顯示表中1985年出生的同學(xué)的學(xué)號(hào) 姓名 性別及出生日期 USESTUDLISTFIELDS學(xué)號(hào) 姓名 性別 出生日期FORYEAR 出生日期 1985 2 菜單方式 1 打開表 2 選擇 顯示 瀏覽 命令 系統(tǒng)彈出記錄瀏覽窗口 顯示當(dāng)前表中的記錄 這時(shí)還可以選擇 顯示 瀏覽 或 編輯 來改變顯示方式 3 利用項(xiàng)目管理器在項(xiàng)目管理器中 選擇需要顯示的表文件 單擊 瀏覽 按鈕或選擇主菜單中 項(xiàng)目 瀏覽 命令 系統(tǒng)彈出記錄瀏覽窗口 顯示當(dāng)前表中的記錄 3 3 2記錄指針的定位記錄號(hào)用于標(biāo)識(shí)數(shù)據(jù)記錄在表文件中的物理順序 記錄指針是一個(gè)指示器 它始終指向當(dāng)前表中正在操作處理的那條記錄 此記錄被稱為當(dāng)前記錄 如果要對(duì)某條記錄進(jìn)行處理 必須移動(dòng)記錄指針 使其指向該記錄 在任意時(shí)刻指針只能指向唯一的一條記錄 記錄指針的定位 記錄指針定位有絕對(duì)定位 相對(duì)定位和查詢定位三種 在這里暫時(shí)只講前二種 查詢定位在講到查詢時(shí)再詳細(xì)介紹 4 絕對(duì)定位 格式 GO GOTO IN IN 功能 將記錄指針絕對(duì)定位到指定的記錄上 記錄的物理記錄號(hào) IN IN 指定操作表所在的工作區(qū) 若缺省 則對(duì)當(dāng)前工作區(qū)表操作 工作區(qū)的概念在后面再詳細(xì)介紹 絕對(duì)定位與是否打開索引文件沒有關(guān)系 2 相對(duì)定位 格式1 SKIP IN 功能 記錄指針從當(dāng)前記錄向前 或向后 移動(dòng)若干個(gè)記錄 說明 表示移動(dòng)的記錄個(gè)數(shù) 若數(shù)值表達(dá)式的值為負(fù)值 表示向前移動(dòng)記錄 否則 表示向后移動(dòng)記錄 如果缺省此項(xiàng) 則表示向后移動(dòng)1個(gè)記錄 如果記錄指針已經(jīng)移過文件的最后一個(gè)記錄 則RECNO 函數(shù)返回的值等于文件中的記錄總數(shù)加1 EOF 函數(shù)返回邏輯真 T 值 格式2 GO GOTO 功能 將記錄指針移動(dòng)到表文件的首記錄或尾記錄TOP 將記錄指針移動(dòng)到表文件的首記錄 BOTTOM 將記錄指針動(dòng)到表文件的最后一條記錄 相對(duì)定位與是否打開索引文件有關(guān) 如果打開有索引 記錄指針按索引文件中順序移動(dòng) 否則按表文件中物理順序移動(dòng) 例3 8 絕對(duì)定位命令的用法 USESTUDGOTO2GO3 例3 9 相對(duì)定位的用法 USESTUDSKIP4 系統(tǒng)主窗口顯示為5SKIP 3 系統(tǒng)主窗口顯示為2SKIP8 超出了記錄總數(shù)6gotop 系統(tǒng)主窗口顯示為1 3 3 3刪除記錄表記錄的刪除也是表維護(hù)的一項(xiàng)經(jīng)常性的工作 因?yàn)閯h除意味著數(shù)據(jù)的消失 所以對(duì)記錄的刪除操作比較慎重 刪除可分為邏輯刪除和物理刪除兩種操作 邏輯刪除還可以恢復(fù) 而物理刪除則不可恢復(fù) 1 邏輯刪除記錄邏輯刪除就是給指定的記錄作刪除標(biāo)記 1 命令方式 格式 DELETE FOR WHILE 功能 對(duì)當(dāng)前表中指定范圍內(nèi)滿足條件的記錄作刪除標(biāo)記 說明 DELETE命令僅僅是在要?jiǎng)h除的記錄前加上一個(gè)刪除標(biāo)記 并不是真正地從表文件中將該記錄刪除掉 可以用LIST或DISP命令顯示帶刪除標(biāo)記的記錄 刪除記錄 FOR WHILE等各項(xiàng)選項(xiàng)意義同前 如果同時(shí)缺省和子句 則僅僅刪除當(dāng)前的記錄 例3 10 刪除STUD DBF中所有男同學(xué)的記錄 USESTUDDELETEFOR性別 男 LISTFIELDS學(xué)號(hào) 姓名 性別 班級(jí)名 系別代號(hào) 地址 出生日期 是否團(tuán)員 2 菜單方式利用菜單方式邏輯刪除記錄的具體操作步驟如下 首先打開表文件 選擇 顯示 瀏覽 命令 系統(tǒng)彈出記錄瀏覽窗口 顯示當(dāng)前表中的記錄 主菜單上增加 表 菜單項(xiàng) 選擇 表 刪除記錄 命令 出現(xiàn)圖3 11所示的 刪除 對(duì)話框 單擊刪除對(duì)話框中的For 按鈕或While 按鈕 系統(tǒng)彈出表達(dá)式生成器 用戶可以在表達(dá)式框中輸入一個(gè)邏輯表達(dá)式 如性別 男 單擊 確定 按鈕完成條件表達(dá)式的輸入 在 作用范圍 下拉列表框中選擇范圍 如ALL 單擊 刪除 對(duì)話框中的 刪除 按鈕 系統(tǒng)將完成對(duì)指定范例內(nèi)滿足指定條件的記錄的邏輯刪除 2 隱藏邏輯刪除記錄 格式 SETDELETEDON OFF 功能 將表文件中已邏輯刪除的記錄隱藏 仿佛真正刪除一樣 說明 表文件中被邏輯刪除的記錄只是在該記錄上加一個(gè)刪除標(biāo)記 當(dāng)SETDELETED設(shè)置為OFF時(shí) 對(duì)該表文件的各種操作 對(duì)被刪除的記錄同樣有效 當(dāng)SETDELETEDON時(shí) 可使對(duì)表文件中數(shù)據(jù)的各種操作 一般均不包括有刪除標(biāo)記的記錄 但下列情況例外 命令的記錄范圍是當(dāng)前記錄或RECORD n 時(shí) INDEX或REINDEX命令不受SETDELETED的影響 始終處理帶刪除標(biāo)記的記錄 SETDELETED的缺省狀態(tài)是OFF 例3 12 隱藏上題中STUD DBF的標(biāo)記刪除記錄 USESTUDSETDELETEDON3 恢復(fù)邏輯刪除記錄恢復(fù)邏輯刪除是將被邏輯刪除的記錄恢復(fù)為正常記錄 即去掉 號(hào) 1 命令方式 格式 RECALL FOR WHILE NOOPTIMIZE 功能 將當(dāng)前表文件中指定范圍內(nèi)滿足條件的已作刪除標(biāo)記 的記錄恢復(fù) 即去掉這些刪除記錄的刪除標(biāo)記 使之成為正常記錄 說明 RECALL命令與DELETE命令相對(duì)應(yīng) 它可以去掉被邏輯刪除記錄的刪除標(biāo)記 FOR WHILE等各項(xiàng)選項(xiàng)意義同前 如果同時(shí)缺省和子句 則僅僅恢復(fù)當(dāng)前記錄 例3 13 恢復(fù)STUD DBF中刪除的所有記錄 USESTUDRECALLALL 2 菜單方式 首先打開表文件 選擇 顯示 瀏覽 命令 選擇 表 恢復(fù)記錄 命令 出現(xiàn)類似圖3 11所示對(duì)話框 余下操作與 刪除 對(duì)話框的操作相同 4 物理刪除記錄物理刪除是將當(dāng)前表文件中被邏輯刪除的記錄全部清除 1 命令方式 格式 PACK MEMO DBF 功能 將當(dāng)前表文件中所有帶刪除標(biāo)記 的記錄全部真正地刪除掉 說明 若選用MEMO選項(xiàng) PACKMEMO將壓縮與表文件同名的備注文件中的無用空間 但并不刪除表文件中作了刪除標(biāo)記的記錄 若選用DBF選項(xiàng) 而不用MEMO選項(xiàng) 則只刪除表文件中作了刪除標(biāo)記的記錄 而不壓縮相應(yīng)的備注文件 若不帶任何選項(xiàng) PACK命令將刪除數(shù)據(jù)庫文件中作了刪除標(biāo)記的記錄 同時(shí)壓縮相應(yīng)的備注文件 注意 執(zhí)行該命令后被刪除的記錄將不能被恢復(fù) 因此使用時(shí)應(yīng)特別小心 例3 14 將STUD DBF中的學(xué)號(hào)為 021405 的記錄進(jìn)行物理刪除 USESTUDDELETEFOR學(xué)號(hào) 021405 PACK 2 菜單方式利用菜單方式物理刪除表記錄的具體步驟如下 首先打開表文件 選擇 顯示 瀏覽 命令 系統(tǒng)彈出記錄瀏覽窗口 顯示當(dāng)前表中的記錄 主菜單上增加 表 菜單 選擇 表 徹底刪除 命令 出現(xiàn)圖3 12所示的 確認(rèn) 對(duì)話框 單擊 是 按鈕 完成物理刪除過程 注意 用戶也可以在EDIT CHANGE BROWSE窗口中 按Ctrl T鍵對(duì)當(dāng)前記錄作 或取消 刪除標(biāo)記 也可以用鼠標(biāo)單擊記錄最左邊的刪除標(biāo)記欄作 或取消 刪除標(biāo)記 5 刪除全部記錄 格式 ZAP 功能 將當(dāng)前打開的表文件中的所有記錄完全刪除掉 說明 執(zhí)行該命令之后 將只保留表文件的結(jié)構(gòu) 而不再有任何數(shù)據(jù)存在 這種刪除無法恢復(fù) 因此 為防止用戶發(fā)生錯(cuò)誤操作而刪除有用的表文件記錄 執(zhí)行該命令時(shí) 系統(tǒng)會(huì)彈出如圖3 13所示ZAP提示窗口 以確認(rèn)是否刪除全部記錄 單擊 是 按鈕清除所有記錄 單擊 否 按鈕放棄ZAP操作 3 3 4修改記錄在表的使用維護(hù)過程中 有大量的工作是對(duì)數(shù)據(jù)記錄的修改 編輯與更新 通??梢圆捎镁庉嬓薷?瀏覽修改和替換修改三種方式 1 編輯修改 格式 EDIT CHANGE FIELDS FOR WHILE 修改記錄 功能 按照給定條件編輯修改當(dāng)前打開的表文件的記錄 說明 FIELDS 若選擇此選項(xiàng) 則只列出字段名表中的字段 且顯示順序同字段名表中的順序 若未選擇此選項(xiàng) 將顯示表中的所有字段 顯示順序同表中的字段順序 若未選擇此選項(xiàng) 則EDIT CHANGE命令的范圍為全部記錄 FOR 和 WHILE 同前面其他命令所述 在此不再重復(fù)敘述 例3 15 修改STUD DBF中計(jì)0121班學(xué)生的學(xué)號(hào) 姓名和性別等信息 USESTUDEDITFIELDS學(xué)號(hào) 姓名 性別FOR班級(jí)名 計(jì)0121 全部修改完畢 使用Ctrl End或Ctrl W鍵保存所有修改的結(jié)果 2 瀏覽修改 1 命令方式 格式 BROWSE FIELDS FOR 功能 顯示當(dāng)前表的記錄內(nèi)容 以供編輯修改 說明 編輯結(jié)束后 按Ctrl W或Ctrl End存盤退出BROWSE編輯窗口 或者按Ctrl Q或Esc鍵放棄存盤退出BROWSE窗口 2 菜單方式利用菜單方式進(jìn)行瀏覽修改的操作步驟如下 打開表 選擇 顯示 瀏覽 命令 系統(tǒng)彈出記錄瀏覽窗口 在編輯修改窗口中編輯修改數(shù)據(jù)內(nèi)容 完成后按Ctrl W鍵存盤退出Beowse窗口 3 替換修改 1 命令方式 格式 REPLACEWITH ADDITIVE WITH ADDITIVE FOR WHILE NOOPTIMIZE 功能 用指定表達(dá)式的值替換當(dāng)前表中滿足條件記錄的指定字段的值 說明 該命令適合對(duì)當(dāng)前庫進(jìn)行成批地 有規(guī)律地修改 缺省范圍 條件時(shí) 僅替換當(dāng)前記錄該命令回車后 數(shù)據(jù)修改自動(dòng)完成 適用于程序設(shè)計(jì) ADDITIVE只對(duì)備注型字段修改有效 選擇 表示添加內(nèi)容不選擇 表示替換內(nèi)容表達(dá)式的類型必須與字段類型一致表達(dá)式的值不能超出字段寬度 否則 數(shù)據(jù)無效 例3 16 修改STUD DBF中的 學(xué)號(hào) 字段數(shù)據(jù) USESTUDREPLACE學(xué)號(hào)WITH 20 學(xué)號(hào)ALL 2 菜單方式 打開表文件 選擇 顯示 瀏覽 命令 選擇 表 替換字段 命令 彈出圖3 16所示的 替換字段 對(duì)話框 單擊字段下拉按鈕選擇要進(jìn)行替換操作的字段名 在 替換為 顯示欄中輸入替換表達(dá)式 再選擇 替換條件 顯示框中的范圍 條件 單擊 替換 按鈕 系統(tǒng)將自動(dòng)完成替換操作 3 3 5表的復(fù)制1 表結(jié)構(gòu)的復(fù)制 格式 COPYSTRUCTURETO FIELDS WITH CDX WITH PRODUCTION 功能 復(fù)制當(dāng)前表文件的結(jié)構(gòu)作為新表文件的結(jié)構(gòu) 說明 命令執(zhí)行前 需復(fù)制的表文件必須是打開的 執(zhí)行后 生成的新表文件只有結(jié)構(gòu) 確定新表結(jié)構(gòu)的字段名 中的字段必須是原表文件中具有的字段名 若省略該選項(xiàng) 則原樣復(fù)制當(dāng)前表文件的結(jié)構(gòu) 例3 17 用復(fù)制命令將STUD DBF中的學(xué)號(hào) 姓名 性別 出生日期等四個(gè)字段 構(gòu)成一個(gè)新表結(jié)構(gòu) 表的復(fù)制 USESTUDCOPYSTRUCTURETOSTUD1FIELDS學(xué)號(hào) 姓名 性別 出生日期2 表文件的復(fù)制 格式 COPYTO FIELDS FOR WHILE WITH CDX WITH PRODUCTION 功能 將當(dāng)前打開的表文件全部或部分復(fù)制到一個(gè)新生成的表文件中 說明 新生成表文件中的字段順序由FIELDS選擇項(xiàng)確定 缺省表示新表的結(jié)構(gòu)與原表的結(jié)構(gòu)完全相同 新表文件中的記錄由選擇項(xiàng)以及選擇項(xiàng)確定 同時(shí)缺省 表示將原表的全部記錄都復(fù)制到新表中 若 和都缺省 則表示將原表進(jìn)行備份 指定新生成的表文件 若當(dāng)前原表文件中有備注型字段 則相應(yīng)的備注文件 FPT文件 將同時(shí)被復(fù)制 新表文件名不能與被復(fù)制的原表文件同名 省略盤符和路徑表示在當(dāng)前盤當(dāng)前目錄下生成新表文件 例3 18 復(fù)制STUD DBF中所有女同學(xué)的記錄到STUD2 DBF中 USESTUDCOPYTOSTUD2FOR性別 女 3 表記錄保存為文本文件 格式 COPYTO FIELDS FOR WHILE WITHBLANK WITHTAB 功能 將當(dāng)前表的記錄全部或部分保存到一個(gè)文本文件中 說明 FIELDS 確定文本文件中的字段順序 缺省表示將表中記錄的全部字段值保存到文本文件中 以及選擇項(xiàng) 確定哪些記錄的字段值保存到文本文件中 同時(shí)缺省 表示將原表的全部記錄的字段值都保存到文本文件中 TYPE 當(dāng)用戶生成的新文件不是DBF格式文件時(shí) 可以用TYPE選項(xiàng)指定新文件的格式 系統(tǒng)會(huì)自動(dòng)產(chǎn)生不同格式的新文件 并為新文件加上相應(yīng)的擴(kuò)展名 TYPE文件類型包括下列幾種 SDF 復(fù)制為SDF SystemDataFormat 格式的ASCII文本文件 默認(rèn)擴(kuò)展名為 TXT DELIMITED WITHWITHBLANK WITHTAB 復(fù)制為帶分隔符的ASCII文本文件 默認(rèn)擴(kuò)展名為 TXT SDF和DELIMITED格式的區(qū)別 SDF是將表文件的每一條記錄復(fù)制到SDF文本文件中 在每一行中 字段與字段間沒有分隔符 每一行以回車換行結(jié)束 字段在SDF文件中的寬度是固定的 等于源表中該字段的定義寬度 在SDF文件中 表文件中的字符型字段和數(shù)值型字段原樣存貯 即字符型左對(duì)齊存貯 不足部分在右邊填以空格 數(shù)值型則以右對(duì)齊方式存貯 不足部分在左邊填以空格 日期型數(shù)據(jù)以YYYYMMDD格式存貯 邏輯型數(shù)據(jù)以T或F存貯 SDF文本文件不接受備注型字段和通用型字段 DELIMITED文件帶定界符格式文本文件 也是將源表文件中的每一條記錄作為一行存貯 每行以回車換行結(jié)尾 但記錄的各字段間以分隔符隔開 各字段的寬度為字段值的實(shí)際寬度 字段間的分隔符默認(rèn)為 號(hào) 字符型字段的定界符為雙引號(hào) 用戶可以用WITHWITHBLANK WITHTAB指定分隔符 WITH表示用指定的為字符型字段的定界符 WITHBLANK WITHTAB則指定空格或Tab鍵作為字段間的分隔符 若使用WITHBLANK 則字符型字段不再有定界符 注意 該命令和表文件的復(fù)制命令實(shí)際上是同一個(gè)命令 是復(fù)制為表文件還是文本文件 看是否帶TYPE子句 例3 19 復(fù)制STUD DBF中的記錄內(nèi)容復(fù)制到SSTUD TXT SDF格式 DSTUD TXT DELIMITED格式 和ESTUD TXT 以空格為分隔符的DELIMITED格式 中 USESTUDCOPYTOSSTUDSDF COPYTODSTUDDELIMITEDCOPYTOESTUDDELIMITEDWITHBLANK3 3 6表記錄的追加維護(hù)數(shù)據(jù)庫的一項(xiàng)經(jīng)常性的操作就是根據(jù)需要隨時(shí)向表文件中添加記錄 添加記錄包括追加記錄 插入記錄和利用其他文件追加 追加記錄在前面已經(jīng)介紹 在這里就介紹后面兩種方法 1 從另一個(gè)表文件中追加記錄 格式 APPENDFROM FIELDS FOR 功能 從指定的表文件中讀入數(shù)據(jù) 并添加到當(dāng)前表文件的末尾 說明 數(shù)據(jù)的追加是從命令中指定的表文件追加到當(dāng)前表文件中 所以 應(yīng)先將需要追加記錄的表文件打開 設(shè)置為當(dāng)前表 然后再使用該命令進(jìn)行追加 表記錄的追加 追加原則是同名原則 即將數(shù)據(jù)來源表中的字段與當(dāng)前表的字段進(jìn)行比較 同名則將符合條件的記錄的值追加過來 若數(shù)據(jù)來源表中缺少某些字段 則當(dāng)前表中該字段值為空 追加數(shù)據(jù)記錄時(shí) 若兩個(gè)表文件同名字段的寬度不相同 一般情況下 若當(dāng)前表的字段寬度大于數(shù)據(jù)來源表的字段寬度 記錄能正常追加 對(duì)字符型數(shù)據(jù)后面加空格 對(duì)數(shù)值型數(shù)據(jù)前面加 0 但若當(dāng)前表的字段寬度小于數(shù)據(jù)來源表的字段寬度 記錄不能正常追加 數(shù)據(jù)失去原來的意義 對(duì)字符型數(shù)據(jù)截去后面多余字符 對(duì)數(shù)值型數(shù)據(jù)進(jìn)行小數(shù)部分的四舍五入 仍不夠根據(jù)當(dāng)前表的寬度用 號(hào)填充 表示溢出 2 從另一個(gè)文本文件中追加記錄 1 命令方式 格式 APPENDFROM FIELDS FOR TYPE SDF DELIMITED WITHTAB WITH WITHBLANK 功能 從指定類型的文本文件中讀入數(shù)據(jù) 并添加到當(dāng)前表文件的末尾 說明 是指獲取數(shù)據(jù)的文本文件名 文本文件中的每一行 追加為一條記錄 可以在文本文件中輸入文本 但要保證文本格式相同 再利用此命令追加為記錄 注意 數(shù)據(jù)文件若由COPYTO命令生成的且定義了文本文件的分隔符 則追加記錄時(shí)也應(yīng)用相同的分隔符 因?yàn)橄到y(tǒng)以每個(gè)分隔符作為字段值的分隔符 這樣才能保證數(shù)據(jù)能正確還原 2 菜單方式 打開表文件 選擇 顯示 瀏覽 命令 選擇 表 追加記錄 命令 彈出圖3 17所示的 追加來源 對(duì)話框 單擊類型下拉按鈕選擇用來追加記錄的數(shù)據(jù)文件的類型 在 來源于 顯示欄中輸入數(shù)據(jù)來源文件的路徑和文件名 再選擇 選項(xiàng) 顯示框中的字段 條件 確定后返回追加來源窗口 單擊 確定 按鈕 系統(tǒng)將滿足條件的記錄完成追加操作 3 插入記錄 格式 INSERT BEFORE BLANK 功能 在當(dāng)前表文件的指定位置插入新記錄或空記錄 說明 INSERT是在當(dāng)前記錄之后插入新記錄 INSERTBEFORE是在當(dāng)前記錄之前插入新記錄 INSERTBLANK是在當(dāng)前記錄之后插入空記錄 若表文件建立了索引 則插入的新記錄按索引值進(jìn)行排列 例3 20 在表STUD DBF的第2號(hào)記錄前插入一條新記錄 在第4號(hào)記錄后插入一條新記錄 USESTUDGOTO2INSERTBEFORE 在2號(hào)記錄前插入一條新記錄GOTO5 因已插入了一條新記錄 原4號(hào)現(xiàn)為5號(hào)INSERT 在4號(hào)記錄后插入一條新記錄 3 3 7文件管理命令VisualFoxPro除了表文件之外 還有其他多種類型的文件 系統(tǒng)對(duì)各類文件提供了通用的管理手段 其功能類似于DOS的文件管理命令 但必須注意它們之間的區(qū)別 1 顯示文件目錄 格式 DIR DIRECTORY ON LIKE TOPRINTER PROMPT TOFILE 或LIST DISPLAYFILES ON LIKE TOPRINTER PROMPT TOFILE 功能 顯示磁盤文件目錄信息 說明 該命令類似于DOS操作系統(tǒng)的DIR命令 ON 指定所顯示文件目錄所在的驅(qū)動(dòng)器符號(hào) 缺省此項(xiàng)為當(dāng)前盤 LIKE 指定顯示文件所在路徑 文件管理命令 2 文件改名 格式 RENAMETO 功能 將改為 說明 該命令類似于DOS操作系統(tǒng)的REN命令 改名之前文件必須關(guān)閉 正在使用的文件不能改名 如果有備注文件 對(duì)表文件改名時(shí) 不要忘記為相應(yīng)的 FPT文件改名 否則打不開改名后的表 例3 22 將STUD DBF改為GL DBF USERENAMESTUD DBFTOGL DBFRENAMESTUD FPTTOGL FPT 3 文件刪除 格式 ERASE 或DELETEFILE 功能 從磁盤上刪除指定的文件 說明 此命令類似于DOS操作系統(tǒng)的DEL命令 如果選擇參數(shù) 或缺省文件名選項(xiàng) 系統(tǒng)將彈出Open對(duì)話框 供用戶選擇所需刪除的文件 為防止誤操作 該命令不默認(rèn)擴(kuò)展名 所以必須用全稱 不能使用通配符 如果不在目錄下 則需指定路徑 同時(shí) 此命令也不能刪除已打開的文件 例3 23 刪除當(dāng)前目錄下的 BAK文件 ERASEABC BAKERASESTUD BAKDELETEFILEXSCJ BAKDIR BAK4 文件復(fù)制 格式 COPYFILETO 功能 對(duì)各類文件進(jìn)行復(fù)制 說明 此命令類似于DOS操作系統(tǒng)的COPY命令 和必須給出全名 不能使用通配符 不能復(fù)制已打開的文件 當(dāng)復(fù)制含有備注型字段或已建立索引的表文件時(shí) 必須復(fù)制相應(yīng)的備注文件和索引文件 例3 24 將STUD DBF改名為STUDBAK DBF復(fù)制到A 盤上 COPYFILESTUD DBFTOA STUDBAK DBF COPYFILESTUD FPTTOA STUDBAK FPT 復(fù)制 FPT備注文件5 顯示文本文件 格式 TYPE AUTO WRAP TOPRINTER PROMPT TOFILE NUMBER 功能 顯示或同時(shí)打印文本文件 說明 此命令類似于DOS操作系統(tǒng)的TYPE命令 文本文件是指非結(jié)構(gòu)式文件 即沒有任何內(nèi)部控制符的ASCII碼文件 例如命令文件 PRG 屏幕格式文件 FMT和文本文件 TXT 和 必須帶擴(kuò)展名 不能使用通配符 且不能是打開的文件 6 調(diào)用外部命令如果覺得VisualFoxPro的文件管理命令不方便 可以調(diào)用DOS的有關(guān)命令 格式 RUN N K 功能 執(zhí)行MSDOS的系統(tǒng)命令 說明 此命令直接完成外部程序的功能 使用本命令必須有足夠的內(nèi)存空間 否則會(huì)產(chǎn)生 內(nèi)存不足 的錯(cuò)誤 3 4排序與索引為了高效方便地存取數(shù)據(jù) 往往要求表記錄以某一定的順序排放或顯示 因此 VisualFoxPro提供了兩種方法重新組織數(shù)據(jù) 即排序和索引 排序是從物理上對(duì)表進(jìn)行重新整理 按照指定的關(guān)鍵字段來重新排列表中數(shù)據(jù)記錄的順序 并產(chǎn)生一個(gè)新的表文件 由于新表的產(chǎn)生即費(fèi)時(shí)間也浪費(fèi)空間 實(shí)際中很少用 排序與索引 索引是從邏輯上對(duì)表進(jìn)行重新整理 按照指定的關(guān)鍵字段的建立索引文件 一個(gè)表文件可以建立多個(gè)索引文件 但對(duì)于打開的表文件 任何時(shí)侯只有一個(gè)索引文件起作用 此索引文件稱為主控索引 3 4 1表的排序 格式 SORTTOON A D C A D C ASCENDING DESCENDING FOR WHILE FIELDS 功能 對(duì)當(dāng)前打開的表 按指定的字段進(jìn)行排序 生成新的表文件 表的排序 生成的排序文件也是一個(gè)數(shù)據(jù)庫文件 范圍 條件的含義同COPYTO命令 用作排序的字段的數(shù)據(jù)類型允許是N C D L型 A表示升序 D表示降序 C表示不區(qū)分大小寫當(dāng)有多個(gè)關(guān)鍵字段時(shí) 先按字段1的值排列 其值相同的 再按字段2的值排列 原庫中的記錄發(fā)生變化 排序文件不能自動(dòng)完成同步修改 該命令執(zhí)行后 當(dāng)前表不變 產(chǎn)生的新表不會(huì)自動(dòng)打開 占空間 廢時(shí)間 很少用 例3 25 將STUD DBF按性別進(jìn)行降序排列USESTUDSORTTOSTUD2ON性別 D 3 4 2表的索引1 索引及索引文件的概述索引是以索引文件的形式存在的 它根據(jù)指定的索引關(guān)鍵字表達(dá)式建立的 索引文件可以看成索引關(guān)鍵字的值與記錄號(hào)之間的對(duì)照表 關(guān)鍵字可以是一個(gè)字段 也可以是幾個(gè)字段的組合 在建立索引文件時(shí) 把表所有記錄的索引關(guān)鍵字表達(dá)式的值按指定順序排序 并把每個(gè)索引關(guān)鍵字表達(dá)式值與該值在表中所對(duì)應(yīng)的記錄對(duì)應(yīng)起來 保存在索引文件中 索引文件必須與原表一起使用 查詢時(shí)根據(jù)索引關(guān)鍵字表達(dá)式的值先在索引文件中找到某字段所在的記錄號(hào) 然后再到表里直接定位 這樣的查找方式使順序查找和隨機(jī)查找都有較高的效率 打開索引文件時(shí) 將改變表中記錄的邏輯順序 但并不改變表中記錄的物理順序 表的索引 一個(gè)表文件可建立多個(gè)索引文件 也可同時(shí)打開多個(gè)索引文件 但在同一時(shí)間內(nèi)只有一個(gè)索引起作用 這個(gè)索引稱為主控索引 VisualFoxPro系統(tǒng)中支持兩種不同的索引文件類型 即單索引文件和復(fù)合索引文件 單索引文件是根據(jù)一個(gè)索引關(guān)鍵
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中級(jí)收入建筑合同范本
- 公司運(yùn)輸貨物合同范本
- 保過合同范本
- 出資入股協(xié)議合同范本
- 買賣合同非住宅類合同范本
- 中介買房糾紛合同范本
- 倉房買賣合同范本
- 加工玉米采購合同范本
- 別墅購買合同范本
- 出租嬰兒服裝合同范本
- 餐飲行業(yè)系列研究之六:日本餐飲30年復(fù)盤與啟示
- 2024年江蘇衛(wèi)生健康職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案解析0
- 《中國陶瓷史》課件-3-陶與瓷
- 第一章創(chuàng)新意識(shí)課件
- 浙江省杭州市2022-2023學(xué)年七年級(jí)下學(xué)期語文期中質(zhì)量檢測試卷(含答案)
- 【真題】2023年南京市中考語文試卷(含答案解析)
- 數(shù)學(xué)教育的國際比較與交流
- 安徽安慶家鄉(xiāng)介紹
- 自動(dòng)測試系統(tǒng)第1章第1節(jié)測試系統(tǒng)發(fā)展綜述
- 2024年河南省水務(wù)規(guī)劃設(shè)計(jì)研究有限公司人才招聘筆試參考題庫附帶答案詳解
- 山地光伏設(shè)計(jì)方案
評(píng)論
0/150
提交評(píng)論