2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩129頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,1,第3章 查詢與統(tǒng)計——排序與索引,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,2,3.1 排序與索引,表的記錄通常按輸入的先后排列,用LIST等命令顯示表時將按此順序輸出。若要以另一種順序來輸出記錄,例如要求SB.DBF的記錄按價格從大到小輸出,便須對表進(jìn)行排序或索引。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,3,3.1.1排序,排序就是根據(jù)表的某些字段重排記錄。排序后將產(chǎn)生一個

2、新表,其記錄按新的順序排列,但原文件不變。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,4,命令格式:,SORT TO ON [/A|/D] [/C] [, [/A|/D] [/C]…] [] [FOR ] [WHILE

3、] [FIELDS | FIELDS LIKE|FIELDS EXCEPT ],2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,5,說明:,ON子句的字段名表示排序字段,記錄將隨字段值的增大(升序)或減?。ń敌颍﹣砼判颉_x項/A和/D分別用來指定升序或降序,默認(rèn)按升序排序。選項/C表示不區(qū)分字段值中字母大小寫。注意,不能選用備注型或通用型字段來排序。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,6,說明:,可在0N子句中使用多個字

4、段名實(shí)現(xiàn)多重排序,即先按主排序字段排序,對于字段值相同的記錄再按第二排序字段排序,依此類推。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,7,說明,缺省、FOR 和WHILE等子句表示對所有記錄排序。FIELDS子句指定新表應(yīng)包含的字段,默認(rèn)包含原表所有字段。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,8,[例3-1] 對SB.DBF分別按以下要求排序:(1)將非主要設(shè)備按啟用日期降序排序,并要求新表只包含編號、名稱、啟用日期等

5、3個字段。排序字段是啟用日期降序選擇記錄是非主要設(shè)備選擇字段:編號、名稱、啟用日期等3個字段,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,9,解:(1)USE sbSORT TO rqx ON 啟用日期/D FIELDS 編號,名稱,啟用日期 FOR NOT 主要設(shè)備USE rqxLIST,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,10,&& 主窗口顯示如下 記錄號

6、 編號 名稱 啟用日期 1 21O-1 轎車 05/08/95 2 101-1 復(fù)印機(jī) 06/01/92 3 038-1 鉆床 10/12/89,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,11,(2) 將主要設(shè)備按部門降序排序,當(dāng)部門相同時則按價

7、格升序排序。 SORT TO bmx ON 部門/D, 價格 FOR 主要設(shè)備USE bmxLIST,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,12,3.1.2 索引,對于已經(jīng)建好的表,可以利用索引對其中的數(shù)據(jù)進(jìn)行排序,以便加快檢索數(shù)據(jù)的速度。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,13,索引,VFP中 的索引和書中的目錄類似。書中的目錄是一份頁碼的列表,指向各章節(jié)所在的頁號;表索引是一個記錄號的列表,它指向待處理的記錄

8、,并確定了記錄的處理順序。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,14,索引的概念,記錄的物理順序與邏輯順序文件中的記錄一般按其磁盤存儲順序輸出,這種順序稱為物理順序。執(zhí)行排序后,在新文件中形成了新的物理順序。索引則不同,它不改變記錄的物理順序,而是按某個索引關(guān)鍵字(或其表達(dá)式)來建立記錄的邏輯順序。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,15,索引的概念,表一旦按索引表達(dá)式建立索引后,就產(chǎn)生了一個相應(yīng)的索引文件,其文

9、件名與表文件同名,但擴(kuò)展名不同。索引文件就是一個索引關(guān)鍵字和記錄號的對照表。一旦表和相關(guān)的索引文件被打開,則對表操作時,記錄的順序按索引表達(dá)式的值的邏輯順序顯示和操作。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,16,排序與索引,雖然排序與索引都以增加一個文件為代價,但索引文件只包括關(guān)鍵字和記錄號兩個字段,比原來的表文件要小得多;索引起作用后,增刪或修改表的記錄時索引文件會自動更新,故而索引的應(yīng)用遠(yuǎn)比排序?yàn)閺V。,2024/3/1

10、7,華中農(nóng)業(yè)大學(xué)信息管理系,17,索引,在VFP中,可以為一個表建立多個索引,每一個索引確定了一種表記錄的邏輯順序。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,18,索引的種類,按擴(kuò)展名來分類按功能來分類,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,19,按擴(kuò)展名來分類,VFP支持復(fù)合索引和單索引兩類索引文件,前者擴(kuò)展名為CDX,后者擴(kuò)展名為IDX。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,20,復(fù)合索引文件,復(fù)合索引文件允許包

11、含多個索引,每個索引都有一個索引標(biāo)識,代表一種記錄邏輯順序。復(fù)合索引文件又有結(jié)構(gòu)的和非結(jié)構(gòu)的兩種,若定義復(fù)合索引文件時取了名字,則其為非結(jié)構(gòu)的,否則為結(jié)構(gòu)的。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,21,復(fù)合索引文件,結(jié)構(gòu)復(fù)合索引文件的主名與表的主名相同,它隨表的打開而打開,在添加、更改或刪除記錄時還會自動維護(hù),在各類索引文件中,選用它最為省事。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,22,單索引文件,單索引文件只包含一個

12、索引。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,23,按功能來分類,主索引 候選索引 普通索引 唯一索引,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,24,主索引,可確保字段中輸入值的唯一性,若在添加記錄或修改索引字段時出現(xiàn)了重復(fù)索引字段值,VFP將給出警告并不予接受(禁止存盤)。如果在建立該索引時,表中已經(jīng)有不唯一的記錄存在,那將無法建立這樣的索引。該索引只適用于數(shù)據(jù)庫表,可用于在永久關(guān)系中建立參照完整性。,20

13、24/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,25,候選索引,與主索引類似,也保證表中索引值的記錄是唯一的。 因?yàn)橐粋€表只能建立一個主索引,所以當(dāng)要建立多個不允許有索引重復(fù)值的索引時,可以作為候選索引,同一個表允許建立多個候選索引。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,26,普通索引,允許表中有重復(fù)索引值的記錄。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,27,唯一索引,允許表中索引值的記錄不唯一,但只有第一個有相同索引關(guān)鍵字值的記

14、錄有效。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,28,索引的建立,命令格式:INDEX ON TO |TAG [OF ] [FOR ]

15、 [COMPACT] [ASCENDING|DESCENDING] [UNIQUE|CANDIDATE] [ADDITIVE]功能:建立索引文件或增加索引標(biāo)識。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,29,說明,關(guān)鍵字可用表達(dá)式表示。最簡單的表達(dá)式是字段名。如果關(guān)鍵字是由多個字段組成的,必須統(tǒng)一這些字段的數(shù)據(jù)類型。,2024/3/17,華中農(nóng)業(yè)大學(xué)

16、信息管理系,30,例:對某一個數(shù)據(jù)庫建立以性別(C,2)升序、年齡(N,2)升序的多字段結(jié)構(gòu)復(fù)合索引的索引關(guān)鍵字表達(dá)式是: 性別+ STR(年齡,2),2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,31,例:對某一個數(shù)據(jù)庫建立以部門號(N,2)升序、出生日期(D,8)降序的多字段結(jié)構(gòu)復(fù)合索引的索引關(guān)鍵字表達(dá)式是:STR(部門號,2)+ STR(DATE()-出生日期),2024/3/17,華中

17、農(nóng)業(yè)大學(xué)信息管理系,32,說明:,TO子句適用于建立單索引文件,其主名由指出。COMPACT選項用來指定單索引文件為壓縮的。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,33,[例3-2] 建立單索引文件示例。,USE SBINDEX ON 名稱 TO mcidx && 建立名稱升序排列的普通索引型單索引文件MCIDX.IDXLIST && 記錄已按名稱升序排

18、列INDEX ON 價格 TO jgidx UNIQUE && 建立價格降序排列的唯一索引型單索引文件JGIDX.IDXLIST && 記錄已按價格降序排列,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,34,說明,TAG子句用于建立復(fù)合索引文件及索引標(biāo)識,或增加索引標(biāo)識,索引標(biāo)識由該子句的指出。,2024/3/17,華中農(nóng)業(yè)

19、大學(xué)信息管理系,35,說明,該命令默認(rèn)建立普通索引型索引文件;UNIQUE表示建立唯一索引型索引文件;CANDIDATE表示索引文件是候選索引型,但需與TAG子句同時使用。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,36,說明,記錄邏輯順序默認(rèn)為升序,也可用ASCENDING選項表示升序。 DESCENDING選項表示降序。ADDITIVE表示建立本索引文件時并不關(guān)閉先前打開的索引文件,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,

20、37,[例3-3] 為SB.DBF建立一個結(jié)構(gòu)復(fù)合索引文件,其中包括3個索引:1)記錄以價格降序排列,索引標(biāo)識為普通索引型。USE sbINDEX ON 價格 TAG jg DESCENDING && 建立SB.CDX,關(guān)鍵字價格,JG為普通索引型索引標(biāo)識LIST && 記錄已按價格降序排列,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,38,2)記錄以

21、部門升序排列,部門相同時則按價格升序排列,索引標(biāo)識為普通索引型。INDEX ON 部門+STR(價格,9,2) TAG bmjg && 關(guān)鍵字為字符表達(dá)式”部門+STR(價格,9,2)”,索引標(biāo)識BMJG增入SB.CDXLIST && 索引表達(dá)式運(yùn)算后升序排列,使記錄按部門升序、部門相同按價格升序排列,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,39,3)記錄以部門升序排列

22、,部門相同時則按價格降序排列,索引標(biāo)識為候選索引型。INDEX ON VAL(部門)-價格/1000000 TAG bmjg1 CANDIDATE; && bmjgl為候選索引型索引標(biāo)識,索引標(biāo)識增入SB.CDXLIST && 索引表達(dá)式運(yùn)算后升序排列,使記錄按部門升序、部門相同按價格降序排列,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,40

23、,索引的建立,用表設(shè)計器建立索引 用表設(shè)計器建立或修改索引有兩種辦法。其一,在字段選項卡索引列的組合框中選定向上箭頭為升序索引,向下箭頭為降序索引,該行字段為索引關(guān)鍵字。其二,使用“索引”選項卡。該選項卡中可鍵入關(guān)鍵字表達(dá)式,還可選擇索引類型,前面字段選項卡中建立的索引也能在此選項卡中顯示出來。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,41,索引的使用,實(shí)現(xiàn)索引查詢必須滿足以下的條件,打開表;打開索引文件;確定主控索引文

24、件;對于復(fù)合索引文件還須確定主控索引。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,42,打開和關(guān)閉索引文件,索引剛建立時,索引文件呈打開狀態(tài)且成為主控索引文件。結(jié)構(gòu)復(fù)合索引能隨著表的打開而打開。表關(guān)閉時索引文件就隨之關(guān)閉。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,43,打開和關(guān)閉索引文件,除結(jié)構(gòu)復(fù)合索引能隨著表的打開而打開外,其它索引文件必須用命令顯式打開。命令“USE INDEX ”也可在打開表的同時打開索引文件,并

25、確定中的第一個索引文件為主控索引文件。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,44,主控索引文件,若當(dāng)前僅有一個索引文件被打開,它就自然成為主控索引文件。索引剛建立時,索引文件呈打開狀態(tài)且成為主控索引文件。若當(dāng)前已打開了多個索引文件,可通過SET INDEX命令來確定主控索引文件。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,45,主控索引文件,命令格式:SET INDEX TO [] [ADDITIVE] 功能:打開當(dāng)

26、前表的一個或多個索引文件并確定主控索引文件。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,46,說明:,中第一個索引文件為主控索引文件。該命令常用于打開單索引文件,例如,USE sbSET INDEX TO jgidx,mcidxLIST && 記錄按價格降序排列,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,47,說明:,若缺省所有選項,即僅用SET INDEX TO,將關(guān)閉當(dāng)前工作區(qū)

27、中除結(jié)構(gòu)復(fù)合索引文件外的所有索引文件,同時取消主控索引。若缺省ADDITIVE選項,則在用本命令打開索引文件時,除結(jié)構(gòu)復(fù)合索引文件以外的索引文件均被關(guān)閉。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,48,確定主控索引,復(fù)合索引文件中當(dāng)前建立的索引標(biāo)識自動成為主控索引,但須注意,表重新打開時盡管復(fù)合索引文件已自動打開,還須確定主控索引。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,49,確定主控索引,命令格式:SET ORDER T

28、O [] | |[TAG],2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,50,說明,(1)表示已打開索引的序號,該序號用來指定主控索引文件或主控索引。系統(tǒng)先為各單索引文件編號,故結(jié)構(gòu)復(fù)合索引文件的序號比單索引文件大。(2)指定該單索引文件為主控索引文件。(3)指定該索引標(biāo)識為主控索引。(4)SET ORDER TO或SET ORDER TO 0命令取消主控索引文件及主控索引,

29、表中記錄將按物理順序輸出。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,51,[例3-4] 根據(jù)例3-2、例3-3建立的索引改變主控索引。USE sb INDEX mcidx,jgidxLISTSET ORDER TO TAG jg && 指定SB.CDX的索引標(biāo)識JG為主控索引,JG索引序號為3LIST && 記錄按價格降序排列SET ORDER TO 1

30、 && 指定MCIDX.IDX為主控索引LIST && 記錄按名稱升序排列,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,52,SET ORDER TO && 取消主控索引文件及主控索引LIST && 記錄按物理順序顯示SET ORDER TO 3 && 指定SB.C

31、DX的索引標(biāo)識JG為主控索引LIST && 記錄按價格降序排列SET INDEX TO && 關(guān)閉所有.IDX文件,取消主控索引LIST && 雖SB.CDX未關(guān)閉,但未確定主控索引,記錄按物理順序顯示,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,53,,USE rsbINDEX ON 姓名 TAG xm

32、DESCENDINGLISTINDEX ON 出生日期 TAG csrq UNIQUELISTINDEX ON 職稱+DTOS(出生日期) TAG zccsrq DESCENDING CANDIDATELIST,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,54,索引的建立命令格式:INDEX ON TO | TAG [OF ] [FOR ] [COMPACT] [ASCENDING | DESCENDI

33、NG] [UNIQUE | CANDIDATE] [ADDITIVE]功能:建立索引文件或建立索引標(biāo)識。,TO 子句用于建立單索引文件,TAG子句用于建立復(fù)合索引標(biāo)識或復(fù)合索引文件,用于指定非結(jié)構(gòu)復(fù)合索引文件的名字,用來指定單索引文件為壓縮的,分別用于指定升序或降序,表示建立唯一索引,表示建立候選索引,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,55,在“索引名”文本框中輸入索引標(biāo)識名,在“類型”列表框中,選定索引類型,在“表達(dá)

34、式”文本框中,輸入索引關(guān)鍵字表達(dá)式,向上箭頭為升序索引,向下箭頭為降序索引,如果需要,可輸入篩選條件表達(dá)式,利用表設(shè)計器來建立索引,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,56,,USE rsbSORT TO px1 ON 工作日期 FIELDS 編號,姓名,性別,工作日期,職稱USE px1LIST,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,57,,排序結(jié)果,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,58,,USE rs

35、bSORT TO px2 ON 性別/D,姓名/A FOR 婚否 FIELDS 編號,姓名,性別,工作日期,職稱,婚否USE px2LIST,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,59,,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,60,刪除索引,(1)刪除索引文件若用刪除文件命令來刪除索引文件,須遵循先關(guān)閉后刪除的原則,這與刪除表類似。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,61,刪除索引,(2)刪除索引標(biāo)識命令

36、格式:DELETE TAG ALL|[,]…功能:刪除打開的結(jié)構(gòu)復(fù)合索引文件的索引標(biāo)識。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,62,說明,ALL子句用于刪除結(jié)構(gòu)復(fù)合索引文件的所有索引標(biāo)識。若某索引文件的所有索引標(biāo)識都被刪除,則該索引文件也已刪除。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,63,例如,刪除例3-3建立的結(jié)構(gòu)復(fù)合索引文件中的索引標(biāo)識BMJG1:USE sbDELETE TAG bmjg1,2024/3/

37、17,華中農(nóng)業(yè)大學(xué)信息管理系,64,交互方式下索引的使用,打開已建好索引的表。選擇“瀏覽”。從“表”菜單中選擇“屬性”。在“索引順序”框中,選擇要用的索引。選擇“確定”。 顯示在“瀏覽”窗口中的表將按照索引指定的順序排列記錄。選定索引后,通過運(yùn)行查詢或報表,還可對它們的輸出結(jié)果進(jìn)行排序。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,65,3.2 查詢命令,所謂查詢,即按照指定條件在表中查找所需的記錄。本節(jié)將介紹兩種傳統(tǒng)的查詢

38、方法:順序查詢和索引查詢。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,66,順序查詢命令,順序查詢包括LOCATE和CONTINUE兩條命令。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,67,LOCATE命令,命令格式:LOCATE FOR [][WHILE ]功能:搜索滿足的第一個記錄。若找到,記錄指針就指向該記錄;若表中無此記錄,搜索后VFP主屏幕的狀態(tài)條中將顯示“已到定位范圍末尾?!?,表示記錄指針指向文件結(jié)束處。說明:

39、(1)缺省表示ALL。(2)查到記錄后,要繼續(xù)往下查找滿足的記錄必須用CONTINUE命令。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,68,[例3-5] 在SB.DBF中查詢價格小于15000元的非主要設(shè)備。USE sbLOCATE FOR 價格<15000 AND NOT 主要設(shè)備DISPLAYCONTINUE?RECNO(),名稱,價格,主要設(shè)備 && 顯示:6 復(fù)印機(jī) 10305.01

40、.F.CONTINUE && 狀態(tài)條顯示:已到定位范圍末尾。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,69,索引查詢命令,SEEK和FIND兩條命令均可用來進(jìn)行索引查詢。FIND是為了與舊版本兼容而保留的,但SEEK的用法更靈活,我們簡單介紹SEEK命令 .,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,70,SEEK命令,命令格式:SEEK 功能:在已確定主控索引的表中按

41、索引關(guān)鍵字搜索滿足值的第一個記錄。若找到,記錄指針就指向該記錄;找不到該記錄則在主屏幕的狀態(tài)條中顯示“沒有找到?!?2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,71,[例3-6] SEEK命令用法示例。USE sbINDEX ON 編號 TAG bhSEEK “038-1” && 不可寫為:SEEK編號=”038-1”?RECNO() && 顯示:4I

42、NDEX ON 啟用日期 TAG qyrqSEEK {3/5/90} && 注意設(shè)置嚴(yán)格日期格式 SET STRICTDATE TO 0?FOUND() && 顯示.T.,表示找到該日期INDEX ON 價格 TAG jgSEEK 1000.00?RECNO(), FOUND() && 除在狀態(tài)條顯示“沒有找到。”外,還在主屏幕顯示:9,F。,2024

43、/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,72,在使用LOCATE,CONTINUE,SEEK,F(xiàn)IND查詢數(shù)據(jù)時,若查到,F(xiàn)OUND函數(shù)就返回.T.,否則返回.F.。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,73,對于字符表達(dá)式,系統(tǒng)允許模糊查詢,即只要字符表達(dá)式值與索引關(guān)鍵字值左子串相同,就認(rèn)為找到。命令“SET EXACT ON | OFF”用于設(shè)置匹配環(huán)境,ON表示完全匹配,用于精確查詢;OFF表示模糊匹配,系統(tǒng)默認(rèn)OFF。

44、運(yùn)算符==和=有類似的功能,前者表示完全匹配,后者表示模糊匹配。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,74,[例3-7] 模糊查詢與精確查詢示例。USE sbSET ORDER TO TAG bhSEEK “03” && 按編號前兩個字符查找?RECNO(), FOUND() && 顯示:3 .T.SET EXACT ON

45、&& 設(shè)置完全匹配環(huán)境SEEK “03”?FOUND() && 返回 .F.SET EXACT OFF && 恢復(fù)成模糊匹配環(huán)境,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,75,3.3數(shù)據(jù)工作期 3.3.1多工作區(qū)的查詢,多表同時查詢 實(shí)際應(yīng)用中常需同時查詢多個表的數(shù)據(jù),我們以設(shè)備管理為例設(shè)計了4個表,除SB.DBF與DX.DBF外

46、,還需建立如下所示的部門代碼表BMDM.DBF和增值表ZZ.DBF。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,76,BMDM.DBF:結(jié)構(gòu):bmdm(代碼c(2),名稱c(6))記錄:記錄號代碼名稱111辦公室212設(shè)備科321一車間422二車間523三車間,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,77,ZZ.DBF:結(jié)構(gòu):zz(

47、編號c(5),增值n(8,2))記錄:記錄號編號增值1016-12510.OO2016-11000.003038-11200.00,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,78,工作區(qū)的概念,工作區(qū)號表打開后才能進(jìn)行操作,實(shí)際上打開表就是把它從磁盤調(diào)入內(nèi)存的某一個工作區(qū)。VFP提供了32767個工作區(qū),編號從1到32767。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,79

48、,工作區(qū)的概念,每個工作區(qū)只允許打開一個表,在同一工作區(qū)打開另一個表時,以前打開的表就會自動關(guān)閉。反之,一個表只能在一個工作區(qū)打開,在其未關(guān)閉時若試圖在其它工作區(qū)打開它,VFP會顯示信息框提示出錯信息“文件正在使用”。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,80,別名,前10個工作區(qū)除使用1~10為編號外,還可依次用A~J這10個字母來表示,稱為工作區(qū)別名。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,81,別名,其實(shí)每個打開的

49、表也都有一個別名,并可用命令 “USE ALIAS ”來指定。例如命令“USE SB ALIAS SEBEI”即指定SEBEI為SB.DBF的別名,,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,82,別名,若未對表指定別名,則表的主文件名將被默認(rèn)為別名,例如命令“USE SB”表示SB.DBF的別名也是SB。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,83,選擇工作區(qū)命令,命令格式:SELECT |功能:選定某個工作區(qū),用

50、于打開一個表。說明:(1)用SELECT命令選定的工作區(qū)稱為當(dāng)前工作區(qū),VFP默認(rèn)1號工作區(qū)為當(dāng)前工作區(qū)。函數(shù)SELECT()能夠返回當(dāng)前工作區(qū)的區(qū)號,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,84,[例3-8] 通過多區(qū)操作從部門代碼查出部門名。CLOSE ALLSELECT 0 && 1號工作區(qū)未打開過表,選定的工作區(qū)即該區(qū)USE SbGO 3 &

51、;& 移至3號記錄,注意該記錄的部門字段值為22,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,85,SELECT 0 && 選定2號工作區(qū)為當(dāng)前工作區(qū)USE bmdmINDEX ON 代碼 TAG dmSEEK sb.部門 && 即SEEK 12? sb.編號,a.名稱,名稱 && 這里“a.名稱”指sb.名稱,“名稱”指bmdm.名稱

52、SELECT sb? 編號,名稱,bmdm.名稱,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,86,(3)命令“USE IN | ”能在指定的工作區(qū)打開表,但不改變當(dāng)前工作區(qū),要改變工作區(qū)仍需使用SELECT命令。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,87,3.3.2 數(shù)據(jù)工作期窗口,數(shù)據(jù)工作期是一個用來設(shè)置數(shù)據(jù)工作環(huán)境的交互操作窗口。所設(shè)置的環(huán)境可以包括打開的表及其索引,多個表之間的關(guān)聯(lián)等狀態(tài)。,2024/3/17,華

53、中農(nóng)業(yè)大學(xué)信息管理系,88,數(shù)據(jù)環(huán)境,例如執(zhí)行下述命令序列USE sbINDEX ON 編號 TAG bh就設(shè)置了一種環(huán)境,它可供用戶對按照“編號”索引了的SB.DBF進(jìn)行索引查詢。若設(shè)置的環(huán)境包括了多個相互關(guān)聯(lián)的表,就可用于多表查詢。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,89,數(shù)據(jù)工作期窗口,數(shù)據(jù)工作期窗口可用菜單操作方式或命令工作方式打開和關(guān)閉,具體方法如下:菜單操作方式:選定窗口菜單的數(shù)據(jù)工作期命令。命令工作方

54、式:鍵入 SET 或SET VIEW ON命令。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,90,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,91,數(shù)據(jù)工作期窗口,[例3-9] 數(shù)據(jù)工作期窗口操作示例,要求:(1)同時打開SB.DBF和BMDM.DBF。(2)為SB.DBF設(shè)置包括編號、名稱、部門等字段的字段表,并以編號大于03為條件設(shè)置過濾器,隨后打開瀏覽窗口,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,92,操作步驟,打開數(shù)

55、據(jù)工作期:選定窗口菜單的數(shù)據(jù)工作期命令,屏幕出現(xiàn)數(shù)據(jù)工作期窗口;打開表:在數(shù)據(jù)工作期窗口選定“打開”按鈕→在打開對話框中選定SB.DBF→選定“確定”按鈕返回數(shù)據(jù)工作期。以同樣方法打開BMDM.DBF。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,93,設(shè)置字段表和過濾器:在別名列表框中選定表SB→選定“屬性”按鈕→在工作區(qū)屬性對話框中選定“字段篩選”按鈕→在字段選擇器對話框中把編號、名稱、部門字段從所有字段列表框移到選定字段列表

56、框中→選定“確定”按鈕返回工作區(qū)屬性對話框→選定“字段篩選指定的字段”選項按鈕→在數(shù)據(jù)過濾器文本框中鍵入條件:“編號>”03””→在索引順序組合框中選定“無順序”(表示不使用索引)選項→選定“確定”按鈕返回數(shù)據(jù)工作期。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,94,(4)為SB.DBF打開瀏覽窗口:選定“瀏覽”按鈕。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,95,3.3.3視圖文件,數(shù)據(jù)工作期設(shè)置的環(huán)境可以作為視圖文件

57、保存,以便在需要時恢復(fù)它所保存的環(huán)境。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,96,視圖文件的建立,視圖文件可通過菜單操作或執(zhí)行命令來建立,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,97,菜單操作,數(shù)據(jù)工作期未關(guān)閉時,可選定文件菜單的“另存為”命令來建立視圖文件,系統(tǒng)默認(rèn)視圖文件的擴(kuò)展名為.VUE。例如,為例3-9設(shè)置的環(huán)境建立視圖文件可按以下步驟進(jìn)行:關(guān)閉瀏覽窗口→選定文件菜單的“另存為”命令→在另存為對話框的文本框中輸入

58、視圖文件名SB→選定“保存”按鈕,即產(chǎn)生視圖文件SB.VUE。注意,若瀏覽窗口打開著則文件菜單的“另存為”命令以淡色顯示而無法選用。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,98,命令操作,命令格式:CREATE VIEW 功能:為VFP的當(dāng)前數(shù)據(jù)工作環(huán)境建立一個視圖文件。例如在數(shù)據(jù)工作期打開時往命令窗口鍵人命令CREATE VIEW SB,便可建立視圖文件SB.VUE。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,99,視

59、圖文件的打開,打開視圖文件意味著恢復(fù)環(huán)境,相當(dāng)于重新執(zhí)行一系列先前設(shè)置的命令。視圖文件打開后,再打開數(shù)據(jù)工作期窗口,便能看到前所建立的環(huán)境。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,100,視圖文件的打開,例如前所建立的視圖文件SB.VUE可利用菜單來打開:選定文件菜單的“打開”命令→文件類型選定“視圖”(*.VUE)→選定文件SB.VUE→選定“確定”按鈕。SB.VUE也可用命令打開:往命令窗口鍵入命令SET VIEW TO

60、SB。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,101,3.3.4 表的關(guān)聯(lián),在要查詢多個表中的數(shù)據(jù)時,常采用關(guān)聯(lián)和聯(lián)接兩種方法,,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,102,關(guān)聯(lián)的概念,前已指出,每個打開的表都有一個記錄指針,用以指示當(dāng)前記錄。所謂關(guān)聯(lián),就是令不同工作區(qū)的記錄指針建立一種臨時的聯(lián)動關(guān)系,使一個表的記錄指針移動時另一個表的記錄指針也能隨之移動。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,103,關(guān)聯(lián)條件,

61、建立關(guān)聯(lián)的兩個表,總有一個是父表,一個為子表。在執(zhí)行涉及這兩個表數(shù)據(jù)的命令時,父表記錄指針的移動,會使子表記錄指針自動移到滿足關(guān)聯(lián)條件的記錄上。關(guān)聯(lián)條件通常要求比較不同表的兩個字段表達(dá)式值是否相等,所以除要在關(guān)聯(lián)命令中指明這兩個字段表達(dá)式外,還必須先為子表的字段表達(dá)式建立索引,,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,104,關(guān)聯(lián)條件,為表SB.DBF和BMDM.DBF建立了關(guān)聯(lián),條件是SB.部門與BMDM.代碼兩個字段的值相等,

62、圖中對符合條件的記錄畫出了連線,表示子表記錄指針會隨父表記錄指針的移動而移動。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,105,多一關(guān)系,按照通過不同表的兩個字段表達(dá)式值相等來實(shí)現(xiàn)關(guān)聯(lián)的原則,若出現(xiàn)父表有多條記錄對應(yīng)子表中一條記錄的情況,便稱這種關(guān)聯(lián)為多一關(guān)系。若將SB.DBF作為父表來建立關(guān)聯(lián),父表的部門字段值有多于一個的21,而BMDM.DBF代碼字段值僅有一個21,這表示兩個表是按照多一關(guān)系來關(guān)聯(lián)的。,2024/3/17,華

63、中農(nóng)業(yè)大學(xué)信息管理系,106,一多關(guān)系,按照同樣的實(shí)現(xiàn)關(guān)聯(lián)的原則,若出現(xiàn)父表的一條記錄對應(yīng)子表中多條記錄的情況,這種關(guān)聯(lián)稱為一多關(guān)系。若將BMDM.DBF作為父表進(jìn)行關(guān)聯(lián),父表代碼字段值中僅有一個21,而SB.DBF部門字段值有多于一個的21,這表示兩個表是按照一多關(guān)系來關(guān)聯(lián)的。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,107,在數(shù)據(jù)工作期窗口建立關(guān)聯(lián),在數(shù)據(jù)工作期窗口可以建立關(guān)聯(lián),此時的一般步驟為:(1)打開需建立關(guān)聯(lián)的表。

64、(2)為子表按關(guān)聯(lián)的關(guān)鍵字建立索引或確定主控索引。(3)選定父表工作區(qū)為當(dāng)前工作區(qū),并與一個或多個子表建立關(guān)聯(lián)。(4)說明建立的關(guān)聯(lián)為一多關(guān)系。缺省本步驟默認(rèn)為多一關(guān)系。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,108,[例3-10] 查詢1992年起啟用的設(shè)備,要求顯示查到的設(shè)備的編號、名稱、啟用日期和部門名。分析:由于查到設(shè)備后要顯示部門的名稱而不是代碼,可將表SB.DBF和BMDM.DBF進(jìn)行關(guān)聯(lián)。關(guān)聯(lián)時將SB的部門

65、字段值與BMDM的代碼字段值進(jìn)行比較。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,109,解一:以SB.DBF為父表,BMDM.DBF為子表建立多一關(guān)系。(1)打開表:在窗口菜單中選定數(shù)據(jù)工作期命令,然后分別打開SB.DBF和BMDM.DBF。(2)為子表BMDM的代碼字段建立索引:(3)建立關(guān)聯(lián):在別名列表框中選定表SB→選定“關(guān)系”按鈕→在別名列表框中選定表BMDM→在“設(shè)置索引順序”對話框中選定“確定”按鈕→在表達(dá)式生成器

66、的字段列表框中雙擊“部門”字段→選定“確定”按鈕,多一關(guān)系建立完成。(4)建立視圖文件:選定文件菜單的“另存為”命令→在另存為對話框的文本框中輸入視圖文件名SBBM→選定“保存”按鈕,即產(chǎn)生視圖文件SBBM.VUE。 browse fields bmdm.名稱:H='部門名',sb.編號,sb.名稱:H='設(shè)備名',sb.啟用日期 for sb.啟用日期>={01/01/92},20

67、24/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,110,解二:以BMDM.DBF為父表,SB.DBF為子表建立一多關(guān)系。(1)在數(shù)據(jù)工作期窗口打開SB.DBF和BMDM.DBF(2)為子表SB.DBF的部門字段建立索引。(3)以BMDM.DBF為父表建立關(guān)聯(lián):(4)說明一多關(guān)系:選定“一對多”按鈕→在“創(chuàng)建一對多關(guān)系”對話框中將子表SB從“子表別名”列表框移入“選定別名”列表框中→選定確定按鈕。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理

68、系,111,用命令來建立關(guān)聯(lián),建立關(guān)聯(lián)命令命令格式:SET RELATION TO [ INTO ,…, INTO ] [ADDITIVE]功能:以當(dāng)前表為父表與其它一個或多個子表建立關(guān)聯(lián)。,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,112,說明:,(1)用來指定父表的字段表達(dá)式,其值將與子表的索引關(guān)鍵字值對照,看二者是否相同。表示子表或其所在的工作區(qū)。(2)ADDITIVE保證在建立關(guān)聯(lián)時不取消以前建立的關(guān)聯(lián)。,2024/3

69、/17,華中農(nóng)業(yè)大學(xué)信息管理系,113,例3-10中設(shè)置的多一關(guān)系可用如下命令序列來表達(dá):SELECT 2USE bmdmINDEX ON 代碼 TAG 代碼ADDITIVE && 子表在代碼字段建立索引SELECT 1USE sbSET ORDER TO TAG OF ……\sb.cdx IN SbSET RELATION TO sb.部門 INTO bmdm ADDITIVE &&am

70、p; 指定在部門字段對子表設(shè)置多一關(guān)系 brow fields 部門,bmdm.名稱:H="部門名",2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,114,(3)解除關(guān)聯(lián)可用命令: SET RELATION TO,2024/3/17,華中農(nóng)業(yè)大學(xué)信息管理系,115,說明一多關(guān)系的命令,命令格式:SET SKIP TO [[,]…]功能:用在SET RELATION 命令之后,說明已建關(guān)聯(lián)的性質(zhì)為一多

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論