VFP第二章表的創(chuàng)建和使用.ppt_第1頁
VFP第二章表的創(chuàng)建和使用.ppt_第2頁
VFP第二章表的創(chuàng)建和使用.ppt_第3頁
VFP第二章表的創(chuàng)建和使用.ppt_第4頁
VFP第二章表的創(chuàng)建和使用.ppt_第5頁
已閱讀5頁,還剩65頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1,表的創(chuàng)建和使用,第二章,2,【本章要點】,表的概念 表結(jié)構(gòu)的創(chuàng)建和修改 表記錄的添加、瀏覽、刪除 記錄指針的概念、定位 數(shù)據(jù)的修改、篩選 索引的概念、創(chuàng)建和使用,3,2.1 表,4,2.1.1 表的概念,表(Table):是指存放在磁盤文件中的一張二維表。一張表保存為一個表文件(.DBF)。 字段(Field):表中的一列。字段規(guī)定了數(shù)據(jù)的特征。 記錄(Record):表的一行。記錄是多個字段的集合。同一個表的每一個記錄都有相同的字段。 表結(jié)構(gòu):存儲表的記錄的一個公共的結(jié)構(gòu)。,5,字段(fields),記錄 (records),6,2.1.2 字段的基本屬性,字段名(Field Name) 用以標識一個字段的名字。 字段的數(shù)據(jù)類型(Type) 不同的數(shù)據(jù)類型的表示和運算的方法不一樣。 VFP提供了13種字段的數(shù)據(jù)類型。 P.21(表2-1)。 字段寬度(Width) 指該字段所能容納數(shù)據(jù)的最大字節(jié)數(shù)。,8,2.1.2 字段的基本屬性,小數(shù)位數(shù)(Decimal) 對于數(shù)值型、浮點型和雙精度型的字段可以指定其小數(shù)的位數(shù)。 字段寬度=整數(shù)部分寬度+小數(shù)點1位+小數(shù)位數(shù) 如果小數(shù)位數(shù)不為0,則小數(shù)位數(shù)必須比整個字段寬度至少小2。 空值支持(Null) 空值是用來指示記錄中的一個字段“有或沒有”數(shù)據(jù)的標識。 Null不是一種數(shù)據(jù)類型或一個值,確切地講,它是用來指示數(shù)據(jù)存在或不存在的一種屬性。,9,2.2 表結(jié)構(gòu)的創(chuàng)建和修改,10,2.2.1 表結(jié)構(gòu)的創(chuàng)建,創(chuàng)建表結(jié)構(gòu)的方式有兩種: 表設計器(Table Designer)方式 SQL命令方式,11,一、用“表設計器”創(chuàng)建表結(jié)構(gòu),通過菜單或工具欄打開“表設計器” CREATE CREATE ? CREARE 表文件名 在項目中新建表,12,二、用CREATE TABLE-SQL命 令創(chuàng)建表結(jié)構(gòu),格式是: CREATE TABLE|DBF 表文件名(字段名1 字段類型(字段寬度,小數(shù)位數(shù)),字段名2 字段類型(字段寬度,小數(shù)位數(shù))) 例如: CREATE TABLE XS2(xh C(6),xm C(6),xb C(2),字段名,字段類型,字段寬度,13,2.2.2 表結(jié)構(gòu)的修改,修改表結(jié)構(gòu)的方式有兩種: 表設計器方式 ALTER TABLE 命令方式,14,一、用“表設計器”修改表結(jié)構(gòu),MODIFY STRUCTURE 命令 在項目中修改表結(jié)構(gòu),15,二、用 ALTER TABLE 命令修 改表結(jié)構(gòu),添加字段:ADD COLUMN子句。 例如,把“BJMC”(班級名稱)字段添加到XS表中: ALTER TABLE XS ADD COLUMN BJMC C(12) 重命名字段:RENAME COLUMN 子句。 例如,重新命名XS表的“BJMC”字段為“BJ”: ALTER TABLE XS RENAME COLUMN BJMC TO BJ 刪除字段:DROPCOLUMN子句。 例如,從XS表中刪掉“BJ”字段: ALTER TABLE XS DROP COLUMN BJ,16,2.3 表記錄的處理,17,2.3.1 記錄的追加,追加記錄的方式主要有四種: 一. 立即輸入記錄 二. 在瀏覽狀態(tài)下向表中追加記錄 三. 使用INSERT SQL命令追加記錄 四. 從其他表中追加記錄,18,用 INSERT SQL命令追加記錄,INSERTSQL命令的一般格式是: INSERT INTO 表名 (字段1 ,字段2,); VALUES(表達式1,表達式2,) 例如,向XS表中插入一個新記錄: INSERT INTO XS(XH,XM,XB,XIMING); VALUE(” 96010057”,”曹曉燕”,”女”,”文”),19,從其他表中追加記錄,從另一個DBF文件中追加記錄到當前表中 APPEND FROM 另一個表文件名 從一個TXT文本文件中追加記錄到當前表中 APPEND FROM TXT文件名 SDF,20,2.3.2 記錄的瀏覽,BROWSE命令 瀏覽窗口 定制瀏覽窗口 篩選瀏覽的字段,21,2.3.3 記錄的定位,記錄指針的概念 記錄的定位方式 記錄定位的實現(xiàn),22,一、記錄指針的概念,文件頭,(包含表結(jié)構(gòu)等信息),第1號記錄,第2號記錄,第n號記錄,記錄指針,記錄開始標志,記錄結(jié)束標志,23,幾個概念,三個控制標志:記錄的開始標志、記錄指針標志、記錄的結(jié)束標志 記錄號 當前記錄,24,二、記錄的定位方式,1、指針的絕對移動:把指針移動到指定的位置。 2、指針的相對移動:指從當前位置開始,相對于當前記錄向前或向后移動若干個記錄位置。 3、有條件的記錄指針移動:指讓計算機按照一定的條件自動地在表的某個指定范圍中查找符合該條件的記錄,如果找到符合條件的記錄,則把指針移動到該記錄上,否則,指針將移動到整個表或表的指定范圍的末尾。,25,三、記錄定位的實現(xiàn),1、在瀏覽狀態(tài)下 2、使用命令 絕對定位命令:GO/GOTO/n 相對定位命令:SKIP n 條件定位命令:LOCATE(忽略) 快速定位命令:SEEK,26,三、記錄定位的實現(xiàn),在“作用范圍” 的四個選項: “All”:表中的全部記錄; “Next”:從當前記錄開始的n個記錄,個數(shù)在其右邊的文本框中輸入; “Record”:指定的記錄,記錄號在其右邊的文本框中輸入; “Rest”:當前記錄后的所有記錄。,1. ,文件頭 首記錄 記錄 2 : : 當前記錄 : : RECORD n 記錄 n : : 末記錄 文件尾,ALL,NEXT n,REST,28,2.3.4 記錄的修改,一、在瀏覽窗口中編輯修改記錄 二、批量記錄的修改 1、使用“表”菜單中的“替換字段”項 2、使用命令批量修改記錄,29,修改記錄字段值的的命令有兩個:,REPLACE命令(忽略) UPDATE-SQL命令 語法: UPDATE 表名 SET 字段1=表達式1 ,字段2 = 表達式2 . WHERE 條件表達式,30,2.3.5 記錄的刪除,刪除表中的記錄要分兩個步驟來實現(xiàn): (1)標記要刪除的記錄; (2)徹底刪除帶刪除標記的記錄。,31,一、標記要刪除的記錄,1、界面方式的刪除 (1)在表的瀏覽窗口中刪除個別記錄 (2)在表的某一范圍內(nèi)刪除一組符合指定條件的記錄,32,2、命令方式的刪除 (1)DELETE命令 DELETE 范圍 FOR 條件表達式 范圍: ALL(所有記錄) REST(從當前記錄開始到記錄結(jié)束) RECORD n(第n號記錄) NEXT n(從當前記錄開始的n條記錄) 默認范圍:當前記錄 FOR 條件表達式:刪除符合條件的記錄 例如: use xs delete delete next 3 delete all for xs.xb=男 delete all,33,2、命令方式的刪除 (2)DELETE-SQL命令 DELETE FROM 表名 WHERE 過濾條件表達式 例如: DELETE FROM xs WHERE xs.xb=男 DELETE FROM xs,34,二、對帶刪除標記記錄的處理,1、測試刪除標記 DELETE()函數(shù) 2、恢復刪除 3、徹底刪除 4、控制其他命令對帶刪除標記的記錄的訪問 SET DELETED ON 使命令忽略標有刪除標記的記錄 SET DELETED OFF (默認值)命令可以訪問標有刪除標記的記錄,35,2.3.6 篩選記錄,是指從表中選出部分滿足指定條件的記錄來進行瀏覽或其他操作,不滿足條件的記錄則被“隱含”起來。,36,一. 通過界面操作篩選記錄,在“工作區(qū)屬性”對話框中,在“數(shù)據(jù)過濾器”文本框中輸入篩選條件表達式。,37,二. 使用命令篩選記錄,SET FILTER TO 條件表達式 例如,用以下命令篩選出所有男學生: SET FILTER TO XB=“男” 去掉記錄篩選條件的命令: SET FILTER TO 另外在許多命令的用法中,可以包含F(xiàn)OR子句,使命令在執(zhí)行時進行臨時性篩選。,38,2.1.1 篩選字段,篩選字段是選取表的部分列。,39,一. 通過界面操作篩選字段,“工作區(qū)屬性”對話框中打開“字段篩選器”,40,二、使用命令篩選字段,SET FIELDS ON 指定只能訪問出現(xiàn)在字段列表中的字段。 SET FIELDS OFF (默認值)指定可以訪問當前表中的所有字段。 SET FIELDS TO 字段1 ,字段2. 指定當前表中可訪問的字段的名稱。 SET FIELDS TO ALL 允許訪問當前表中的所有字段。,41,2.4 表的使用,表打開以后才能進行操作,實際上打開表就是把表從磁盤調(diào)入內(nèi)存中某一個工作區(qū)。 VFP提供了32767個工作區(qū),編號從132767。,42,2.4.1 工作區(qū),一、工作區(qū)的概念 工作區(qū)是指用以標識一個打開的表的區(qū)域。 每個工作區(qū)有一個編號。 每個工作區(qū)在某一時刻只能打開一個表。 在同一個工作區(qū)打開另外一個表時,以前打開的表會自動關(guān)閉。,內(nèi)存,1,2,3,43,二、工作區(qū)表的別名,表的別名是對工作區(qū)中打開的表的一個臨時標識。 定義表的別名 (1)在打開表時指定別名 USE 表文件名 ALIAS 別名 (2)在打開表時,如果沒有自定義別名,則系統(tǒng)默認以表文件名作為別名。 (3)前10個工作區(qū)除了使用110為編號外,還可以依次使用AJ 十個字母來表示,后者也是別名。,內(nèi)存,1 xs,2 teacher,3,44,三、當前工作區(qū),1、概念 VFP正在使用的工作區(qū)稱為當前工作區(qū),即默認的工作區(qū)。 2、當前工作區(qū)的區(qū)號和別名 (1)用函數(shù)SELECT(0)測試當前工作區(qū)的區(qū)號. (2)用省略參數(shù)的ALIAS()函數(shù)取得當前工作區(qū)表的別名。 (3)在主窗口的狀態(tài)行中查看當前工作區(qū)中表的別名。,內(nèi)存,1 xs,2 teacher,3,45,三、當前工作區(qū),3、設置當前工作區(qū) (1)在“數(shù)據(jù)工作期”窗口中設置 (2)使用SELECT命令設置 SELECT 工作區(qū)號|別名 4、處理非當前工作區(qū)中的表 方法有二: (1)把其他工作區(qū)設成當前工作區(qū); (2)在命令中指定工作區(qū)。其一般格式為: 命令 IN 工作區(qū)號|別名 (P31例) 5、SELECT 0 命令用來選定當前尚未使用的最小區(qū)號。,內(nèi)存,1 xs,2 teacher,3,46,2.4.2 表的打開和關(guān)閉,表只有在被打開時,表中的數(shù)據(jù)才能被訪問。 每個打開的表占用一個工作區(qū)。 一個工作區(qū)只能打開一個表。 但一個表可以同時被打開在多個工作區(qū)中。 打開的表可以被關(guān)閉。,47,一. 打開表,1.通過界面操作 使用“文件”菜單或工具條; 在“數(shù)據(jù)工作期”窗口中打開(占用一未被使用的工作區(qū)); 用USE ?命令打開“使用”窗口,在該窗口中打開; 2.使用命令 USE 表文件名 IN 工作區(qū)號|別名 3.多次打開一個表 USE 表文件名 IN 工作區(qū)號|別名 AGAIN,48,二. 關(guān)閉表,1.通過界面操作 在“數(shù)據(jù)工作期”窗口中關(guān)閉; 2.使用命令 (1)關(guān)閉當前工作區(qū)中的表:USE (2)關(guān)閉非當前工作區(qū)中的表的命令: USE IN 工作區(qū)號|別名 或者 SELECT 工作區(qū)號|別名 USE (3)關(guān)閉所有工作區(qū)中的表的命令: CLOSE ALL 或者 CLOSE DATABASES ALL 或者 CLOSE TABLES ALL (4)在退出VFP系統(tǒng)時,所有的表都將被關(guān)閉。,49,2.4.3 表的獨占與共享使用,一個表同時被多個用戶訪問的情況,就是表的共享使用。反之當一個表只能被一個用戶打開時,稱為表的獨占使用。,50,一. 設置獨占與共享的默認狀態(tài),1、使用“選項對話框”“數(shù)據(jù)”設置 2、使用SET EXCLUSIVE命令設置: 設置“共享”為默認打開方式 SET EXCLUSIVE OFF 設置“獨占”為默認打開方式 SET EXCLUSIVE ON,51,二. 強行以一種方式打開表,1、在“打開”窗口中設置 2、在用USE命令打開表時,加 “SHARED”(共享)或“EXCLUSIVE”(獨占)子句來指定打開方式 (1)以共享方式打開表 USE 表文件名 SHARED (2)以獨占方式打開表 USE 表文件名 EXCLUSIVE,52,2.4.4 緩沖訪問表中的數(shù)據(jù),一、數(shù)據(jù)緩沖 數(shù)據(jù)緩沖是VFP在多用戶環(huán)境下,用以保護對表記錄所做的數(shù)據(jù)更新以及數(shù)據(jù)維護操作的一種技術(shù)。它為啟用數(shù)據(jù)緩沖的表在內(nèi)存中開辟一個緩沖區(qū),對表的一個或多個記錄的修改可以先保存在緩沖區(qū)中,用戶可以決定是否將緩沖區(qū)中的數(shù)據(jù)更新表文件。在更新表文件時,緩沖區(qū)自動測試、鎖定以及解鎖記錄或表。,53,1、緩沖的類型有兩種:記錄緩沖和表緩沖。 (1)記錄緩沖(也叫行緩沖)僅對表的一個記錄開設緩沖區(qū),當記錄指針移動時或者關(guān)閉表時,緩沖區(qū)將自動更新表中相應的記錄。若一次只對一個記錄進行訪問、修改或?qū)懖僮鳎瑧x擇記錄緩沖。 (2)表緩沖對整個表實施緩沖,僅當發(fā)出更新表的命令或關(guān)閉表時更新表。若要對多個記錄的更新使用緩沖,應選擇表緩沖。,54,55,(1)保守式緩沖。在多用戶環(huán)境中防止一個用戶訪問另一個用戶正在修改的記錄或表。 (2)開放式緩沖。記錄只在被寫入時加鎖。 故有四種緩沖方式: (1)保守式行緩沖 (2)開放式行緩沖 (3)保守式表緩沖 (4)開放式表緩沖,2、緩沖的兩種鎖定方式,56,(1)工作區(qū)屬性對話框. (2)使用CURSORSETPROP()函數(shù). 格式: CURSORSETPROP(Buffering,緩沖類型值,工作區(qū)|別名) 緩沖類型值有:1為無緩沖 2為保守式行緩沖3為開放式行緩沖 4為保守式表緩沖 5為開放式表緩沖,3、設置表的數(shù)據(jù)緩沖,57,(1)CURVAL()函數(shù)和OLDVAL()函數(shù) (2)GETFLDSTATE()函數(shù) 5.執(zhí)行和放棄對緩沖數(shù)據(jù)的更改 (1)用TABLEUPDATE()函數(shù)執(zhí)行對緩沖行、緩沖表或臨時表的修改。 (2)用TABLEREVERT()函數(shù)放棄對緩沖行、緩沖表或臨時表的修改。,4、檢測緩沖區(qū)中數(shù)據(jù)是否與數(shù)據(jù)源表一致,58,2.5 表的索引,59,2.5.1 記錄的順序,一、物理順序 按記錄輸入的時間順序存放,并用記錄號予以標識,除非有記錄的刪除和插入,否則表中的物理順序總是不變的。 二、邏輯順序 對記錄按某個字段值或某些字段值排序。,60,2.5.2 索引的幾個概念,一、索引(Index) 索引實際上是一種排序,但是它不改變數(shù)據(jù)表中的物理順序,而是另外建立一個記錄號列表。而表的索引指明由索引關(guān)鍵字的大小決定的記錄排列的順序(記錄的邏輯順序)。 表一旦按索引表達式建立索引后,就產(chǎn)生了一個相應的索引文件,其文件名與表名相同,但擴展名不同。 注意:雖然排序和索引都以增加一個文件為代價,但索引文件只包含關(guān)鍵字和記錄號兩個字段,比原來的表要小的多。索引起作用后,增加或修改表的記錄時,索引文件會自動更新,所以索引的應用原比排序廣泛。 1、索引關(guān)鍵字 2、索引表達式的構(gòu)成 3、索引標識(TAG),61,二. 索引的類型,1. 主索引(Primary Indexes) 組成主索引關(guān)鍵字的字段或表達式,在表的所有記錄中不能有重復的值的索引。 每張表只能創(chuàng)建一個主索引。 自由表不能建立主索引。 2. 候選索引(Candidate Indexes) 在指定的關(guān)鍵字段或表達式中不允許有重復值的索引。 一張表中可以建立多個候選索引。 候選索引可用于數(shù)據(jù)庫表和自由表。,62,二. 索引的類型,3. 普通索引(Regular Indexes) 允許關(guān)鍵字段或表達式的值出現(xiàn)重復。 4. 唯一索引(Unique Indexes) 索引的關(guān)鍵字段或表達式在表中可以有重復值,但在索引對照表中,重復的值僅存儲一次,而忽略其他的相同的值。,64,三. 索引文件的種類,1. 索引文件 保存索引信息的文件。 2. 索引文件的種類 (1)結(jié)構(gòu)復合索引文件(.cdx) 結(jié)構(gòu)復合索引文件與對應的表文件的主文件名相同。 與表同步打開、更新和關(guān)閉。 (2)非結(jié)構(gòu)復合索引文件(.cdx) 非結(jié)構(gòu)復合索引文件名由用戶給出。 不隨表的打開而自動打開。 (3)獨立索引文件(.idx) 單索引文件只包含一個索引,這種類型是為了與FOXBASE+開發(fā)的應用程序相兼容而保留的。但若將它定義為壓縮的,將不能被FOXBASE+使用。 獨立索引不會隨表的打開而自動打開。,65,2.5.3 結(jié)構(gòu)復合索引文件的創(chuàng)建,一、用“表設計器”創(chuàng)建 二、 用INDEX命令創(chuàng)建 INDEX ON 索引表達式 TAG 索引標識名 FOR 條件表達式 ASC

溫馨提示

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

評論

0/150

提交評論