




已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
8.1 索引概述,1.索引的概念 所謂索引就是按照索引表達(dá)式(數(shù)據(jù)表的某個字段或字段的組合)的值使表中的記錄有序排列的一種技術(shù)。 一般情況下,標(biāo)中記錄的順序是由數(shù)據(jù)輸入的前后次序決定的,并用記錄號予以標(biāo)識。除非有記錄插入或記錄刪除,否則表中的記錄順序總是不變的。 索引實際就是一種排序,但是他不改變表中數(shù)據(jù)的物理順序,而是另外建立一個數(shù)據(jù)號列表。索引文件不能單獨使用,必須同源數(shù)據(jù)表文件一起使用。 索引一旦建立后,就產(chǎn)生了一個相應(yīng)的索引文件。索引文件中只包含兩項信息:一是每條記錄索引關(guān)鍵字表達(dá)式的值,另一項是與其對應(yīng)的記錄號。既在索引文件中只保留索引關(guān)鍵字和記錄號信息,并不存在記錄的字段數(shù)據(jù),因此它不能單獨使用,必須同時打開原數(shù)據(jù)文件,才能使索引文件有效。 在VF中,同一個數(shù)據(jù)庫中的多個表以相同屬性字段建立索引后,可根據(jù)索引表達(dá)式的值建立數(shù)據(jù)庫中多個表間的關(guān)聯(lián)關(guān)系。,第8章 索引及記錄操作,2、索引的種類 根據(jù)關(guān)鍵字段值是否重復(fù)可將索引分為四種類型:主索引、候選索引、惟一索引、普通索引。 主索引:索引表達(dá)式的值唯一能夠標(biāo)識每個記錄的索引,即索引表達(dá)式的值不允許重復(fù)。主索引只能在數(shù)據(jù)庫表中建立,一個表只能創(chuàng)建一個主索引。 候選索引:索引表達(dá)式的值不允許重復(fù)、有資格被選做主索引的索引。數(shù)據(jù)庫表和自由表都可以建立侯選索引,一個表可以有多個候選索引。 普通索引:是除了上面幾種索引之外的一種索引,它允許索引關(guān)鍵字有重復(fù)的值,對有相同索引表達(dá)式值的記錄按原有的先后順序集中排列在一起。 惟一索引:允許索引關(guān)鍵字有重復(fù)的值的索引,當(dāng)有重復(fù)值出現(xiàn)時,索引文件只保存重復(fù)的第一次值。,3、創(chuàng)建索引 1)利用表設(shè)計器創(chuàng)建索引 2)利用命令創(chuàng)建索引 A、創(chuàng)建非結(jié)構(gòu)索引 INDEX ON To FOR ASCENDING Descending 命令功能:為當(dāng)前表按 的值建立一個非結(jié)構(gòu)索引文件,索引文件擴(kuò)展名.IDX。 例1:將學(xué)生檔案表.DBF數(shù)據(jù)表信工系(學(xué)號第3位為2) 的學(xué)生按學(xué)號升序建立非結(jié)構(gòu)索引文件xh.idx。 USE 學(xué)生檔案表 INDEX ON 學(xué)號 TO xh FOR SUBS(學(xué)號,3,1)=”2” ascending 當(dāng)索引建立后,新建立的索引文件將自動打開且處于 主索引的位置,記錄隨即按該索引順序來排列。,B、創(chuàng)建結(jié)構(gòu)索引 INDEX ON TAG FOR ASCENDING|DESCENDINGUniqueCandidate 說明: TAG:結(jié)構(gòu)化索引文件每個索引都必須有一 個索引標(biāo)識。 記錄的順序默認(rèn)為升序,也可用“Ascending”表示,降序用“Descending”;Unique建立唯一索引,Candidate建立候選索引,否則建普通索引 。 例: 將學(xué)生檔案表.dbf按籍貫和高考成績降序索引,索引標(biāo)識為jgcj,按學(xué)號升序索引,索引標(biāo)識為xh,建立結(jié)構(gòu)化復(fù)合索引文件。 USE 學(xué)生檔案表 index on 籍貫+str(高考成績,5) desc tag jgcj index on 學(xué)號 tag xh,8.2建立表間的關(guān)聯(lián)關(guān)系,1、建立表間“一對一”關(guān)系(p150) 2、建立表間“一對多”關(guān)系,3、設(shè)置參照完整性,8.3 記錄排序,1、物理排序 排序就是根據(jù)數(shù)據(jù)表的某些字段(稱為關(guān)鍵字段)的“值”(稱為關(guān)鍵字值)的大小重排記錄,(可為升序、可為降序)排序后將產(chǎn)生一個新的可單獨使用的數(shù)據(jù)表文件(*.DBF)。原數(shù)據(jù)表文件不變。,命令方式: (1)命令格式: SORT TO ON /A|/D/C , /A|/D/C For Fields (2)命令功能: 根據(jù)”關(guān)鍵字段”的值(稱為關(guān)鍵字值)的大小重排記 錄,產(chǎn)生一個新的可單獨使用的數(shù)據(jù)庫文件(*.DBF)。 選項/A和/D分別表示升序或降序,不選擇則默認(rèn)為按升序排列。選項/C表示不區(qū)分字母的大小寫。,2、按索引字段排序 a、先在“表設(shè)計器”窗口中,為表建立多個索引; b、選擇“顯示”下拉菜單“瀏覽”,進(jìn)入“瀏覽”窗口; c、在“瀏覽”窗口下,打開“表”,選擇“屬性”,進(jìn)入“工作區(qū)屬性”窗口,查看所有操作。 3、按索引表達(dá)式排序,8.4 記錄定位,7.1 絕對定位 1、菜單方式 2、命令方式 無條件記錄定位:goto(go);goto top;goto bottom; 有條件記錄定位:直接(順序)定位和索引(快速)定位; 定位命令僅僅是對記錄指針進(jìn)行定位的一種操作,它并不能顯示定位的記錄內(nèi)容。如要顯示,則需要使用并且只能使用Display命令。 3、相對定位 skip;,7.3 條件(順序)定位 所謂順序定位是指在表中從第一條記錄開始,按照順序搜索表,把記錄指針定位在滿足條件的第一條記錄上。 順序定位適合于復(fù)雜條件或小型表的定位。 命令格式: 1)找首條: Locate For 范圍 2)找后續(xù)(繼續(xù)查詢): Continue &按照Locate指定的條件繼續(xù)定位下一條記錄,例: 在學(xué)生擋案表.Dbf表中,查找姓“王”的學(xué)生。 Use 學(xué)生擋案表 Locate For Subs(姓名,1,2)=”王” &如果用 Locate For “王”$姓名 可能會產(chǎn)生什么問題? Display &顯示查詢結(jié)果 Continue &繼續(xù)定位查詢下一個記錄 ?Found() & Found()函數(shù)為.T. Display &顯示第二條”王”姓記錄 Continue &“End Of Locate Scope”顯示定位結(jié)束 ?Eof() & Eof()函數(shù)為.T.,7.3 索引定位 索引定位是一種快速定位記錄的方法,利用索引定位將明顯提高查詢效率,適用于大型表的查詢。 它要求數(shù)據(jù)表文件的記錄是有序的,所以,事先必須對數(shù)據(jù)表文件進(jìn)行索引,而且要求查詢內(nèi)容所在的字段或表達(dá)式必須是索引文件的索引關(guān)鍵字段或表達(dá)式。 (查什么按什么索引),索引定位有兩種命令格式: 格式一: Find 格式二: Seek 1.FIND命令 (1) 命令方式 命令格式: FIND / 功能: 在打開的以查詢內(nèi)容所在字段為索引關(guān)鍵字的索引文件中,快速查找關(guān)鍵字段等于或的第一個記錄。,說明: 執(zhí)行命令前,必須首先建立以查詢內(nèi)容所在字段或表達(dá)式為索引關(guān)鍵字的索引文件,若已存在則打開該索引文件,且將其設(shè)置為主索引。 FIND命令通常適用于字符數(shù)據(jù)類型及數(shù)值型,字符串中的字符可以不用定界符。 如果查找成功,則把記錄指針指向邏輯順序中第一條符合條件的記錄,且FOUND()函數(shù)的值為.T.,否則,記錄指針指向文件未尾,F(xiàn)OUND()函數(shù)的值為.F.。,例題: 例題1:在學(xué)生檔案表中,用FIND命令查找學(xué)號為“9832101”的學(xué)生。 USE 學(xué)生檔案表 index on 學(xué)號 to xh FIND 9832101 DISPLAY 例題2:在學(xué)生成績表中,用FIND命令查找成績?yōu)?8的學(xué)生. use 學(xué)生成績表 index on 成績 to cj find 78 disp 例題3.在學(xué)生檔案表.DBF數(shù)據(jù)表文件中,以變量的形式,用FIND命令查找姓名為 “劉麗紅”的學(xué)生(以姓名為索引關(guān)鍵字的索引文件XM.IDX已建立)。,2.SEEK命令 FIND命令只能對字符型和數(shù)值型的數(shù)據(jù)進(jìn)行查找,在某些情況下使用起來不方便,為此,系統(tǒng)中又提供了功能更強(qiáng)的SEEK命令。 格式:SEEK 功能:在打開的以查詢內(nèi)容所在字段為索引關(guān)鍵字的索引文件中,快速查找關(guān)鍵字段等于值的第一個記錄。,其中: (1)SEEK命令適用于一切數(shù)據(jù)類型(C、N、D、L),表達(dá)式可以是常量、變量和函數(shù)所組成,但必須與索引表達(dá)式一致。表達(dá)式為C、D、L(.T.,.F.)常量時,必須使用相應(yīng)的定界符,如:“ ”、 。 (2)表達(dá)式為變量時,要直接使用,不需要用宏代換函數(shù)。 (3)如果查找成功,則把記錄指針指向邏輯順序中第一條符合條件的記錄,且FOUND()函數(shù)的值為.T.,否則,記錄指針指向文件未尾,F(xiàn)OUND()函數(shù)的值為.F.。,例題3: 例題:在學(xué)生檔案表.DBF數(shù)據(jù)表文件中,用SEEK命令查找學(xué)號為“9921205”的學(xué)生(以學(xué)號為索引關(guān)鍵字的索引文件XH.IDX已建立)。 USE 學(xué)生檔案表 INDEX xh &打開以學(xué)號為索引關(guān)鍵字的索引文件XH.IDX SEEK “9921205” &必須使用定界符 DISPLAY,小結(jié): LOCATE和SEEK、FIND都是用于在數(shù)據(jù)表文件中查詢 定位記錄指針,即把記錄指針定位在滿足條件的記錄 上。特別強(qiáng)調(diào):僅僅是定位記錄指針。如要顯示定位的 記錄內(nèi)容,則需要用DISPLAY命令。 (2) LOCATE和SEEK、FIND的不同之處: LOCATE是順序查詢定位,可以直接利用原數(shù)據(jù)表進(jìn)行 定位操作,而SEEK、FIND命令是索引查詢定位,必須 首先對原數(shù)據(jù)表按定位數(shù)據(jù)所在字段或表達(dá)式進(jìn)行索 引,建立相應(yīng)的索引文件或打開相應(yīng)的索引文件、索引 標(biāo)識的前提下才能進(jìn)行定位操作。 LOCATE和CONTINUE相配合可以連續(xù)查詢定位多條記 錄,而SEEK、FIND只能查詢定位單條記錄。 LOCATE是用條件表達(dá)式的形式來定位,而SEEK、 FIND是用常量、變量或變量組成的表達(dá)式的形式來定 位。,(3) FIND和SEEK的不同之處: FIND命令適用于字符型和數(shù)值型數(shù)據(jù),不可用于日期型和邏輯型數(shù)據(jù)類型。表達(dá)式為字符常量時,不須使用相應(yīng)的定界符。表達(dá)式為變量時,不可直接使用,必須使用宏代換函數(shù)。 SEEK命令適用于數(shù)據(jù)類型(C、N、D、L),但若為C、D、L常量時,必須使用相應(yīng)的定界符,如:“ ”、 、.。表達(dá)式為變量時,要直接使用,不需要用宏代換函數(shù)。,8.5 記錄刪除與恢復(fù),隨著表文件的不斷更新,必然會出現(xiàn)一些無用的記錄,需要刪除。表文件記錄的刪除有二種:邏輯刪除和物理刪除。 (1)邏輯刪除 邏輯刪除僅對記錄作邏輯刪除標(biāo)記,作了邏輯刪除的記錄可以用Recall恢復(fù)為正常記錄。 1)命令方式 Delete For Recall For,例:邏輯刪除學(xué)生檔案表中第6條記錄。 Use 學(xué)生檔案表 Delete Record 6 recall &能實現(xiàn)被邏輯刪除記錄的恢復(fù)嗎? 2)菜單方式 打開表選擇需要作邏輯刪除的記錄,單擊“表”,在彈出的快捷菜單中選擇“刪除記錄”。 打開表,單擊“表”,在彈出的快捷菜單中選擇“恢復(fù)記錄”。,(2)物理刪除 作了物理刪除的記錄,則從磁盤中永久刪除。要物理刪除表文件記錄。 應(yīng)分兩步進(jìn)行: 用Delete作邏輯刪除。 用Pack命令才能真正刪除已加刪除標(biāo)記的記錄。 1)命令方式 Delete For Pack 參數(shù)說明: 物理刪除是對表中作了邏輯刪除的記錄從磁盤中徹底刪除,這種刪除是不可恢復(fù)的。 Pack命令執(zhí)行后,將調(diào)整磁盤空間及記錄號。但這部分磁盤空間只有在關(guān)閉表文件后,才能釋放。,例: 物理刪除學(xué)生檔案表中99級的學(xué)生記錄。 Use 學(xué)生檔案表 Delete For Subs(學(xué)號,1,2)=”99” Pack 2)菜單方式 打開表,單擊“表”,在彈出的快捷菜單中選擇“徹底刪除”。 (3)一次性物理刪除表中的所有記錄 Zap 參數(shù)說明: 該命令不需要先進(jìn)行邏輯刪除,直接使用ZAP可一次性物理刪除表的全部記錄,但要慎重使用。,例:在命令窗口中依次輸出下列命令觀察、分析各條命令執(zhí)行的結(jié)果。 Use 學(xué)生檔案表 Copy To Xsda &建立一備份文件 Use Xsda Delete For 專業(yè)代碼=“021” .Or.專業(yè)代碼=“031” List Pack &物理刪除已作刪除標(biāo)記的記錄 Browse Delete For 出生日期=1977/10/31 Browse Recall For Year(出生日期)=1977 Browse &觀察運(yùn)行結(jié)果,1977年出生的記錄其刪除標(biāo)記被除掉 Go 3 Delete &對第三號記錄作刪除標(biāo)記 Browse &觀察運(yùn)行結(jié)果 Zap &物理刪除全部記錄 Browse &表文件中無任何記錄,全部物理刪除 Close All,8.6 記錄修改,記錄的修改 表記錄的修改有手工修改方法和替換修改方法兩類。 手工輸入修改法適用于少量數(shù)據(jù)的修改,需要用戶從 鍵盤上輸入修改數(shù)據(jù)。 替換法適用于成批的有規(guī)律的數(shù)據(jù)修改 1)手工輸入修改法 命令方式 Edit For Fields Change For Fields Browse For Fields, 三條命令均具有修改記錄的功能。修改結(jié)束后,按 Ctrl+W存盤退出修改窗口。 Edit和Change如果沒有作For選擇,通過Go定位 或在Edit、Change后指明記錄號,則可對包括當(dāng)前記錄 后的所有記錄進(jìn)行修改。 修改有“瀏覽”和“編輯”兩種窗口界面,可通過“顯示”菜單 下的“瀏覽”和“編輯”來轉(zhuǎn)換。 修改備注型字段和通用型字段的方法與添加記錄相同, 即雙擊“Mem”和“Gen”,在彈出的編輯窗口中進(jìn)行修改。 菜單方式 打開表文件。 單擊“顯示”及其下拉菜單中的“瀏覽”選項,表被顯 示。用滾動條將光標(biāo)定位在需要修改的記錄的有關(guān)字段 處,并修改數(shù)據(jù)。 修改結(jié)束后,按CTRL+W存盤并退出修改狀態(tài)。,例:在學(xué)生檔案表.Dbf中,將學(xué)號為“9921203”的記錄的“班級”修改為“99211”,將“個人簡歷” 添加“獲2003年學(xué)院三好學(xué)生的光榮稱號”內(nèi)容。 Use 學(xué)生檔案表 Edit F
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 協(xié)議書和擔(dān)保協(xié)議書
- 醫(yī)療檢測外包協(xié)議書
- 化工供貨合同協(xié)議書
- 土地復(fù)墾監(jiān)管協(xié)議書
- 商業(yè)合同解約協(xié)議書
- 醫(yī)療廢物委托協(xié)議書
- 土地管理合同協(xié)議書
- 員工補(bǔ)償公司協(xié)議書
- 叉車安全管理協(xié)議書
- 博通廢除芯片協(xié)議書
- 聽神經(jīng)瘤的護(hù)理常規(guī)
- 非煤礦山井下運(yùn)輸安全
- 人教版八年級下冊地理2024-2025學(xué)年八年級下冊地理期末綜合測試卷(二)(含答案)
- 自愿放棄孩子協(xié)議書(2篇)
- 漢謨拉比法典中文版
- 2025屆高考地理復(fù)習(xí)+情景類型題分析
- DLT 1529-2016 配電自動化終端設(shè)備檢測規(guī)程
- 2018年四川省中職學(xué)校技能大賽建筑CAD賽項 樣題
- 芯片封裝可靠性評價與失效分析
- 2024年人工智能訓(xùn)練師(初級)職業(yè)鑒定理論考試題庫及答案
- 質(zhì)量環(huán)境職業(yè)健康安全管理體系三合一整合全套體系文件(管理手冊+程序文件)
評論
0/150
提交評論