第03章 數(shù)據(jù)表的創(chuàng)建和操作_第1頁(yè)
第03章 數(shù)據(jù)表的創(chuàng)建和操作_第2頁(yè)
第03章 數(shù)據(jù)表的創(chuàng)建和操作_第3頁(yè)
第03章 數(shù)據(jù)表的創(chuàng)建和操作_第4頁(yè)
第03章 數(shù)據(jù)表的創(chuàng)建和操作_第5頁(yè)
已閱讀5頁(yè),還剩110頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、2021-12-142/73 1.表結(jié)構(gòu)的概念表結(jié)構(gòu)的概念 問(wèn)題:?jiǎn)栴}:1)如何將學(xué)生的信息存入電腦中?)如何將學(xué)生的信息存入電腦中?2)如何能夠快速存取學(xué)生的信息?)如何能夠快速存取學(xué)生的信息??jī)煞N方案:兩種方案:高高效效Student.txtStudent.dbf有有結(jié)構(gòu)結(jié)構(gòu)低低效效無(wú)無(wú)結(jié)構(gòu)結(jié)構(gòu)DBMSStudent.dbf字段字段記錄記錄字段屬性字段屬性1.字段名字段名字段名用來(lái)標(biāo)識(shí)字段的名稱,它由字母或漢字開(kāi)字段名用來(lái)標(biāo)識(shí)字段的名稱,它由字母或漢字開(kāi)頭,可由字母、數(shù)字、下劃線或漢字組成。頭,可由字母、數(shù)字、下劃線或漢字組成。合法:姓名、編號(hào)、合法:姓名、編號(hào)、xm、gz_2008 不合

2、法:不合法:2008學(xué)生、成績(jī)學(xué)生、成績(jī)! 字段名的取名要注意三點(diǎn):字段名的取名要注意三點(diǎn):1)語(yǔ)義清楚)語(yǔ)義清楚 2)簡(jiǎn)潔)簡(jiǎn)潔 3)字段不可分)字段不可分2. 字段類(lèi)型字段類(lèi)型字段類(lèi)型字段類(lèi)型定義了在該字段空間上存儲(chǔ)的數(shù)據(jù)的類(lèi)型定義了在該字段空間上存儲(chǔ)的數(shù)據(jù)的類(lèi)型 。它決定。它決定了數(shù)據(jù)存儲(chǔ)形式和數(shù)據(jù)操作方式。了數(shù)據(jù)存儲(chǔ)形式和數(shù)據(jù)操作方式。3. 字段寬度字段寬度字段寬度字段寬度表示字段在計(jì)算機(jī)內(nèi)所占存儲(chǔ)空間的大小表示字段在計(jì)算機(jī)內(nèi)所占存儲(chǔ)空間的大小。字段寬度的選取應(yīng)以該字段最大可能的輸入值為準(zhǔn)。字段寬度的選取應(yīng)以該字段最大可能的輸入值為準(zhǔn)。 有些類(lèi)型的字段寬度是可以由用戶在定義表結(jié)構(gòu)有些類(lèi)

3、型的字段寬度是可以由用戶在定義表結(jié)構(gòu)時(shí)定義和修改的,如字符型字段,寬度在時(shí)定義和修改的,如字符型字段,寬度在1254之間;之間;數(shù)值型字段,寬度是包含了正負(fù)號(hào)、小數(shù)點(diǎn)和數(shù)字在內(nèi)數(shù)值型字段,寬度是包含了正負(fù)號(hào)、小數(shù)點(diǎn)和數(shù)字在內(nèi)的的120之間。但大部分字段的寬度是由之間。但大部分字段的寬度是由VFP固定了的,固定了的,如日期型為如日期型為8個(gè)字節(jié),邏輯型為個(gè)字節(jié),邏輯型為1個(gè)字節(jié),備注型和通用個(gè)字節(jié),備注型和通用型為型為4個(gè)字節(jié)等。個(gè)字節(jié)等。 4. 小數(shù)位數(shù)小數(shù)位數(shù)只有數(shù)值型、雙精度型和浮動(dòng)型字段才可以設(shè)置小只有數(shù)值型、雙精度型和浮動(dòng)型字段才可以設(shè)置小數(shù)位數(shù)。要注意的是小數(shù)點(diǎn)以及正負(fù)號(hào)均占用一位。

4、數(shù)位數(shù)。要注意的是小數(shù)點(diǎn)以及正負(fù)號(hào)均占用一位。 File(文件)菜單(文件)菜單 新建對(duì)話框新建對(duì)話框 創(chuàng)建對(duì)話框創(chuàng)建對(duì)話框?yàn)榱耸褂脩粼趧?chuàng)建新文件時(shí),讓新文件都保存在磁為了使用戶在創(chuàng)建新文件時(shí),讓新文件都保存在磁盤(pán)的某個(gè)固定位置,可以設(shè)置文件的默認(rèn)保存位置盤(pán)的某個(gè)固定位置,可以設(shè)置文件的默認(rèn)保存位置 。1.命令方式:命令方式:SET DEFAULT TO 路徑路徑2.如:如: SET DEFAULT TO C:VFP2. 菜單方式:選擇菜單菜單方式:選擇菜單“Tools” 選擇選擇“Options” 定義字段屬性(表結(jié)構(gòu))定義字段屬性(表結(jié)構(gòu))3.1.3 輸入數(shù)據(jù)輸入數(shù)據(jù)兩種編輯模式:兩種編輯

5、模式:1)瀏覽模式)瀏覽模式兩種編輯模式:兩種編輯模式:2)編輯模式)編輯模式如果是打開(kāi)表再次輸入新記錄,則必須選擇如果是打開(kāi)表再次輸入新記錄,則必須選擇“添加添加模式模式”數(shù)據(jù)輸入要點(diǎn)數(shù)據(jù)輸入要點(diǎn) 1.輸入時(shí),有一個(gè)輸入時(shí),有一個(gè) “I”型光標(biāo)在空白字段中閃爍,型光標(biāo)在空白字段中閃爍,表明當(dāng)前是對(duì)該字段的值進(jìn)行輸入表明當(dāng)前是對(duì)該字段的值進(jìn)行輸入 。2.邏輯型字段的輸入只能接受單個(gè)字母,用邏輯型字段的輸入只能接受單個(gè)字母,用“T”表表示真、用示真、用“F”表示假。不區(qū)分大小寫(xiě)表示假。不區(qū)分大小寫(xiě) 。3.日期型數(shù)據(jù)的輸入必須與日期格式相符,默認(rèn)按日期型數(shù)據(jù)的輸入必須與日期格式相符,默認(rèn)按美國(guó)日期

6、格式美國(guó)日期格式mm/dd/yy(月(月/日日/年)輸入。年)輸入。 數(shù)據(jù)輸入要點(diǎn)數(shù)據(jù)輸入要點(diǎn)4.備注字段數(shù)據(jù)的輸入:備注字段數(shù)據(jù)的輸入:l 在字段的在字段的“memo”上雙擊鼠標(biāo)或按下上雙擊鼠標(biāo)或按下Ctrl+PgDn都能打開(kāi)備注型字段的編輯窗口都能打開(kāi)備注型字段的編輯窗口l內(nèi)容只能是文本內(nèi)容只能是文本l內(nèi)容真正存放在與表同名的備注型文件內(nèi)容真正存放在與表同名的備注型文件.fpt中中 l某記錄的備注型字段非空時(shí),其字段標(biāo)志首字母將某記錄的備注型字段非空時(shí),其字段標(biāo)志首字母將以大寫(xiě)以大寫(xiě)“M”顯示,否則用小寫(xiě)顯示,否則用小寫(xiě)“m”表示表示數(shù)據(jù)輸入要點(diǎn)數(shù)據(jù)輸入要點(diǎn)5.通用型字段數(shù)據(jù)的輸入:通用型

7、字段數(shù)據(jù)的輸入:l通用型字段是用來(lái)存儲(chǔ)諸如圖形、圖象、聲音以及通用型字段是用來(lái)存儲(chǔ)諸如圖形、圖象、聲音以及動(dòng)畫(huà)等多媒體數(shù)據(jù),或者電子表格、字處理文檔等動(dòng)畫(huà)等多媒體數(shù)據(jù),或者電子表格、字處理文檔等 l當(dāng)光標(biāo)停留在通用型字段當(dāng)光標(biāo)停留在通用型字段“gen”上時(shí),雙擊鼠標(biāo)或上時(shí),雙擊鼠標(biāo)或按下按下Ctrl+PgDn打開(kāi)通用型字段的編輯窗口打開(kāi)通用型字段的編輯窗口 l選擇選擇Edit菜單菜單Insert Object,可以通過(guò)打開(kāi)的,可以通過(guò)打開(kāi)的“插入對(duì)象插入對(duì)象”對(duì)話框插入對(duì)象對(duì)話框插入對(duì)象 l內(nèi)容真正存放在與表同名的備注型文件內(nèi)容真正存放在與表同名的備注型文件.fpt中中 l某記錄的通用型字段非

8、空時(shí),其字段標(biāo)志首字母將某記錄的通用型字段非空時(shí),其字段標(biāo)志首字母將以大寫(xiě)以大寫(xiě)“G”顯示,否則用小寫(xiě)顯示,否則用小寫(xiě)“g”表示表示3.1.4 表的打開(kāi)表的打開(kāi)數(shù)據(jù)表是一種文件,存放在外存即磁盤(pán)中。外存數(shù)據(jù)表是一種文件,存放在外存即磁盤(pán)中。外存中的數(shù)據(jù)中的數(shù)據(jù)CPU是不能直接讀取的,必須把它們調(diào)入是不能直接讀取的,必須把它們調(diào)入到內(nèi)容中才能讀取和處理。數(shù)據(jù)表從外存被調(diào)入到到內(nèi)容中才能讀取和處理。數(shù)據(jù)表從外存被調(diào)入到內(nèi)存中,這個(gè)過(guò)程叫內(nèi)存中,這個(gè)過(guò)程叫“打開(kāi)打開(kāi)”。 1. 命令方式命令方式 命令格式:命令格式:USE 表名表名 注:若沒(méi)有設(shè)置默認(rèn)文件路徑,則注:若沒(méi)有設(shè)置默認(rèn)文件路徑,則“表名表

9、名”必須包必須包含詳細(xì)的路徑。含詳細(xì)的路徑。2.菜單方式菜單方式 選擇選擇File菜單菜單 Open,在打開(kāi)的,在打開(kāi)的“Open”對(duì)話框中對(duì)話框中選擇文件類(lèi)型為選擇文件類(lèi)型為“Table” 2.菜單方式菜單方式打開(kāi)表文件的位置打開(kāi)表文件的位置共享方式,表示打開(kāi)共享方式,表示打開(kāi)的表不能作任何修改的表不能作任何修改獨(dú)占方式,表示打開(kāi)獨(dú)占方式,表示打開(kāi)的表既可以修改結(jié)構(gòu)的表既可以修改結(jié)構(gòu)也可以修改數(shù)據(jù);若也可以修改數(shù)據(jù);若不選,則只可修改數(shù)不選,則只可修改數(shù)據(jù)而不可以修改結(jié)構(gòu)據(jù)而不可以修改結(jié)構(gòu)可輸入也可選擇可輸入也可選擇3.1.5 表的關(guān)閉表的關(guān)閉命令格式:命令格式:USE功能:關(guān)閉當(dāng)前打開(kāi)的表

10、。功能:關(guān)閉當(dāng)前打開(kāi)的表。也可用以下命令之一來(lái)關(guān)閉表:也可用以下命令之一來(lái)關(guān)閉表:(1)CLOSE ALL/:關(guān)閉所有打開(kāi)的文件或指定:關(guān)閉所有打開(kāi)的文件或指定的文件類(lèi)型。的文件類(lèi)型。(2)CLEAR ALL:關(guān)閉所有打開(kāi)的表文件,同時(shí)釋放所有:關(guān)閉所有打開(kāi)的表文件,同時(shí)釋放所有的內(nèi)存變量。的內(nèi)存變量。(3)CLOSE DATABASEALL:關(guān)閉當(dāng)前數(shù)據(jù)庫(kù)及其表;:關(guān)閉當(dāng)前數(shù)據(jù)庫(kù)及其表;若無(wú)打開(kāi)的數(shù)據(jù)庫(kù),則關(guān)閉所有自由表;若帶若無(wú)打開(kāi)的數(shù)據(jù)庫(kù),則關(guān)閉所有自由表;若帶ALL,則關(guān)閉所,則關(guān)閉所有數(shù)據(jù)庫(kù)及自由表。有數(shù)據(jù)庫(kù)及自由表。(4)CLOSE TABLESALL:關(guān)閉當(dāng)前數(shù)據(jù)庫(kù)中的表,但:關(guān)

11、閉當(dāng)前數(shù)據(jù)庫(kù)中的表,但不關(guān)閉數(shù)據(jù)庫(kù);若無(wú)數(shù)據(jù)庫(kù)打開(kāi),則關(guān)閉自由表;若帶不關(guān)閉數(shù)據(jù)庫(kù);若無(wú)數(shù)據(jù)庫(kù)打開(kāi),則關(guān)閉自由表;若帶ALL,則關(guān)閉所有數(shù)據(jù)庫(kù)中的表及自由表。則關(guān)閉所有數(shù)據(jù)庫(kù)中的表及自由表。3.2 操作數(shù)據(jù)表操作數(shù)據(jù)表3.2.1 瀏覽表瀏覽表3.2.3 記錄指針記錄指針3.2.4 查找記錄查找記錄3.2.3 插入記錄插入記錄3.2.4 追加記錄追加記錄3.2.5 刪除記錄刪除記錄3.2.6 恢復(fù)記錄恢復(fù)記錄3.2.7 修改記錄修改記錄VFP命令常用子句命令常用子句一、四種常用命令子句一、四種常用命令子句 命令格式命令格式: LIST / DISPLAY FOR WHILEOFF 1)范圍子句)

12、范圍子句(4種種) ALL:數(shù)據(jù)表的所有記錄:數(shù)據(jù)表的所有記錄 RECORD:數(shù)據(jù)表的第:數(shù)據(jù)表的第N條記錄條記錄 NEXT:從當(dāng)前記錄開(kāi)始的:從當(dāng)前記錄開(kāi)始的N條記錄條記錄 REST:從當(dāng)前記錄開(kāi)始到數(shù)據(jù)表末尾的所有記錄:從當(dāng)前記錄開(kāi)始到數(shù)據(jù)表末尾的所有記錄 若省略范圍字句,則不同的命令有不同的默認(rèn)范圍(如若省略范圍字句,則不同的命令有不同的默認(rèn)范圍(如LIST為為ALL, DISPLAY為當(dāng)前一條記錄)為當(dāng)前一條記錄)VFP命令常用子句命令常用子句2)FIELDS 子句子句 列出所有要操作的字段(若有多個(gè)字段用逗號(hào)分隔)列出所有要操作的字段(若有多個(gè)字段用逗號(hào)分隔)3)條件子句()條件子句

13、(FOR/WHILE) (1)FOR 子句子句 在指定范圍內(nèi)找出所有滿足條件的記錄在指定范圍內(nèi)找出所有滿足條件的記錄. (2)WHILE 子句子句 在指定范圍內(nèi)一旦遇到不滿足條件的記錄就退出在指定范圍內(nèi)一旦遇到不滿足條件的記錄就退出.4)TO子句子句表示命令結(jié)果的輸出去向。如果命令不帶表示命令結(jié)果的輸出去向。如果命令不帶TO子句,則將顯子句,則將顯示結(jié)果輸出到顯示屏;示結(jié)果輸出到顯示屏;TO PRINT,表示將結(jié)果輸出到打印機(jī);,表示將結(jié)果輸出到打印機(jī);TO,表示將結(jié)果輸出到指定的文件中。,表示將結(jié)果輸出到指定的文件中。VFP命令常用子句命令常用子句二、命令和子句的書(shū)寫(xiě)規(guī)則二、命令和子句的書(shū)寫(xiě)

14、規(guī)則(1)命令要以命令動(dòng)詞開(kāi)頭或含有命令符號(hào))命令要以命令動(dòng)詞開(kāi)頭或含有命令符號(hào)(2)各部分須用空格隔開(kāi),但各子句的次序允許任意排列。)各部分須用空格隔開(kāi),但各子句的次序允許任意排列。(3)命令符號(hào)、間隔符號(hào)、運(yùn)算符號(hào)等只能是英文符號(hào),不)命令符號(hào)、間隔符號(hào)、運(yùn)算符號(hào)等只能是英文符號(hào),不能為中文符號(hào)。如問(wèn)號(hào)?與能為中文符號(hào)。如問(wèn)號(hào)?與?、雙引號(hào)、雙引號(hào)“”“”與與、逗號(hào),與、逗號(hào),與,的的區(qū)別。區(qū)別。(4)命令中的)命令中的 、 、 | 、 符號(hào)都不是命令本身的語(yǔ)法符號(hào)都不是命令本身的語(yǔ)法成分,使用時(shí)不能照原樣輸入。成分,使用時(shí)不能照原樣輸入。(5)命令動(dòng)詞、保留字、函數(shù)名都要可簡(jiǎn)寫(xiě)為前)命令

15、動(dòng)詞、保留字、函數(shù)名都要可簡(jiǎn)寫(xiě)為前4 個(gè)字符。個(gè)字符。(6)一條命令可容量)一條命令可容量8192個(gè)字符。若要換行,可在適當(dāng)位置個(gè)字符。若要換行,可在適當(dāng)位置輸入續(xù)行符輸入續(xù)行符 “;” 。3.2.1 瀏覽表瀏覽表命令格式:命令格式:LIST|DISPLAY FIELDS 字段列表字段列表 Scope FOR 條件條件 WHILE 條件條件 OFF TO PRINTER PROMPT | TO FILE FileName 命令,二選一命令,二選一3.2.1 瀏覽表瀏覽表命令格式:命令格式:LIST|DISPLAY FIELDS 字段列表字段列表 Scope FOR 條件條件 WHILE 條件條

16、件 OFF TO PRINTER PROMPT | TO FILE FileName 字段子句字段子句3.2.1 瀏覽表瀏覽表命令格式:命令格式:LIST|DISPLAY FIELDS 字段列表字段列表 Scope FOR 條件條件 WHILE 條件條件 OFF TO PRINTER PROMPT | TO FILE FileName 范圍子句范圍子句3.2.1 瀏覽表瀏覽表命令格式:命令格式:LIST|DISPLAY FIELDS 字段列表字段列表 Scope FOR 條件條件 WHILE 條件條件 OFF TO PRINTER PROMPT | TO FILE FileName 條件子句條

17、件子句3.2.1 瀏覽表瀏覽表命令格式:命令格式:LIST|DISPLAY FIELDS 字段列表字段列表 Scope FOR 條件條件 WHILE 條件條件 OFF TO PRINTER PROMPT | TO FILE FileName 條件子句條件子句3.2.1 瀏覽表瀏覽表命令格式:命令格式:LIST|DISPLAY FIELDS 字段列表字段列表 Scope FOR 條件條件 WHILE 條件條件 OFF TO PRINTER PROMPT | TO FILE FileName 不輸出記錄號(hào)不輸出記錄號(hào)3.2.1 瀏覽表瀏覽表命令格式:命令格式:LIST|DISPLAY FIELDS

18、 字段列表字段列表 Scope FOR 條件條件 WHILE 條件條件 OFF TO PRINTER PROMPT | TO FILE FileName 輸出目標(biāo)輸出目標(biāo)實(shí)例實(shí)例1)顯示表)顯示表students.dbf全部信息全部信息 USE studentsLIST & 等價(jià)于等價(jià)于DISP ALLRecord# SID SNAME SEX PMEMBER BIRTHDAY NATIVE SNOTE PHOTO 1 200736001 龍?jiān)泼俘堅(jiān)泼?女女 .T. 06/29/88 四川省自貢市四川省自貢市 Memo Gen 2 200736002 張洋張洋 男男 .T. 04/23

19、/88 云南省昆明市云南省昆明市 memo Gen 3 200736003 陳冰冰陳冰冰 女女 .F. 08/26/89 山東省大連市山東省大連市 memo Gen 4 200736004 李敏李敏 女女 .F. 09/15/87 遼寧省遼陽(yáng)市遼寧省遼陽(yáng)市 Memo Gen 5 200826041 徐明輝徐明輝 男男 .F. 04/09/87 云南省陸良縣云南省陸良縣 Memo Gen 6 200826042 周東亮周東亮 男男 .F. 08/10/88 江蘇省睢寧縣江蘇省睢寧縣 memo Gen 7 200826043 陳曦陳曦 女女 .T. 08/02/89 江西省崇仁縣江西省崇仁縣 Me

20、mo Gen 8 200826044 劉永杰劉永杰 男男 .F. 12/27/87 浙江省溫嶺市浙江省溫嶺市 memo Gen2)顯示所有女生的學(xué)號(hào)、姓名、出生日期和籍貫)顯示所有女生的學(xué)號(hào)、姓名、出生日期和籍貫信息,并不顯示記錄號(hào)信息,并不顯示記錄號(hào) LIST sid , sname , birthday , native for sex = 女女 offSID SNAME BIRTHDAY NATIVE 200736001 龍?jiān)泼俘堅(jiān)泼?06/29/88 四川省自貢市四川省自貢市200736003 陳冰冰陳冰冰 08/26/89山東省大連市山東省大連市200736004 李敏李敏 09/1

21、5/87 遼寧省遼陽(yáng)市遼寧省遼陽(yáng)市200826043 陳曦陳曦 08/02/89 江西省崇仁縣江西省崇仁縣3)顯示)顯示1988年以后出生的學(xué)生的學(xué)號(hào)、姓名、性年以后出生的學(xué)生的學(xué)號(hào)、姓名、性別、出生日期和籍貫信息別、出生日期和籍貫信息 LIST sid,sname,sex,birthday,native for YEAR(birthday) = 1988 或或LIST sid,sname,sex,birthday,native for 出生日期出生日期 = 1988-01-01Record# SID SNAME SEX BIRTHDAY NATIVE 1 200736001 龍?jiān)泼俘堅(jiān)泼?女

22、女 06/29/88 四川省自貢市四川省自貢市 2 200736002 張洋張洋 男男 04/23/88 云南省昆明市云南省昆明市 3 200736003 陳冰冰陳冰冰 女女 08/26/89 山東省大連市山東省大連市 6 200826042 周東亮周東亮 男男 08/10/88 江蘇省睢寧縣江蘇省睢寧縣 7 200826043 陳曦陳曦 女女 08/02/89 江西省崇仁縣江西省崇仁縣4)顯示是黨員的男生的姓名、出生日期和籍貫信)顯示是黨員的男生的姓名、出生日期和籍貫信息息 LIST sname,birthday,native for sex = 男男 AND pmember = .T. 或

23、或LIST sname,birthday,native for sex = 男男 AND pmemberRecord# SNAME BIRTHDAY NATIVE 2 張洋張洋 04/23/88 云南省昆明市云南省昆明市命令命令LIST和和DISPLAY的區(qū)別的區(qū)別1)若省略范圍字句,命令有不同的默認(rèn)范圍。LIST為ALL, DISPLAY為當(dāng)前的一條記錄;2)當(dāng)顯示結(jié)果超過(guò)一屏幕時(shí),LIST滾屏顯示,DISPLAY分屏顯示;3)LIST執(zhí)行完后記錄指針被移到末尾,DISPLAY不影響記錄指針(注意狀態(tài)欄的變化)。LIST / DISPLAY FOR WHILEOFF 表結(jié)構(gòu)的顯示與修改表結(jié)構(gòu)

24、的顯示與修改1. 表結(jié)構(gòu)的顯示LIST / DISPLAY STRUCTURE2. 表結(jié)構(gòu)的修改MODIFY STRUCTURE3.2.2 復(fù)制數(shù)據(jù)表復(fù)制數(shù)據(jù)表命令格式:命令格式:COPY TO FileName FIELDS FieldList Scope FOR lExpression1 WHILE lExpression2功能:將當(dāng)前表指定的內(nèi)容復(fù)制成一個(gè)新表。功能:將當(dāng)前表指定的內(nèi)容復(fù)制成一個(gè)新表。前提條件:準(zhǔn)備復(fù)制的源表必須處于打開(kāi)狀態(tài)。前提條件:準(zhǔn)備復(fù)制的源表必須處于打開(kāi)狀態(tài)。說(shuō)明:說(shuō)明:l如果省略如果省略FIELDS子句、范圍子句和條件子句,則復(fù)制的新表子句、范圍子句和條件子句,

25、則復(fù)制的新表和源表完全一樣。和源表完全一樣。l如果用如果用FIELDS子句選定的字段中含有備注型或通用型字段,子句選定的字段中含有備注型或通用型字段,則系統(tǒng)在復(fù)制擴(kuò)展名為則系統(tǒng)在復(fù)制擴(kuò)展名為.dbf的表文件時(shí),自動(dòng)復(fù)制擴(kuò)展名為的表文件時(shí),自動(dòng)復(fù)制擴(kuò)展名為.fpt的備注型文件,其名稱與新表的名稱同名。的備注型文件,其名稱與新表的名稱同名。 實(shí)例實(shí)例1)原樣復(fù)制表)原樣復(fù)制表student.dbf,新表文件名為,新表文件名為stu1.dbf USE studentsCOPY TO stu1USE stu1LIST2)只含有學(xué)號(hào)、姓名和性別的新表,新表文件名為)只含有學(xué)號(hào)、姓名和性別的新表,新表文件

26、名為stu2.dbf。3)只包含云南籍學(xué)生的姓名、性別和籍貫信息,)只包含云南籍學(xué)生的姓名、性別和籍貫信息,新表文件名為新表文件名為stu3.dbf。COPY TO stu2 FIELDS sid, sname, sexCOPY TO stu3 FIELDS sname, sex, native FOR AT(云南云南, native)03.2.3記錄指針記錄指針VFP為每一個(gè)打開(kāi)的表都會(huì)自動(dòng)分配一個(gè)記錄指針為每一個(gè)打開(kāi)的表都會(huì)自動(dòng)分配一個(gè)記錄指針,指向該表的某條記錄。記錄指針指向的這條記錄稱,指向該表的某條記錄。記錄指針指向的這條記錄稱為為“當(dāng)前記錄當(dāng)前記錄”。雖然記錄指針對(duì)用戶而言是不可見(jiàn)

27、的,但用戶可以雖然記錄指針對(duì)用戶而言是不可見(jiàn)的,但用戶可以通過(guò)通過(guò)VFP提供的命令或函數(shù)去操縱和檢測(cè)它。提供的命令或函數(shù)去操縱和檢測(cè)它。在在VFP中,記錄的定位分為絕對(duì)定位與相對(duì)定位兩中,記錄的定位分為絕對(duì)定位與相對(duì)定位兩種種 。1. 絕對(duì)定位絕對(duì)定位命令格式:命令格式:GO|GOTO TOP | BOTTOM | n功能:將當(dāng)前表的記錄指針定位到指定的位置。功能:將當(dāng)前表的記錄指針定位到指定的位置。說(shuō)明:說(shuō)明:lGO和和GOTO命令可以等價(jià)使用。命令可以等價(jià)使用。lGO TOP:將記錄指針定位在表的第一條記錄上。:將記錄指針定位在表的第一條記錄上。lGO BOTTOM:將記錄指針定位在表的最

28、后一條:將記錄指針定位在表的最后一條記錄上。記錄上。lGO n:將記錄指針定位在表的第:將記錄指針定位在表的第n條記錄上。其中條記錄上。其中n為一個(gè)數(shù)值型數(shù)據(jù),且大小不能超出表的記錄條數(shù)為一個(gè)數(shù)值型數(shù)據(jù),且大小不能超出表的記錄條數(shù)的范圍。的范圍。 實(shí)例實(shí)例USE studentsLISTGO top & 將記錄指針定位到第一條記錄將記錄指針定位到第一條記錄DISPLAY& 顯示第顯示第1條記錄條記錄GO 3& 將記錄指針定位到第將記錄指針定位到第3條記錄條記錄DISPLAY& 顯示第顯示第3條記錄條記錄GO bottom& 將記錄指針定位到最后一條記將記

29、錄指針定位到最后一條記錄錄DISPLAY& 顯示第顯示第8條記錄條記錄VFP提供了一個(gè)函數(shù)提供了一個(gè)函數(shù)RECNO()用于檢測(cè)當(dāng)前記()用于檢測(cè)當(dāng)前記錄指針指在哪一條記錄上。錄指針指在哪一條記錄上。例:例:GO 5? RECNO( )& 顯示當(dāng)前記錄的記錄號(hào)顯示當(dāng)前記錄的記錄號(hào)52. 相對(duì)定位相對(duì)定位命令格式:命令格式:SKIP n功能:把記錄指針從當(dāng)前位置向前或向后移動(dòng)若干功能:把記錄指針從當(dāng)前位置向前或向后移動(dòng)若干條記錄。條記錄。說(shuō)明:說(shuō)明:l不帶參數(shù)不帶參數(shù)n的的 SKIP 命令將把記錄指針移到下一條命令將把記錄指針移到下一條記錄,即等價(jià)于記錄,即等價(jià)于 SKIP 1。l

30、n為整數(shù),可正也可負(fù)。正整數(shù)表示向表尾部方向?yàn)檎麛?shù),可正也可負(fù)。正整數(shù)表示向表尾部方向移動(dòng),負(fù)整數(shù)表示向表首部方向移動(dòng),數(shù)值的大小表移動(dòng),負(fù)整數(shù)表示向表首部方向移動(dòng),數(shù)值的大小表示記錄指針移動(dòng)的記錄個(gè)數(shù)。示記錄指針移動(dòng)的記錄個(gè)數(shù)。l絕對(duì)定位表示將記錄指針直接移動(dòng)到指定的位置,絕對(duì)定位表示將記錄指針直接移動(dòng)到指定的位置,而相對(duì)定位表示相對(duì)當(dāng)前記錄而言記錄指針移動(dòng)多少而相對(duì)定位表示相對(duì)當(dāng)前記錄而言記錄指針移動(dòng)多少次。次。 實(shí)例實(shí)例USE studentsLISTGO 3& 將記錄指針定位到第將記錄指針定位到第3條記錄條記錄DISPLAY& 顯示第顯示第3條記錄條記錄SKIP 3 &

31、amp; 將記錄指針移到第將記錄指針移到第6條記錄條記錄DISPLAY& 顯示第顯示第6條記錄條記錄SKIP -1 & 將記錄指針移到第將記錄指針移到第5條記錄條記錄DISPLAY& 顯示第顯示第5條記錄條記錄記錄指針的相對(duì)移動(dòng)受記錄范圍的限制。如果記錄記錄指針的相對(duì)移動(dòng)受記錄范圍的限制。如果記錄指針已經(jīng)到了表的頭部,是不能再往上移的;同樣,指針已經(jīng)到了表的頭部,是不能再往上移的;同樣,如果記錄指針已經(jīng)指向了表的尾部,是不能再往下移如果記錄指針已經(jīng)指向了表的尾部,是不能再往下移的。的。VFP提供了兩個(gè)函數(shù)提供了兩個(gè)函數(shù)BOF()和()和EOF(),用來(lái)分(),用來(lái)分別檢

32、測(cè)當(dāng)前記錄指針是否指向了表的頭部或尾部。別檢測(cè)當(dāng)前記錄指針是否指向了表的頭部或尾部。 函數(shù):函數(shù):BOF( )說(shuō)明:值為邏輯型,說(shuō)明:值為邏輯型,“.T.”表示記錄指針指向了表表示記錄指針指向了表的頭部;的頭部;“.F.”表示沒(méi)有指向表的頭部。表示沒(méi)有指向表的頭部。函數(shù):函數(shù):EOF( )說(shuō)明:值為邏輯型,說(shuō)明:值為邏輯型,“.T.”表示記錄指針指向了表表示記錄指針指向了表的尾部;的尾部;“.F.”表示沒(méi)有指向表的尾部。表示沒(méi)有指向表的尾部。數(shù)據(jù)表的第一條記錄不是表的頭部,最后一條記錄數(shù)據(jù)表的第一條記錄不是表的頭部,最后一條記錄也不是表的尾部,也不是表的尾部,詳解詳解 1 200736001

33、龍?jiān)泼俘堅(jiān)泼?女女2 200736002 張洋張洋 男男3 200736003 陳冰冰陳冰冰 女女4 200736004 李敏李敏 女女5 200826041 徐明輝徐明輝 男男6 200826042 周東亮周東亮 男男7 200826043 陳曦陳曦 女女8 200826044 劉永杰劉永杰 男男BOF( )為真,頭部為真,頭部BOF( )為假為假EOF( )為假為假EOF( )為真,尾部為真,尾部3.2.4 查找記錄查找記錄查找命令由查找命令由LOCATE命令和命令和CONTINUE命令來(lái)完命令來(lái)完成成命令格式:命令格式:LOCATE Scope FOR 條件條件 WHILE 條件條件功能

34、:在指定范圍內(nèi)按照記錄的物理順序依次查找功能:在指定范圍內(nèi)按照記錄的物理順序依次查找滿足條件的第一條記錄。滿足條件的第一條記錄。命令格式:命令格式:CONTINUE功能:繼續(xù)執(zhí)行先前的功能:繼續(xù)執(zhí)行先前的 LOCATE 命令,即查找滿命令,即查找滿足條件的下一條記錄。足條件的下一條記錄。 VFP 9.0提供一個(gè)檢測(cè)函數(shù)提供一個(gè)檢測(cè)函數(shù)FOUND( )來(lái)判斷是否找來(lái)判斷是否找到。到。 函數(shù):函數(shù):FOUND( )功能:功能:檢測(cè)檢測(cè)LOCATE命令或命令或CONTINUE命令是否命令是否找到符合條件的記錄。若找到,函數(shù)返回找到符合條件的記錄。若找到,函數(shù)返回.T.(真),(真),否則函數(shù)返回否則

35、函數(shù)返回.F.(假)。(假)。 說(shuō)明:說(shuō)明:lLOCATE命令缺省范圍表示命令缺省范圍表示ALL。l若若LOCATE命令找到了符合條件的第一條記錄,記命令找到了符合條件的第一條記錄,記錄指針就指向這條記錄;若沒(méi)有找到,則記錄指針指錄指針就指向這條記錄;若沒(méi)有找到,則記錄指針指向表末尾。向表末尾。l若查找范圍是若查找范圍是ALL時(shí),也可利用函數(shù)時(shí),也可利用函數(shù)EOF( )來(lái)判斷來(lái)判斷是否找到符合條件的記錄。因?yàn)槿粽业?,記錄指針必是否找到符合條件的記錄。因?yàn)槿粽业?,記錄指針必然指向了某條記錄,此時(shí)然指向了某條記錄,此時(shí)EOF( )函數(shù)值為假,表示記函數(shù)值為假,表示記錄指針沒(méi)有到達(dá)表尾;若沒(méi)有找到,

36、則記錄指針必然錄指針沒(méi)有到達(dá)表尾;若沒(méi)有找到,則記錄指針必然到達(dá)了表尾,此時(shí)到達(dá)了表尾,此時(shí)EOF( )函數(shù)值為真。函數(shù)值為真。lCONTINUE命令只能和帶有條件的命令只能和帶有條件的LOCATE命令命令配對(duì)使用,不能單獨(dú)使用。配對(duì)使用,不能單獨(dú)使用。 實(shí)例實(shí)例請(qǐng)逐個(gè)查找出是黨員的女生,顯示其姓名、性別和請(qǐng)逐個(gè)查找出是黨員的女生,顯示其姓名、性別和出生日期信息,并顯示函數(shù)出生日期信息,并顯示函數(shù)FOUND( )和和EOF( )的值的值。 USE studentsLOCATE FOR sex=女女 AND pmember? FOUND( ) , EOF( ) & 顯示顯示 .T. .F

37、.DISPLAY FIELDS sname, sex, birthdayRecord# SNAME SEX BIRTHDAY 1 龍?jiān)泼俘堅(jiān)泼?女女 06/29/88? FOUND( ) , EOF( )& 顯示顯示 .T. .F.DISPLAY FIELDS 姓名姓名,性別性別,出生日期出生日期Record# SNAME SEX BIRTHDAY 7 陳曦陳曦 女女 08/02/893.2.3 插入記錄插入記錄命令格式:命令格式:INSERT BLANK BEFORE功能:功能:在當(dāng)前表中插入一條新記錄。在當(dāng)前表中插入一條新記錄。說(shuō)明:說(shuō)明:l若使用若使用BLANK子句,則立即插入一

38、條空白記錄而子句,則立即插入一條空白記錄而不進(jìn)入編輯窗口;若缺省不進(jìn)入編輯窗口;若缺省BLANK子句,則會(huì)打開(kāi)記子句,則會(huì)打開(kāi)記錄編輯窗口,等待用戶輸入新記錄的各字段的值。錄編輯窗口,等待用戶輸入新記錄的各字段的值。l若使用若使用BEFORE子句,則表示在當(dāng)前記錄之前插入子句,則表示在當(dāng)前記錄之前插入一條新記錄,否則在當(dāng)前記錄之后插入一條新記錄。一條新記錄,否則在當(dāng)前記錄之后插入一條新記錄。3.2.4 追加記錄追加記錄1. 從鍵盤(pán)追加數(shù)據(jù)從鍵盤(pán)追加數(shù)據(jù)命令格式:命令格式:APPEND BLANK功能:功能:在當(dāng)前表的末尾追加一條新記錄。在當(dāng)前表的末尾追加一條新記錄。說(shuō)明:說(shuō)明:l用用APPEN

39、D增加的新記錄始終在表的尾部。增加的新記錄始終在表的尾部。l若使用若使用BLANK子句,則立即在表的尾部插入一條空白記錄而子句,則立即在表的尾部插入一條空白記錄而不進(jìn)入編輯窗口;若缺省不進(jìn)入編輯窗口;若缺省BLANK子句,則會(huì)打開(kāi)記錄編輯窗口子句,則會(huì)打開(kāi)記錄編輯窗口,等待用戶輸入新記錄的各字段的值。,等待用戶輸入新記錄的各字段的值。l在實(shí)際操作中,在實(shí)際操作中,APPEND命令一般和修改記錄的命令命令一般和修改記錄的命令REPLACE結(jié)合起來(lái)使用,即追加一條新記錄后立刻用結(jié)合起來(lái)使用,即追加一條新記錄后立刻用REPLACE命令修改該記錄的各字段的值。命令修改該記錄的各字段的值。2. 從現(xiàn)有的

40、文件中追加數(shù)據(jù)從現(xiàn)有的文件中追加數(shù)據(jù)命令格式:命令格式:APPEND FROM FileName | ? FIELDS FieldList FOR lExpression TYPE 功能:功能:從一個(gè)文件中讀入一批記錄,追加到當(dāng)前表的尾部。從一個(gè)文件中讀入一批記錄,追加到當(dāng)前表的尾部。說(shuō)明:說(shuō)明:l源文件的類(lèi)型缺省為表,若是其它類(lèi)型的文件必須用源文件的類(lèi)型缺省為表,若是其它類(lèi)型的文件必須用TYPE子子句指明。句指明。l源文件可以不用打開(kāi),但目標(biāo)表必須先打開(kāi)作為當(dāng)前表。源文件可以不用打開(kāi),但目標(biāo)表必須先打開(kāi)作為當(dāng)前表。l若源文件為若源文件為“?”,表示打開(kāi)文件對(duì)話框,從中選擇從哪個(gè)表,表示打開(kāi)文

41、件對(duì)話框,從中選擇從哪個(gè)表中讀入記錄。中讀入記錄。l追加的數(shù)據(jù)的類(lèi)型要與當(dāng)前表的對(duì)應(yīng)字段的類(lèi)型一致。追加的數(shù)據(jù)的類(lèi)型要與當(dāng)前表的對(duì)應(yīng)字段的類(lèi)型一致。3.2.5刪除記錄刪除記錄1.邏輯刪除邏輯刪除命令格式:命令格式:DELETE Scope FOR lExpression1 WHILE lExpression2功能:功能:在指定范圍內(nèi)對(duì)當(dāng)前表中要?jiǎng)h除的記錄打上刪除標(biāo)記在指定范圍內(nèi)對(duì)當(dāng)前表中要?jiǎng)h除的記錄打上刪除標(biāo)記。說(shuō)明:說(shuō)明:l此命令為邏輯刪除,即不是真正的刪除,僅在被刪除的記錄此命令為邏輯刪除,即不是真正的刪除,僅在被刪除的記錄前面增加一個(gè)刪除標(biāo)記前面增加一個(gè)刪除標(biāo)記“*” (在瀏覽窗口中標(biāo)記

42、為黑色方格(在瀏覽窗口中標(biāo)記為黑色方格)。被邏輯刪除的記錄仍在表中,可用)。被邏輯刪除的記錄仍在表中,可用RECALL命令恢復(fù)。命令恢復(fù)。l缺省范圍和條件子句時(shí),默認(rèn)為當(dāng)前記錄。若帶條件子句,缺省范圍和條件子句時(shí),默認(rèn)為當(dāng)前記錄。若帶條件子句,默認(rèn)范圍為默認(rèn)范圍為ALL。實(shí)例實(shí)例邏輯刪除邏輯刪除Students表末尾追加的兩條新記錄。表末尾追加的兩條新記錄。 USE studentsDELETE FOR RECNO( )=9 & 函數(shù)函數(shù)RECNO( )的值為的值為當(dāng)前當(dāng)前LIST 記錄的記錄號(hào)記錄的記錄號(hào)Record# SID SNAME SEX PMEMBER BIRTHDAY N

43、ATIVE1 200736001 龍?jiān)泼俘堅(jiān)泼?女女 .T. 06/29/88 四川省自貢市四川省自貢市 2200736002 張洋張洋 男男 .T. 04/23/88 云南省昆明市云南省昆明市 33 200736003 陳冰冰陳冰冰 女女 .F. 08/26/89 山東省大連市山東省大連市 44 200736004 李敏李敏 女女 .F. 09/15/87 遼寧省遼陽(yáng)市遼寧省遼陽(yáng)市 55 200826041 徐明輝徐明輝 男男 .F. 04/09/87 云南省陸良縣云南省陸良縣 66 200826042 周東亮周東亮 男男 .F. 08/10/88 江蘇省睢寧縣江蘇省睢寧縣 77 20082

44、6043 陳曦陳曦 女女 .T. 08/02/89 江西省崇仁縣江西省崇仁縣 88 200826044 劉永杰劉永杰 男男 .F. 12/27/87 浙江省溫嶺市浙江省溫嶺市 9 * 張洋張洋 男男 .F. / / 云南省昆明市云南省昆明市10 * 徐明輝徐明輝 男男 .F. / / 云南省陸良縣云南省陸良縣 2. 物理刪除物理刪除命令格式:命令格式:PACK功能:功能:從當(dāng)前表中永久刪除標(biāo)有刪除標(biāo)記的記錄。從當(dāng)前表中永久刪除標(biāo)有刪除標(biāo)記的記錄。說(shuō)明:說(shuō)明:該命令只能刪除被邏輯刪除打上刪除標(biāo)記的該命令只能刪除被邏輯刪除打上刪除標(biāo)記的記錄,刪除后不能恢復(fù)。記錄,刪除后不能恢復(fù)。3. 徹底刪除全部

45、記錄徹底刪除全部記錄命令格式:命令格式:ZAP功能:功能:從當(dāng)前表中徹底刪除所有記錄從當(dāng)前表中徹底刪除所有記錄說(shuō)明:說(shuō)明:l該命令一次性地將當(dāng)前表中的所有記錄全部刪除,該命令一次性地將當(dāng)前表中的所有記錄全部刪除,不管有沒(méi)有打上刪除標(biāo)記,并且被刪除的記錄不可恢不管有沒(méi)有打上刪除標(biāo)記,并且被刪除的記錄不可恢復(fù),因此使用此命令一定要慎重。復(fù),因此使用此命令一定要慎重。l該命令執(zhí)行后,雖然記錄全部被刪除了,但表的結(jié)該命令執(zhí)行后,雖然記錄全部被刪除了,但表的結(jié)構(gòu)仍在。構(gòu)仍在。 3.2.7 修改記錄修改記錄命令格式:命令格式:REPLACE FieldName1 WITH eExpression1 , F

46、ieldName2 WITH eExpression2 Scope FOR lExpression1 WHILE lExpression2 功能:功能:在指定范圍內(nèi)批量快速地用表達(dá)式的值替換在指定范圍內(nèi)批量快速地用表達(dá)式的值替換相應(yīng)字段的值。相應(yīng)字段的值。說(shuō)明:說(shuō)明:l參數(shù)參數(shù)“FieldName1 WITH eExpression1”:用eExpression1表達(dá)式的值替換表達(dá)式的值替換FieldName1字段的值。字段的值。l如果要對(duì)多個(gè)字段修改其值,字段間用英文逗號(hào)如果要對(duì)多個(gè)字段修改其值,字段間用英文逗號(hào)“,”分隔。分隔。l當(dāng)缺省范圍和條件子句時(shí),默認(rèn)范圍為當(dāng)前記錄。當(dāng)缺省范圍和條件

47、子句時(shí),默認(rèn)范圍為當(dāng)前記錄。實(shí)例實(shí)例對(duì)表對(duì)表stu2.dbf按以下要求完成任務(wù)。按以下要求完成任務(wù)。(1)在表尾增加一條記錄)在表尾增加一條記錄USE stu2.dbf EXCLUSIVELISTAPPEND BLANKGO bottomREPLACE sid WITH 200840001, sname WITH 王小東王小東, sex WITH 男男LIST2)增加四個(gè)字段:)增加四個(gè)字段:maths N(3)、english N(3)、computer N(3)、total N(3),并對(duì)這三門(mén)科目輸入相,并對(duì)這三門(mén)科目輸入相關(guān)數(shù)據(jù)。關(guān)數(shù)據(jù)。 請(qǐng)用命令一次性計(jì)算請(qǐng)用命令一次性計(jì)算total

48、字段的值。字段的值。 REPLACE ALL total WITH maths+english+computerBROWSE3.3 工作區(qū)工作區(qū)在進(jìn)行表的打開(kāi)操作時(shí),會(huì)發(fā)現(xiàn)打開(kāi)一張表的同時(shí)在進(jìn)行表的打開(kāi)操作時(shí),會(huì)發(fā)現(xiàn)打開(kāi)一張表的同時(shí)會(huì)關(guān)閉原來(lái)已經(jīng)打開(kāi)的表,即某一時(shí)刻只能操作一張會(huì)關(guān)閉原來(lái)已經(jīng)打開(kāi)的表,即某一時(shí)刻只能操作一張表,其原因涉及到工作區(qū)的概念。表,其原因涉及到工作區(qū)的概念。一個(gè)工作區(qū)中最多只能打開(kāi)的一個(gè)表,如果要求同一個(gè)工作區(qū)中最多只能打開(kāi)的一個(gè)表,如果要求同時(shí)打開(kāi)多個(gè)數(shù)據(jù)表,就必須將表指定到不同的工作區(qū)時(shí)打開(kāi)多個(gè)數(shù)據(jù)表,就必須將表指定到不同的工作區(qū)。3.3.1 工作區(qū)的概念工作區(qū)的概

49、念打開(kāi)一張表的過(guò)程,實(shí)際上就是將表從外存讀取到打開(kāi)一張表的過(guò)程,實(shí)際上就是將表從外存讀取到內(nèi)存的過(guò)程。內(nèi)存的過(guò)程。工作區(qū)工作區(qū)就是內(nèi)存中的一個(gè)存儲(chǔ)區(qū)域,用來(lái)存放打開(kāi)就是內(nèi)存中的一個(gè)存儲(chǔ)區(qū)域,用來(lái)存放打開(kāi)的表,以及與其相關(guān)的備注型文件、索引文件等。的表,以及與其相關(guān)的備注型文件、索引文件等。一個(gè)工作區(qū)最多只能對(duì)應(yīng)一張表。一個(gè)工作區(qū)最多只能對(duì)應(yīng)一張表。如果要打開(kāi)多張表,就需要將它們放入不同的內(nèi)存如果要打開(kāi)多張表,就需要將它們放入不同的內(nèi)存區(qū)域,即選擇不同的工作區(qū),在不同的工作區(qū)中打開(kāi)區(qū)域,即選擇不同的工作區(qū),在不同的工作區(qū)中打開(kāi)不同的表。不同的表。選擇工作區(qū)時(shí)可以用工作區(qū)的區(qū)號(hào)或別名進(jìn)行選擇選擇工

50、作區(qū)時(shí)可以用工作區(qū)的區(qū)號(hào)或別名進(jìn)行選擇1. 工作區(qū)號(hào)工作區(qū)號(hào)VFP提供了提供了32767個(gè)工作區(qū),每個(gè)區(qū)都有一個(gè)編號(hào)個(gè)工作區(qū),每個(gè)區(qū)都有一個(gè)編號(hào),從,從1到到32767。因此,系統(tǒng)中可以同時(shí)打開(kāi)的表最多。因此,系統(tǒng)中可以同時(shí)打開(kāi)的表最多可以達(dá)可以達(dá)32767個(gè)。個(gè)。2. 別名別名VFP系統(tǒng)保留了用系統(tǒng)保留了用AJ十個(gè)字母作為前十個(gè)字母作為前10個(gè)工作區(qū)個(gè)工作區(qū)的別名。的別名。工作區(qū)的別名也可以用在該工作區(qū)中打開(kāi)的表的別工作區(qū)的別名也可以用在該工作區(qū)中打開(kāi)的表的別名來(lái)表示。名來(lái)表示。在用在用USE命令打開(kāi)表時(shí),可以給表取一個(gè)別名。如命令打開(kāi)表時(shí),可以給表取一個(gè)別名。如:命令格式:命令格式:USE

51、 TableName ALIAS cTableAlias如果打開(kāi)表時(shí)不帶如果打開(kāi)表時(shí)不帶ALIAS子句,系統(tǒng)將表名視為表子句,系統(tǒng)將表名視為表的別名,即表名或表的別名都可以作為工作區(qū)的別名的別名,即表名或表的別名都可以作為工作區(qū)的別名。 多工作區(qū)操作有以下幾個(gè)特點(diǎn):多工作區(qū)操作有以下幾個(gè)特點(diǎn):1)每個(gè)工作區(qū)只允許打開(kāi)一張表。在同一工作區(qū)打開(kāi)另一張)每個(gè)工作區(qū)只允許打開(kāi)一張表。在同一工作區(qū)打開(kāi)另一張表時(shí),原來(lái)打開(kāi)的表會(huì)自動(dòng)關(guān)閉。表時(shí),原來(lái)打開(kāi)的表會(huì)自動(dòng)關(guān)閉。2)一張表只能在一個(gè)工作區(qū)中打開(kāi)。如果試圖在其它工作區(qū))一張表只能在一個(gè)工作區(qū)中打開(kāi)。如果試圖在其它工作區(qū)打開(kāi)一個(gè)已經(jīng)打開(kāi)的表,打開(kāi)一個(gè)已經(jīng)

52、打開(kāi)的表,VFP會(huì)提示會(huì)提示“文件正在使用文件正在使用”的警告的警告信息。信息。3)不論使用多少個(gè)工作區(qū),只有一個(gè)工作區(qū)處于當(dāng)前狀態(tài)。)不論使用多少個(gè)工作區(qū),只有一個(gè)工作區(qū)處于當(dāng)前狀態(tài)。在當(dāng)前工作區(qū)中打開(kāi)的表稱為當(dāng)前表。在當(dāng)前工作區(qū)中打開(kāi)的表稱為當(dāng)前表。VFP啟動(dòng)后,默認(rèn)啟動(dòng)后,默認(rèn)1號(hào)工號(hào)工作區(qū)是當(dāng)前工作區(qū)。作區(qū)是當(dāng)前工作區(qū)。4)每個(gè)工作區(qū)中的數(shù)據(jù)表是獨(dú)立存儲(chǔ)的,系統(tǒng)為每個(gè)數(shù)據(jù)表)每個(gè)工作區(qū)中的數(shù)據(jù)表是獨(dú)立存儲(chǔ)的,系統(tǒng)為每個(gè)數(shù)據(jù)表都自動(dòng)分配一個(gè)記錄指針指向該表的當(dāng)前記錄。除非表間關(guān)聯(lián)都自動(dòng)分配一個(gè)記錄指針指向該表的當(dāng)前記錄。除非表間關(guān)聯(lián),各個(gè)工作區(qū)中表的記錄指針是獨(dú)立移動(dòng)的,互不干擾。,各個(gè)

53、工作區(qū)中表的記錄指針是獨(dú)立移動(dòng)的,互不干擾。 3.3.2 工作區(qū)的選擇和使用工作區(qū)的選擇和使用命令格式:命令格式:SELECT nWorkArea | cTableAlias功能:功能:選擇一個(gè)工作區(qū)作為當(dāng)前工作區(qū)。選擇一個(gè)工作區(qū)作為當(dāng)前工作區(qū)。說(shuō)明:說(shuō)明:l參數(shù)參數(shù)“nWorkArea”:工作區(qū)號(hào),取值范圍為:工作區(qū)號(hào),取值范圍為032767。若為。若為 0(零零),表示選擇當(dāng)前未使用的最低編號(hào),表示選擇當(dāng)前未使用的最低編號(hào)的工作區(qū)作為當(dāng)前工作區(qū)。的工作區(qū)作為當(dāng)前工作區(qū)。l參數(shù)參數(shù)“cTableAlias”:工作區(qū)別名。:工作區(qū)別名。l可用函數(shù)可用函數(shù)SELECT()返回當(dāng)前工作區(qū)的區(qū)號(hào)。(

54、)返回當(dāng)前工作區(qū)的區(qū)號(hào)。l多工作區(qū)方式下,可用多工作區(qū)方式下,可用.字段名或字段名或字段名訪問(wèn)其它工作區(qū)中打開(kāi)的表的字字段名訪問(wèn)其它工作區(qū)中打開(kāi)的表的字段。段。實(shí)例實(shí)例按以下要求完成任務(wù):按以下要求完成任務(wù):(1)同時(shí)打開(kāi)表)同時(shí)打開(kāi)表Students.dbf和表和表stu2.dbf。(2)不改變當(dāng)前工作區(qū)的情況下打開(kāi)表)不改變當(dāng)前工作區(qū)的情況下打開(kāi)表stu3.dbf(3)顯示表)顯示表stu3.dbf的內(nèi)容。的內(nèi)容。CLOSE ALL& 關(guān)閉所有打開(kāi)的表,回到關(guān)閉所有打開(kāi)的表,回到1號(hào)工作區(qū)號(hào)工作區(qū)USE students? 當(dāng)前工作區(qū)的區(qū)號(hào):當(dāng)前工作區(qū)的區(qū)號(hào): , SELECT(

55、) & 顯示當(dāng)前區(qū)號(hào)為顯示當(dāng)前區(qū)號(hào)為1SELECT 2USE stu2? 當(dāng)前工作區(qū)的區(qū)號(hào):當(dāng)前工作區(qū)的區(qū)號(hào): , SELECT( ) & 顯示當(dāng)前區(qū)號(hào)為顯示當(dāng)前區(qū)號(hào)為2USE stu3 IN 0 & 當(dāng)前未使用的最小工作區(qū)的區(qū)號(hào)是當(dāng)前未使用的最小工作區(qū)的區(qū)號(hào)是3號(hào)號(hào)? 當(dāng)前工作區(qū)的區(qū)號(hào):當(dāng)前工作區(qū)的區(qū)號(hào): , SELECT( )& 顯示當(dāng)前區(qū)號(hào)為顯示當(dāng)前區(qū)號(hào)為3SELECT stu3& 選擇表選擇表stu3所在的工作區(qū)所在的工作區(qū)LIST& 顯示表顯示表stu3的內(nèi)容的內(nèi)容3.4.1 顯示表結(jié)構(gòu)顯示表結(jié)構(gòu)命令格式:命令格式:LIST | DIS

56、PLAY STRUCTURE TO PRINT | TO FILE FileName功能:功能:顯示當(dāng)前表的結(jié)構(gòu)。顯示當(dāng)前表的結(jié)構(gòu)。說(shuō)明:說(shuō)明:當(dāng)顯示結(jié)果超過(guò)一屏幕時(shí),當(dāng)顯示結(jié)果超過(guò)一屏幕時(shí),LIST為滾動(dòng)顯為滾動(dòng)顯示,示,DISPLAY為分屏顯示。為分屏顯示。3.4.2 修改表結(jié)構(gòu)修改表結(jié)構(gòu)命令方式:命令方式:MODIFY STRUCTURE菜單方式:選擇菜單方式:選擇ViewTable Designer功能:功能:打開(kāi)表設(shè)計(jì)器窗口,從中可以修改表的結(jié)構(gòu)打開(kāi)表設(shè)計(jì)器窗口,從中可以修改表的結(jié)構(gòu)。前提條件:前提條件:要修改的表處于打開(kāi)狀態(tài),并且是以獨(dú)要修改的表處于打開(kāi)狀態(tài),并且是以獨(dú)占方式打開(kāi)的

57、。以共享方式打開(kāi)的表其結(jié)構(gòu)為只讀狀占方式打開(kāi)的。以共享方式打開(kāi)的表其結(jié)構(gòu)為只讀狀態(tài),不允許修改態(tài),不允許修改 表的結(jié)構(gòu)定義好后一般不會(huì)經(jīng)常變動(dòng),但如果遇到表的結(jié)構(gòu)定義好后一般不會(huì)經(jīng)常變動(dòng),但如果遇到以下情況之一則需要修改表的結(jié)構(gòu):以下情況之一則需要修改表的結(jié)構(gòu):(1)字段名需要修改。)字段名需要修改。(2)字段的寬度不合理。)字段的寬度不合理。(3)字段的類(lèi)型不符合要求。)字段的類(lèi)型不符合要求。 如原來(lái)把學(xué)號(hào)字段如原來(lái)把學(xué)號(hào)字段“sid”定義成了數(shù)值型,結(jié)果導(dǎo)致某些學(xué)號(hào)的前定義成了數(shù)值型,結(jié)果導(dǎo)致某些學(xué)號(hào)的前導(dǎo)導(dǎo)“0”不能保存下來(lái)。因?yàn)閿?shù)值型的前導(dǎo)不能保存下來(lái)。因?yàn)閿?shù)值型的前導(dǎo)“0”是無(wú)意義的

58、,系統(tǒng)將自是無(wú)意義的,系統(tǒng)將自動(dòng)將其省略掉,應(yīng)該把它的類(lèi)型改為字符型。動(dòng)將其省略掉,應(yīng)該把它的類(lèi)型改為字符型。(4)數(shù)值型的小數(shù)位數(shù)需要修改。)數(shù)值型的小數(shù)位數(shù)需要修改。 如原來(lái)某個(gè)數(shù)值型字段沒(méi)有定義小數(shù)位數(shù),現(xiàn)在又需要如原來(lái)某個(gè)數(shù)值型字段沒(méi)有定義小數(shù)位數(shù),現(xiàn)在又需要1位小數(shù)位。位小數(shù)位。 3.4.3 復(fù)制表結(jié)構(gòu)復(fù)制表結(jié)構(gòu)1. 命令方式復(fù)制表結(jié)構(gòu)命令方式復(fù)制表結(jié)構(gòu)命令格式:命令格式:COPY STRUCTURE TO TableName FIELDS FieldList 功能:功能:用當(dāng)前表的結(jié)構(gòu)創(chuàng)建一個(gè)空的新自由表,新用當(dāng)前表的結(jié)構(gòu)創(chuàng)建一個(gè)空的新自由表,新表的結(jié)構(gòu)和當(dāng)前表的結(jié)構(gòu)一致,但不含任

59、何數(shù)據(jù)。若表的結(jié)構(gòu)和當(dāng)前表的結(jié)構(gòu)一致,但不含任何數(shù)據(jù)。若命令帶有命令帶有FIELDS子句,則新表的結(jié)構(gòu)只包含指定的子句,則新表的結(jié)構(gòu)只包含指定的字段,同時(shí)字段順序也和字段,同時(shí)字段順序也和FieldList中字段出現(xiàn)的順序中字段出現(xiàn)的順序一致。一致。前提條件:前提條件:必須先打開(kāi)要復(fù)制結(jié)構(gòu)的表,即源表。必須先打開(kāi)要復(fù)制結(jié)構(gòu)的表,即源表。實(shí)例實(shí)例利用表利用表Students.dbf的結(jié)構(gòu),建立新表的結(jié)構(gòu),建立新表stubak.dbf,并且只包含學(xué)號(hào)、姓名、性別和簡(jiǎn)歷。并且只包含學(xué)號(hào)、姓名、性別和簡(jiǎn)歷。 USE studentsCOPY STRUCTURE TO stubak FIELDS sid

60、, sname, sex, snoteUSE stubak & 生成的新表要打開(kāi)才能查看生成的新表要打開(kāi)才能查看LIST STRUCTUREField Field Name Type Width Dec Index Collate Nulls 1 SID Character 9 No 2 SNAME Character 8 No 3 SEX Character 2 No 4 SNOTE Memo 4 No2. 利用向?qū)?fù)制表結(jié)構(gòu)利用向?qū)?fù)制表結(jié)構(gòu)選擇了表和字段后按提示依次操作。選擇了表和字段后按提示依次操作。3.5 表的索引表的索引3.5.1 索引的概念索引的概念3.5.2 索引和索引文件的類(lèi)型索引和索引文件的類(lèi)型3.5.3 索引的建立索引的建立3.5.4 索引的使用索引的使用3.5.1 索引的概念索引的概念1. 記錄的物理順序和邏輯順序記錄的物理順序和邏輯順序

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論