<style id="uedzd"></style>
  • <style id="uedzd"></style>
  • <dfn id="uedzd"></dfn>
  • <dfn id="uedzd"></dfn>
    1. <ruby id="uedzd"></ruby>
      <ruby id="uedzd"></ruby>
    2. 名師風采
      裴鵬飛,男,中共黨員,1994.9~1998.7,安徽農(nóng)業(yè)技術(shù)師范學院本科畢業(yè)。1998.7~2001.8 在宣城市宣州區(qū)雙橋職高擔任計算機教師。2001.9至今調(diào)至宣城市職高(更名為宣城市信息工程學校)……
      工作坊概況
      2016年安徽省教育廳、財政廳、人社廳等單位根據(jù)安徽省中等職業(yè)教育質(zhì)量提升工程批準創(chuàng)建的,目前工作坊計12人,均具有本科以上學歷,碩士研究生1人,副高6人,中級職稱2人, 35歲以下青年教師3人, 外聘教師2人。
      7.1 排序與索引
      發(fā)布時間:2019-01-27 01:01:19  信息來源:出處:   閱讀次數(shù):

      7.1 排序與索引

      目的與要求:

      通過本次課的學習,掌握數(shù)據(jù)表排序和索引操作。

      教學內(nèi)容與時間安排、教學方法:

      教學安排:

      表的排序、索引的建立                  40分鐘

      索引的使用                            40分鐘

      教學方法:

      CAI、圖形、表格

      教學重點及如何突出重點、難點及如何突破難點:

      教學重點:

      表排序、索引

      教學難點:

      表的索引

      基本內(nèi)容

      教學
      手段

      課堂設計
      和時間安排

      5.1 排序

      排序就是依據(jù)打開的表文件(稱原表)中的某些字段值升序或降序重新排列記錄,排序后將產(chǎn)生一個新表,其記錄按排序字段值的大?。ㄉ?降序)新排列的順序排列,但原表記錄的排列順序不變。

      說明:

      ①排序操作:有升序和降序兩種排序方式。升序是指表中記錄按照關(guān)鍵字(排序字段)的值由小到大的順序排列,降序則是按照關(guān)鍵字的值由大到小的順序排列。

      ②SORT排序的缺點:排序速度慢(因需按關(guān)鍵字值進行記錄大調(diào)整);占存儲空間大(因排序時,排序表和系統(tǒng)排序所需臨時工作文件需足夠大的磁盤空間,一般為3倍原庫文件的大?。?。

      【格式】SORT TO  <新文件> ON <字段名1>  [/A|/D][/C] [,<字段名2> [/A|/D][/C]…][<范圍>][FOR <條件表達式1>][WHILE <條件表達式2>][FIELDS <字段名表>|FIELDS LIKE <通配字段名1>|FIELDS  EXCEPT <通配字段名2>]

      【功能】根據(jù)排序字段的值產(chǎn)生一個新的排序表文件,該表文件的擴展名仍為.dbf。

      【說明】

      ①<新文件>:必選項,它是排序后生成的新表文件名。

      ②ON子句中的字段名是排序字段,記錄將隨字段值的遞增或遞減來排序,把排序字段稱排序關(guān)鍵字。

      ③選項/A和選項/D分別用來指定是升序還是降序,默認/A升序排序。選項/C表示不區(qū)分字段值中字母的大小寫。排序字段不能是備注型和通用型字段。

      ④在ON子句中可以使用多個字段名,排序時,先按主排序字段<字段名1>(稱主關(guān)鍵字)排序,主關(guān)鍵字相同時,再按第二個排序字段排序…。

      ⑤省略范圍和條件等子句表示所有記錄排序。

      ⑥FIELDS子句用來指定新表中包含的字段,省略時新表中包含原表中的所有字段。

      【例】對STUDENT.DBF表按以下要求進行排序:

      將STUDENT.DBF表按年齡降序排序,年齡相同時則按學號升序排序。只選擇男生記錄,排序后產(chǎn)生表為stud1.dbf,并要求新表只包含字段:學號,姓名,性別,年齡。

      USE student

      SORT TO stud1 ON 年齡/D,學號 FIELDS 學號,姓名,性別,年齡   FOR 性別="男"

      USE stu1

      LIST

      5.2 索引

      一、索引的概念

      1.基本概念

      執(zhí)行排序操作后產(chǎn)生的新表文件中會形成新的物理順序記錄,但并不改變原表文件中記錄的排列順序。索引則不同,索引操作則是根據(jù)關(guān)鍵字的值按升序或降序排列,每個值對應源文件中的一個記錄號,這樣確定了記錄的邏輯排序,而不改變記錄的物理順序。索引操作據(jù)使用的選項不同,可建立單索引和復合索引文件,單索引文件僅由關(guān)鍵字和與關(guān)鍵字的值相對應的記錄號兩個字段構(gòu)成。即每個值對應原表的一個記錄號,這樣就確定了記錄的邏輯順序。

      排序與索引的區(qū)別:

      ①排序:產(chǎn)生的表文件的擴展名為.dbf,記錄的輸出順序是物理順序(重新排列的),原表中記錄的排列順序并不發(fā)生改變,但新排序表中的記錄與原表中的記錄已不在一一對應。

      ②索引:產(chǎn)生的文件擴展名為.idx(單索引)或.cdx(復合索引),文件只包含索引關(guān)鍵字的值和與其對應的記錄號,記錄的輸出是邏輯排序的,原表中記錄的排列順序并不發(fā)生改變,但產(chǎn)生的索引文件中的每個記錄值對應原表中的一個記錄號

      2.索引的分類

      VFP支持建立的索引文件可從以下兩方面來分類:

      ⑴按索引文件的類型分(2類)

      單索引文件:其擴展名為.IDX,索引文件只包含一個索引關(guān)鍵字表達式,主要是為了與FoxBase以及以前的版本兼容而存在的。

      復合索引文件:其擴展名為.CDX,該類索引文件中可以包含多個索引關(guān)鍵字表達式,這些索引關(guān)鍵字表達式稱為索引標記。每個索引標記代表了記錄的一種邏輯順序,復合索引文件實際是多個單索引文件的集合。

      復合索引文件的分類(分為兩類):一類是結(jié)構(gòu)化復合索引文件,另一種是獨立復合索引文件。

      ⑵按索引的功能分

      ①索引文件的主要功能是對數(shù)據(jù)表中的內(nèi)容進行邏輯排序,以提高查詢速度。此外,使用索引文件還能控制是否允許相同的索引關(guān)鍵字值在不同記錄中重復出現(xiàn)。

      ②按照功能分類可以將索引分為四種類型:主索引、候選索引、唯一索引和普通索引,自由表只能使用后面三種類型。

      二、索引的建立

      1.創(chuàng)建單索引文件

      【格式】INDEX  ON <索引關(guān)鍵字> TO <單索引文件名> [FOR <條件表達式>][COMPACT][UNIQUE][ADDITIVE]

      【功能】建立擴展名為.IDX的單索引文件。

      【說明】

      ①使用INDEX命令每次只能建立一個索引文件。但可多次使用INDEX命令依據(jù)打開的一個表中不同的字段建立多個單索引文件。

      ②索引關(guān)鍵字:是進行排序的字段——稱索引關(guān)鍵字段,它可以是單關(guān)鍵字或索引表達式,memo和gen字段不能參加索引。

      【例4.3-2】打開student,dbf表,以姓名為關(guān)鍵字段,建立索引文件xm.idx,要求保存到d:\myvfp文件夾下。

      SET DEFAULT TO  D:\MYVFP

      USE student

      INDEX ON 姓名 TO  xm  &&建立了一個按升序排列的普通索引型的單索引文件.

      list &&顯示結(jié)果如下:

      2.創(chuàng)建復合索引文件

      1)利用命令建立復合索引

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

      【功能】建立復合索引文件。

      【說明】

      ①ASCENDING|DESCENDING:用來指定某一索引表達式為升序還是降序,省略此兩項時為升序。注:單索引不能使用這兩個選項。

      ②使用OF <復合索引文件名>子句:表示建立獨立復合索引,省略該子句時建立的為結(jié)構(gòu)化復合索引。

      ③使用UNIQUE子句:表示建立唯一索引。如果多條記錄具有相同的關(guān)鍵字段值,索引時只取其中的第一條記錄;不選此項,索引時包括所有記錄。

      ④CANDIDATE子句:選,表示創(chuàng)建候選索引。

      【例4.3-6】為表student.dbf建立結(jié)構(gòu)復合索引文件。索引關(guān)鍵字為姓名,用xm作為普通索引標識(TAG標記),建立復合索引文件student.cdx

      use student

      index on 姓名 tag xm

      list && 顯示結(jié)果

      -----------本節(jié)課結(jié)束-----------

      三、索引的使用

      建立索引的目的,就是為了實現(xiàn)快速查詢.索引文件必須和表一起使用才有意義,因此在利用索引進行查詢時,需要打開表和索引文件。

      1.單索引文件的使用

      【格式1】USE <表文件名> INDEX <索引文件名表>

      【格式2】SET INDEX TO <索引文件名表>[ADDITIVE]

      【說明】

      格式1:在打開表的同時打開索引文件。

      格式2:打開表后,再打開索引文件。

      可同時打開多個單索引文件,文件名之間用逗號分隔,排在最左邊的(第一個)索引文件為主控索引文件。

      ①ADDITIVE選項:省略,在打開索引文件時,會關(guān)閉其前打開的單索引文件和獨立復合索引文件。

      ②使用SET  INDEX TO或CLOSE INDEX命令將關(guān)閉單索引文件和獨立復合索引文件。

      ③關(guān)閉表文件時,將同時關(guān)閉所有索引文件(包括結(jié)構(gòu)復合索引文件)。

      ④當打開表和索引文件時,使用INSERT命令不管在表的什么位置插入記錄,都被追加在數(shù)據(jù)庫的尾部

      【例】單索引文件使用方法示例。

      use student

      set index to  xm,xn    && 打開索引文件xm和xn,xm被設置為主索引。

      List    && 顯示xm.idx主控索引文件記錄的邏輯排序結(jié)果.演示見書例4-12。

      2.結(jié)構(gòu)化復合索引的使用

      打開表,與表主文件名同名,擴展名為,cdx的結(jié)構(gòu)化復合索引文件會自動打開直到關(guān)閉表文件為止。在沒有指定主控索引標記之前,對表的訪問仍然按照原來的物理順序。如果想按照某個索引標記的順序訪問表,還需要為表指定主控索引標記。

      【格式1】USE <表文件名> ORDER [TAG] <索引標記名> [ASCENDING|DESCENDING]

      【格式2】SET ORDER TO [[TAG] <索引標記名>]

                [ASCENDING|DESCENDING]

      【功能】為表指定結(jié)構(gòu)化復合索引文件的主控索引標記。

      【說明】

      格式1:在打開數(shù)據(jù)表的同時指定主控索引標識,其中TAG項可選可不選。

      格式2:是在打開了數(shù)據(jù)表之后,指定主控索引標識。

      [ASCENDING|DESCENDING]:重新指定索引關(guān)鍵字表達式值的排列順序(升序或降序)。

      使用set order  to命令可以取消主控索引。

      【例】結(jié)構(gòu)化復合索引用法示例。

      set default to  d:\myvfp

      USE student ORDER  xm DESC  &&打開表時,結(jié)構(gòu)化索引文件同時打開,指定該索引中的索引標識xm為主控索引標識。

      List && 按姓名降序顯示

      3.獨立復合索引的使用

      打開表后,獨立復合索引文件不隨之打開,因此,使用獨立復合索引文件必需打開它,然后再指定主控索引標記。

      【格式1】USE <表文件名> INDEX <獨立復合索引文件名> ORDER [TAG] <索引標記名> [OF <獨立復合索引文件名>][ASCENDING|DESCENDING]

      【格式2】SET INDEX TO <獨立復合索引文件名> ORDER [TAG]  <索引標記名>[[OF <獨立復合索引文件名>]

      【說明】

      格式1:打開表文件的同時,打開獨立復合索引文件并且指定主控索引標記。

      格式2:打開了表文件之后,再打開獨立復合索引文件并且指定主控索引標記。

      【例】獨立復合索引使用示例

      set default to  d:\myvfp

      USE student

      SET INDEX TO xhgg  order tag xh_nl OF xhgg

      list &&顯示xhgg.cdx獨立復合索引文件中索引標記為xh_nl子索引文件的內(nèi)容。

      四、重新索引

      當對表進行記錄插入、修改和刪除操作時,打開的索引文件會隨之操作(自動更新)。但沒有打開的索引文件,不會隨之操作(自動更新),可利用重新索引功能對沒有打開的索引文件進行重新索引,即將表中進行的插入、修改和刪除記錄重新在索引文件中進行邏輯排序。

      【格式】REINDEX  [COMPACT]

      【說明】

      ①進行重新索引前,應先打開表和相應的要重新索引的索引文件,再執(zhí)行REINDEX [COMPACT]命令。

      ②COMPACT子句:選表示將索引文件進行壓縮處理.

      當有些索引文件沒用時,可以從磁盤上將其刪掉,這樣可提高系統(tǒng)的運行性能,釋放磁盤空間。

      1.刪除單索引文件

      【格式】delete  file <單索引文件名>

      【功能】刪除指定的單索引文件

      【說明】索引文件關(guān)閉后,才能進行刪除操作。

      【例4.3-13】下面給出刪除單索引文件的示例。

      set index to  && 關(guān)閉單索引文件

      delete file  xm.idx  && 刪除索引文件xm.idx  

      2.刪除索引標識

      【格式1】delete tag all

      【功能】刪除復合索引文件中的所有索引標記。

      【格式2】delete tag <索引標記1>[,<索引標記2>]…

      【功能】刪除復合索引文件中被指定的索引標記。

      【說明】

      ①使用【格式1】時,將刪除復合索引文件中的所有索引標記。意味著該復合索引文件被刪除。

      ②使用【格式2】時,將刪除復合索引文件中被指定的索引標記。

      ③使用表設計器也可刪除結(jié)構(gòu)化復合索引文件。

      【例】刪除復合索引文件中的索引標記示例。

      use student  && 打開student.dbf,同時打開復合 索引文件student.cdx

      delete tag xh,nl  && 刪除xh和nl兩個索引標記。

      delete tag all   && 將student.cdx結(jié)構(gòu)索引文件中全部索引標記刪除,這表刪除了student.cdc結(jié)構(gòu)索引文件.

      講述

      排序15分鐘

      索引基本概念10分鐘

       

      創(chuàng)建單索引文件10分鐘

       

      創(chuàng)建復合索引文件20分鐘

       

      單索引文件的使用8分鐘

      結(jié)構(gòu)化復合索引文件的使用5分鐘

      獨立復合索引文件的使用5分鐘

      重新索引5分鐘

      刪除單索引文件3分鐘

      刪除索引標識5分鐘


      CopyRight ? 2016 宣城市信息工程學校 地址:宣城市梅溪路902號 后臺登錄

      郵編:242000 電話(傳真):0563-2629508 如有問題,歡迎惠賜 Email:xclmq@163.com

      日韩无码第一页,一区_97资源人妻碰碰碰_有码无码人妻Av_午夜亚洲国产理论片2020网站 亚洲无码片AV一级 岛国av无码专区免费看
      <style id="uedzd"></style>
    3. <style id="uedzd"></style>
    4. <dfn id="uedzd"></dfn>
    5. <dfn id="uedzd"></dfn>
      1. <ruby id="uedzd"></ruby>
        <ruby id="uedzd"></ruby>