• 
    

    
    

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

      ?

      談?wù)勊饕?/h1>
      2012-10-17 07:26:32鑫,陸
      關(guān)鍵詞:關(guān)鍵字命令結(jié)構(gòu)

      常 鑫,陸 源

      (集寧師范學(xué)院 數(shù)學(xué)系,內(nèi)蒙古 烏蘭察布 012000)

      談?wù)勊饕?/p>

      常 鑫,陸 源

      (集寧師范學(xué)院 數(shù)學(xué)系,內(nèi)蒙古 烏蘭察布 012000)

      在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)查詢是一種實際應(yīng)用.本文主要討論Visual FoxPro數(shù)據(jù)庫當(dāng)中與查詢密切相關(guān)的索引方法.數(shù)據(jù)庫中提供順序查詢和索引查詢兩種查詢數(shù)據(jù)的方法,以及VIEW(數(shù)據(jù)工作期)窗口和RQBE(范例關(guān)系查詢)窗口兩種交互式查詢工具.

      VisualFoxPro;索引;查詢

      1 索引的概念

      數(shù)據(jù)庫表中記錄總是按輸入的先后排列的.使用顯示命令顯示表中記錄時,仍按照這個順序輸出,這種順序稱為物理順序.如果希望以另一種順序來輸出記錄,便需對數(shù)據(jù)庫表進行索引.索引不改變記錄的物理順序,而是按某個索引關(guān)鍵字來建立記錄的邏輯順序.索引能起到改變記錄輸出順序的作用,還能決定記錄的存取順序.

      索引可以將數(shù)據(jù)庫表中的順序按照某一個或某幾個字段的值按邏輯順序重新排列.索引文件中所有關(guān)鍵字值按升序或降序排列,每個值對應(yīng)原表的一個記錄號,這樣便確定了記錄的邏輯順序.

      索引以增加一個文件為代價,但文件只包括關(guān)鍵字和記錄號兩個字段,比被索引的表要小得多.索引起作用后,增刪或修改表的記錄時索引文件會自動更新,這也是索引應(yīng)用比較廣的原因.

      2 索引的種類

      2.1 按擴展名分

      單索引和復(fù)合索引兩類索引文件.

      2.1.1 單索引文件

      單索引文件擴展名為IDX,只包含一個索引,這種類型是為了與FOXBASE+開發(fā)的應(yīng)用程序兼容而保留的.但若將它定義為壓縮的,將不能被FOXBASE+使用.

      建立單索引文件命令格式:

      INDEX ON<索引關(guān)鍵字>TO<單索引文件名> [ADDITIVE][COMPACT][FOR<條件>]

      說明:(1)TO使用于建立單索引文件,其主名由<單索引文件名>確定.

      (2)該命令默認建立普通索引文件.

      (3)COMPACT用來指定單索引文件為壓縮的.

      (4)記錄邏輯順序默認為升序.

      (5)ADDITIVE表示建立本索引文件時并不關(guān)閉先前打開的索引文件.

      下面通過實例進行說明,在VisualFoxPro數(shù)據(jù)庫開發(fā)環(huán)境中建立【商品】項目、【商品】數(shù)據(jù)庫其中建立商品表并輸入相應(yīng)記錄,以便練習(xí).

      【實例1】 建立品名升序、價格降序的單索引文件.

      USE 商品表 &&打開表(商品表.dbf)

      LIST &&記錄按物理順序排列顯示

      INDEX ON 品名 TO pinming&& 建立品名升序排列單索引文件(pinming.idx),品名為索引關(guān)鍵字

      LIST &&記錄按品名升序的邏輯順序排列顯示

      INDEX ON -價格 TO jiage && 建立價格升序排列單索引文件(jiage.idx)

      LIST &&記錄按價格降序排列顯示

      商品表通過單索引文件pinming與jiage,將原先表中記錄的物理順序按照索引文件的邏輯順序排列顯示.

      2.1.2 復(fù)合索引文件

      復(fù)合索引文件擴展名為CDX,復(fù)合索引文件允許包含多個索引,每個索引都有一個索引標識,代表一種邏輯順序.這種索引文件總以壓縮方式存儲,以便節(jié)約存儲空間.

      復(fù)合索引文件又有結(jié)構(gòu)復(fù)合索引和非結(jié)構(gòu)(獨立)復(fù)合索引兩種:

      (1)定義索引文件時用戶沒有取名字就是結(jié)構(gòu)復(fù)合索引文件,結(jié)構(gòu)復(fù)合索引文件的主名與表的主名相同;它隨表的打開而打開,隨著表的關(guān)閉而關(guān)閉.在添加、更新或刪除記錄時還會自動維護,在各類索引文件中,選用它最為省事.

      (2)定義索引文件時為它取了名字,則是非結(jié)構(gòu)(獨立)復(fù)合索引文件,打開非結(jié)構(gòu)索引文件需要使用SETINDEX命令或USE 命令中的INDEX子句,也能隨時關(guān)閉非結(jié)構(gòu)(獨立)復(fù)合索引文件.

      建復(fù)合索引命令格式:

      INDEX ON<索引關(guān)鍵字>TAG<索引標識名>[OF<復(fù)合索引文件名>][ASCENDING|DESCENDING][UNIQUE|CANDIDATE][ADDITIVE][FOR<條件>]

      說明:(1)該命令用來建立索引文件或增加索引標識.

      (2)TAG用于建立復(fù)合索引文件或增加索引標識,索引標識由該子句<索引標識名>確定.

      (3)該命令默認建立普通索引文件,UNIQUE表示建立唯一索引文件,CANDIDATE表示建立侯選索引文件,但是需要與TAG子句同時使用.

      (4)OF選項用來指定非結(jié)構(gòu)(獨立)復(fù)合索引文件的名字,缺省該選項表示建立結(jié)構(gòu)復(fù)合索引文件.

      (5)記錄邏輯順序默認為升序,也可用ASCENDING選項表示為升序,DESCENDING選項表示為降序.

      (6)ADDITIVE表示建立本索引文件時并不關(guān)閉先前打開的索引文件.

      【實例2】 為商品表建立一個結(jié)構(gòu)復(fù)合索引文件,其中包括三個索引.

      (1)記錄以價格降序排列.

      USE 商品表 &&打開表(商品表.dbf)

      INDEX ON 價格 TAG 價格降序 DESCENDING && 建立結(jié)構(gòu)復(fù)合索引文件(商品表.CDX),價格為索引關(guān)鍵字,價格降序為索引標識

      LIST &&記錄按價格降序排列顯示

      (2)記錄以品牌升序排列,品牌相同時則按價格升序排列.

      INDEX ON 品牌+STR(價格,7,2)TAG ppsjgs &&增加索引標識(ppsjgs),品牌與價格字段表達式為關(guān)鍵字

      LIST &&品牌升序、品牌相同時價格升序排列顯示

      (3)記錄以品牌升序排列,品牌相同時則按價格降序排列.

      INDEX ON 品牌+STR(10000-價格,7,2)TAG ppsjgj&&增加索引標識(ppsjgj),品牌與價格字段表達式為關(guān)鍵字

      LIST &&品牌升序、品牌相同時價格降序排列顯示

      商品表通過結(jié)構(gòu)符合索引文件(商品表.CDX)中的三個索引標識(價格降序、ppsjgs、ppsjgj),將原表記錄的排列順序按照索引文件的邏輯順序排列顯示.

      2.2 按功能分

      索引除了具有建立記錄邏輯順序的作用外,還能控制是否允許相同的索引關(guān)鍵字值在不同記錄中重復(fù)出現(xiàn).

      下面列出了4種索引功能類型:見表1.

      表1

      主關(guān)鍵字是能唯一標識記錄的索引關(guān)鍵字,它應(yīng)能排除關(guān)鍵字重復(fù)值.

      3 索引的使用

      3.1 打開和關(guān)閉索引文件

      命令格式:

      SET INDEX TO [<索引文件列表>][ADDITIVE]

      功能:打開當(dāng)前表的一個或多個索引文件,并確定控制索引文件.

      說明:(1)<索引文件列表>可包含多個索引文件,索引文件名之間以逗號分隔,表中第一個索引文件作為主控索引文件,該命令常用于打開單索引文件和非結(jié)構(gòu)(獨立)復(fù)合索引文件.

      (2)若缺省所選項,僅使用“SET INDEX TO”,將關(guān)閉當(dāng)前工作區(qū)中除結(jié)構(gòu)復(fù)合索引外的所有索引文件,同時取消主控索引.

      (3)若缺省ADDITIVE選項,則在用本命令打開索引文件時,除結(jié)構(gòu)復(fù)合索引文件外的索引文件均被關(guān)閉.

      (4)命令“use <表名> index <索引文件列表>”也可在打開表的同時打開索引文件,并確定<索引文件列表>中的第一個索引文件為控制索引文件.

      提示:(1)若當(dāng)前僅有一個索引文件被打開,它就成為主控索引文件.索引剛建立時,索引文件為打開狀態(tài)且成為主控索引文件.若當(dāng)前已經(jīng)打開了多個索引文件,可通過SET ORDER命令來確定主控索引文件.

      (2)除了結(jié)構(gòu)復(fù)合索引能隨著表的打開而打開外,其它索引文件必須用命令顯示打開.

      (3)表關(guān)閉時索引文件就隨表關(guān)閉.

      3.2 確定主控索引

      復(fù)合索引文件建立時,當(dāng)前建立的索引標識自動成為主控索引.但必須注意,表重新打開時盡管復(fù)合索引文件已自動打開,但還須確定主控索引.下面的命令用來確定主控索引,也能確定主控索引文件.

      命令格式:

      SET ORDER TO [<數(shù)值表達式>|<單索引文件名>|[TAG]<索引標識>[ASCENDING][DESCENDING]]

      說明:(1)<數(shù)值表達式>表示已經(jīng)打開索引的序號,該序號用來指定主控索引文件或主控索引.系統(tǒng)先為各單索引文件編號,所以結(jié)構(gòu)復(fù)合索引文件的序號比單索引文件大.

      (2)<單索引文件名>指定該單索引文件為主控索引文件.

      (3)<索引標識>指定該索引標識為主控索引.

      (4)"SETORDER TO"或者 "SETORDER TO 0"命令取消主控索引文件及主控索引,表中記錄按物理順序輸出.

      4 刪除索引

      4.1 刪除索引文件

      若用刪除文件命令來刪除索引文件,須遵循“先關(guān)閉后刪除”的原則,這與刪除表類似.

      命令格式:

      ERASE|DELETE FILE <文件名>

      4.2 刪除索引標識

      命令格式:

      DELETE TAG ALL|<索引標識1>[,<索引標識2>]...

      說明:(1)該命令用來刪除打開的結(jié)構(gòu)復(fù)合索引文件的索引標識.

      (2)ALL用于刪除結(jié)構(gòu)復(fù)合索引文件的所有索引標識,若某個索引文件的所有索引標識都被刪除,則該索引文件也被刪除.

      5 索引的更新

      5.1 自動更新

      當(dāng)表中的數(shù)據(jù)發(fā)生變化時(如對表進行插入、刪除、添加或更新操作之后),所有當(dāng)時已經(jīng)打開的索引文件都會隨數(shù)據(jù)的改變自動改變記錄的邏輯順序,實現(xiàn)索引文件的自動更新.

      5.2 重新索引

      如果不符合實現(xiàn)索引的條件,在修改表的記錄時索引文件就不會自動更新.若要維持記錄的邏輯順序,可用REINDEX命令重建索引.

      命令格式為:

      REINDEX[COMPACT]

      當(dāng)然也可以用INDEX ON 命令再次建立索引,兩者效果相同.

      〔1〕施建強.VFP查詢系統(tǒng)實現(xiàn)技巧六則[J].中國計算機報,2001(8).

      〔2〕李加福,等.Visual Foxpro6.0中文版入門與提高[M].清華大學(xué)出版社,1999.

      〔3〕薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論[M].北京:高等教育出版社,2000.

      TP39

      A

      1673-260X(2012)03-0035-03

      猜你喜歡
      關(guān)鍵字命令結(jié)構(gòu)
      履職盡責(zé)求實效 真抓實干勇作為——十個關(guān)鍵字,盤點江蘇統(tǒng)戰(zhàn)的2021
      華人時刊(2022年1期)2022-04-26 13:39:28
      只聽主人的命令
      《形而上學(xué)》△卷的結(jié)構(gòu)和位置
      論結(jié)構(gòu)
      中華詩詞(2019年7期)2019-11-25 01:43:04
      成功避開“關(guān)鍵字”
      移防命令下達后
      論《日出》的結(jié)構(gòu)
      這是人民的命令
      創(chuàng)新治理結(jié)構(gòu)促進中小企業(yè)持續(xù)成長
      藍色命令

      文水县| 蚌埠市| 南充市| 济阳县| 绥化市| 治多县| 陆良县| 稷山县| 新余市| 汤阴县| 登封市| 礼泉县| 中方县| 武义县| 陵川县| 固镇县| 新河县| 池州市| 偃师市| 阿鲁科尔沁旗| 博客| 内丘县| 陆河县| 荔波县| 色达县| 精河县| 闸北区| 微博| 抚远县| 包头市| 司法| 新营市| 澄城县| 新邵县| 临邑县| 余干县| 安阳县| 确山县| 浦城县| 彰化市| 东明县|