亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2015-10-18 05:14:12劉湖平
        中國(guó)管理信息化 2015年11期
        關(guān)鍵詞:排序結(jié)構(gòu)

        劉湖平,王 欣

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

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

        劉湖平,王欣

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

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

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

        1 索引與索引文件

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

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

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

        2 索引的分類(lèi)

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

        2.1單一索引

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

        2.2復(fù)合索引

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

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

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

        (2)候選索引。不允許關(guān)鍵字重復(fù),輸入重復(fù)值時(shí)將禁止存盤(pán)。可用作主關(guān)鍵字,并允許在永久關(guān)系中建立參照完整性。

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

        3 索引的建立

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

        命令格式:

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

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

        說(shuō)明:

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

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

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

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

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

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

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

        USESB&&打開(kāi)表SB

        INDEXON價(jià)格TAG jg DESCENDING

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

        INDEXON部門(mén)+STR(價(jià)格,9,2)TAGbmjg

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

        INDEXONVAL(部門(mén))-價(jià)格*100 TAGbmjg1CADIDATE

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

        4 索引的使用

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

        4.1激活

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

        命令格式:

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

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

        說(shuō)明:

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

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

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

        4.2更新

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

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

        4.3刪除

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

        (1)刪除索引文件

        命令格式:

        ERASE|DELETE<索引文件名>

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

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

        命令格式:

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

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

        主要參考文獻(xiàn)

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

        [2]劉升,曹紅蘋(píng).數(shù)據(jù)庫(kù)系統(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

        猜你喜歡
        排序結(jié)構(gòu)
        排排序
        排序不等式
        《形而上學(xué)》△卷的結(jié)構(gòu)和位置
        恐怖排序
        論結(jié)構(gòu)
        新型平衡塊結(jié)構(gòu)的應(yīng)用
        模具制造(2019年3期)2019-06-06 02:10:54
        節(jié)日排序
        刻舟求劍
        兒童繪本(2018年5期)2018-04-12 16:45:32
        論《日出》的結(jié)構(gòu)
        創(chuàng)新治理結(jié)構(gòu)促進(jìn)中小企業(yè)持續(xù)成長(zhǎng)
        无码av天天av天天爽| 国产自产拍精品视频免费看| 亚洲av中文字字幕乱码| 国产高潮流白浆视频在线观看| 日韩av无码久久一区二区| 久久发布国产伦子伦精品| 日韩啪啪精品一区二区亚洲av| 精品人妻一区二区视频| 亚洲欧美中文日韩在线v日本| 国产二级一片内射视频插放| 亚洲中文字幕无线无码毛片| 白色月光在线观看免费高清| 久久国产在线精品观看| 久久综合亚洲色hezyo国产| 无码人妻一区二区三区免费n鬼沢| 亚洲老熟妇愉情magnet| 伊人久久大香线蕉av最新午夜| 疯狂做受xxxx国产| 亚洲精品久久久久中文字幕二区 | 欧美xxxxx精品| 国产av一卡二卡日韩av| 亚洲国产精品国自产拍av| 1000部精品久久久久久久久| 日本老年人精品久久中文字幕| 国产一区二区三区十八区| 亚洲av无码专区在线观看下载| 99久久久无码国产aaa精品| 手机在线中文字幕国产| 24小时在线免费av| 亚洲色国产欧美日韩| 亚洲AV无码精品呻吟| 日韩伦理av一区二区三区| 欧洲美熟女乱又伦av影片| 高中生粉嫩无套第一次| 中文亚洲AV片在线观看无码| av在线天堂国产一区| 男女高潮免费观看无遮挡| 在线欧美不卡| 亚洲av午夜福利一区二区国产| 欧美群妇大交群| 成人欧美一区二区三区a片|