• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Visual FoxPro表之索引文件的建立與使用

      2015-10-18 05:14:12劉湖平
      中國管理信息化 2015年11期
      關(guān)鍵詞:關(guān)鍵字命令排序

      劉湖平,王 欣

      (石家莊機(jī)械化步兵學(xué)院,石家莊 050083)

      基于Visual FoxPro表之索引文件的建立與使用

      劉湖平,王欣

      (石家莊機(jī)械化步兵學(xué)院,石家莊 050083)

      在數(shù)據(jù)庫中,數(shù)據(jù)查詢與統(tǒng)計是最常用的操作。尤其是查詢,它是更新操作的基礎(chǔ),只有優(yōu)化了查詢才能有效提高查詢速度,建立索引是優(yōu)化查詢的基礎(chǔ)與前提,同時也是進(jìn)行多表關(guān)聯(lián)與聯(lián)接的依據(jù)。

      Visual FoxPro;表;索引文件;建立;使用

      1 索引與索引文件

      在Visual FoxPro中,索引就是對表中一個字段或多個字段(或表達(dá)式)的值,重新排列表中記錄順序的一種方法。表中記錄在錄入時有一個先后順序,稱為物理順序,其存儲或輸出時也按這個順序進(jìn)行。對該表創(chuàng)建某個索引并使用該索引后,在輸出時就會按關(guān)鍵字值的大小重新排列這些記錄,形成一個新的順序,稱為邏輯順序。索引并不改變記錄的物理順序。將索引(排序方案)存放到文件中,就形成索引文件,一個索引文件可以存放一個或多個索引。索引文件邏輯結(jié)構(gòu)如圖1所示。一般說來,索引文件比表文件要小得多,并且在對表數(shù)據(jù)進(jìn)行編輯時,索引文件會自動更新。

      圖1 索引文件邏輯結(jié)構(gòu)

      使用索引可以大大提高系統(tǒng)的性能。表現(xiàn)在:①方便對表記錄進(jìn)行排序,花較小的開銷對表記錄進(jìn)行排序,并且不改變記錄的物理順序,這也是創(chuàng)建索引的最初目的;②它是二分查詢的基礎(chǔ),可以大大加快數(shù)據(jù)的檢索速度,這是創(chuàng)建索引的最主要目的;③它是多表關(guān)聯(lián)和聯(lián)接的依據(jù),特別是在實現(xiàn)數(shù)據(jù)參照完整性方面有特別意義;④它是進(jìn)行數(shù)據(jù)匯總的前提,在使用分組和排序子句進(jìn)行數(shù)據(jù)統(tǒng)計時,同樣可以顯著減少查詢時間。

      2 索引的分類

      Visual FoxPro支持的索引有多種樣式,每個索引文件所包含的索引數(shù)量可分為單一索引和復(fù)合索引兩類。

      2.1單一索引

      所謂單一索引,就是一個索引文件只包含一個索引,要對表實施多種排序時,就要創(chuàng)建多個索引文件,該類索引文件擴(kuò)展名為.IDX,目前已基本不采用。

      2.2復(fù)合索引

      復(fù)合索引文件允許一個文件包含多個索引,每個索引都有一個標(biāo)識,稱為索引標(biāo)識,代表一種排序方案。復(fù)合索引文件擴(kuò)展名為.CDX。

      復(fù)合索引文件又分為結(jié)構(gòu)的和非結(jié)構(gòu)的兩種。所謂結(jié)構(gòu)的,就是索引文件與表文件是一體的,非結(jié)構(gòu)的就是索引文件與表文件是分開的。簡單來說,若創(chuàng)建索引文件時,用戶為該索引文件重新命名,則該索引文件為非結(jié)構(gòu)的,否則為結(jié)構(gòu)的(索引文件與表文件名稱相同)。VisualFoxPro主要使用結(jié)構(gòu)復(fù)合索引文件(復(fù)合結(jié)構(gòu)索引)。針對不同需要,結(jié)構(gòu)復(fù)合索引可以是以下3種類型:

      (1)普通索引。允許關(guān)鍵字重復(fù),僅按關(guān)鍵字的值對表進(jìn)行排序,在建立表間關(guān)系時,可作為“一對多”關(guān)系中的“多方”。

      (2)候選索引。不允許關(guān)鍵字重復(fù),輸入重復(fù)值時將禁止存盤??捎米髦麝P(guān)鍵字,并允許在永久關(guān)系中建立參照完整性。

      (3)主索引。僅用于數(shù)據(jù)庫表,其作用同候選索引。

      3 索引的建立

      索引的創(chuàng)建方法有兩種:①在Visual FoxPro環(huán)境下,可以通過界面操作的方式直接在表設(shè)計器中建立索引;②通過命令來創(chuàng)建,這也是最本質(zhì)的方法,因為通過命令可以進(jìn)行編程。下文皆以命令的方式進(jìn)行介紹。

      命令格式:

      INDEXON<索引關(guān)鍵字>TAG<索引標(biāo)識>[FOR<條件>][ASCENDING|DESCENDING][CANDIDATE][ADDITIVE]

      命令功能:創(chuàng)建結(jié)構(gòu)復(fù)合索引文件及索引標(biāo)識。

      說明:

      (1)本命令是為當(dāng)前工作區(qū)中打開的表創(chuàng)建索引文件。

      (2)<索引關(guān)鍵字>表示要建立索引的字段、字段組合或字段表達(dá)式;<索引標(biāo)識>即為該索引定義的一個標(biāo)識(符合變量的命名規(guī)則,一般不用漢字)。

      (3)<條件>是對表進(jìn)行篩選,只有對符合條件的記錄才進(jìn)行索引。該項為可選,缺省為所有記錄。

      (4)[ASCENDING|DESCENDING]表示索引后記錄的邏輯順序,ASCENDING表示升序、DESCENDING表示降序。該項為可選,缺省為升序。

      (5)[CANDIDATE]表示候選索引,該項為可選,缺省為普通索引。

      (6)[ADDITIVE]表示建立本索引文件時,并不關(guān)閉之前打開的索引文件。該項為可選,缺省為關(guān)閉。

      舉例:若工廠管理設(shè)備表為SB(編號、名稱、啟用日期、價格、部門、主要設(shè)備、備注、商標(biāo))

      USESB&&打開表SB

      INDEXON價格TAG jg DESCENDING

      &&為表SB創(chuàng)建結(jié)構(gòu)復(fù)合索引文件SB.CDX,關(guān)鍵字:價格,jg為索引標(biāo)識;普通索引,降序。

      INDEXON部門+STR(價格,9,2)TAGbmjg

      &&關(guān)鍵字表達(dá)式:部門+STR(價格,9,2),索引標(biāo)識bmjg,普通索引,該索引寫入SB.CDX文件,該索引按部門升序,部門相同時按價格升序排列。

      INDEXONVAL(部門)-價格*100 TAGbmjg1CADIDATE

      &&關(guān)鍵字表達(dá)式:VAL(部門)-價格*100,索引標(biāo)識bmjg1,候選索引,該索引寫入SB.CDX文件,該索引按部門升序,部門相同時按價格降序排列。

      4 索引的使用

      對于結(jié)構(gòu)復(fù)合索引文件而言,實現(xiàn)索引查詢僅需打開表,確定主控索引(激活)。

      4.1激活

      復(fù)合索引文件中,當(dāng)前建立的索引標(biāo)識自動成為主控索引(即最后創(chuàng)建的索引標(biāo)識),但在重新打開表時,盡管索引文件也自動打開,但還必須確定主控索引,即對索引進(jìn)行激活。

      命令格式:

      SETORDER TO[<數(shù)值表達(dá)式>]|[<索引標(biāo)識>]

      命令功能:激活索引(確定主控索引),即打開的表按此進(jìn)行排序。

      說明:

      (1)<數(shù)值表達(dá)式>表示索引序號,用整數(shù)表示,它是創(chuàng)建索引時的序號,即依據(jù)創(chuàng)建索引的先后,系統(tǒng)自動為每個索引編排一個序號。上述創(chuàng)建的3個索引標(biāo)識的序號分別為1、2、3,即1指的是jg,3指的是bmjg1。

      (2)<索引標(biāo)識>指具體的索引標(biāo)識,如上例中的jg、bm jg。

      (3)命令中不帶參數(shù)或參數(shù)為0時,即SETORDER TO或SETORDER TO 0,表示取消主控,表中記錄將按物理順序排列。

      4.2更新

      確定了主控索引后,結(jié)構(gòu)復(fù)合索引文件能進(jìn)行自動更新,即隨著表中數(shù)據(jù)的改變,索引文件自動進(jìn)行更新。

      若未確定主控索引,修改表中的記錄時,索引文件就不會自動更新。如果要維持記錄的邏輯順序,則要用命令REINDEX對索引文件進(jìn)行重建。

      4.3刪除

      如果不需要索引了,可對其進(jìn)行刪除,刪除分為對索引文件的刪除和刪除索引文件中的索引標(biāo)識兩種。

      (1)刪除索引文件

      命令格式:

      ERASE|DELETE<索引文件名>

      說明:刪除索引文件可用ERASE命令,也可用DELETE命令。

      (2)刪除索引標(biāo)識

      命令格式:

      DELETETAGALL|<索引標(biāo)識1>[,<索引標(biāo)識2>]……

      說明:ALL子句用于刪除所有索引標(biāo)識,若索引文件的所有索引標(biāo)識都被刪除,則該索引文件自動刪除。間接地,亦可用此命令來刪除索引文件。

      主要參考文獻(xiàn)

      [1]史濟(jì)民.Visual FoxPro及其應(yīng)用系統(tǒng)開發(fā)[M].北京:清華大學(xué)出版社,2011.

      [2]劉升,曹紅蘋.數(shù)據(jù)庫系統(tǒng)原理與應(yīng)用[M].北京:清華大學(xué)出版社,2012.

      10.3969/j.issn.1673-0194.2015.11.111

      TP392

      A

      1673-0194(2015)11-0193-02

      2015-04-03

      猜你喜歡
      關(guān)鍵字命令排序
      履職盡責(zé)求實效 真抓實干勇作為——十個關(guān)鍵字,盤點江蘇統(tǒng)戰(zhàn)的2021
      華人時刊(2022年1期)2022-04-26 13:39:28
      只聽主人的命令
      排序不等式
      恐怖排序
      成功避開“關(guān)鍵字”
      節(jié)日排序
      移防命令下達(dá)后
      刻舟求劍
      兒童繪本(2018年5期)2018-04-12 16:45:32
      這是人民的命令
      藍(lán)色命令
      双流县| 武安市| 昌吉市| 城市| 津南区| 柏乡县| 铜鼓县| 淮南市| 青阳县| 乡城县| 安新县| 宿迁市| 禄丰县| 东辽县| 班戈县| 榆林市| 康定县| 长丰县| 南溪县| 鲜城| 全州县| 盐边县| 陆良县| 邯郸县| 兖州市| 海阳市| 彩票| 巴里| 邵东县| 新河县| 沅陵县| 正宁县| 南投县| 兴山县| 墨竹工卡县| 开化县| 光泽县| 毕节市| 讷河市| 临城县| 积石山|