VFP完整版.ppt_第1頁
VFP完整版.ppt_第2頁
VFP完整版.ppt_第3頁
VFP完整版.ppt_第4頁
VFP完整版.ppt_第5頁
已閱讀5頁,還剩304頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1 數據庫技術與應用 2 前言 1 VisualFoxPro6 0關系數據庫管理系統(tǒng)是新一代數據庫管理系統(tǒng)的杰出代表 以它強大的性能 完整而又豐富的工具 超高速的速度 極其友好的界面 以及完備的兼容性等特點 吸引眾多的國內外用戶 倍受廣大用戶的歡迎 3 VisualFoxPro6 0的顯著特點 可運行于Windows98 2000 XP和WindowsNT平臺不僅可以簡化數據庫管理 而且能使應用程序的開發(fā)流程更為合理使組織數據 定義數據庫規(guī)則和建立應用程序等工作變得簡單易行用戶利用可視化的設計工具和向導 可以快速創(chuàng)建表單 查詢和打印報表 提供了一個集成化的系統(tǒng)開發(fā)環(huán)境 支持過程式編程技術 支持面向對象可視化編程技術 在語言方面作了強大的擴充 前言 2 4 根據教育部提出的非計算機專業(yè)計算機基礎教學三個層次要求配合全國計算機等級考試 VisualFoxPro二級 考試大綱的知識要點以VisualFoxPro6 0為主要內容 介紹關系數據庫管理系統(tǒng)基礎理論及應用系統(tǒng)開發(fā)知識主要內容 數據庫基礎理論 VisualFoxPro6 0的基本操作 面向對象可視化編程 應用系統(tǒng)開發(fā)的方法 步驟 課程概述 5 第一章VisualFoxPro程序開發(fā)環(huán)境第二章VisualFoxPro6 0的語言元素第三章表與數據庫第四章查詢和視圖第五章表單設計第六章建立報表與標簽第七章菜單與工具欄設計第八章程序設計 目錄 6 第一章VisualFoxPro程序開發(fā)環(huán)境 1 1數據庫系統(tǒng)的基本概念1 2VisualFoxPro6 0的發(fā)展與特點1 3用戶界面 7 1 1數據庫系統(tǒng)的基本概念 1 1 1數據 信息與數據處理一 概念數據 一種符號系列 用來記錄事物的情況 信息 經過加工處理的 對人類社會有用的數據 數據處理 對數據進行收集 存儲 加工 傳輸等一系列活動總和 信息 數據 處理 二 數據處理技術的發(fā)展三個主要階段 1 程序管理 2 文件系統(tǒng) 3 數據庫技術 8 1 1 2數據庫系統(tǒng) 數據庫 Database 指存儲在外存上的有結構的數據集合 數據庫管理系統(tǒng) DBMS DatabaseManagementSystem 一個在操作系統(tǒng)支持下 對數據庫進行各種操作的軟件系統(tǒng) 用來幫助用戶建立 使用和管理數據庫 并對數據庫中的數據進行各種操作 如 增刪 更新 查找 輸出等 數據庫應用系統(tǒng)人機系統(tǒng) 包含 用戶 計算機硬件 數據庫 數據庫管理系統(tǒng)和為用戶編寫的應用程序 以便對數據庫進行操作 9 1 1 3數據模型 一 數據庫的數據組織形式 實體及其聯(lián)系 實體 現(xiàn)實世界可被識別事物的抽象命名 如 人 屬性 實體的抽象描述 任何實體都有屬性去描述 屬性是事物性質的抽象 如 人的姓名 年齡 性別 關鍵字 區(qū)別實體集合中不同個體的屬性 如 學號 二 數據模型的分類 1 層次模型 采用樹型結構 2 網絡模型 采用無向圖型結構 3 關系模型 采用二維表結構 10 三 關系模型的特點 關系模型將數據組織成二維表的形式 表中每列數據屬于同一類型 表中不允許有重復的字段名 表中不允許有相同的行 表中行和列的順序可以任意 一張二維表構成的關系模型應滿足以下條件 11 1 1 4關系數據庫 關系模型具有結構簡單 操作簡便 理論嚴謹 表示能力強等優(yōu)點 用關系模型所設計的數據庫稱為關系數據庫 一 關系數據庫的五個層次字符 character 標識實體屬性的符號集 包括數字 0 9 字母 A Z a z 和其他符號 這些字符每個在計算機中占據一個字節(jié) byte 漢字系統(tǒng)中的每個漢字占據兩個字節(jié) 字段 field 最基本的不可再分的有名字的數據單位 一個字段由一個或多個字符組成 字符的個數即為字段的長度 記錄 record 描述一個個體的數據集合 由若干字段組成 組成記錄的字段的長度之和稱為記錄的長度 表 table 按一定結構存儲的一組相關的數據 由若干記錄組成 記錄中的字段規(guī)定了表中數據的結構 數據庫 database 表與關系的集合 關系 relation 相關表之間的聯(lián)系 12 二 八種元素 1 字段 field 2 記錄 record 3 表 table 4 數據庫 database 5 索引 index 6 查詢 query 7 視圖 view 8 過濾器 filter 三 關系運算關系模型中的關系表現(xiàn)為一張二維表 關系運算是指在關系 表 的層面上進行的操作 選擇 投影 連接 選擇 在一個表中選出滿足指定條件的記錄 投影 在一個表中選出各記錄的若干指定字段的值 連接 將兩個表的記錄按一定的條件連接成一個新表的記錄 13 1 2VFP6 0的發(fā)展與特點 1 2 1發(fā)展是一個在Windows95 98和WindowsNT環(huán)境下運行的典型的關系數據庫管理系統(tǒng)早期的dBase 到FoxBase FoxPro1995年Windows95面世 VisualFoxPro3 0 VisualFoxPro5 0 VisualFoxPro8 0 現(xiàn)在的版本 其卓越的數據庫處理性能 良好的開發(fā)環(huán)境贏得了廣大用戶的喜愛VisualFoxPro是目前微機上最為流行的關系數據庫管理系統(tǒng)之一 14 1 3用戶界面 VisualFoxPro6 0的安裝和啟動與其它Windows下的應用程序類似 用戶界面也是標準的Windows風格 啟動VisualFoxPro6 0以后 即可看到它的主窗口 主窗口由菜單欄 工具欄以及命令窗口等組成 VisualFoxPro6 0使用不同類型的窗口以便完成各種不同的任務 在VisualFoxPro6 0的各種平臺上 除菜單外的所有部件都是窗口 包括工具欄在內 用戶可以同時打開多個窗口 可以使用Windows下的窗口操作方法對VisualFoxPro6 0的窗口進行操作 如移動 改變大小等 15 工具欄是單擊后可以執(zhí)行常用任務的一組按鈕 工具欄可以浮動在窗口中 也可以停放在VisualFoxPro6 0主窗口的上部 下部或兩邊 有效地使用工具欄 可以簡化從菜單中進行選取的步驟 達到快速執(zhí)行命令的效果 VisualFoxPro6 0中提供有各種類型的工具欄 默認情況下只有 常用 工具欄可見 若要激活一個工具欄 方法一 顯示 菜單 工具欄 工具欄 對話框 方法二 工具欄上右擊 工具欄列表 1 3 2工具欄 16 VisualFoxPro6 0的配置決定了VFP的外觀和行為 例如建立VFP文件的默認位置 指定如何在編輯窗口中顯示源代碼及日期與時間的格式等 設置既可以是臨時的 只在當前工作期有效 也可以是永久的 它們變?yōu)橄麓螁覸FP時的默認設置值 如果是臨時設置 那么它們保存在內存中并在退出VFP時釋放 如果是永久設置 那么它們將保存在Windows注冊表中 1 3 3配置VisualFoxPro6 0 17 1 工具 菜單 選項 命令 打開 選項 對話框 選項 對話框具有一系列代表不同類別環(huán)境選項的選項卡 2 在 選項 對話框按照自己的需要進行設置 3 保存所做的設置 二 使用 選項 對話框查看或更改環(huán)境設置 把設置保存為僅在當前工作期有效 在 選項 對話框中設置好以后 選擇 確定 按鈕 當把設置保存為僅在當前工作期有效時 它們一直起作用直到您退出VFP 或直到再次更改它們 永久保存所做的更改 在 選項 對話框中設置好以后選擇 設置為默認值 按鈕 把它們保存為默認設置 這將把它們存儲在Windows注冊表中 當選擇出現(xiàn)在對話框每個選項卡上的 設置為默認值 按鈕時 VFP保存所有選項卡上的所有選項 18 VisualFoxPro6 0提供給用戶的三種交互式的可視化開發(fā)工具 1 3 4設計器 向導 生成器 一 設計器 Designer 設計器集成了用于設計對象的各種操作 并賦予可視化提示 二 向導 Wizard 把一些復雜的操作分解為若干簡單的步驟來完成 每一步使用一個對話框 用戶只要逐步回答向導提出的問題 向導便可以自動替你完成相應的任務 啟動向導 工具 菜單 向導 子菜單 三 生成器 Builder 功能主要是為對象方便 快速地設置一些輔助選項 如幫助用戶對特定的對象設置屬性 或者組合子句創(chuàng)建特定的表達式等 與向導不同 生成器是可重入的 就可以不止一次地打開某一對象的生成器 19 VisualFoxPro6 0的幫助系統(tǒng)是一個十分有效的信息系統(tǒng) 就象一本內容豐富的使用手冊 使用戶不離開VisualFoxPro6 0環(huán)境就能檢索到其各種幫助信息 一 進入幫助系統(tǒng)方法一 在窗口中輸入 Help 命令 方法二 使用 幫助 菜單 方法三 按 F1 功能鍵 二 MSDN系統(tǒng)界面啟動幫助后 就會見到MSDN的系統(tǒng)界面 MSDN的系統(tǒng)界面是MicrosoftVisualStudio6 0 包括VisualFoxPro6 0 向用戶提供幫助信息的一個服務界面 在MSDN界面中有四個選項卡 目錄 索引 搜索和書簽 選取 目錄 選項卡將看到MSDN系統(tǒng)幫助內容的目錄 選中需要獲得幫助的主題 雙擊該主題立即就會在該主題下列出所有的子主題 用同樣的方法找到所需幫助的對象 雙擊選中的主題就會把該對象的詳細信息列出來 選取 索引 選項則可根據關鍵詞進行定位查詢 如果還想查詢別的主題 可以按 搜索 和 書簽 選項卡進行查詢 繼續(xù)尋求幫助 當想回到主界面時 只需按 主頁 按鈕即可 1 3 5幫助系統(tǒng) 20 第二章VisualFoxPro6 0的語言元素 2 1數據與數據類型2 2函數2 3運算與表達式2 4VisualFoxPro6 0命令 21 程序中有常量 變量 函數等數據 數據有不同的類型數據容器 用戶存放數據的地方 例如常量 變量 數組 記錄 對象 等等 2 1 1常量與變量 常量 在程序運行的過程中其值固定不變的量 變量 在程序運行的過程中其值會改變的量 變量名必須遵守以下原則 以字母或漢字開頭 變量名中只能含有字母 漢字 數字和下劃線 變量名不能是VisualFoxPro6 0的保留字 如對象名 系統(tǒng)預先定義的函數名等 2 1數據與數據類型 22 2 1 2變量類型 數據庫中的變量按存放形式分為兩種 一 字段變量 數據庫中定義的字段名 字段變量是指數據庫表中已定義好的任一數據項 如果一個數據表中有20條記錄 每一個字段名就有20個可取值 在數據表有一個記錄指針 它指向的記錄定義為當前記錄 字段名變量的現(xiàn)值就是當前記錄中對應字段的值 記錄指針可以移動 因此字段名的取值隨著指針的移動而改變 所以字段是變量 二 內存變量 不依賴數據庫而獨立存在的變量 內存變量是內存中的一個存儲單元 這個存儲單元中存放的數據就是內存變量的值 內存變量由賦值語句定義 它的數據類型取決于賦值數據的類型 內存變量是獨立于數據庫文件而存在的變量 用來存儲數據處理過程中所需要的中間結果和最終結果 它參與計算處理 還可以作為控制變量 用來控制應用程序的運行 內存變量是一種臨時工作單元 需要時可以臨時定義 不需要時可以隨時釋放 23 數據是信息的表現(xiàn)形式 數據有不同的類型 數據處理的基本原則是對不同類型的數據進行不同的操作 所有的VisualFoxPro6 0數據都有其所屬的類型 內存變量有五種類型 字符型 數值型 邏輯型 日期型 貨幣型 2 1 3數據類型 1 字符型 Character 通常用來表示文本類型的信息 由中英文字符 數字 空格和各種專用符號組成 兩個或兩個以上字符型數據的組合稱為字符串 用定界符括起來的字符串即為字符型常量 定界符規(guī)定為 若一種定界符已作為字符型常量的組成部分 應選擇另一種定界符來標識字符串 字符型數據如 STRING 昆明市 123 2 數值型 Numeric 數據 數值型數據由數字 小數點和正負號等組成 包括整數 1268 小數 0 38 負數 112 浮點數 148 931 科學計算數 2E 8 等 數值型數據用來進行數學運算 24 3 邏輯型 Logic 數據 表示邏輯判斷結果的值 邏輯型數據只有兩個值 邏輯值True 真 T 或邏輯值False 假 F 如表達式3 4的運算結果為 F 4 日期型 Date 和日期時間型 DateTime 數據 表示日期和時間的特殊數據 用 作為定界符 系統(tǒng)默認的格式為 月 日 年時 分 秒 如 12 22 0210 30 20 嚴格格式用 yyyy mm ddhh mm ssa p 表示 如 2002 12 2210 30 20p 5 貨幣型 Currency 貨幣單位數據 在使用貨幣型數據時將數字前加貨幣符號 如 123 45 567 90 25 字段類型類型名稱說明大小應用舉例字符型 Character 數字 字母 符號254人員簡歷 產品簡介 26 2 1 4數組 數組是一批數據的有序集合數組中的每一個數據稱為一個數組元素 在VisualFoxPro6 0中 數組元素均為內存變量 數組必須先定義后使用 定義數組的命令為 DECLARE 27 2 2函數 根據自變量 參數 的值由一定的規(guī)則得到一個單一的值 VisualFoxPro6 0向用戶提供了豐富的標準函數 常用的函數類型有 數值型 字符型 邏輯型 轉換型及輸入型等 函數的一般形式是 參數表 VFP的函數與數學函數沒有根本的區(qū)別 在使用函數時應注意 1 所有函數必須跟隨有園括號 無論函數是否需要參數 除宏代換函數 外 2 每個函數必然有一個返回值 返回值有確定的數據類型 3 傳送給函數的參數有一定的數據類型 必須按要求的數據類型傳送參數值 28 VisualFoxPro6 0使用四種類型的運算 算術運算 關系運算 邏輯運算和字符運算 2 3 1算術運算對數值進行算術運算 運算結果為數值 貨幣等 它包括6種運算 加 減 乘 除 或 乘方 優(yōu)先 優(yōu)先級從高到底為 括號 乘方 乘除 加減 2 3 2關系運算用于對兩個類型相同的表達式進行比較 參與運算的可以是數值 字符或日期等類型的數據 但運算結果為邏輯值 真或假 它包括6種運算 大于 等于 不等于 大于等于 數字型數據按其數值大小進行比較 字符型數據根據ASCII碼值的大小進行比較 日期型數據是按年 月 日的先后進行比較 關系成立值為 T 否則值為 F 例 250 300結果為 F ABC ABD 結果為 T CTOD 01 01 2000 CTOD 08 01 2000 結果為 F 2 3運算符與表達式 29 2 3 2關系運算用于對兩個類型相同的表達式進行比較參與運算的可以是數值 字符或日期等類型的數據 但運算結果為邏輯值 真或假 它包括6種運算 大于 等于 不等于 大于等于 數字型數據按其數值大小進行比較 字符型數據根據ASCII碼值的大小進行比較 日期型數據是按年 月 日的先后進行比較 關系成立值為 T 否則值為 F 例 250 300結果為 F ABC ABD 結果為 T CTOD 01 01 2000 CTOD 08 01 2000 結果為 F 2 3 3邏輯運算對一個或兩個邏輯表達式進行邏輯運算 結果也為邏輯型 產生邏輯型結果 真或假 它包括3種運算 AND 與 OR 或 NOT 非 優(yōu)先級從高到底為 NOT AND OR 邏輯運算符與算術運算符一樣也可利用括號來改變它們之間的操作運算的先后順序 邏輯表達式實際上是一種判斷條件 條件成立 表達式值為 T 條件不成立 表達式值為 F 例 性別 男 AND 專業(yè) 軟件 年齡 60 OR 工齡 30 30 2 3 4字符串運算對兩個字符型數據進行包含及連接運算 1 連接運算符 參與運算的數據與結果都為字符型 把兩個字符串連接成一個新的字符串 把兩個字符串連接 將第一個字符串尾部的空格移到新的字符串的末尾例 this isastring 結果為 thisisastring this isastring 結果為 thisisastring 2 包含運算符 參與運算的數據為字符型 結果為邏輯型 表示兩個字符串之間的包含與被包含的關系 格式 如果包含在中其結果為真 否則為假 例 ING STRING 結果為 T 周遜 周遜教授 結果為 T this THISISASTRING 結果為 F 31 由各種數據 如常量 變量 函數通過各種運算符聯(lián)結起來 具有一定意義的式子 表達式的求值結果為單個值 根據表達式運算結果的數據類型不同 表達式分為 字符表達式 數值表達式 關系表達式 邏輯表達式 當同一表達式中使用了幾種運算符時 其優(yōu)先級為 算術運算符或字符運算符 關系運算符 邏輯運算符 同一級別中的全部運算為從左至右的順序進行 只有在使用了括號的情況下才能改變運算順序 3 5 123 and not abc abc 2 3 5表達式 32 2 4VFP中的命令 VFP的命令又稱為語句 它是充分吸收多種高級語言的優(yōu)點逐步發(fā)展形成的 但比高級語言的語句更精煉 功能更強 VFP中的所有任務都由不同的命令來完成 當選擇執(zhí)行某個菜單中的命令 或通過VFP提供的工具完成某些任務時 實際上也是調用了一些VFP的命令 只不過這時的命令由VFP自動生成 而不用手工輸入而已常用命令及格式見附錄一 33 2 4 1命令格式 命令由兩部分組成 前面是命令動詞 關鍵字 表示應該執(zhí)行的操作 后面是若干短語 參數 對操作提供某些限制性的說明 命令動詞 范圍 表達式表 for while 范圍 表示操作范圍 ALL 表示選擇全部記錄 NEXTn 表示從表中當前記錄開始的n個記錄 RECORDn 特指第n個記錄 REST 表示選擇從當前記錄開始一直到表中的最后一個記錄 表達式表 可以是一個或多個由逗號分隔開的表達式 用來表示命令所進行操作的結果參數 for 對表中滿足條件的所有記錄進行操作 while 遇到第一個不滿足條件的記錄就停止操作 注意 當 For 條件和 While 條件同時存在時 WHILE條件將覆蓋 For 條件 34 2 4 2賦值命令與顯示命令 1 賦值命令 給內存變量賦值 1 STORE命令功能 建立內存變量 并給內存變量賦予初值或為已建立的內存變量重新賦值 格式 STORETO 變量表 STORE命令為單個變量賦值時 可以簡寫為 例1STORE1TOx y zSTORE 男 TO性別例2x 1x 2 x 10 x x 1 2 INPUT和ACCEPT命令功能 從鍵盤給內存變量賦值格式 INPUT ACCEPT 提示信息 TO 內存變量 例 INPUT X TOXACCEPT 請輸入學生姓名 TOname 3 WAIT命令 35 2 顯示命令 功能 計算并顯示變量 表達式和常量的值 格式 例STORE1TOx y z x y z 2 x y z m1 ABC m2 DEF m1 m2 Iamastudent 3 5 4 3 5 4 3 5 4 3 5 4 注意 1 當 命令后面沒有任何表達式時 輸出一個空行 2 命令的區(qū)別是 命令從光標當前行的下一行開始顯示 命令在當前光標位置開始顯示 36 2 4 3命令窗口 命令窗口是一種系統(tǒng)窗口 可直接在其中輸入VFP命令 當選擇執(zhí)行某個菜單中的命令 或通過VFP提供的工具完成某些任務時 一些命令還會自動顯示在命令窗口中 打開命令窗口 窗口 菜單 命令窗口 一 命令的書寫規(guī)則 以命令動詞開頭 后面的多個短語通常與順序無關 用空格來分隔每條命令中的各個短語 命令不分大小寫 當命令動詞或命令參數超過四個字母時 可只輸入前四個字符 如 CREATE可簡寫為CREADISPLAY可簡寫為DISP一條命令的最大長度是254個字符 如一條命令太長一行輸不下時 行末須用分號 分隔 并在下行連續(xù)書寫 37 二 編輯命令 命令窗口 是一個編輯窗口 可以對其中的文本進行編輯操作 在按Enter鍵執(zhí)行命令之前可以按Esc鍵刪除文本 利用 格式 菜單中的命令來改變字體 行間距和縮進方式 利用 編輯 菜單或快捷菜單中的剪切 復制 粘貼和清除等命令移動 復制和刪除文本 38 2 4 4 表達式生成器 的使用方法表達式是用運算符把內存變量 字段變量 常數和函數連接起來的式子 表達式通常用于簡單的計算和描述一個操作條件 表達式生成器 是VFP提供的用于創(chuàng)建并編輯表達式的工具 使用它可以方便快捷的生成表達式 表達式生成器 可從各種相關的設計器 向導 生成器及其它一些對話框中訪問 某些對話框中的 對話按鈕激活的就是表達式生成器 也可以在 命令 窗口中使用快捷菜單喚出表達式生成器 表達式生成器 對話框按其功能可分為五部分 表達式文本編輯框 函數列表框 變量列表框 表和視圖下拉列表框 控制按鈕 39 表達式文本編輯框 用于編輯表達式 從表達式生成器的各列表框中選擇出來的選項將顯示在這里 也可以直接在這里輸入和編輯表達式 函數列表框 從中可以選擇表達式所需的函數 這些函數按其用途分為字符函數 數學函數 邏輯函數和日期函數等四個列表框 變量列表框 從變量列表框中通過雙擊可以選擇表達式所需的變量 在字段列表框中 列出了當前表和視圖的字段變量 在變量列表框中 列出了可用的內存變量和系統(tǒng)變量 表和視圖下拉列表框 從這個列表框中可以選擇當前打開的表和視圖 控制按鈕 在表達式生成器中有四個命令按鈕 確定 取消 檢驗 和 選項 若單擊 選項 按鈕 進入 表達式生成器選項 對話框 在該選項對話框中可以設置表達式生成器的參數 單擊 檢驗 按鈕可以檢驗生成的表達式是否有效 按 確定 按鈕完成表達式生成并退出 表達式生成器 按 取消 按鈕放棄對表達式的修改并退出表達式生成器 40 第三章表與數據庫 3 1建立自由表3 2修改和使用表3 3設計數據庫3 4建立數據庫3 5索引與排序3 6表間關系與參照完整性3 7數據共享 41 3 1建立自由表 3 1 1表的概念 表以記錄和字段的形式存儲數據 是關系型數據庫管理系統(tǒng)的基本結構 VFP6 0中 根據表與數據庫的關系 將表分為兩類 數據庫表 和 自由表 屬于某一數據庫的表稱為 數據庫表 不屬于任何數據庫而獨立存在的表稱為 自由表 3 1 2設計表結構創(chuàng)建一個新表分為兩個步驟 步驟一 創(chuàng)建表的結構 即說明表包含哪些字段 每個字段的長度及數據類型 步驟二 向表中輸入記錄 即向表中輸入數據 一個表中的所有字段組成了表的結構 因為字段屬性決定了表的結構 所以在建表之前應先設計字段屬性 42 一 字段名表中的每個字段都是有名稱的 比如 學生 表中的 學號 字段 學號 即為這個字段的字段名 字段名可以是以字母開頭的字母數字串 也可以是漢字 自由表中的字段名不能超過10個字符 數據庫表字段名長度不能超過128個字符 字段名中不接受空格字符 二 字段類型字段的數據類型應與存儲其中的信息類型相匹配 數據庫可以存儲大量的數據 并提供豐富的數據類型 這些數據可以是一段文字 一組數據 一個字符串 一幅圖像或一段多媒體作品 當把不同類型的數據存入字段時 就必須告訴數據庫系統(tǒng)這個字段存儲什么類型的數據 這樣數據庫系統(tǒng)才能對這個字段采取相應的數據處理方法 VisualFoxPro6 0支持十三種不同類型的數據 每種均有不同的目的和用途 應為表中的每個字段選取最適合于該字段數據用途的數據類型 43 字段類型類型名稱說明大小應用舉例字符型 Character 數字 字母 符號 254姓名 住址貨幣型 Currency 貨幣單位8存款 價格數值型 Numeric 整數 小數考試成績浮點型 Float 同數值型日期型 Date 年 月 日參加工作時間日期時間型年 月 日 8上班時間 DateTime 時 分 秒整型 Integer 無小數點數4單位人數雙精度型 Double 雙精度數邏輯型 Logical 真或假1作業(yè)完成否通用型 General OLE 對象鏈接與嵌入 4EXCEL表格 圖片備注型 Memo 文本4人員簡歷 產品簡介 44 三 字段寬度設置以字符為單位的列寬 設置的列寬應保證能夠存放所需的字段 但也不必設置的太寬 否則將占用大量內存 四 小數位數當字段類型為數值型和浮點型時 應為其設置小數位數 五 是否允許為空是否允許字段接受NULL值 所謂NULL值 就是無明確的值 NULL值不等同于零或空格 一個NULL值不能認為比某個值 包括另一個NULL值 大或小 相等或不等 45 在了解了字段的主要屬性后 將表3 1所示的 學生 表中的字段屬性定義下 表3 2 學生 表中的字段屬性字段名數據類型字段寬度小數位NULL學號字符型7否姓名字符型8是性別字符型2是生日日期型8是專業(yè)字符型10是入學成績數值型51是貸款否邏輯型1是照片通用型4是簡歷備注型4是 46 3 1 3建立表結構VisualFoxPro6 0提供了三種建立對象的方法 向導 設計器 命令 三種方法各有特點 可單獨使用 也可混合使用 通常用 向導 生成對象 用 設計器 加工對象 在應用程序中用命令來管理對象 同樣 建表也可以使用這三種方法 既可以使用 表設計器 也可以使用 表向導 還可以通過在命令窗口輸入命令的方法來建表 這里先介紹如何建立自由表 數據庫表的建立和自由表類似 我們在后面章節(jié)再介紹 自由表就是不與數據庫關聯(lián)的表 例如 要想保存多個數據庫所共享的查找信息 就可以創(chuàng)建一個自由表 47 一 利用 表設計器 建表1 打開 表設計器 1 項目管理器 自由表 2 新建表 新建表 3 創(chuàng)建 輸入表名和保存位置 保存 4 表設計器 2 定義字段3 完成設計VFP6 0中保存的表文件的擴展名為 dbf 當第一次創(chuàng)建表時 VFP6 0先創(chuàng)建表的 dbf文件 如果表中包含了備注型字段或通用型字段 VFP6 0還要創(chuàng)建與表相關聯(lián)的 fpt文件 二 利用表向導建表還可用 表向導 來建立表的結構 向導是一個交互式程序 由一系列對話框組成 表向導能夠基于典型的表結構創(chuàng)建表 在有樣表可供利用的條件下 可以使用表向導來定義表結構 允許用戶從樣表中選擇滿足需要的字段 也允許用戶在執(zhí)行向導的過程中修改表的結構和字段 利用表向導保存生成的表之后 用戶仍可啟動表設計器來進一步修改表 48 三 使用命令建表在設計程序時 我們會經常用到一些命令 當我們使用 設計器 或 向導 時 系統(tǒng)正在自動地生成一些對應的VFP命令 并將其中的一些命令映射到命令窗口 可以使用CREATETABLE命令來建表 CREATETABLE表名 字段名1類型 寬度 小數位數 字段名2類型 寬度 小數位數 其中 字段類型用字母表示 常用的如 c 字符型 d 日期型 n 數值型 f 浮點型 l 邏輯型 m 備注型 以及g 通用型 等等 在 命令窗口 中輸入如下命令可以建立 學生 表 CREATETABLEd 教學管理 表 學生3 學號c 7 姓名c 8 性別c 2 出生日期d 專業(yè)c 10 入學成績n 5 1 貸款否l 照片g 簡歷m 49 3 1 4輸入記錄一 在創(chuàng)建表時輸入二 在表創(chuàng)建好以后輸入打開 瀏覽 或 編輯 窗口 項目管理器 瀏覽 切換 瀏覽 或 編輯 方式 顯示 菜單在 瀏覽 或 編輯 窗口中輸入 顯示 菜單 追加方式 關閉瀏覽窗口三 輸入記錄的命令 76 50 注意 輸入備注型和通用型字段輸入備注型字段 雙擊該字段 輸入 關閉輸入通用型字段 雙擊該字段 編輯 菜單 插入對象表中的備注型字段實際上是一個指向備注內容的引用 其對應的實際數據保存在另外一個單獨的文件中 其文件名與表名相同 但擴展名為 FPT 真正的備注內容的大小僅受存儲空間的限制 對那些可能超過254個字符或含有諸如制表符及回車符的長文本 可以使用備注數據類型 通用型字段主要用來保存OLE對象 也是一個指向該字段真正內容的引用 如 電子表格 字處理文檔 圖片等 通用型字段的真正類型和數據大小取決于創(chuàng)建這些對象的OLE服務器 以及這些OLE對象是以鏈接方式還是以嵌入方式與該應用程序發(fā)生聯(lián)系的 若鏈接OLE對象 則表中只含有對數據以及創(chuàng)建這些數據的應用程序的引用 若嵌OLE對象 則表中將含有相關數據的副本以及對創(chuàng)建這些數據的應用程序的引用 通用字段的大小也僅受可用存儲空間的限制 51 3 1 5利用已有的表追加記錄利用其它表已有的相同內容 可以快速給新表追加記錄 無條件追加記錄 追加源表中的所有記錄 有條件追加記錄 有選擇的追加源記錄和字段 1 打開需追加記錄的表的瀏覽窗口2 表 追加記錄 追加來源3 選項 追加來源選項4 字段 字段選擇器5 For 表達式生成器 注意 表達式中的字符量必須用英文狀態(tài)下的雙引號括起來 向表中成批的追加記錄時 其內容可以來源于不同的幾個表 還可從EXCEL表 LOTUS表 TEXT文件等不同類型的文件中追加 52 表達式生成器 的使用方法表達式是用運算符把內存變量 字段變量 常數和函數連接起來的式子 表達式通常用于簡單的計算和描述一個操作條件 表達式生成器 是VFP提供的用于創(chuàng)建并編輯表達式的工具 使用它可以方便快捷的生成表達式 表達式生成器 可從各種相關的設計器 向導 生成器及其它一些對話框中訪問 某些對話框中的 對話按鈕激活的就是表達式生成器 也可以在 命令 窗口中使用快捷菜單喚出表達式生成器 表達式生成器 對話框按其功能可分為五部分 表達式文本編輯框 函數列表框 變量列表框 表和視圖下拉列表框及控制按鈕 53 表達式文本編輯框 用于編輯表達式 從表達式生成器的各列表框中選擇出來的選項將顯示在這里 也可以直接在這里輸入和編輯表達式 函數列表框 從中可以選擇表達式所需的函數 這些函數按其用途分為字符函數 數學函數 邏輯函數和日期函數等四個列表框 變量列表框 從變量列表框中通過雙擊可以選擇表達式所需的變量 在字段列表框中 列出了當前表和視圖的字段變量 在變量列表框中 列出了可用的內存變量和系統(tǒng)變量 表和視圖下拉列表框 從這個列表框中可以選擇當前打開的表和視圖 控制按鈕 在表達式生成器中有四個命令按鈕 確定 取消 檢驗 和 選項 若單擊 選項 按鈕 進入 表達式生成器選項 對話框 在該選項對話框中可以設置表達式生成器的參數 單擊 檢驗 按鈕可以檢驗生成的表達式是否有效 按 確定 按鈕完成表達式生成并退出 表達式生成器 按 取消 按鈕放棄對表達式的修改并退出表達式生成器 54 3 2修改和使用表 3 2 1打開 關閉表一 打開表表在 項目管理器 中 選定要打開的表 然后選擇 瀏覽 按鈕在瀏覽窗口中打開該表 表不在 項目管理器 中 從 文件 菜單中選擇 打開 命令 然后在 打開 對話框中選擇要打開的表將其打開 二 關閉表在命令窗口輸入不帶任何參數的 USE 命令即可 55 3 2 3修改表記錄 一 修改記錄內容1 在瀏覽窗口中修改2 在編輯窗口修改 二 刪除記錄刪除記錄的過程 分為兩步 第一步 對要刪除的記錄作刪除標記 第二步 徹底刪除 56 1 作刪除標記鼠標單擊記錄前的刪除標記條 表 菜單 刪除記錄 命令 刪除 對話框2 還原記錄鼠標單擊記錄前的刪除標記條 表 菜單 恢復記錄 命令 恢復 對話框3 徹底刪除 表 菜單的 徹底刪除 命令或在 命令 窗口中輸入 PACK 命令注意 執(zhí)行 徹底刪除 命令后 帶有刪除標記的記錄被從磁盤上徹底刪除 被徹底刪除的記錄不能再用 恢復記錄 命令恢復 4 刪除全部記錄如果想刪除表中的所有記錄 只留下表的結構 可使用ZAP命令 在 命令 窗口中輸入 ZAP 命令將徹底刪除表中的所有記錄 注意 此命令破壞性極大 應慎用 57 3 2 4查看記錄 一 瀏覽記錄Tab鍵 Shift Tab鍵 PageUp鍵 PageDown鍵記錄指針 當前記錄 二 改變?yōu)g覽窗口改變列寬和行高調整字段順序在瀏覽窗口中改變列寬或列的順序 并不影響表的實際結構 打開或關閉網格線 顯示 菜單中的 網格線 可顯示或隱藏瀏覽窗口中的網格線 拆分瀏覽窗口拆分窗口可以查看同一表中的兩個不同區(qū)域 取消 表 菜單中 鏈接分區(qū) 可使兩個區(qū)域相對獨立 58 三 定位記錄用 查找 命令查看用 轉到記錄 命令查看注意 若有幾個記錄都符合定位的條件 只定位表中第一個符合條件的記錄 若想同時查出所有記錄 則需使用數據過濾功能 四 過濾數據記錄過濾打開表瀏覽窗口 表 屬性 工作區(qū)屬性 數據過濾器 表達式生成器 生成過濾表達式 恢復被過濾的數據 表 屬性 數據過濾器 刪除表達式 確定 字段篩選 工作區(qū)屬性 字段篩選指定的字段 字段篩選 字段選擇器 確定 59 3 2 5使用多個表 一 工作區(qū)和工作期的概念1 工作區(qū)為了能夠同時使用多個表 引入了工作區(qū)的概念 工作區(qū)是一個編號的區(qū)域 用它來標識一個打開的表 在每個工作區(qū)中只能同時打開一個表 在一個工作區(qū)中打開其它的表時 原來在該工作區(qū)中打開的表自動關閉 若要同時使用多個表 就要使用多個工作區(qū) 在VisualFoxPro6 0中 最多可以有32767個工作區(qū) 在應用程序中工作區(qū)一般通過使用該工作區(qū)的表的別名來標識 表別名是表的另一個名稱 它可以引用在工作區(qū)中打開的表 2 數據工作期是當前動態(tài)工作環(huán)境的一種表示 每個數據工作期包含有自己的一組工作區(qū) 這些工作區(qū)含有打開的表 表索引和關系 60 二 在 數據工作期 窗口查看工作區(qū)從 窗口 菜單選擇 數據工作期 命令或在 命令 窗口中鍵入SET命令VisualFoxPro6 0打開如圖3 29所示的 數據工作期 窗口 并顯示在當前數據工作期中的工作區(qū)中打開的表的別名 三 在工作區(qū)中打開 關閉表1 在工作區(qū)中打開表 1 在 數據工作期 窗口中 單擊 打開 按鈕 出現(xiàn)一個 打開 對話框 2 在 打開 對話框中選擇要打開的表 單擊 確定 按鈕 2 在工作區(qū)中關閉表在 數據工作期 窗口中選定要關閉的表別名 然后選擇 關閉 當在同一工作區(qū)中打開其他表時 可以自動關閉已打開的表 61 四 使用表別名別名是指定給一個表或表達式中某項的另一個名稱 通常用來縮短在代碼中連續(xù)引用的名稱 表的別名是用來引用工作區(qū)中打開的表的 當打開一個表時 VisualFoxPro6 0自動將表名作為缺省的別名 也可以另外指定一個別名 當指定的別名發(fā)生沖突時 VisualFoxPro6 0將自動給這個表創(chuàng)建一個別名 可以通過別名和工作區(qū)引用一個表 1 創(chuàng)建用戶自定義別名在打開表一個時 用戶可以為它指定一個自定義的別名 例如 可以使用以下命令 在0號工作區(qū)中打開表文件 學生 dbf 并為它指定一個別名 xs SELECT0USE學生ALIASxs然后使用別名 xs 引用打開的表 注意 別名最多可以包括254個字母 數字或下劃線 但首字符必須是字母或下劃線 如果所提供的別名包含不支持的字符 則VisualFoxPro6 0會自動創(chuàng)建一個別名 62 2 使用VisualFoxPro6 0指定的別名如果同時在多個工作區(qū)中打開同一個表 并且在每個工作區(qū)中打開該表時沒有指定別名 或者別名發(fā)生沖突 VFP6 0將自動為表指定一個別在前10個工作區(qū)中指定的默認別名是工作區(qū)字母A到J 在工作區(qū)11到32767中指定的別名是W11到W32767 您可以象使用任何默認別名或用戶自定義別名那樣 使用這些VisualFoxPro6 0指定的別名來引用在一個工作區(qū)中打開的表 3 使用別名選擇工作區(qū)使用SELECT命令選擇當前工作區(qū) 如已在一個工作區(qū)中打開了學生 dbf并指定默認別名xs 可以使用 SELECTxs命令選擇到這個工作區(qū)中 4 引用在其他工作區(qū)中打開的表在別名后加上點號分隔符 或 操作符 然后再接字段名 可以引用其他工作區(qū)中的字段 例如 可以使用 學生 學號訪問其他工作區(qū)中打開的 學生 表的 學號 字段 如果要引用的表是用別名打開的 則也可以使用別名 例如 如果 學生 表是使用別名 xs 打開的 那么 可以使用 xs 姓名引用表中的 姓名 字段 63 3 3設計數據庫 VisualFoxPro6 0中的表和傳統(tǒng)數據庫的表是一致的 表以記錄和字段的形式存儲數據 但數據庫已不用于存儲數據 而是用于存儲數據庫表的屬性 組織關聯(lián)表和視圖 創(chuàng)建存儲過程 數據庫是按特定的順序組織起來的相關信息的一個集合 在數據庫應用系統(tǒng)中 數據庫的設計是一項非常重要的工作 數據庫性能的優(yōu)劣將直接影響到最終應用系統(tǒng)的性能 經過長期的摸索 人們提出了各種數據庫設計方法以及各種設計準則和規(guī)程 這就是規(guī)范化設計方案 設計數據庫一般包括以下幾個基本過程 1 分析數據需求2 確定需要的表3 確定所需字段4 確定關系5 完善設計 64 3 3 1分析數據需求 明確數據庫的使用目的是設計數據庫的第一步 也就是說你需要從數據庫中得到哪些信息 明確目的之后 就可以確定需要保存那些主題的信息 表 以及每個主題需要保存哪些信息 字段 分析數據需求時要注意以下兩點 一是要強調用戶的參與 和數據庫的使用人員多交換意見 并根據用戶提出的要求 推敲數據庫需要回答哪些問題 二是要充分考慮到數據庫可能的擴充和改變 怎樣才能提高數據庫的靈活性 也只有創(chuàng)建一個設計靈活的數據庫 才能保證所建立的應用程序具有較高的性能 例如 某校的教務部門要搞一個 教學管理 數據庫 存放教與學兩方面的信息 也就是有關學生的情況 教師的情況 課程安排以及考試成績等方面的信息 要求從中可以查出每個學生各門課程的成績 或者某門課程由哪位教師擔任 哪些學生選修了這門課 以及這門課程的考試成績等數據信息 65 3 3 2確定數據庫表 根據用戶的需要及從數據庫得到的內容通過分析歸納來確定需要哪些表 并把需要的信息分門別類地歸納到相應的表中 理解關系型數據庫設計過程的關鍵在于理解關系型數據庫管理系統(tǒng)保存數據的方式 為了高效準確地提供信息 應該將不同主題的信息存儲在不同的表中 每個主題就是一張表 例如 我們根據上面提出的 教學管理 數據庫的要求 來考慮這個數據庫需要哪些表 首先 為了得到學生和教師的信息 應該為學生和教師各建一個表 我們把這兩個表分別叫作 學生 表和 教員 表 其中存放有關學生和教師的基本情況 當然 還要有一個存放各門課程的考試成績的表 從中可以了解各個學生的學習成績 我們就把這個表叫作 成績 表 為了了解各門課程的情況 設置一個 課程 表 為了了解各專業(yè)的情況并能按專業(yè)查殉學生的信息 再設置一個 專業(yè) 表 66 3 3 3確定所需字段 在確定表所需字段時應遵循以下規(guī)則 一 字段唯一性描述不同主題的字段應屬于不同的表 表中不應有與表的內容無關的數據 不應在多個表中重復同樣信息 如果相同信息出現(xiàn)多次 不僅浪費存儲空間 而且會增加出錯的可能性 二 字段無關性這一規(guī)則防止對表中數據作修改時出現(xiàn)錯誤 也就是在不影響其他字段的情況下 必須能夠對任意字段進行修改 像一些可以通過對其它字段的推導或計算得到的數據 就不必存儲到表中 例如 只要記錄學生的 生日 就可計算出 年齡 同樣 總成績 通常是根據 平時成績 期中成績 和 期末成績 計算出來的 因此 無需保留 年齡 和 總成績 因為要看結果時可用VisualFoxPro6 0進行計算 67 三 主關鍵字數據庫中的每個表都必須具有一個標識符可以唯一確定存儲在表中的每個記錄 這種唯一標識每個記錄的信息稱作表的主關鍵字 主關鍵字不允許有重復值和NULL值 主關鍵字由表中一個或多個字段構成 例如 為了能夠在 學生 表中標識不同的學生 可用 學號 作為主關鍵字 四 外部關鍵字在表中應該有與其它表相鏈接的信息 如 學號 專業(yè) 課程代號 等字段 這些用于 鏈接 的字段就是外部關鍵字 當在VisualFoxPro6 0中定義表時 將主關鍵字與外部關鍵字鏈接起來 以告訴VisualFoxPro6 0如何在需要從多個表中獲取信息時自動地鏈接數據 68 五 收集所需的全部信息應全面檢查所需的表單和報表 重新思考需要VisualFoxPro6 0回答的問題 確保所需的數據信息都包括在所設計的表中 或者可由這些表中的數據計算出來 六 以最小的邏輯單位存貯信息如果你把多個信息放入一個字段中 以后要獲取單獨的信息就會很困難 應盡量把信息分解成比較小的邏輯單位 例如 為學生姓名 學號和性別創(chuàng)建不同的字段 69 學生 表的字段 學號姓名性別生日專業(yè)入學成績貸款否照片簡歷身份證籍貫地址電話特長獎勵處分病史 教員 表的字段 教師代號姓名性別生日職稱 課程 表的字段 課程代號課程名周學時學分 成績 表的字段 學號課程代號平時期中期末 專業(yè) 表的字段 專業(yè)負責人研究方向 根據以上的原則 我們?yōu)?教學管理 數據庫的各個表設置如下的字段 70 3 3 4確定關系 到目前為止 已經把信息分成了各個表 在每個表中可存儲各自的數據 可是 這些表是孤立的 還需要在這些表之間定義關系 VisualFoxPro6 0將利用這些關系來查找數據庫中有聯(lián)系的信息 并將它們重新組合 得到有意義的信息 VisualFoxPro6 0將表之間復雜多樣的關系歸結為一對一 一對多和多對多的關系 一 一對一關系在一對一關系中 表一的一個記錄在表二中只能對應一個記錄 而表二中的一個記錄在表一中也只能有一個記錄與之對應 兩表間的一對一關系不經常使用 因為在許多情況下 可將兩個表中的信息合并成一個表 如果在數據庫中存在一對一關系 那就要考慮一下是不是能把這些信息合并到一個表中 也可能出于某種原因不想合并 比如 有些信息是不常用的 或者某些信息是機密的 不應給每個人看到 例如 學生 表中保留的一些特殊信息 病歷資料或受到的獎勵及處分等 因為這些信息不需要經常查看 或者只能由學校的某些授權單位查看 所以 我們可創(chuàng)建一個擁有 學號 主關鍵字的單獨表 原先的 學生 表與這張表之間的關系是一一對應的 71 二 一對多關系一對多關系是關系型數據庫中最普遍的關系 在一對多關系中 對于第一張表中的任意一個記錄 在第二張表中可以有多個記錄與之對應 但反過來第二張表中的任意記錄 在第一張表中只有一個記錄與之對應 例如 專業(yè) 表和 學生 表之間就是一對多的關系 因為一個學生只能有一個專業(yè) 不考慮第二學歷的情況 而每個專業(yè)則有多個學生 還有 學生 表和 成績 表之間也是一對多的關系 每個學生可以有多門課程的成績 但一個成績只能屬于一個學生 同樣 課程 表和 成績 表之間也是一對多的關系 每門課程可以有多個學生的成績 但一個成績只能屬于一個學生某門課程 在一對多關系中 位于 一 端的表稱為父表 和父表有關系的那個表為子表 父表也稱為主表或主控表 子表又稱為相關表或受控表 在一對多關系中 位于 一 端的表中用于建立關系的字段必須是主關鍵字字段 而位于 多 端的表中用于建立關系的字段是外部關鍵字字段 三 多對多關系在多對多關系中 表一的一個記錄在表二中可以對應多個記錄 同樣表二中的一個記錄在表一中也可以對應多個記錄 在具有多對多關系的兩個表之間 如果將一個表的主關鍵字段添加到另一個表中 那么就會出現(xiàn)同一信息保存多次的情況 這樣就不利于信息的管理和維護 因此 在設計數據庫時 應將多對多關系分解成兩個一對多關系 其方法就是在具有多對多關系的兩個表之間創(chuàng)建第三個表 在VisualFoxPro6 0中 把用于分解多對多關系的表稱為 紐帶表 因為它在兩表之間起著紐帶的作用 可以把兩個表的主關鍵字都放在這個紐帶表中 72 紐帶表可能只包含了它所連接的兩個表的主關鍵字 也可以包含其它信息 在紐帶表中 兩個字段連在一起就能使每個記錄具有唯一值 例如 學生 表和 課程 表之間就是多對多的關系 每門課程可以有多個學生選修 同樣一個學生也可以選修多門課程 而 成績 表就是 學生 表和 課程 表之間的 紐帶表 通過 成績 表把 學生 表和 課程 表聯(lián)系起來 比如 通過 學生 表和 成績 表

溫馨提示

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

評論

0/150

提交評論