第四章排序索引查詢_第1頁(yè)
第四章排序索引查詢_第2頁(yè)
第四章排序索引查詢_第3頁(yè)
第四章排序索引查詢_第4頁(yè)
第四章排序索引查詢_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、(原表)排序排序(新表)索引索引1彭 01 5502曹 02 5693周 03 5464李 04 5891彭 01 5502曹 02 5693周 03 5464李 04 5891李 04 5892曹 02 5693彭 01 5504周 03 5461彭 01 5502曹 02 5693周 03 5464李 04 589(原表)4 5892 5691 5503 546(索引文件)一、排序與索引一、排序與索引(一)排序(一)排序 格式:格式:SORT TO 文件名文件名 ON 字段名字段名1/A/D/C ,字段字段名名2/A/D/C,范圍范圍 FOR 條件條件 FIELDS 字段名表字段名表 注意

2、:注意:文件名文件名:排序后新生成的表文件名排序后新生成的表文件名 字段名字段名:關(guān)鍵字段,即排序字段關(guān)鍵字段,即排序字段 (不能為備注型和通用型)不能為備注型和通用型) /A 升序(默認(rèn)情況)升序(默認(rèn)情況) /D 降序降序 /C 不分大小寫(xiě)不分大小寫(xiě)例:例: USE 學(xué)生學(xué)生SORT TO XS ON 入學(xué)總分入學(xué)總分 FIELDS 姓名姓名, 入學(xué)總分入學(xué)總分 /D(二)索引(二)索引1、索引的類型、索引的類型單索引文件單索引文件(.idx) 書(shū)書(shū)P88復(fù)合索引文件復(fù)合索引文件(.cdx)索引類型索引類型索引個(gè)數(shù)索引個(gè)數(shù)關(guān)鍵字值關(guān)鍵字值主索引僅且只有一個(gè)不允許重復(fù)侯選索引可以多個(gè)普通索引

3、允許重復(fù),輸出時(shí)重復(fù)值按自然順序排列唯一索引允許重復(fù),但是輸出時(shí)無(wú)重復(fù)值只能用于數(shù)據(jù)庫(kù)表2、索引的建立、索引的建立1 1)菜單方式:)菜單方式: 打開(kāi)要建立索引的表,在“顯示”菜單下選擇“表設(shè)計(jì)器”,進(jìn)入“表設(shè)計(jì)器”對(duì)話框。 選擇“索引”選項(xiàng)卡。 在排序選項(xiàng)中,選擇索引方向,升序()或降序()。 在索引名選項(xiàng)中,輸入索引字段名。 在類型選項(xiàng)中,選擇索引類型。 在表達(dá)式選項(xiàng)中,輸入索引字段名或索引表達(dá)式。 在篩選選項(xiàng)中,限制記錄的輸出范圍。 單索引:?jiǎn)嗡饕篒NDEX ON 索引關(guān)鍵字索引關(guān)鍵字 TO 單索引文件名單索引文件名 FOR UNIQUE additive 復(fù)合索引復(fù)合索引INDEX

4、ON 索引關(guān)鍵字索引關(guān)鍵字 TAG FOR ASCE | DESC UNIQUE | CANDIDATE2)命令方式:)命令方式:?jiǎn)嗡饕簡(jiǎn)嗡饕篒NDEX ON 索引關(guān)鍵字索引關(guān)鍵字 TO 單索引文件名單索引文件名 FOR UNIQUE ADDITIVE例1: use 學(xué)生 index on 入??偡?to xs list例2: use 學(xué)生 index on 入校總分 to xs list索引關(guān)鍵字索引關(guān)鍵字 1 1)不能為備注型和通用型)不能為備注型和通用型 2 2)可以是獨(dú)立的字段名,也可以是)可以是獨(dú)立的字段名,也可以是同類型同類型的多個(gè)的多個(gè) 字段用字段用“+”+”或或“-”-”組

5、成的表達(dá)式;組成的表達(dá)式;默認(rèn)為創(chuàng)建普通索引,如果加上默認(rèn)為創(chuàng)建普通索引,如果加上UNIQUEUNIQUE則創(chuàng)建唯一索引則創(chuàng)建唯一索引例3: use 學(xué)生 index on 入??偡?val(姓名)to xs list例5: use 學(xué)生 index on 入??偡?to xs unique list例4: use 學(xué)生 index on 入校總分to xs for 性別“女” list例6: USE 學(xué)生 INDEX ON 入??偡?TAG rxzf INDEX ON 學(xué)號(hào) TAG xsxh LIST復(fù)合索引復(fù)合索引INDEX ON 索引關(guān)鍵字索引關(guān)鍵字 TAG OF FOR ASCE |

6、DESC UNIQUE | CANDIDATEADDITIVETAGTAG后的索引標(biāo)識(shí)名就是所建索引項(xiàng)的一個(gè)別名,由它來(lái)標(biāo)明后的索引標(biāo)識(shí)名就是所建索引項(xiàng)的一個(gè)別名,由它來(lái)標(biāo)明某個(gè)復(fù)合索引文件中的某種邏輯排序方式;某個(gè)復(fù)合索引文件中的某種邏輯排序方式;OFOF子句用于指定子句用于指定非結(jié)構(gòu)復(fù)合索引非結(jié)構(gòu)復(fù)合索引文件的名字文件的名字, ,若缺省則表示若缺省則表示建立建立結(jié)構(gòu)復(fù)合索引。結(jié)構(gòu)復(fù)合索引。w ASCE ASCE:表示升序:表示升序 DESCDESC:表示降序,缺省為升序:表示降序,缺省為升序w UNIQUEUNIQUE:唯一索引:唯一索引 CANDIDATECANDIDATE:侯選索引;:

7、侯選索引;wADDITIVE: ADDITIVE: 先前已打開(kāi)的所有索引文件仍保持打開(kāi)狀態(tài)。先前已打開(kāi)的所有索引文件仍保持打開(kāi)狀態(tài)。例8: USE 學(xué)生 INDEX ON 學(xué)號(hào) TAG xh DESC CANDIDATE LIST例7: USE 學(xué)生 INDEX ON 入??偡?TAG rxzf OF 總分排序3、索引的使用和關(guān)閉、索引的使用和關(guān)閉1)單索引文件的打開(kāi))單索引文件的打開(kāi)打開(kāi)表的同時(shí)打開(kāi)索引文件 USE INDEX 先打開(kāi)表再打開(kāi)索引文件 SET INDEX TO ADDITIVE例9: USE 學(xué)生 INDEX ON 學(xué)號(hào) TO xh INDEX ON 入校總分 TO zf U

8、SE USE 學(xué)生 INDEX xh LIST SET INDEX TO zf additve 2)復(fù)合索引文件的打開(kāi)打開(kāi)表的同時(shí)打開(kāi)索引文件 USE index ORDER TAG ASCE | DESC先打開(kāi)表再打開(kāi)索引文件(建立主控索引) SET ORDER TO |TAG ASCE | DESC例10: USE 學(xué)生 INDEX ON 學(xué)號(hào) TAG xsxh INDEX ON 入校總分 TAG rxzf USE USE 學(xué)生 ORDER TAG xsxh DESC LIST SET ORDER TO TAG rxzf 例11: USE 學(xué)生 INDEX ON 學(xué)號(hào) TAG xsxh I

9、NDEX ON 入??偡?TAG rxzf USE USE 學(xué)生 ORDER 1 DESC LIST SET ORDER TO 2第一個(gè)建立的索引項(xiàng)在索引文件中的編號(hào)為1第二個(gè)為2,依次類推注意:如果使用 set order to 0 或者 set order to 則表示取消主控索引,表按物理順序輸出3)索引文件的更新 REINDEXUSE 學(xué)生INDEX ON 入??偡?TAG rxzfUSEUSE 學(xué)生APPEND FROM 學(xué)生2SET ORDER TO rxzfLISTUSE 學(xué)生INDEX ON 入??偡?TO zfUSEUSE 學(xué)生APPEND FROM 學(xué)生2SET INDEX

10、 TO zfLISTREINDEX結(jié)構(gòu)復(fù)合索引可自動(dòng)更新,單索引和非結(jié)構(gòu)復(fù)合索引必須用reindex更新4)4)、關(guān)閉索引文件、關(guān)閉索引文件關(guān)閉當(dāng)前索引文件:關(guān)閉當(dāng)前索引文件:set index toset index to 關(guān)閉所有索引文件:關(guān)閉所有索引文件:close indexes|close allclose indexes|close all關(guān)閉表文件的同時(shí),自動(dòng)關(guān)閉索引文件:關(guān)閉表文件的同時(shí),自動(dòng)關(guān)閉索引文件:useuse索引索引類型類型文件文件名名文件特征文件特征建立建立打開(kāi)打開(kāi)更新更新刪除刪除單索單索引引(.idx)一個(gè)索引項(xiàng)為一個(gè)索引項(xiàng)為一個(gè)索引文件一個(gè)索引文件Index o

11、n toUseindexset index toreindexUseClose indexSet index to復(fù)復(fù)合合索索引引結(jié)結(jié)構(gòu)構(gòu)(.cdx)在一個(gè)在一個(gè)索引文索引文件中包件中包含有多含有多個(gè)索引個(gè)索引項(xiàng),每項(xiàng),每個(gè)索引個(gè)索引項(xiàng)由索項(xiàng)由索引標(biāo)識(shí)引標(biāo)識(shí)符或數(shù)符或數(shù)值來(lái)區(qū)值來(lái)區(qū)分分與表與表文件文件同名同名Index on tagUseorderset order to自動(dòng)更自動(dòng)更新新非非結(jié)結(jié)構(gòu)構(gòu)用戶用戶自定自定義義Index on tagofUse orderofset order toreindex總結(jié):二、查詢二、查詢順序查詢 索引查詢 SQL查詢(一)順序查詢命令格式:LOCATE

12、范圍 FOR WHILE CONTINUE例: USE 學(xué)生 LOCATE FOR 性別=“女” DISPLAY CONTINUE DISPLAY找到滿足要求的第一條記錄并定位記錄指針顯示滿足要求的第一條記錄繼續(xù)查找下一條記錄(二)索引查詢命令格式:SEEK 注意注意:首先要打開(kāi)需要查找的索引文件;只能找到第一首先要打開(kāi)需要查找的索引文件;只能找到第一個(gè)符合條件的記錄,找到后指針定位于該記錄,否則個(gè)符合條件的記錄,找到后指針定位于該記錄,否則定位于文件尾。用定位于文件尾。用“skip +1”指向下一個(gè)記錄。指向下一個(gè)記錄。 說(shuō)明:說(shuō)明: 可以為可以為C、N、D、L型。型。 當(dāng)為當(dāng)為C型型常量常

13、量時(shí),必須使用定界符。時(shí),必須使用定界符。 使用內(nèi)存變量使用內(nèi)存變量時(shí),直接用,不用時(shí),直接用,不用&替換函數(shù)。對(duì)字符表達(dá)式,系統(tǒng)替換函數(shù)。對(duì)字符表達(dá)式,系統(tǒng)允許模糊查詢。允許模糊查詢。例: USE 學(xué)生 INDEX ON 性別 TAG xb SEEK “女” DISP SKIP+1 DISP 格式:FIND | 功能:在索引文件中查找與相匹配的第一個(gè)記錄,找到后指針定位于該記錄,否則定位于文件尾。 注意:1、使用此命令,必須先打開(kāi)表文件及其相關(guān)的索引文件。 2、查找的只能是C型或N型,且與索引對(duì)應(yīng)。 3、對(duì)于C型常量時(shí),可用定界符,也可不用。 4、可查找常量,也可查找變量,當(dāng)使用C型

14、變量時(shí),必須使 用&函數(shù);當(dāng)使用N型變量時(shí),應(yīng)先將其轉(zhuǎn)換為字符型,然 后使用&函數(shù)。 三、統(tǒng)計(jì)三、統(tǒng)計(jì)1 1、計(jì)數(shù)、計(jì)數(shù)命令格式:COUNT 范圍 FOR |WHILE 條件 TO 內(nèi)存變量例:COUNT FOR 性別=“女” TO AA2 2、求和、求和/ /平均值平均值 命令格式:SUM/AVERAGE 范圍 FOR | WHILE 條件 N型字段 TO 內(nèi)存變量表例:AVER YEAR(DATE()-YEAR(出生年月) TO X3 3、計(jì)算命令、計(jì)算命令命令格式: CALCULATE 范圍 FOR |WHILE 條件 TO 內(nèi)存變量例:CALC MAX(入??偡?,MI

15、N(入??偡?,AVG(入??偡郑? 4、分類匯總(注:關(guān)鍵字段須先索引)、分類匯總(注:關(guān)鍵字段須先索引)命令格式:TOTAL ON TO 匯總文件名 范圍 FOR|WHILE 條件 FIELDS N型字段名表 例:TOTAL ON 性別 TO XBTOL USE XBTOL四、多工作區(qū)的操作四、多工作區(qū)的操作(一)基本概念(一)基本概念 1、工作區(qū)工作區(qū):數(shù)據(jù)庫(kù)系統(tǒng)專門(mén)為每個(gè)打開(kāi)的表文件開(kāi)辟的一個(gè):數(shù)據(jù)庫(kù)系統(tǒng)專門(mén)為每個(gè)打開(kāi)的表文件開(kāi)辟的一個(gè)內(nèi)存區(qū),這個(gè)內(nèi)存區(qū)就成為工作區(qū)。內(nèi)存區(qū),這個(gè)內(nèi)存區(qū)就成為工作區(qū)。 2、主工作區(qū)主工作區(qū):即當(dāng)前工作區(qū),只有該區(qū)的表文件可被操作。:即當(dāng)前工作區(qū),只有該區(qū)

16、的表文件可被操作。(二)主工作區(qū)的選擇:(二)主工作區(qū)的選擇:格式:格式:SELECT 工作區(qū)代號(hào)工作區(qū)代號(hào)|別名別名1、工作區(qū)代號(hào):、工作區(qū)代號(hào): 1 2 3 4 5 6 7 8 9 10 11 32767 0:當(dāng)前沒(méi)使用的編號(hào)最小的工作區(qū)為主工作區(qū):當(dāng)前沒(méi)使用的編號(hào)最小的工作區(qū)為主工作區(qū) 例1:USE 學(xué)生 SELECT 2 USE 選課 SELECT 0 USE 課程系統(tǒng)每次啟動(dòng)默認(rèn)1號(hào)工作區(qū)為當(dāng)前工作區(qū)選擇2號(hào)工作區(qū)為當(dāng)前工作區(qū)并打開(kāi)選課表選擇3號(hào)工作區(qū)為當(dāng)前工作區(qū)并打開(kāi)課程表打開(kāi)“窗口數(shù)據(jù)工作期”可查看在工作區(qū)打開(kāi)的所有表函數(shù) select() 可返回當(dāng)前工作區(qū)的區(qū)號(hào)2、別名1)工作

17、區(qū)的別名:2 3 4 5 6 7 8 9 10 11 32767A B C D E F G H I J W11W32767作用:在當(dāng)前工作區(qū)要使用別工作區(qū)的表文件時(shí) 格式:工作區(qū)別名-字段名 或 工作區(qū)別名.字段名例2: USE 選課 SELECT 2 USE 學(xué)生 DISP 學(xué)號(hào), 姓名, A-課程2)表的別名:在打開(kāi)表文件時(shí),可以為表文件取另外一個(gè)名字,即別名。在打開(kāi)表文件時(shí),可以為表文件取另外一個(gè)名字,即別名。 格式格式: Use alias 如不使用如不使用alias指定別名,默認(rèn)別名和表文件名相同。指定別名,默認(rèn)別名和表文件名相同。作用作用:可直接使用別名來(lái)調(diào)用表文件成為當(dāng)前表可直接

18、使用別名來(lái)調(diào)用表文件成為當(dāng)前表 例3:USE 學(xué)生 ALIAS xs SELECT 2 USE 選課 LIST SELECT xs LIST FOR 性別=“女” (三)多表間的關(guān)聯(lián)1、關(guān)聯(lián):是指在兩個(gè)表文件的記錄指針之間建立一種臨時(shí)是指在兩個(gè)表文件的記錄指針之間建立一種臨時(shí)關(guān)系,當(dāng)一個(gè)表的記錄指針移動(dòng)時(shí),與之關(guān)聯(lián)的另一個(gè)表的關(guān)系,當(dāng)一個(gè)表的記錄指針移動(dòng)時(shí),與之關(guān)聯(lián)的另一個(gè)表的記錄指針也作相應(yīng)的移動(dòng)。建立關(guān)聯(lián)的兩個(gè)表,一個(gè)是建立記錄指針也作相應(yīng)的移動(dòng)。建立關(guān)聯(lián)的兩個(gè)表,一個(gè)是建立關(guān)聯(lián)的表,稱為關(guān)聯(lián)的表,稱為父表父表;另一被關(guān)聯(lián)的表,則稱為;另一被關(guān)聯(lián)的表,則稱為子表子表學(xué)號(hào)課程號(hào)成績(jī)S0201

19、101C11090S0201102C15078S0201103C17092學(xué)號(hào)姓名入??偡諷0201101張三590S0201102李四568S0201103王五570父表子表2、表間的關(guān)系類型1)一對(duì)一關(guān)系:2)一對(duì)多關(guān)系或多對(duì)一關(guān)系2)多對(duì)多關(guān)系3、臨時(shí)關(guān)聯(lián)的建立、臨時(shí)關(guān)聯(lián)的建立(1)用命令建立)用命令建立格式:格式:SET RELATION TO INTO , INTO ADDITIVE 例1:USE 學(xué)生 SELECT 2 USE 選課 INDEX ON 學(xué)號(hào) TAG xh SELECT 1 SET RELATION TO 學(xué)號(hào) INTO 選課 LIST 學(xué)號(hào),姓名,B- 成績(jī)子表必須

20、按關(guān)鍵字子表必須按關(guān)鍵字建立索引建立索引 例2:USE 學(xué)生 SELECT 2 USE 學(xué)生工作情況 SELECT 1 SET RELATION TO RECNO() INTO 學(xué)生工作情況 LIST 學(xué)號(hào),姓名,B- 工作單位Set rela to SELECT 1SELECT22)建立一對(duì)多關(guān)系)建立一對(duì)多關(guān)系SET SKIP TO | 例1:USE 學(xué)生 SELECT 2 USE 選課 INDEX ON 學(xué)號(hào) TAG xh SELECT 1 SET RELATION TO 學(xué)號(hào) INTO 選課 SET SKIP TO B LIST 學(xué)號(hào),姓名,B- 成績(jī)3) 刪除關(guān)聯(lián):SET RELAT

21、ION TO 4) 多表之間的關(guān)聯(lián)父表子表1子表2題目:在屏幕上顯示學(xué)生王小平的學(xué)號(hào),姓名,課程名和成績(jī) USE 學(xué)生 INDEX ON 學(xué)號(hào) TAG xh SELECT 2 USE 課程 INDEX ON 課程號(hào) TAG kch SELECT 3 USE 選課 SET RELA TO 學(xué)號(hào) INTO A,課程號(hào) INTO B ADDI LIST 學(xué)號(hào),A.姓名,B.課程名,成績(jī) FOR 姓名=“王小平”4、表之間的連接將當(dāng)前表文件與指定別名的表文件物理連接生成一個(gè)新表文件。將當(dāng)前表文件與指定別名的表文件物理連接生成一個(gè)新表文件。JOIN WITH TO FOR FIELDS 說(shuō)明:說(shuō)明:1)FOR 為必選,是連接兩表的依據(jù),應(yīng)使用兩表中共有的同名、同類型、同寬度字段。2)選用FIELDS 時(shí),新生成的數(shù)據(jù)表文件的字段即為中所指定的字段;不選用時(shí),則新生成的數(shù)據(jù)表文件中包含兩個(gè)數(shù)據(jù)表中所有的字段(主表中的字段在前,別名表中的字段在后),當(dāng)字段重名時(shí),保留主表中的字段及其數(shù)據(jù)。3)當(dāng)表中含M型字段時(shí),連接后M型字段內(nèi)容丟失。4)如兩表的記錄數(shù)分別為M、N,則生成的新表中,記錄數(shù)最多可為M*N條。 注意:執(zhí)行JOIN命令時(shí),主表文件從1號(hào)記錄開(kāi)始,在別名表中查找與主表關(guān)鍵字值相同的記錄,找到后將該記錄與主表1號(hào)記錄連接,生成新表中的一條記

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論