版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1第第3章章 表基本操作表基本操作主要內(nèi)容:自由表的建立、編輯修改主要內(nèi)容:自由表的建立、編輯修改, 通過(guò)通過(guò)界面交互操作和命令兩種方式來(lái)實(shí)現(xiàn)。然界面交互操作和命令兩種方式來(lái)實(shí)現(xiàn)。然后介紹數(shù)據(jù)的排序、索引操作。后介紹數(shù)據(jù)的排序、索引操作。23.1 表的建立表的建立表的建立包括表結(jié)構(gòu)的設(shè)計(jì)、定義和表記錄添加等操作表的建立包括表結(jié)構(gòu)的設(shè)計(jì)、定義和表記錄添加等操作 3.1.1 表結(jié)構(gòu)設(shè)計(jì)表結(jié)構(gòu)設(shè)計(jì)在人事工資管理中,會(huì)遇到如下所示的二維表。在人事工資管理中,會(huì)遇到如下所示的二維表。每行均為1條記錄此行為表結(jié)構(gòu)行字段3表文件包含有以下三個(gè)要素:表文件包含有以下三個(gè)要素:l表文件名。表文件名。l表結(jié)構(gòu),表
2、中各字段的字段名、字段類(lèi)型和字段表結(jié)構(gòu),表中各字段的字段名、字段類(lèi)型和字段寬度。寬度。l表記錄。表記錄。1. 表文件名表文件名 Visual FoxPro系統(tǒng)規(guī)定表文件的擴(kuò)展名系統(tǒng)規(guī)定表文件的擴(kuò)展名為為.DBF(.dbf),表文件的命名規(guī)則與操作系統(tǒng)中),表文件的命名規(guī)則與操作系統(tǒng)中的文件命名規(guī)則相同。在實(shí)際使用時(shí),表名應(yīng)該簡(jiǎn)的文件命名規(guī)則相同。在實(shí)際使用時(shí),表名應(yīng)該簡(jiǎn)明且容易記憶,常常使用漢語(yǔ)拼音聲母組合明且容易記憶,常常使用漢語(yǔ)拼音聲母組合 。例如:上述的二維表就可以取名為例如:上述的二維表就可以取名為:rsb.dbf。3.1 表的建立表的建立42. 表結(jié)構(gòu)表結(jié)構(gòu) 表的結(jié)構(gòu)描述就是對(duì)表中各
3、個(gè)字段的屬性定義,字段的表的結(jié)構(gòu)描述就是對(duì)表中各個(gè)字段的屬性定義,字段的屬性包括屬性包括字段名稱(chēng)字段名稱(chēng)、字段類(lèi)型字段類(lèi)型和和字段寬度字段寬度,對(duì)于數(shù)值型字段,對(duì)于數(shù)值型字段還包括小數(shù)位數(shù)。還包括小數(shù)位數(shù)。(1)字段名字段名 字段名是用來(lái)標(biāo)識(shí)字段的,它的命名規(guī)則以字母(漢字)字段名是用來(lái)標(biāo)識(shí)字段的,它的命名規(guī)則以字母(漢字)或下劃線開(kāi)頭,由字母(漢字)、數(shù)字和下劃線組成,自由或下劃線開(kāi)頭,由字母(漢字)、數(shù)字和下劃線組成,自由表的字段名最多表的字段名最多10個(gè)字符,數(shù)據(jù)庫(kù)表的字段名最多可包含個(gè)字符,數(shù)據(jù)庫(kù)表的字段名最多可包含 128 個(gè)字符。個(gè)字符。注意,同一個(gè)表中的字段名不能相同。注意,同一
4、個(gè)表中的字段名不能相同。3.1 表的建立表的建立5(1)字段類(lèi)型字段類(lèi)型 Visual FoxPro Visual FoxPro中常用的中常用的1111種字段類(lèi)型,見(jiàn)下種字段類(lèi)型,見(jiàn)下表所示。表所示。3.1 表的建立表的建立2021-10-206(1)字段類(lèi)型字段類(lèi)型7(2)字段寬度字段寬度表明準(zhǔn)許字段存儲(chǔ)的最大字節(jié)數(shù)。表明準(zhǔn)許字段存儲(chǔ)的最大字節(jié)數(shù)。 只有字符型、數(shù)值型和浮動(dòng)數(shù)值型等三種類(lèi)型的字段只有字符型、數(shù)值型和浮動(dòng)數(shù)值型等三種類(lèi)型的字段寬度可以改變寬度可以改變, ,其它類(lèi)型字段有唯一確定的寬度,不能改變。其它類(lèi)型字段有唯一確定的寬度,不能改變。 在建立表結(jié)構(gòu)時(shí),應(yīng)根據(jù)要存儲(chǔ)數(shù)據(jù)的實(shí)際需要
5、設(shè)定在建立表結(jié)構(gòu)時(shí),應(yīng)根據(jù)要存儲(chǔ)數(shù)據(jù)的實(shí)際需要設(shè)定合適的寬度。合適的寬度。 字符型字段寬度定義時(shí)應(yīng)考慮所存放字符串的最大長(zhǎng)度字符型字段寬度定義時(shí)應(yīng)考慮所存放字符串的最大長(zhǎng)度. . 例如,描述人的姓名字段,考慮到中國(guó)人的姓名絕大例如,描述人的姓名字段,考慮到中國(guó)人的姓名絕大多數(shù)為三個(gè)漢字,再顧及到少數(shù)人的四個(gè)漢字,可以取姓多數(shù)為三個(gè)漢字,再顧及到少數(shù)人的四個(gè)漢字,可以取姓名字段的寬度為名字段的寬度為8 8(一個(gè)漢字占兩個(gè)字符位置)(一個(gè)漢字占兩個(gè)字符位置) 。 在定義數(shù)值型和浮動(dòng)數(shù)值型字段寬度時(shí),應(yīng)考慮到正負(fù)在定義數(shù)值型和浮動(dòng)數(shù)值型字段寬度時(shí),應(yīng)考慮到正負(fù)號(hào)和小數(shù)點(diǎn),帶小數(shù)的數(shù)值型字段寬度計(jì)算如
6、下:號(hào)和小數(shù)點(diǎn),帶小數(shù)的數(shù)值型字段寬度計(jì)算如下: 字段寬度字段寬度=1=1(正負(fù)號(hào))(正負(fù)號(hào))+ +整數(shù)位數(shù)整數(shù)位數(shù)+1+1(小數(shù)點(diǎn))(小數(shù)點(diǎn))+ +小數(shù)小數(shù)位數(shù)位數(shù) 例如,數(shù)值型字段寬度為例如,數(shù)值型字段寬度為7 7,小數(shù)位數(shù)為,小數(shù)位數(shù)為2 2位,則能存位,則能存放的最大數(shù)值為放的最大數(shù)值為9999.999999.99,最小數(shù)值為,最小數(shù)值為-999.99-999.99。8根據(jù)上述規(guī)定,為人事表設(shè)計(jì)出表結(jié)構(gòu)如下:根據(jù)上述規(guī)定,為人事表設(shè)計(jì)出表結(jié)構(gòu)如下:91. 建立表結(jié)構(gòu)建立表結(jié)構(gòu) V F提供有提供有3種方法建立表結(jié)構(gòu):利用表設(shè)計(jì)器、種方法建立表結(jié)構(gòu):利用表設(shè)計(jì)器、表向?qū)Ш捅硐驅(qū)Ш蚐QL數(shù)據(jù)
7、表定義命令來(lái)建立表結(jié)構(gòu)。這里數(shù)據(jù)表定義命令來(lái)建立表結(jié)構(gòu)。這里主要介紹利用表設(shè)計(jì)器建立表結(jié)構(gòu)。主要介紹利用表設(shè)計(jì)器建立表結(jié)構(gòu)。 啟動(dòng)表設(shè)計(jì)器的常用有啟動(dòng)表設(shè)計(jì)器的常用有3種方法種方法 :l方法方法1:菜單操作方式。:菜單操作方式。l方法方法2:項(xiàng)目管理器方式。:項(xiàng)目管理器方式。l方法方法3:使用:使用CREATE命令。命令。3.1.2 表結(jié)構(gòu)的建立表結(jié)構(gòu)的建立2021-10-2010 “表設(shè)計(jì)器表設(shè)計(jì)器”窗口介紹窗口介紹上下移動(dòng)按鈕 文本框中輸入字段名 選擇字段類(lèi)型 設(shè)置寬度索引的升降序設(shè)置設(shè)置字段值是否允許取NULL值3個(gè)選項(xiàng)卡4個(gè)命令按鈕11例例3-1 建立建立rsb表的結(jié)構(gòu)。表的結(jié)構(gòu)。 開(kāi)
8、始建表。開(kāi)始建表。選定選定“文件文件”|“新建新建”命令命令出現(xiàn)右出現(xiàn)右圖所示的圖所示的“新建新建”對(duì)話框,選擇對(duì)話框,選擇“表表”選項(xiàng)按鈕,單擊選項(xiàng)按鈕,單擊“新建文件新建文件”按鈕,按鈕,出現(xiàn)出現(xiàn) “創(chuàng)建創(chuàng)建”對(duì)話框。對(duì)話框。先選擇“表”選項(xiàng)再單擊“新建文件”按鈕12 打開(kāi)表設(shè)計(jì)器打開(kāi)表設(shè)計(jì)器 在在“創(chuàng)建創(chuàng)建”對(duì)話框?qū)υ捒蛑械闹械摹拜斎氡砻狠斎氡砻骸蔽奈谋究蜉斎氡砻究蜉斎氡砻鹯sb,單,單擊擊“保存保存”按鈕,出現(xiàn)按鈕,出現(xiàn)rsb.dbf表設(shè)計(jì)器。表設(shè)計(jì)器。13 設(shè)定完第一字段,再依次設(shè)定其它字段。設(shè)定完第一字段,再依次設(shè)定其它字段。 例如:在例如:在“字段名字段名”下方的文本框輸入
9、下方的文本框輸入“編號(hào)編號(hào)”,在,在“類(lèi)型類(lèi)型”列表框選定列表框選定“字符型字符型”,在,在“寬度寬度”文本框輸文本框輸入入4(或用標(biāo)有上下箭頭的微調(diào)按鈕將數(shù)值調(diào)整至(或用標(biāo)有上下箭頭的微調(diào)按鈕將數(shù)值調(diào)整至4)。)。定義表結(jié)構(gòu)。按下圖設(shè)定各字段的屬性值。定義表結(jié)構(gòu)。按下圖設(shè)定各字段的屬性值。14保存:保存:字段的屬性值設(shè)定完成后,按字段的屬性值設(shè)定完成后,按“確定確定”按按鈕,當(dāng)詢問(wèn)鈕,當(dāng)詢問(wèn)“現(xiàn)在輸入數(shù)據(jù)記錄嗎?現(xiàn)在輸入數(shù)據(jù)記錄嗎?”。 若按若按“否否”按鈕則關(guān)閉表設(shè)計(jì)器窗口,建立表結(jié)按鈕則關(guān)閉表設(shè)計(jì)器窗口,建立表結(jié)構(gòu)結(jié)束。若按構(gòu)結(jié)束。若按“是是”按鈕,則出現(xiàn)按鈕,則出現(xiàn)rsb.dbfrsb
10、.dbf記錄編記錄編輯窗口,供用戶輸入記錄數(shù)據(jù)。輯窗口,供用戶輸入記錄數(shù)據(jù)。 153.1.3 表記錄數(shù)據(jù)輸入表記錄數(shù)據(jù)輸入 利用交互方式建立表結(jié)構(gòu)后,若在出現(xiàn)輸入記錄詢問(wèn)利用交互方式建立表結(jié)構(gòu)后,若在出現(xiàn)輸入記錄詢問(wèn)對(duì)話框時(shí)按對(duì)話框時(shí)按“是是”按鈕,則出現(xiàn)記錄編輯窗口,供用戶輸入按鈕,則出現(xiàn)記錄編輯窗口,供用戶輸入數(shù)據(jù)記錄。以數(shù)據(jù)記錄。以rsb.dbfrsb.dbf為例,則記錄編輯窗口如圖所示。為例,則記錄編輯窗口如圖所示。 在數(shù)據(jù)輸入窗口中,光標(biāo)在數(shù)據(jù)輸入窗口中,光標(biāo)首先停留在第一個(gè)記錄的第一首先停留在第一個(gè)記錄的第一個(gè)字段上,輸入相應(yīng)的數(shù)據(jù)后,個(gè)字段上,輸入相應(yīng)的數(shù)據(jù)后,移動(dòng)光標(biāo)到其它字段
11、并輸入數(shù)移動(dòng)光標(biāo)到其它字段并輸入數(shù)據(jù),依此方法完成一條記錄的據(jù),依此方法完成一條記錄的數(shù)據(jù)輸入。重復(fù)上述操作,依數(shù)據(jù)輸入。重復(fù)上述操作,依次輸入其它數(shù)據(jù)記錄。次輸入其它數(shù)據(jù)記錄。16具體操作時(shí)應(yīng)注意以下問(wèn)題:(1)表的數(shù)據(jù)通過(guò)記錄編輯窗口按記錄逐個(gè)字段輸入。一)表的數(shù)據(jù)通過(guò)記錄編輯窗口按記錄逐個(gè)字段輸入。一旦在最后一個(gè)記錄的任何一個(gè)字段輸入數(shù)據(jù),旦在最后一個(gè)記錄的任何一個(gè)字段輸入數(shù)據(jù),Visual FoxPro將自動(dòng)提供下一記錄的輸入位置。將自動(dòng)提供下一記錄的輸入位置。(2)若輸入的數(shù)據(jù)充滿整個(gè)字段,則光標(biāo)自動(dòng)移到下一字)若輸入的數(shù)據(jù)充滿整個(gè)字段,則光標(biāo)自動(dòng)移到下一字段,否則,需要按回車(chē)鍵才能
12、將光標(biāo)移到下一字段。段,否則,需要按回車(chē)鍵才能將光標(biāo)移到下一字段。(3)邏輯型字段只能接收)邏輯型字段只能接收T,t,Y,y(表示(表示“真真”),F,f,N,n(表示(表示“假假”)中的任何一個(gè)字符。)中的任何一個(gè)字符。17具體操作時(shí)應(yīng)注意以下問(wèn)題:(4)日期型字段應(yīng)注意日期格式和日期的有效性,默認(rèn)按)日期型字段應(yīng)注意日期格式和日期的有效性,默認(rèn)按美國(guó)日期格式美國(guó)日期格式mm/dd/yy輸入。若按中國(guó)日期格式輸入。若按中國(guó)日期格式y(tǒng)y.mm.dd輸入,則須在命令窗口鍵入如下命令:輸入,則須在命令窗口鍵入如下命令: SET DATE ANSI 可實(shí)際觀察鍵入命令:可實(shí)際觀察鍵入命令: SET
13、DATE USA 和和 SET DATE AMERICA 后,日期輸入或顯示格式的變化。后,日期輸入或顯示格式的變化。 若要顯示年份的前兩位(世紀(jì)標(biāo)志),則可鍵入如下若要顯示年份的前兩位(世紀(jì)標(biāo)志),則可鍵入如下命令:命令: SET CENTURY ON 若取消世紀(jì)標(biāo)志,則可使用命令若取消世紀(jì)標(biāo)志,則可使用命令: SET CENTURY OFF。18 (5)對(duì)備注型字段的輸入,當(dāng)光標(biāo)位于該字段時(shí),雙擊鼠)對(duì)備注型字段的輸入,當(dāng)光標(biāo)位于該字段時(shí),雙擊鼠標(biāo)左鍵或按下標(biāo)左鍵或按下Ctrl+PgDn鍵進(jìn)入編輯器,輸入完字符型數(shù)據(jù)鍵進(jìn)入編輯器,輸入完字符型數(shù)據(jù)后關(guān)閉編輯器,此時(shí)后關(guān)閉編輯器,此時(shí)memo
14、變?yōu)樽優(yōu)镸emo(表示該字段非空)。(表示該字段非空)。 (6)對(duì)通用型字段的輸入,當(dāng)光標(biāo)位于該字段時(shí),雙擊鼠)對(duì)通用型字段的輸入,當(dāng)光標(biāo)位于該字段時(shí),雙擊鼠標(biāo)左鍵或按下標(biāo)左鍵或按下Ctrl+PgDn鍵進(jìn)入編輯器,此時(shí)可選定鍵進(jìn)入編輯器,此時(shí)可選定“編輯編輯”菜單的菜單的“插入對(duì)象插入對(duì)象”命令,插入圖形、電子表格或聲音等多命令,插入圖形、電子表格或聲音等多媒體數(shù)據(jù)文件,或使用媒體數(shù)據(jù)文件,或使用“復(fù)制復(fù)制”、“粘貼粘貼”操作將圖片等對(duì)操作將圖片等對(duì)象添加進(jìn)來(lái),然后關(guān)閉編輯器,此時(shí)象添加進(jìn)來(lái),然后關(guān)閉編輯器,此時(shí)gen變?yōu)樽優(yōu)镚en(表示該(表示該字段非空)。字段非空)。具體操作時(shí)應(yīng)注意以下問(wèn)
15、題:19 (7)在輸入數(shù)據(jù)的過(guò)程中,可將編輯窗口轉(zhuǎn)換為瀏覽窗)在輸入數(shù)據(jù)的過(guò)程中,可將編輯窗口轉(zhuǎn)換為瀏覽窗口,方法為選定口,方法為選定“顯示顯示”菜單的菜單的“瀏覽瀏覽”命令。命令。 (8)記錄數(shù)據(jù)輸入結(jié)束,按)記錄數(shù)據(jù)輸入結(jié)束,按Ctrl+W保存退出,若放棄已保存退出,若放棄已經(jīng)輸入的數(shù)據(jù)按經(jīng)輸入的數(shù)據(jù)按Ctrl+Q。 (9)在退出記錄編輯窗口后,如果需要再次進(jìn)入記錄編)在退出記錄編輯窗口后,如果需要再次進(jìn)入記錄編輯窗口,再次輸入記錄,可以通過(guò)改變輯窗口,再次輸入記錄,可以通過(guò)改變“顯示顯示”菜單中菜單中“追追加方式加方式”使表處于追加記錄狀態(tài),繼續(xù)其余記錄的輸入。使表處于追加記錄狀態(tài),繼續(xù)
16、其余記錄的輸入。具體操作時(shí)應(yīng)注意以下問(wèn)題:20課堂提問(wèn)課堂提問(wèn)數(shù)據(jù)表建立的步驟是什么?數(shù)據(jù)表建立的步驟是什么?1、設(shè)計(jì)數(shù)據(jù)表的結(jié)構(gòu)、設(shè)計(jì)數(shù)據(jù)表的結(jié)構(gòu) 根據(jù)實(shí)際問(wèn)題概括出所表達(dá)實(shí)際領(lǐng)域根據(jù)實(shí)際問(wèn)題概括出所表達(dá)實(shí)際領(lǐng)域的字段列表,確定字段名、類(lèi)型、寬度、的字段列表,確定字段名、類(lèi)型、寬度、小數(shù)位等信息。小數(shù)位等信息。2、確定相關(guān)實(shí)體記錄的內(nèi)容、確定相關(guān)實(shí)體記錄的內(nèi)容3、將設(shè)計(jì)好的數(shù)據(jù)表結(jié)構(gòu)和記錄信息通過(guò)一、將設(shè)計(jì)好的數(shù)據(jù)表結(jié)構(gòu)和記錄信息通過(guò)一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)軟件建立成計(jì)算機(jī)的物個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)軟件建立成計(jì)算機(jī)的物理文件。理文件。213.2 表的編輯修改表的編輯修改3.2.1 表文件打表文件打開(kāi)與關(guān)
17、閉開(kāi)與關(guān)閉 一般來(lái)說(shuō)一般來(lái)說(shuō), , 在進(jìn)在進(jìn)行各種表操作之前先行各種表操作之前先要打開(kāi)表。剛創(chuàng)建的要打開(kāi)表。剛創(chuàng)建的表則自動(dòng)處于打開(kāi)狀表則自動(dòng)處于打開(kāi)狀態(tài),在其它情況下可態(tài),在其它情況下可用如下方法打開(kāi)表。用如下方法打開(kāi)表。1.1.用菜單打開(kāi)表用菜單打開(kāi)表 使用使用“文件文件”菜菜單中的單中的“打開(kāi)打開(kāi)”命令,命令,出現(xiàn)如圖所示的出現(xiàn)如圖所示的“打打開(kāi)開(kāi)”對(duì)話框。對(duì)話框。 若要對(duì)表進(jìn)行編若要對(duì)表進(jìn)行編輯修改操作,則必須輯修改操作,則必須選定選定“獨(dú)占獨(dú)占”復(fù)選框復(fù)選框 222. 用用USE命令打開(kāi)和關(guān)閉表命令打開(kāi)和關(guān)閉表命令格式:命令格式: USE USE EXCLUSIVE | SHARED
18、 EXCLUSIVE | SHARED功能:功能:在當(dāng)前工作區(qū)中打開(kāi)或關(guān)閉表。在當(dāng)前工作區(qū)中打開(kāi)或關(guān)閉表。說(shuō)明:說(shuō)明:表打開(kāi)時(shí),若該表有備注型或通用型字段,則自動(dòng)打開(kāi)同名表打開(kāi)時(shí),若該表有備注型或通用型字段,則自動(dòng)打開(kāi)同名的的.FPT.FPT文件。文件。 缺省缺省 表示關(guān)閉當(dāng)前工作區(qū)中已經(jīng)打開(kāi)的表。表示關(guān)閉當(dāng)前工作區(qū)中已經(jīng)打開(kāi)的表。例如:例如: USE rsb &USE rsb &打開(kāi)打開(kāi)rsb.dbfrsb.dbf USE & USE &關(guān)閉該表關(guān)閉該表(1)用)用EXCLUSIVE選項(xiàng),則以獨(dú)占方式打開(kāi)表。用選項(xiàng),則以獨(dú)占方式打開(kāi)表。用SHARED選項(xiàng),則選項(xiàng),則以共享方式打開(kāi)表,此時(shí)表結(jié)
19、構(gòu)和表數(shù)據(jù)只讀,不能編輯修改。以共享方式打開(kāi)表,此時(shí)表結(jié)構(gòu)和表數(shù)據(jù)只讀,不能編輯修改。(2)打開(kāi)一個(gè)表時(shí),該工作區(qū)中原來(lái)打開(kāi)的表自動(dòng)關(guān)閉。)打開(kāi)一個(gè)表時(shí),該工作區(qū)中原來(lái)打開(kāi)的表自動(dòng)關(guān)閉。(3)已打開(kāi)的一個(gè)表有一個(gè))已打開(kāi)的一個(gè)表有一個(gè)指針指針與其對(duì)應(yīng),指針?biāo)傅挠涗浄Q(chēng)為與其對(duì)應(yīng),指針?biāo)傅挠涗浄Q(chēng)為當(dāng)前記當(dāng)前記錄錄。表剛打開(kāi)時(shí),記錄指針指向第一個(gè)記錄。表剛打開(kāi)時(shí),記錄指針指向第一個(gè)記錄。(4)表操作結(jié)束后應(yīng)及時(shí)關(guān)閉,以便將內(nèi)存中的數(shù)據(jù)保存到外存的表文)表操作結(jié)束后應(yīng)及時(shí)關(guān)閉,以便將內(nèi)存中的數(shù)據(jù)保存到外存的表文件中。件中。2021-10-20233.關(guān)閉表的其它方法關(guān)閉表的其它方法:CLEAR A
20、LL:關(guān)閉所有的表,并選擇工作區(qū):關(guān)閉所有的表,并選擇工作區(qū)1,釋放所有內(nèi)存變量、,釋放所有內(nèi)存變量、用戶定義的菜單和窗口。用戶定義的菜單和窗口。CLOSE ALL:關(guān)閉所有打開(kāi)的數(shù)據(jù)庫(kù)和表,并選擇工作區(qū):關(guān)閉所有打開(kāi)的數(shù)據(jù)庫(kù)和表,并選擇工作區(qū)1,關(guān)閉各,關(guān)閉各種設(shè)計(jì)器和項(xiàng)目管理器。種設(shè)計(jì)器和項(xiàng)目管理器。CLOSE DATABASE ALL:關(guān)閉當(dāng)前數(shù)據(jù)庫(kù)和其中的表,若無(wú)關(guān)閉當(dāng)前數(shù)據(jù)庫(kù)和其中的表,若無(wú)打開(kāi)的數(shù)據(jù)庫(kù),則關(guān)閉所有自由表,并選擇工作區(qū)打開(kāi)的數(shù)據(jù)庫(kù),則關(guān)閉所有自由表,并選擇工作區(qū)1。帶。帶ALL則關(guān)閉所有則關(guān)閉所有數(shù)據(jù)庫(kù)和其中的表,以及所有已經(jīng)打開(kāi)的自由表。數(shù)據(jù)庫(kù)和其中的表,以及所有已
21、經(jīng)打開(kāi)的自由表。CLOSE TABLES ALL:關(guān)閉當(dāng)前數(shù)據(jù)庫(kù)中所有的表,但不關(guān)閉關(guān)閉當(dāng)前數(shù)據(jù)庫(kù)中所有的表,但不關(guān)閉數(shù)據(jù)庫(kù)。若無(wú)打開(kāi)的數(shù)據(jù)庫(kù),則關(guān)閉所有自由表。帶數(shù)據(jù)庫(kù)。若無(wú)打開(kāi)的數(shù)據(jù)庫(kù),則關(guān)閉所有自由表。帶ALL則關(guān)閉所有數(shù)則關(guān)閉所有數(shù)據(jù)庫(kù)中所有的表和所有自由表,但不關(guān)閉數(shù)據(jù)庫(kù)。據(jù)庫(kù)中所有的表和所有自由表,但不關(guān)閉數(shù)據(jù)庫(kù)。 除以上命令之外,還可通過(guò)退出除以上命令之外,還可通過(guò)退出Visual FoxPro來(lái)關(guān)閉來(lái)關(guān)閉已打開(kāi)的表。選定已打開(kāi)的表。選定“文件文件”菜單中的菜單中的“退出退出”命令,或在命令,或在“命令命令”窗口鍵入命令窗口鍵入命令QUIT。243.2.2 表結(jié)構(gòu)顯示與修改表結(jié)構(gòu)
22、顯示與修改1. 1. 表結(jié)構(gòu)顯示表結(jié)構(gòu)顯示 LIST | DISPLAY STRUCTURE TO PRINTER PROMPT LIST | DISPLAY STRUCTURE TO PRINTER PROMPT | TO FILE | TO FILE 顯示當(dāng)前已經(jīng)打開(kāi)表的結(jié)構(gòu)。選項(xiàng)顯示當(dāng)前已經(jīng)打開(kāi)表的結(jié)構(gòu)。選項(xiàng)TO PRINTERTO PRINTER和和TO TO FILE FILE 含義與在變量顯示命令中的含義相同。含義與在變量顯示命令中的含義相同。 例例3-3 3-3 顯示顯示rsbrsb表的結(jié)構(gòu)。表的結(jié)構(gòu)。在在“命令命令”窗口依次鍵入如下兩條命令:窗口依次鍵入如下兩條命令:USE r
23、sb & USE rsb & 在當(dāng)前工作區(qū)打開(kāi)表在當(dāng)前工作區(qū)打開(kāi)表rsbrsbLIST STRUCTURE & LIST STRUCTURE & 顯示表顯示表rsbrsb的結(jié)構(gòu)的結(jié)構(gòu)25比各字段寬度和多一比各字段寬度和多一個(gè)字節(jié)個(gè)字節(jié), ,存刪除標(biāo)記存刪除標(biāo)記表結(jié)構(gòu)表結(jié)構(gòu): D:VISUAL FOXPRO EXERCISERSB.DBF數(shù)據(jù)記錄數(shù)數(shù)據(jù)記錄數(shù): 10最近更新的時(shí)間最近更新的時(shí)間: 07/18/08備注文件塊大小備注文件塊大小: 64代碼頁(yè)代碼頁(yè): 936 字段字段 字段名字段名 類(lèi)型類(lèi)型 寬度寬度 小數(shù)位小數(shù)位 索引索引 排序排序 Nulls 1 編號(hào)編號(hào) 字符型字符型 4 否否
24、 2 姓名姓名 字符型字符型 8 否否 3 性別性別 字符型字符型 2 否否 4 出生日期出生日期 日期型日期型 8 否否 5 工作日期工作日期 日期型日期型 8 否否 6 部門(mén)代碼部門(mén)代碼 字符型字符型 3 否否 7 職稱(chēng)職稱(chēng) 字符型字符型 10 否否 8 婚否婚否 邏輯型邏輯型 1 否否 9 基本工資基本工資 數(shù)值型數(shù)值型 8 2 否否 10 簡(jiǎn)歷簡(jiǎn)歷 備注型備注型 4 否否 11 相片相片 通用型通用型 4 * 總計(jì)總計(jì) * 61262. 表結(jié)構(gòu)修改表結(jié)構(gòu)修改 在表已經(jīng)打開(kāi)的情況下,可以采用如下兩種方法之一打在表已經(jīng)打開(kāi)的情況下,可以采用如下兩種方法之一打開(kāi)開(kāi)“表設(shè)計(jì)器表設(shè)計(jì)器”窗口。窗
25、口。(1) 選定選定“顯示顯示”菜單的菜單的“表設(shè)計(jì)器表設(shè)計(jì)器”命令。命令。(2)在)在“命令命令”窗口鍵入命令窗口鍵入命令MODIFY STRUCTURE。 “表設(shè)計(jì)器表設(shè)計(jì)器”窗口出現(xiàn)后,可以按照需要修改字段屬性,窗口出現(xiàn)后,可以按照需要修改字段屬性,也可以利用也可以利用“插入插入”按鈕在任何位置增加字段;或利用按鈕在任何位置增加字段;或利用“刪刪除除”按鈕刪除字段;按鈕刪除字段;利用最左邊的上下移動(dòng)按鈕列,改變字利用最左邊的上下移動(dòng)按鈕列,改變字段在表結(jié)構(gòu)中的次序。段在表結(jié)構(gòu)中的次序。 表結(jié)構(gòu)修改完成后,可選擇窗口的表結(jié)構(gòu)修改完成后,可選擇窗口的“確定確定”按鈕或按鈕或“取消取消”按鈕對(duì)
26、所做出的修改進(jìn)行確認(rèn)或取消。按鈕對(duì)所做出的修改進(jìn)行確認(rèn)或取消。 (1 1)【確定確定】按鈕與按鈕與Ctrl+WCtrl+W鍵作用相同。鍵作用相同。 (2 2)【取消取消】按鈕與按鈕與Ctrl+QCtrl+Q鍵作用相同。鍵作用相同。273.2.3 記錄顯示與修改記錄顯示與修改1. LIST/DISPLAY命令顯示記錄命令顯示記錄命令格式:命令格式: LIST | DISPLAY FIELDS FOR WHILE OFF TO PRINTER PROMPT | TO FILE 功能:按指定范圍和條件篩選出記錄并顯示出來(lái),或送到指定的功能:按指定范圍和條件篩選出記錄并顯示出來(lái),或送到指定的目的地。目
27、的地。說(shuō)明:說(shuō)明:LIST和和DISPLAY命令的功能有所不同,命令的功能有所不同,LIST以連續(xù)滾動(dòng)以連續(xù)滾動(dòng)方式輸出,方式輸出,DISPLAY為分屏顯示。為分屏顯示。LIST缺省范圍時(shí)將顯示缺省范圍時(shí)將顯示所有記錄,所有記錄,DISPLAY缺省范圍時(shí)只顯示當(dāng)前記錄。缺省范圍時(shí)只顯示當(dāng)前記錄。 為了讓用戶了解顯示內(nèi)容所在的記錄,命令自動(dòng)顯示為了讓用戶了解顯示內(nèi)容所在的記錄,命令自動(dòng)顯示記錄號(hào),若不需要顯示記錄號(hào),則在命令中使用記錄號(hào),若不需要顯示記錄號(hào),則在命令中使用OFF選項(xiàng)。選項(xiàng)。 選項(xiàng)選項(xiàng)TO PRINTER和和TO FILE 含義與在變量含義與在變量顯示命令中的含義相同顯示命令中的含
28、義相同28(1)FIELDS(1)FIELDS子句子句FIELDS子句指定要顯示的字段,該子句的保留字子句指定要顯示的字段,該子句的保留字FIELDS可以省略。可以省略。用來(lái)列出需要顯示的內(nèi)容,表達(dá)式中包含有用來(lái)列出需要顯示的內(nèi)容,表達(dá)式中包含有字段變量,表達(dá)式之間用字段變量,表達(dá)式之間用“,”號(hào)分隔。號(hào)分隔。例例3-4 顯示顯示rsb中職工的編號(hào)中職工的編號(hào),姓名姓名,性別和年齡。性別和年齡??稍诿畲翱阪I入如下命令:可在命令窗口鍵入如下命令:USE rsbLIST 編號(hào)編號(hào),姓名姓名,性別性別,YEAR(DATE()-YEAR(出生日期出生日期) 29(2 2)范圍子句)范圍子句范圍子句用
29、來(lái)確定該命令涉及的記錄,范圍有范圍子句用來(lái)確定該命令涉及的記錄,范圍有4種限定方種限定方法:法:ALL:所有記錄;:所有記錄;NEXT(n):從當(dāng)前記錄開(kāi)始的:從當(dāng)前記錄開(kāi)始的n個(gè)記錄;個(gè)記錄;RECORD(n):第:第n個(gè)記錄;個(gè)記錄;REST:從當(dāng)前記錄開(kāi)始到最后一個(gè)記錄的所有記錄。:從當(dāng)前記錄開(kāi)始到最后一個(gè)記錄的所有記錄。例如,顯示第例如,顯示第1記錄至第記錄至第4記錄的指定字段,可在命令窗口記錄的指定字段,可在命令窗口鍵入如下命令:鍵入如下命令:USE rsb & 打開(kāi)打開(kāi)rsb,記錄指針指向第,記錄指針指向第1記錄記錄LIST 編號(hào)編號(hào),姓名姓名,性別性別,出生日期出生日期 NEXT
30、(4)命令動(dòng)詞為命令動(dòng)詞為L(zhǎng)IST時(shí),范圍子句缺省時(shí)默認(rèn)為時(shí),范圍子句缺省時(shí)默認(rèn)為ALL。而當(dāng)命。而當(dāng)命令動(dòng)詞為令動(dòng)詞為DISPLAY時(shí),范圍子句缺省時(shí)默認(rèn)為當(dāng)前記錄。時(shí),范圍子句缺省時(shí)默認(rèn)為當(dāng)前記錄。30(3 3)FOR子句子句 FOR子句的子句的為邏輯表達(dá)式,它指定記錄選擇的為邏輯表達(dá)式,它指定記錄選擇的條件,相當(dāng)于條件,相當(dāng)于關(guān)系運(yùn)算的關(guān)系運(yùn)算的“選擇選擇”操作操作,在指定的范圍內(nèi)篩,在指定的范圍內(nèi)篩選出符合條件的記錄。選出符合條件的記錄。例如:例如:USE rsb LIST 姓名姓名 FOR 婚否婚否=.T. REST (4 4)WHILEWHILE子句子句 WHILE子句也用于指明操
31、作條件,但僅在當(dāng)前記錄符合子句也用于指明操作條件,但僅在當(dāng)前記錄符合時(shí)才開(kāi)始依次篩選記錄,一旦遇到不滿足時(shí)才開(kāi)始依次篩選記錄,一旦遇到不滿足的記的記錄就停止操作。例如:錄就停止操作。例如: USE rsb LIST 姓名姓名,出生日期出生日期,婚否婚否 WHILE YEAR(出生日期出生日期)1975 31(5 5)命令和子句的書(shū)寫(xiě)規(guī)則)命令和子句的書(shū)寫(xiě)規(guī)則 命令動(dòng)詞與子句、子句與子句、子句內(nèi)的各部分(例如:命令動(dòng)詞與子句、子句與子句、子句內(nèi)的各部分(例如:FOR與與)之間必須用空格隔開(kāi),各子句的次序可)之間必須用空格隔開(kāi),各子句的次序可以任意排列。例如:以任意排列。例如: LIST FOR
32、婚否婚否=.F. WHILE YEAR(出生日期出生日期)1975 姓名姓名,出生日期出生日期,婚否婚否 所有命令動(dòng)詞、各子句和內(nèi)部函數(shù)中的保留字都可只寫(xiě)前所有命令動(dòng)詞、各子句和內(nèi)部函數(shù)中的保留字都可只寫(xiě)前4個(gè)字母(在命令窗口輸入時(shí)也一樣),而且英文字母大個(gè)字母(在命令窗口輸入時(shí)也一樣),而且英文字母大小寫(xiě)等效。例如:小寫(xiě)等效。例如: MODIFY STRUCTURE 可簡(jiǎn)寫(xiě)為可簡(jiǎn)寫(xiě)為MODI STRU或或modi stru 一條命令的長(zhǎng)度可達(dá)一條命令的長(zhǎng)度可達(dá)8192個(gè)字符,若一行寫(xiě)不完,可在個(gè)字符,若一行寫(xiě)不完,可在適當(dāng)位置插入續(xù)行標(biāo)志適當(dāng)位置插入續(xù)行標(biāo)志“;”并回車(chē),在下一行繼續(xù)輸入該并
33、回車(chē),在下一行繼續(xù)輸入該命令的其余部分。命令的其余部分。 命令動(dòng)詞、子句和函數(shù)中的保留字(英文字母),以及命命令動(dòng)詞、子句和函數(shù)中的保留字(英文字母),以及命令中的分隔符號(hào)(例如令中的分隔符號(hào)(例如“,”號(hào))和數(shù)字均要用半角符號(hào),號(hào))和數(shù)字均要用半角符號(hào),不能用全角符號(hào)。不能用全角符號(hào)。4. REPLACE命令命令命令格式:命令格式:REPLACE WITH ADDITIVE , WITH ADDITIVE . FOR WHILE 功能:在當(dāng)前打開(kāi)表的指定記錄中,將有關(guān)字段的值用相應(yīng)功能:在當(dāng)前打開(kāi)表的指定記錄中,將有關(guān)字段的值用相應(yīng)的表達(dá)式值來(lái)替換。該命令對(duì)的表達(dá)式值來(lái)替換。該命令對(duì)內(nèi)符合內(nèi)
34、符合的記的記錄用錄用的值來(lái)替換的值來(lái)替換。說(shuō)明:說(shuō)明:若若與與等選項(xiàng)都缺省,只對(duì)當(dāng)前記錄的有關(guān)字段進(jìn)等選項(xiàng)都缺省,只對(duì)當(dāng)前記錄的有關(guān)字段進(jìn)行替換。行替換。ADDITIVE用于備注型字段,表示將表達(dá)式值添加到字段的用于備注型字段,表示將表達(dá)式值添加到字段的原有內(nèi)容之后,而不是取代。原有內(nèi)容之后,而不是取代。 例如:例如: USE rsb REPLACE 簡(jiǎn)歷簡(jiǎn)歷 WITH 2003年年9月評(píng)為省勞動(dòng)模范。月評(píng)為省勞動(dòng)模范。 ADDITIVE32335. 記錄定位記錄定位Visual FoxPro為每一個(gè)表都設(shè)置了一個(gè)指針,稱(chēng)為為每一個(gè)表都設(shè)置了一個(gè)指針,稱(chēng)為記錄指記錄指針針。Visual Fox
35、Pro通過(guò)記錄指針來(lái)標(biāo)識(shí)操作的記錄對(duì)象,記錄通過(guò)記錄指針來(lái)標(biāo)識(shí)操作的記錄對(duì)象,記錄指針?biāo)赶虻挠涗浄Q(chēng)為指針?biāo)赶虻挠涗浄Q(chēng)為當(dāng)前記錄當(dāng)前記錄,記錄定位就是將記錄指針指,記錄定位就是將記錄指針指向某個(gè)記錄,使其成為當(dāng)前記錄。記錄定位命令有絕對(duì)定位命向某個(gè)記錄,使其成為當(dāng)前記錄。記錄定位命令有絕對(duì)定位命令和相對(duì)定位命令令和相對(duì)定位命令2種。表剛打開(kāi)時(shí),記錄指針指向第一個(gè)記錄。種。表剛打開(kāi)時(shí),記錄指針指向第一個(gè)記錄。(1) 絕對(duì)定位命令絕對(duì)定位命令命令格式命令格式1: GOTO TOP|BOTTOM功能:將記錄指針定位在表的第一個(gè)記錄或最后一個(gè)記錄。功能:將記錄指針定位在表的第一個(gè)記錄或最后一個(gè)記錄。
36、命令格式命令格式2: GOTO 功能:將記錄指針定位在功能:將記錄指針定位在指出的記錄。指出的記錄。34例如:例如:USE rsb & 打開(kāi)打開(kāi)rsb,當(dāng)前記錄為第一個(gè)記錄,當(dāng)前記錄為第一個(gè)記錄? RECNO() & 顯示記錄號(hào)顯示記錄號(hào)1GO BOTTOM & 指針移動(dòng)到最后一個(gè)記錄指針移動(dòng)到最后一個(gè)記錄? RECNO() & 顯示最后一個(gè)記錄的記錄號(hào)顯示最后一個(gè)記錄的記錄號(hào)GOTO 4 & 指針移動(dòng)到指針移動(dòng)到4號(hào)記錄號(hào)記錄? RECNO() & 顯示當(dāng)前記錄號(hào)顯示當(dāng)前記錄號(hào)42 & 指針移動(dòng)到指針移動(dòng)到2號(hào)記錄號(hào)記錄? RECNO() & 顯示當(dāng)前記錄號(hào)顯示當(dāng)前記錄號(hào)2注:注:例中函數(shù)例
37、中函數(shù)RECNO()返回當(dāng)前記錄的記錄號(hào)。返回當(dāng)前記錄的記錄號(hào)。35(2)相對(duì)定位命令相對(duì)定位命令命令格式:命令格式:SKIP 功能:從當(dāng)前記錄開(kāi)始相對(duì)移動(dòng)記錄指針。功能:從當(dāng)前記錄開(kāi)始相對(duì)移動(dòng)記錄指針。說(shuō)明:當(dāng)說(shuō)明:當(dāng)為負(fù)值時(shí),指針向文件頭移動(dòng),當(dāng)為負(fù)值時(shí),指針向文件頭移動(dòng),當(dāng)為正值時(shí),指針向文件尾移動(dòng)。為正值時(shí),指針向文件尾移動(dòng)。缺省時(shí)默認(rèn)為缺省時(shí)默認(rèn)為1。 例如:例如:USE rsb & 打開(kāi)打開(kāi)rsb,當(dāng)前記錄為第一個(gè)記錄,當(dāng)前記錄為第一個(gè)記錄? RECNO() & 顯示顯示1SKIP 3 & 指針向文件尾移動(dòng)指針向文件尾移動(dòng)3? RECNO() & 顯示顯示4GO BOTTOM &
38、當(dāng)前記錄為最后一個(gè)記錄當(dāng)前記錄為最后一個(gè)記錄? RECNO() & 顯示最后一個(gè)記錄的記錄號(hào)顯示最后一個(gè)記錄的記錄號(hào)SKIP -5 & 指針向文件頭移動(dòng)指針向文件頭移動(dòng)5條記錄條記錄? RECNO() 363.2.5 記錄刪除與恢復(fù)記錄刪除與恢復(fù) 刪除記錄一般需要兩步刪除記錄一般需要兩步: (1) 加刪除標(biāo)記加刪除標(biāo)記;(2) 將帶有刪除將帶有刪除標(biāo)記的記錄從表中刪除。標(biāo)記的記錄從表中刪除。 在物理刪除前可以恢復(fù)。在物理刪除前可以恢復(fù)。1. 邏輯刪除邏輯刪除 在在“瀏覽瀏覽”窗口單擊該記錄行最左的刪除標(biāo)記列,就會(huì)窗口單擊該記錄行最左的刪除標(biāo)記列,就會(huì)出現(xiàn)刪除標(biāo)記出現(xiàn)刪除標(biāo)記“” 。 使用下面的
39、命令作刪除標(biāo)記。使用下面的命令作刪除標(biāo)記。 DELETE FOR WHILE 功能:對(duì)當(dāng)前表在指定功能:對(duì)當(dāng)前表在指定內(nèi)滿足內(nèi)滿足和和的記錄做刪除標(biāo)記。若可選項(xiàng)都缺省,只指當(dāng)前記錄。的記錄做刪除標(biāo)記。若可選項(xiàng)都缺省,只指當(dāng)前記錄。 372.物理刪除物理刪除命令格式:命令格式:PACK功能:從表中將帶有刪除標(biāo)記的記錄物理刪除。功能:從表中將帶有刪除標(biāo)記的記錄物理刪除。說(shuō)明:說(shuō)明:DELETE給記錄作刪除標(biāo)記,給記錄作刪除標(biāo)記,PACK將作了刪除標(biāo)記將作了刪除標(biāo)記的記錄徹底刪除。的記錄徹底刪除。例例3-6 物理刪除部門(mén)代碼為物理刪除部門(mén)代碼為“B02”的職工記錄。的職工記錄。代碼如下:代碼如下:
40、USE rsb DELETE FOR RIGHT(部門(mén)代碼部門(mén)代碼,3)=B02 & 部門(mén)代碼為部門(mén)代碼為“B02”記錄作刪除標(biāo)記記錄作刪除標(biāo)記 LIST PACK & 物理刪除作了刪除標(biāo)記的職工記錄物理刪除作了刪除標(biāo)記的職工記錄 LIST383. 記錄恢復(fù)記錄恢復(fù) 在在“瀏覽瀏覽”窗口單擊記錄的刪除標(biāo)記列,刪除標(biāo)記窗口單擊記錄的刪除標(biāo)記列,刪除標(biāo)記“”消失即可。消失即可。或使用下面的命令去掉刪除標(biāo)記?;蚴褂孟旅娴拿钊サ魟h除標(biāo)記。 RECALL FOR WHILE 功能:對(duì)當(dāng)前表在指定功能:對(duì)當(dāng)前表在指定內(nèi)滿足條件的記錄去掉刪除標(biāo)記。內(nèi)滿足條件的記錄去掉刪除標(biāo)記。說(shuō)明:當(dāng)所有可選項(xiàng)都缺省時(shí)只
41、恢復(fù)當(dāng)前記錄。說(shuō)明:當(dāng)所有可選項(xiàng)都缺省時(shí)只恢復(fù)當(dāng)前記錄。例例3-7 邏輯刪除部門(mén)代碼為邏輯刪除部門(mén)代碼為“A01”記錄,恢復(fù)所有職稱(chēng)為副教授的職記錄,恢復(fù)所有職稱(chēng)為副教授的職工記錄。工記錄。 USE rsb DELETE FOR RIGHT(部門(mén)代碼部門(mén)代碼,3)=“A01 RECALL FOR ALLTRIM(職稱(chēng)職稱(chēng))=副教授副教授 LIST394. 清除全部記錄清除全部記錄 要物理刪除當(dāng)前表中的所有記錄,則可以使用要物理刪除當(dāng)前表中的所有記錄,則可以使用如下命令如下命令命令格式:命令格式: ZAP功能:刪除當(dāng)前表中的所有記錄,只保留表結(jié)構(gòu)部功能:刪除當(dāng)前表中的所有記錄,只保留表結(jié)構(gòu)部分。
42、分。說(shuō)明:說(shuō)明:執(zhí)行執(zhí)行ZAPZAP相當(dāng)于執(zhí)行相當(dāng)于執(zhí)行DELETE ALLDELETE ALL和和PACKPACK兩條兩條命令,命令,ZAPZAP將刪除當(dāng)前表中的所有記錄,慎用。將刪除當(dāng)前表中的所有記錄,慎用。40課堂提問(wèn)課堂提問(wèn)1、如何修改數(shù)據(jù)表的結(jié)構(gòu)?、如何修改數(shù)據(jù)表的結(jié)構(gòu)?2、如何修改記錄的內(nèi)容?、如何修改記錄的內(nèi)容?3、REPLACE命令的功能是什么?命令的功能是什么?4、記錄定位有哪、記錄定位有哪2種命令?種命令?5、記錄刪除的命令有哪些?、記錄刪除的命令有哪些?3.4 排序與索引排序與索引3.4.1 排序排序 排序就是按表中的字段重新排列記錄順序。排序后生成一個(gè)排序就是按表中的字
43、段重新排列記錄順序。排序后生成一個(gè)新表,新表的記錄按新的物理順序排列。新表,新表的記錄按新的物理順序排列。命令格式:命令格式:SORT TO ON /A|/D /C, /A|/D /C . ASCENDING | DESCENDING FOR WHILE FIELDS | FIELDS LIKE 通配字段名通配字段名| FIELDS EXCEPT通配字段名通配字段名功能:將當(dāng)前數(shù)據(jù)表按指定的一個(gè)或多個(gè)字段進(jìn)行排序,并將排功能:將當(dāng)前數(shù)據(jù)表按指定的一個(gè)或多個(gè)字段進(jìn)行排序,并將排序的結(jié)果保存到一個(gè)新的數(shù)據(jù)表中。序的結(jié)果保存到一個(gè)新的數(shù)據(jù)表中。41例例3-11 對(duì)對(duì)rsb.dbf分別按以下要求排序:
44、分別按以下要求排序:(1)按工作日期先后順序排列,結(jié)果僅包含編號(hào),姓名,性)按工作日期先后順序排列,結(jié)果僅包含編號(hào),姓名,性別,工作日期,職稱(chēng)這別,工作日期,職稱(chēng)這5個(gè)字段,并存入表個(gè)字段,并存入表px1.dbf中。中。(2)將已婚的職工按性別的降序排序,當(dāng)性別相同時(shí)按姓名)將已婚的職工按性別的降序排序,當(dāng)性別相同時(shí)按姓名的升序排序,結(jié)果僅包含編號(hào),姓名,性別,工作日期,職稱(chēng)的升序排序,結(jié)果僅包含編號(hào),姓名,性別,工作日期,職稱(chēng),婚否這,婚否這6個(gè)字段,并存入表個(gè)字段,并存入表px2.dbf中。中。(1)代碼如下:)代碼如下:USE rsbSORT TO px1 ON 工作日期工作日期 FIE
45、LDS 編號(hào)編號(hào),姓名姓名,性別性別,工作日工作日期期,職稱(chēng)職稱(chēng)USE px1LIST4243例例3-11 對(duì)對(duì)rsb.dbf分別按以下要求排序:分別按以下要求排序:(2)將已婚的職工按性別的降序排序,當(dāng)性別相同時(shí)按姓名)將已婚的職工按性別的降序排序,當(dāng)性別相同時(shí)按姓名的升序排序,結(jié)果僅包含編號(hào),姓名,性別,工作日期,職的升序排序,結(jié)果僅包含編號(hào),姓名,性別,工作日期,職稱(chēng),婚否這稱(chēng),婚否這6個(gè)字段,并存入表個(gè)字段,并存入表px2.dbf中。中。代碼如下:代碼如下:USE rsbSORT TO px2 ON 性別性別/D,姓名姓名/A FOR 婚否婚否 FIELDS 編號(hào)編號(hào),姓名姓名,性別性
46、別,工作日期工作日期,職稱(chēng)職稱(chēng),婚否婚否USE px2LIST443.4.2 索引索引1.索引的概念索引的概念 索引是按索引表達(dá)式使數(shù)據(jù)表中的記錄有序地進(jìn)行索引是按索引表達(dá)式使數(shù)據(jù)表中的記錄有序地進(jìn)行邏輯排列的技術(shù)。索引不改變當(dāng)前數(shù)據(jù)表記錄的物理順邏輯排列的技術(shù)。索引不改變當(dāng)前數(shù)據(jù)表記錄的物理順序,而是建立一個(gè)與數(shù)據(jù)表相對(duì)應(yīng)的索引文件。序,而是建立一個(gè)與數(shù)據(jù)表相對(duì)應(yīng)的索引文件。 2.索引的類(lèi)型索引的類(lèi)型按文件擴(kuò)展名分為按文件擴(kuò)展名分為2類(lèi):類(lèi):?jiǎn)嗡饕募▎嗡饕募?.IDX)和復(fù)合索引文件()和復(fù)合索引文件(*.CDX) 按索引功能分為按索引功能分為4類(lèi):類(lèi):主索引、候選索引、普通索引和唯
47、一索引。主索引、候選索引、普通索引和唯一索引。 45索引類(lèi)型索引類(lèi)型建立命令建立命令關(guān)鍵字值重復(fù)關(guān)鍵字值重復(fù)索引個(gè)數(shù)索引個(gè)數(shù)說(shuō)明說(shuō)明主索引主索引CREATE TABLEALTER TABLE不允許不允許僅可一個(gè)僅可一個(gè)用于數(shù)據(jù)庫(kù)表,可用于用于數(shù)據(jù)庫(kù)表,可用于在永久關(guān)系中建立參照在永久關(guān)系中建立參照完整性完整性候選索引候選索引INDEXCREATE TABLEALTER TABLE可以多個(gè)可以多個(gè)可用作主關(guān)鍵字,用于可用作主關(guān)鍵字,用于在永久關(guān)系中建立參照在永久關(guān)系中建立參照完整性完整性普通索引普通索引INDEX允許允許可作為一對(duì)多永久關(guān)系可作為一對(duì)多永久關(guān)系中的中的“多方多方”唯一索引唯一索引
48、允許,但輸出無(wú)允許,但輸出無(wú)重復(fù)值重復(fù)值主要用于兼容舊版本,主要用于兼容舊版本,對(duì)于關(guān)鍵字值相同的記對(duì)于關(guān)鍵字值相同的記錄,索引中只列出其中錄,索引中只列出其中的第一個(gè)記錄的第一個(gè)記錄索引功能分類(lèi)表索引功能分類(lèi)表 463.索引的建立索引的建立(1)使用索引命令建立索引。)使用索引命令建立索引。命令格式:命令格式:INDEX ON TO | TAG OF FOR COMPACT ASCENDING | DESCENDING UNIQUE | CANDIDATE ADDITIVE功能:建立索引文件或建立索引標(biāo)識(shí)。功能:建立索引文件或建立索引標(biāo)識(shí)。 TO 子句用于建立單索引文件 TAG子句用于建立復(fù)
49、合索引標(biāo)識(shí)或復(fù)合索引文件 用于指定非結(jié)構(gòu)復(fù)合索引文件的名字用來(lái)指定單索引文件為壓縮的 分別用于指定升序或降序 表示建立唯一索引 表示建立候選索引 47例例3-12 為數(shù)據(jù)表為數(shù)據(jù)表gzb.dbf按基本工資從小到大建立單索引文按基本工資從小到大建立單索引文件件jbgz.idx,按實(shí)發(fā)工資從高到低建立單索引文件,按實(shí)發(fā)工資從高到低建立單索引文件sfgz.idx。代碼如下:代碼如下:USE gzbINDEX ON 基本工資基本工資 TO jbgz&單索引文件總是按索引關(guān)鍵字單索引文件總是按索引關(guān)鍵字 升序排列升序排列LIST&記錄已按基本工資升序排列記錄已按基本工資升序排列INDEX ON 實(shí)發(fā)工資
50、實(shí)發(fā)工資 TO sfgz &給實(shí)發(fā)工資取負(fù)號(hào)后使索引關(guān)給實(shí)發(fā)工資取負(fù)號(hào)后使索引關(guān) 鍵字表達(dá)式按升序排列,以求鍵字表達(dá)式按升序排列,以求 實(shí)發(fā)工資按降序排列實(shí)發(fā)工資按降序排列LIST&記錄已按實(shí)發(fā)工資降序排列記錄已按實(shí)發(fā)工資降序排列48例例3-13 為為rsb.dbf按下列要求建立結(jié)構(gòu)復(fù)合索引文件。按下列要求建立結(jié)構(gòu)復(fù)合索引文件。 記錄以姓名降序排列,索引標(biāo)識(shí)記錄以姓名降序排列,索引標(biāo)識(shí)xm,索引類(lèi)型為普通索引。,索引類(lèi)型為普通索引。 記錄以出生日期升序排列,索引標(biāo)識(shí)記錄以出生日期升序排列,索引標(biāo)識(shí)csrq,索引類(lèi)型為唯一索,索引類(lèi)型為唯一索引。引。 記錄以職稱(chēng)降序排列,職稱(chēng)相同的按出生日期降序
51、排列,索引記錄以職稱(chēng)降序排列,職稱(chēng)相同的按出生日期降序排列,索引標(biāo)識(shí)標(biāo)識(shí)zccsrq,索引類(lèi)型為候選索引。,索引類(lèi)型為候選索引。代碼如下:代碼如下:USE rsbINDEX ON 姓名姓名 TAG xm DESCENDINGLISTINDEX ON 出生日期出生日期 TAG csrq UNIQUELISTINDEX ON 職稱(chēng)職稱(chēng)+DTOS(出生日期出生日期) TAG zccsrq DESCENDING CANDIDATELIST49(2)利用表設(shè)計(jì)器來(lái)建立索引利用表設(shè)計(jì)器來(lái)建立索引 在“索引名”文本框中輸入索引標(biāo)識(shí)名 在“類(lèi)型”列表框中,選定索引類(lèi)型在“表達(dá)式”文本框中,輸入索引關(guān)鍵字表達(dá)式
52、 向上箭頭為升序索引,向下箭頭為降序索引如果需要,可輸入篩選條件表達(dá)式 504.索引的使用索引的使用(1) 打開(kāi)和關(guān)閉單索引文件打開(kāi)和關(guān)閉單索引文件 同時(shí)打開(kāi)數(shù)據(jù)表和單索引文件的命令同時(shí)打開(kāi)數(shù)據(jù)表和單索引文件的命令命令格式:命令格式:USE INDEX 單索引文件名表單索引文件名表功能:在打開(kāi)數(shù)據(jù)表的同時(shí)打開(kāi)一個(gè)或多個(gè)索引文件。如果索引文功能:在打開(kāi)數(shù)據(jù)表的同時(shí)打開(kāi)一個(gè)或多個(gè)索引文件。如果索引文件有多個(gè),文件之間用逗號(hào)分隔,并確定第一個(gè)索引文件為主控索件有多個(gè),文件之間用逗號(hào)分隔,并確定第一個(gè)索引文件為主控索引文件。引文件。 先打開(kāi)數(shù)據(jù)表,然后才打開(kāi)單索引文件的命令先打開(kāi)數(shù)據(jù)表,然后才打開(kāi)單索
53、引文件的命令命令格式:命令格式:SET INDEX TO 單索引文件名表單索引文件名表ADDITIVE功能:打開(kāi)當(dāng)前表的一個(gè)或多個(gè)單索引文件并確定第一個(gè)單索引文功能:打開(kāi)當(dāng)前表的一個(gè)或多個(gè)單索引文件并確定第一個(gè)單索引文件為主控索引文件。件為主控索引文件。 51 單索引文件的關(guān)閉命令單索引文件的關(guān)閉命令命令格式:命令格式:CLOSE INDEXES或或SET INDEX TO功能:關(guān)閉當(dāng)前工作區(qū)所有打開(kāi)的索引文件(結(jié)構(gòu)復(fù)合索引除外)。功能:關(guān)閉當(dāng)前工作區(qū)所有打開(kāi)的索引文件(結(jié)構(gòu)復(fù)合索引除外)。說(shuō)明:關(guān)閉數(shù)據(jù)表則打開(kāi)的索引文件也隨之關(guān)閉。說(shuō)明:關(guān)閉數(shù)據(jù)表則打開(kāi)的索引文件也隨之關(guān)閉。例例3-14 使
54、用索引舉例。使用索引舉例。代碼如下:代碼如下:USE gzb INDEX jbgz,sfgzLISTCLOSE INDEXES請(qǐng)對(duì)比下面的命令:請(qǐng)對(duì)比下面的命令:USE gzbSET INDEX TO jbgz,sfgzLISTSET INDEX TO52(2)復(fù)合索引文件的打開(kāi)和主控索引的確定。)復(fù)合索引文件的打開(kāi)和主控索引的確定。 同時(shí)打開(kāi)數(shù)據(jù)表和指定主控索引。同時(shí)打開(kāi)數(shù)據(jù)表和指定主控索引。命令格式:命令格式:USE ORDER | TAG OF ASCENDING | DESCENDING功能:在打開(kāi)數(shù)據(jù)表的同時(shí)指定主控索引。結(jié)構(gòu)復(fù)合索引不用指定索引功能:在打開(kāi)數(shù)據(jù)表的同時(shí)指定主控索引。結(jié)構(gòu)復(fù)合索引不用指定索引文件名。文件名。 先打開(kāi)數(shù)據(jù)表再指定主控索引。先打開(kāi)數(shù)據(jù)表再指定主控索引
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025湖北省安全員-A證考試題庫(kù)及答案
- 2025年山東建筑安全員C證考試題庫(kù)
- 2025年云南省安全員-B證(項(xiàng)目經(jīng)理)考試題庫(kù)
- 【課件】搜索引擎營(yíng)銷(xiāo)的部分問(wèn)題探討
- DB14T-紅地球葡萄主要病蟲(chóng)害綜合防控技術(shù)規(guī)程編制說(shuō)明
- 單位人力資源管理制度集合大全十篇
- 單位管理制度展示大全人員管理十篇
- 2024年土地登記代理人題庫(kù)附參考答案(鞏固)
- 2025年社會(huì)服務(wù)行業(yè)尋找彈性與韌性中的結(jié)構(gòu)機(jī)會(huì)
- 單位管理制度展示大合集人員管理十篇
- 實(shí)習(xí)終止及解除協(xié)議書(shū)
- 中國(guó)冠心病康復(fù)循證實(shí)踐指南(2024版)解讀
- 2024-2030年中國(guó)再生水行業(yè)發(fā)展前景預(yù)測(cè)規(guī)劃分析報(bào)告
- 城市公益性公墓建設(shè)項(xiàng)目施工組織設(shè)計(jì)
- 2022-2024年江蘇中考語(yǔ)文試題匯編:名著閱讀(教師版)
- 2024年秋季新人教版七年級(jí)上冊(cè)數(shù)學(xué)全冊(cè)教案
- 安全員年終總結(jié)報(bào)告
- 《客房服務(wù)與管理》課程標(biāo)準(zhǔn)課程內(nèi)容與要求
- GB/T 44823-2024綠色礦山評(píng)價(jià)通則
- 營(yíng)銷(xiāo)中心建設(shè)實(shí)施方案
- 工程竣工驗(yàn)收(消防查驗(yàn))報(bào)告
評(píng)論
0/150
提交評(píng)論