2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩88頁(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,3.3.4 表的打開與關(guān)閉,一張表,在進(jìn)行任何操作前,都必須先打開。被打開的表稱為當(dāng)前表。(1)顯式打開:利用菜單等界面操作或用USE命令直接打開表;(2)隱式打開:在執(zhí)行某些操作(界面或SQL命令)時(shí),系統(tǒng)會(huì)自動(dòng)打開相應(yīng)的表。,2,一、表的打開當(dāng)一張表的表結(jié)構(gòu)剛創(chuàng)建完時(shí),該表處于打開狀態(tài)。(1)通過(guò)界面操作打開表 使用菜單命令“項(xiàng)目管理器”窗口“數(shù)據(jù)工作期”窗口,3,(2)使用USE命令打開表例:USE

2、xsUSE jsALIAS jiaoshi IN 4USE zgIN 0 NOUPDATEUSExsAGAININ5USExsAGAININ15,4,二、表的關(guān)閉當(dāng)退出VFP系統(tǒng)時(shí),所有的表都將被關(guān)閉。(1)通過(guò)界面操作關(guān)閉表 “數(shù)據(jù)工作期”窗口(2)使用命令關(guān)閉表USE &&關(guān)閉當(dāng)前的表CLOSE TABLES &&關(guān)閉所

3、有的表CLOSE ALL &&關(guān)閉所有的數(shù)據(jù)庫(kù)、表和索引,且將當(dāng)前工作區(qū)設(shè)為1。,5,三、工作區(qū)打開一張表時(shí),必須為該表指定一個(gè)工作區(qū)。在VFP系統(tǒng)啟動(dòng)后,系統(tǒng)默認(rèn)當(dāng)前工作區(qū)號(hào)為1。1、工作區(qū)的基本概念(1)工作區(qū)是打開表的一個(gè)區(qū)域(2)工作區(qū)的打開用命令: SELECT 工作區(qū)號(hào)其中:工作區(qū)號(hào)用數(shù)字表示,范圍從1到32767(前10個(gè)工作區(qū)也可以用字母A~J表示)。,例

4、:SELECT 0 &&表示選擇了一個(gè)未被使用的編號(hào)最小的工作區(qū)。,6,(3)每個(gè)工作區(qū)中只能打開一個(gè) 表文件例如:SELECT 1 && 打開1號(hào)工作區(qū)USE XS && 在1號(hào)工作區(qū)打 開XS表LIST &&在主窗口顯示記錄USE CJ &

5、;& 再打開CJ表, XS表已經(jīng)關(guān)閉 LIST && 在主窗口顯示記錄,7,(4)每個(gè)表文件可在多個(gè)工作區(qū) 中被打開,一張表可以在多個(gè)工作區(qū)中打開,但在USE命令后要加上AGAIN子句,例如:SELECT 11 && 打開11工作區(qū)USE XS && 打開

6、表XSSELECT 22 && 打開22工作區(qū)USE XS AGAIN && 再打開表XS,8,(5) 工作區(qū)中的表可賦予一個(gè)別名在工作區(qū)中打開表的時(shí)候,可為表賦予一個(gè)別名,命令格式: USE 表文件名 ALIAS 別名,例如: USE STUDENT ALIAS XS如果省略別名,則系統(tǒng)默認(rèn)表文件名為別名,例如命令: USE

7、 CJ 命令中省略了ALIAS子句,則文件名CJ就是別名。,9,(6)數(shù)據(jù)操作只對(duì)當(dāng)前工作區(qū)的當(dāng)前表文件有效,正在使用的工作區(qū)稱為當(dāng)前工作區(qū),當(dāng)前工作區(qū)中打開的表文件稱為當(dāng)前文件。 無(wú)論界面方式,還是命令方式的各種數(shù)據(jù)操作,只對(duì)當(dāng)前工作區(qū)的當(dāng)前文件有效。,10,設(shè)置當(dāng)前工作區(qū)的方法有:,◆在“數(shù)據(jù)工作期”窗口中設(shè)置步驟為: 在“窗口”菜單中選“數(shù)據(jù)工作期”,打開“數(shù)據(jù)工作期”窗口,在“別名”列

8、表中選擇別名,則該別名所在工作區(qū)成為當(dāng)前工作區(qū)。,11,命令格式: SELECT 工作區(qū)號(hào)/別名例如,已經(jīng)在第2工作區(qū)打開表XS.DBF,則命令: SELECT 2 和 SELECT XS 是等價(jià)的,都可以將當(dāng)前工作區(qū)設(shè)置為第二工作區(qū)。,◆命令方式:,12,也可在命令中強(qiáng)行指定工作區(qū): IN 工作區(qū)號(hào)/別名

9、如: USE cj IN 5 把cj表在第5工作區(qū)中打開,而不改變當(dāng)前工作區(qū)。 如: GO TOP IN cj 把文件cj的指針移到文件頭,而不管它是否在當(dāng)前工作區(qū)。,13,2、有關(guān)工作區(qū)的函數(shù),SELECT(‘別名’) 返回“別名”表所在的工作區(qū)號(hào),別名必須放在引號(hào)中。例:? SELECT ([0]) && 返回當(dāng)前工作區(qū)號(hào)。?

10、 SELECT(1) &&返回未用的最大工作區(qū)號(hào),即32767。,14,ALIAS(工作區(qū)號(hào)) 返回指定工作區(qū)的表的別名ALIAS() 返回當(dāng)前工作區(qū)的表的別名例如: SELECT 2 USE XS ? ALIAS(2) && XS ? SELECT(“XS") && 2,1

11、5,USED(“表文件別名”)返回“別名”表是否打開。已經(jīng)打開則返回.T.,否則.F.例:use js alias jiaoshi? used(“jiaoshi”) ? used("js"),.T.,.F.,16,練習(xí):,執(zhí)行下列命令后:CLOSE TABLES ALLSELECT 0USE XS ALIAS STUUSE JS IN 0函數(shù)USED(”JS”

12、)的值是?函數(shù)USED(”XS”)的值是?函數(shù)SELECT()的值是?函數(shù)ALIAS()的值是?,.T.,.F.,1,stu,17,四、表的獨(dú)占與共享使用,在多用戶系統(tǒng)中,多個(gè)用戶可以使用同一張表,即表的共享使用。有些情況下,某個(gè)用戶希望單獨(dú)使用一張表,即表的獨(dú)占使用。,18,1、設(shè)置打開表的默認(rèn)狀態(tài)(1)界面方式:“工具”菜單 —>“選項(xiàng)”—>“數(shù)據(jù)”(2)命令方式: SET EXCLU

13、SIVE OFF 設(shè)置“共享”為默認(rèn)打開方式 SET EXCLUSIVE ON 設(shè)置“獨(dú)占”為默認(rèn)打開方式,注:改變SET EXCLUSIVE的設(shè)置并不改變已打開的表的狀態(tài)。,19,2、在打開表時(shí)指定使用方式(1)界面方式: 在“打開”或“使用”窗口中有“獨(dú)占”復(fù)選框,打?表示獨(dú)占。(2)命令方式: USE XS SHARED &a

14、mp;& 以共享方式打開表USE XS EXCLUSIVE && 以獨(dú)占方式打開表,注:一張表同時(shí)被多次打開時(shí),只以第一次的打開方式為準(zhǔn)。,20,練習(xí):,執(zhí)行下列命令后:SET EXCLUSIVE OFFUSE JSUSE XS EXCLUSIVE IN 0JS表的打開方式是?XS表的打開方式是?,JS表是共享方式;XS表是獨(dú)占方式,21,3.3.5 記錄的

15、處理,注意:表是用來(lái)存儲(chǔ)數(shù)據(jù)的,表結(jié)構(gòu)是表的框架,創(chuàng)建表結(jié)構(gòu)之前要認(rèn)真考慮,一旦創(chuàng)建完成,就很少修改。即結(jié)構(gòu)是靜態(tài)的。 而數(shù)據(jù)記錄是要經(jīng)常修改的,即記錄是動(dòng)態(tài)的。,22,一、記錄的輸入1、立即輸入記錄 在創(chuàng)建表結(jié)構(gòu)后,在出現(xiàn)“現(xiàn)在輸入數(shù)據(jù)記錄嗎?”對(duì)話框時(shí),單擊“是”,則出現(xiàn)“編輯”窗口。 注意:輸入記錄時(shí),每個(gè)字段的數(shù)據(jù),必須與該字段的類型和寬度一致。,23,2、在瀏覽窗口中追加記錄 命令

16、:USE 表文件名 BROWSE / EDIT &&打開表,并進(jìn)入瀏覽/編輯窗口 在“表”菜單中,選擇“追加新記錄”命令項(xiàng); 在“顯示”菜單中,選擇“追加方式”。瀏覽窗口與編輯窗口相互之間的切換,利用“顯示”菜單。,24,3、用INSERT-SQL命令追加記錄命令格式:INSERT INTO 表名(字段1,字段2……)VALUES(表達(dá)式1,表達(dá)式2……)

17、 該命令適合用于程序中。例: INSERT INTO xs(xh,xm,xb,ximing) VALUES ("950106","高山","男",""),25,4、用APPEND與APPEND FROM命令追加記錄命令格式:APPEND BLANK [IN Workarea/cTableAlias] APPEND

18、FROM Filename [Delimited/XLS] 將其他文件(表文件、文本文件、Excel文件等)中的數(shù)據(jù)導(dǎo)入到當(dāng)前工作區(qū)中的表。,26,5、備注型與通用型字段數(shù)據(jù)的輸入備注型字段顯示“memo”表示無(wú)內(nèi)容,顯示“Memo”表示有內(nèi)容。輸入方法:按+或雙擊該字段。 通用型字段顯示“gen”表示無(wú)內(nèi)容,顯示“Gen”表示有內(nèi)容。輸入方法:按+或雙擊該字段后,利用“編輯”菜單?“插入對(duì)象”插入其內(nèi)容。

19、,27,二、表的瀏覽,瀏覽窗口的使用界面方式BROWSE命令(常用格式見P88)步驟:(1)打開表 USE 表文件名(2)在命令窗口鍵入 BROWSE(3)在瀏覽窗口瀏覽或修改 表記錄,28,三、記錄的篩選,篩選記錄指從表中選出滿足條件的記錄來(lái)進(jìn)行瀏覽或其他操作,不滿足條件的記錄則被“隱藏”起來(lái)。,29,操作步驟:(1)“表”菜單—>“屬性” —>“工作區(qū)屬性”對(duì)話框(

20、2)在“數(shù)據(jù)過(guò)濾器”文本框中輸入篩選條件表達(dá)式(3)單擊“確定”此時(shí)瀏覽表, 將只顯示滿足條件的記錄。,1、通過(guò)界面篩選記錄,30,2、使用命令命令格式: SET FILTER TO 條件表達(dá)式去掉篩選條件:SET FILTER TO,注意:本命令設(shè)置的過(guò)濾器對(duì)SELECT-SQL、DELETE-SQL和UPDATE-SQL命令不起作用。,31,四、篩選字段(限制對(duì)字段的訪問(wèn)),篩選字段是選取表的部分列。

21、1、界面操作步驟:(1)“表”菜單—>“屬性” —>“工作區(qū)屬性”對(duì)話框(2)單擊“字段篩選”按鈕,打開“字段選擇器”對(duì)話框,選擇所需字段。,32,2、使用命令命令格式: SET FIELD TO 字段列表,例:CLOSE TABLES ALL USE XS SET FIELD TO XH,XM BROWS FOR XB=‘女’ NOMODIFY TIT

22、LE ‘女學(xué)生’,33,記錄指針:是一個(gè)指示器,指向表中的記錄。,,,,記錄開始標(biāo)志,記錄結(jié)束標(biāo)志,,,,五、記錄的定位,1、記錄標(biāo)志,34,幾個(gè)概念,三個(gè)控制標(biāo)志:記錄的開始標(biāo)志、記錄指針標(biāo)志、記錄的結(jié)束標(biāo)志記錄號(hào)當(dāng)前記錄,35,函數(shù) RECNO( ) 返回當(dāng)前記錄號(hào) ( 數(shù)值型)函數(shù)BOF( ) 測(cè)試記錄指針是否在文件頭 (邏輯型)函數(shù)EOF( )

23、測(cè)試記錄指針是否在文件尾 (邏輯型),幾個(gè)函數(shù),36,,記錄號(hào) 學(xué)號(hào) 姓名 性別 專業(yè)代號(hào) 系名 1 990101 李林 男 102006 信息管理系 2 990102 高山 男 102006 信息管理系 3 990106 陸

24、海濤 男 102006 信息管理系 4 …… 5 …… 6 ……7 ……,文件頭 BOF( ),,記錄指針RECNO( ) 5,文件尾 EOF( ),,,37,BOF()的值為: .T. EOF()的值為: .T. RECNO()的值為: 1,當(dāng)打開一張空表,即表中只有結(jié)構(gòu),沒(méi)有記

25、錄,則:,記錄指針的初始值總是1,不可能為0或負(fù)數(shù),最大值是表中記錄總數(shù)+1。,38,BOF()的值為: .F.EOF()的值為:.F.RECNO()的值為:1,當(dāng)剛剛打開一張表,如果表中有結(jié)構(gòu),也有記錄,則:,39,命令:USE 表文件名 ? BOF( ) ? EOF( ) ? RECNO( )其中:EOF()和RECNO()用得較多。,40,2、記

26、錄的范圍,記錄的范圍共有4個(gè)選項(xiàng):ALL 全部記錄NEXT n 從當(dāng)前記錄開始的n條記錄RECORD n 指定的第n條記錄REST 從當(dāng)前記錄開始到最后的所 有記錄,41,3、記錄定位,表文件的很多數(shù)據(jù)操作,如刪除、插入等需要確定記錄的位置,即確定“當(dāng)前記錄”,(1)絕對(duì)定位命令 :,GO

27、[RECORD] n 把指針定位到第n條記錄上 GO TOP 把指針定位到第一條記錄上 GO BOTTOM 把指針定位到最后一條記錄上,42,SKIP [ ±數(shù)學(xué)表達(dá)式]功能:把記錄指針向文件尾(+)或文件頭(-)移動(dòng)指定的記錄條數(shù)。 若值為正數(shù),+號(hào)可省略。 若值為+1,則+1省略。,(

28、2)相對(duì)定位命令:,例如命令: SKIP 2*3-1 &&把指針向文件尾移動(dòng)5條記錄 SKIP -2 && 把指針向文件頭移動(dòng)2條記錄,43,LOCATE FOR 功能:把記錄指針指向滿足條件的記錄。 若沒(méi)有滿足條件的記錄,則指向文件尾。,(3)條件定位命令:,例如命令: USE xs LOCATE FOR xm=“王剛” CONTINUE

29、,44,打開表文件后,在“表”菜單中,選“轉(zhuǎn)到記錄”,再選“定位”,打開對(duì)話框:,(4)條件定位界面操作,在上圖的FOR文本框中,輸入: 姓名=“張三”,則給出了記錄定位的條件。,45,FOR文本框中,應(yīng)當(dāng)給出一個(gè)條件表達(dá)式,其值為邏輯值,即“真”或“假”。,例如:系名=“計(jì)算機(jī)系” 性別=“男” 成績(jī) >= 70 .AND. 成績(jī) <= 90都屬于條件表達(dá)式。,注意: 條

30、件表達(dá)式中的數(shù)據(jù)類型應(yīng)當(dāng)一致! 定位到的記錄稱為“當(dāng)前記錄”,46,六、記錄的修改,表文件的結(jié)構(gòu)是相對(duì)固定的,記錄是經(jīng)常要修改的。1、在瀏覽窗口中修改記錄 只能修改少量數(shù)據(jù),47,2、批量修改記錄(1)界面方式: 操作步驟:打開表-->選擇“表”菜單的“替換字段” -->打開“替換字段對(duì)話框”,48,(2)命令方式: SQL命令格式:UPDATE 表名 SET 字段1=表達(dá)式1[,字段2

31、=表達(dá)式2…] WHERE 條件表達(dá)式例如:把成績(jī)表中所有課程代號(hào)為“1001”的成績(jī)加 5 分的命令為:UPDATE CJ SET CJ=CJ+5 WHERE KCDH=‘1001’,用UPDATE-SQL命令更新表時(shí),該表不必事先打開。,省略WHERE時(shí),表示所有記錄,UPDATE CJ SET CJ=CJ+5,,練習(xí):在JS表中要按如下要求更改基本工資(JBGZ)字段的值:工齡在10年以下(不含10年)

32、基本工資加20工齡在10~19年 基本工資加35工齡在20年以上(含20年) 基本工資加50可用一個(gè)UPDATE命令完成上述更改:UPDATE js___jbgz=IIF(js.gl<10,_ __, IIF(__ __ ,jbgz+50,jbgz+35)),set,jbgz+20,js.gl>=20,50,VFP命令格式:REPLACE [范圍] 字段1 W

33、ITH 表達(dá)式1 [ADDITIVE][,字段2 WITH 表達(dá)式2…] [FOR 條件表達(dá)式]例如:把成績(jī)表中所有課程代號(hào)為“1001”的成績(jī)加 5 分的命令為:USE cjREPLACE ALL cj WITH cj+5 FOR ; kcdh=‘1001’,用REPLACE命令更新表時(shí),該表必須事先打開。,FOR子句和范圍均省略時(shí),表示僅對(duì)當(dāng)前記錄進(jìn)行替換。,REPLACE cj WITH

34、 cj+5,51,七、記錄的刪除與恢復(fù),刪除表中的記錄要分兩個(gè)步驟來(lái)實(shí)現(xiàn):(1)標(biāo)記要?jiǎng)h除的記錄(邏輯刪除)(2)徹底刪除帶刪除標(biāo)記的記錄。(物理刪除),52,1、邏輯刪除(1)界面方式★在瀏覽窗口中單擊要?jiǎng)h除的記錄的左邊的小方框,可刪除指定記錄?!镌凇氨怼辈藛沃羞x擇“刪除記錄”,在“刪除”對(duì)話框中可按指定條件刪除一批記錄。,53,(2)命令方式SQL命令格式:DELETE FROM 表名[WHERE 條件表達(dá)式]

35、例如:要?jiǎng)h除成績(jī)表中成績(jī)?cè)?0分以下的記錄的命令是: DELETE FROM CJ WHERE CJ<60,VFP命令格式:DELETE [范圍][FOR 條件表達(dá)式][IN 工作區(qū)]例如:要?jiǎng)h除成績(jī)表中成績(jī)?cè)?0分以下的記錄的命令是: DELETE FOR CJ<60,54,2、物理刪除記錄,設(shè)置了刪除標(biāo)記的記錄,才可以被物理刪除(1)界面方式: 在“表”菜單中選“徹底刪除”。,(2)命令方式:

36、命令格式: PACK &&刪除加了刪除標(biāo)記的記錄 要?jiǎng)h除一張表中的所有記錄,可用命令: ZAP 用ZAP命令刪除記錄后,表中只剩下表的結(jié)構(gòu),成為空表。,55,3、恢復(fù)記錄,邏輯刪除的記錄,也可以恢復(fù),即去掉刪除標(biāo)記,使之恢復(fù)正常。,(1)界面方式:在“瀏覽窗口”單擊帶刪除標(biāo)記記錄的小方塊,使小方塊由黑變白。,(2)命令方式:恢復(fù)

37、記錄的命令格式:RECALL [范圍] [FOR 條件表達(dá)式],56,4、對(duì)邏輯刪除記錄的訪問(wèn),(1)測(cè)試記錄的刪除標(biāo)記測(cè)試函數(shù): DELETED()如果該函數(shù)的返回值為真,則當(dāng)前記錄帶有刪除標(biāo)記。,例如: USE XS BROWS FOR DELETED() && 瀏覽帶有刪除標(biāo)記的記錄,57,(2)控制對(duì)邏輯刪除的記錄的訪問(wèn)命令格式:SET DELETED

38、 ON/OFF其中:ON —不能訪問(wèn)邏輯刪除的記錄OFF—允許訪問(wèn)邏輯刪除的記錄,58,練習(xí):,已知自由表STUDENT中含有20條記錄,執(zhí)行下列程序段后,N的值為? USE STUDENT DELETE NEXT 4 SET DELETE ON N=RECCOUNT(),20,59,函數(shù)補(bǔ)充:,FCOUNT([工作區(qū)號(hào)或別名])返回指定工作區(qū)中打開

39、的表的字段個(gè)數(shù),省略參數(shù)則指當(dāng)前工作區(qū)的表FIELD(字段序號(hào))返回當(dāng)前表文件中的指定字段序號(hào)的字段名,60,八、數(shù)據(jù)的復(fù)制,命令格式(P95):COPY TO 文件名 [FIELDS 字段名表] [范圍][FOR 條件] [TYPE SDF/XLS/DELIMITED [WITH 字符|BLANK|TAB]功能:將當(dāng)前工作區(qū)中表的數(shù)據(jù)復(fù)制到其他文件中,61,記錄的順序,1、物理順序按記錄輸入的時(shí)間順序存放。2

40、、邏輯順序?qū)τ涗洶茨硞€(gè)字段值或某些字段值排序。,3.3.6 索引的創(chuàng)建與使用,62,一、索引的概念 什么是索引(Index)?(1) 對(duì)數(shù)據(jù)的某些操作,如查找,如果數(shù)據(jù)是有規(guī)律排列的,速度快。(2)索引就是一種排序。(3)索引是按指定字段的邏輯排序。,63,記錄號(hào) XH XM XB ZYDH XIMING 1 990302 張璋

41、男 102001 信息管理系 2 990506 王旺 男 201004 計(jì)算機(jī)系 3 990101 錢前 女 102001 信息管理系 4 990402 孫隼 女 201004 計(jì)算機(jī)系 5

42、 990201 趙昭 女 302001 計(jì)算機(jī)系,XS. DBF,按學(xué)號(hào)排序,XH 990101 990201990302 990402990506,記錄號(hào) 3 5 1 4 2,原來(lái)的記錄號(hào),指針,如對(duì)XS表按學(xué)號(hào)建立索引,,64,二、索引文件的種類,(1)結(jié)構(gòu)復(fù)合索引文件 結(jié)構(gòu)復(fù)合索引文件可以存儲(chǔ)

43、表的多個(gè)索引,文件名與表文件名相同,在創(chuàng)建時(shí)由系統(tǒng)自動(dòng)給定。擴(kuò)展名為CDX。 結(jié)構(gòu)復(fù)合索引文件與表文件同步打開、更新和關(guān)閉。,65,(2)非結(jié)構(gòu)復(fù)合索引文件 非結(jié)構(gòu)復(fù)合索引文件名由用戶給出,要用打開命令將其打開??蓽p輕應(yīng)用程序的維護(hù)負(fù)擔(dān)。,(3)獨(dú)立索引文件 獨(dú)立索引文件只能存儲(chǔ)一個(gè)索引,可臨時(shí)創(chuàng)建,用命令打開,其擴(kuò)展名為IDX。,66,三、使用表設(shè)計(jì)器創(chuàng)建結(jié)構(gòu)復(fù)合索引文件,在用“表設(shè)計(jì)器”創(chuàng)建或修改

44、表結(jié)構(gòu)時(shí),可以立即創(chuàng)建索引。,注意:(1)不能對(duì)備注型和通用型字段建立索引。 (2)不要建立無(wú)用的索引,否則會(huì)降低系統(tǒng)性能。,67,1、排序,索引時(shí)可指定索引是升序(↑)還是降序(↓)。,68,一張表可以創(chuàng)建多個(gè)索引,為了區(qū)分一張表的不同索引,每一個(gè)索引都必須有一個(gè)索引名,即索引標(biāo)識(shí)。 索引標(biāo)識(shí)必須以下劃線、字母或漢字開頭,長(zhǎng)度不超過(guò)10個(gè)字符。,2、索引名(TAG),69,(1)主索引(Primar

45、y Index) 對(duì)數(shù)據(jù)庫(kù)表,可建立主索引,組成主索引的字段或表達(dá)式的值不能重復(fù),如學(xué)號(hào)的值是唯一的,可作為主索引字段。主索引只能用于數(shù)據(jù)庫(kù)表,不能用于自由表。,3、索引的類型,(2)候選索引(Candidate Index)不允許有重復(fù)的值的索引,一張表可建立多個(gè)候選索引。 候選索引可用于數(shù)據(jù)庫(kù)表或自由表。,70,(3)普通索引(Regular Index) 記錄的排序,允許有重復(fù)的值

46、,一張表可建立多個(gè)普通索引。,(4)唯一索引(Unique Index) 允許有重復(fù)的值,但在顯示時(shí),只顯示一個(gè)值。,71,4、索引表達(dá)式,索引表達(dá)式是作為建立索引的依據(jù),也就是排序的依據(jù),它可以是一個(gè)字段或字段表達(dá)式,也叫索引關(guān)鍵字。 索引表達(dá)式例: Xm+xb Jbgz+jt Xm+str(jbgz) Dtoc(gzrq,1)+str(jbgz),索引表達(dá)式注意問(wèn)

47、題:,如果索引表達(dá)式是字符型表達(dá)式,則各字段在表達(dá)式中的前后順序?qū)⒂绊懰饕慕Y(jié)果。例 Xm+xb。如果索引表達(dá)式是算術(shù)表達(dá)式,則按照表達(dá)式的運(yùn)算結(jié)果進(jìn)行排序。例 Jbgz+jt。不同數(shù)據(jù)類型的字段構(gòu)成一個(gè)索引表達(dá)式時(shí),必須轉(zhuǎn)換同一數(shù)據(jù)類型(通常轉(zhuǎn)換為字符型)。例:Xm+str(jbgz) Dtoc(gzrq,1)+str(jbgz),73,5、篩選,指定僅有符合條件的記錄參加索引。,74,五、索引的使用,1、

48、設(shè)置主控索引一張表可以建立多個(gè)索引,但在使用表中的數(shù)據(jù)時(shí),只能按一種索引的順序進(jìn)行。這種索引就是主控索引。主控索引可以是復(fù)合索引文件中的一個(gè)標(biāo)識(shí)(主控標(biāo)識(shí)),也可以是一個(gè)獨(dú)立索引文件。,75,USE 表文件名 ORDER [ TAG ] 標(biāo)識(shí)名例:CLOSE TABLES ALLUSE xs ORDER xhUSE xs IN 0 ALIAS xs2 AGAIN ORDER xbB

49、ROW,(1)打開表的同時(shí)指定主控索引,76,記錄號(hào) XH XM XB ZYDH XIMING 1 990302 張璋 男 102001 信息管理系 2 990506 王旺 男 201004 計(jì)算機(jī)系 3 990101 錢

50、前 女 102001 信息管理系 4 990402 孫隼 女 201004 計(jì)算機(jī)系 5 990201 趙昭 女 302001 計(jì)算機(jī)系,XS.DBF,記錄號(hào) XH XM XB ZYDH XIMING 3

51、 990101 錢前 女 102001 信息管理系 5 990201 趙昭 女 302001 計(jì)算機(jī)系 1 990302 張璋 男 102001 信息管理系 4 990402 孫隼 女

52、201004 計(jì)算機(jī)系 2 990506 王旺 男 201004 計(jì)算機(jī)系,建立索引后顯示的結(jié)果,,注意:索引顯示的記錄號(hào)是原來(lái) 數(shù)據(jù)庫(kù)文件的記錄號(hào)!,XS.CDX,77,界面方式: “表/屬性”—“工作區(qū)屬性”對(duì)話框命令方式: SET ORDER TO 標(biāo)識(shí)名/索引編號(hào)如:SET ORDER TO xm SET

53、ORDER TO 0 && 不按索引順序排序, 按原來(lái)表記錄的順序,(2)打開表后再指定主控索引,78,2、有關(guān)索引的函數(shù),(1) 返回打開的索引文件名 CDX ([工作區(qū)/別名 ] ) 返回復(fù)合索引文件名 NDX ([工作區(qū)/別名 ] ) 返回某一索引文件名,(2) 返回主控索引標(biāo)識(shí)或文件ORDER ( [ 工作區(qū)/別名 ] ) 返回當(dāng)前表或指定表的主控索引文件或標(biāo)識(shí)

54、,(3) 返回復(fù)合索引文件中的索引標(biāo)識(shí)名TAG ( [ CDX文件, ] TAG序號(hào) [ , 工作區(qū)/別名 ] ),79,3、利用索引快速定位記錄,排序以后,再查找有關(guān)信息,速度會(huì)加快。,(1)SEEK命令命令格式:SEEK 表達(dá)式 [ ORDER TAG名 [ASCENDING/DESCENDING ] ] [ IN 工作區(qū)/別名 ],80,例如:USE XS ORDER TAG XH &

55、& 打開表文件XS,指定標(biāo)識(shí) XH SEEK “990201” && 查找學(xué)號(hào)為“990201”的記錄,注意:SEEK 命令只能在索引過(guò)的表中使用,并且只能搜索索引關(guān)鍵字。,81,如果找到與表達(dá)式匹配的記錄,則 RECNO()= 找到的記錄號(hào) FOUND()函數(shù)的值為“真” EOF()函數(shù)的值為“假” 如果未找到相匹配的記錄,則 RECNO()=記錄個(gè)數(shù)加1 FOUND(

56、)函數(shù)的值為“假” EOF()函數(shù)的值為“真”,82,(2)SEEK函數(shù),SEEK(表達(dá)式 [,工作區(qū)/別名] [,TAG名 ] )SEEK函數(shù)的用法同先執(zhí)行SEEK命令,再執(zhí)行FOUND()函數(shù)的結(jié)果一樣。如果找到與表達(dá)式匹配的記錄,函數(shù)的返回值為“真”; 如果找不到與表達(dá)式匹配的記錄,函數(shù)的返回值為“假”。,83,練習(xí):,,已知XS表的結(jié)構(gòu)復(fù)合索引中已創(chuàng)建XH字段的普通索引,索引標(biāo)識(shí)為XH,在沒(méi)有設(shè)置主控索引的

57、情況下,要用SEEK 命令定位到學(xué)號(hào)為“980101”的記錄上,則該命令為:,SEEK “980101” ORDER TAG XH,84,五、命令方式創(chuàng)建索引(補(bǔ)充)INDEX ON 索引表達(dá)式 TAG 索引標(biāo)識(shí)名 [FOR 條件表達(dá)式 ] [ASCENDING / DESCENDING ] [ UNIQUE / CANDIDATE ]其中:ON 索引表達(dá)式—關(guān)鍵字段表達(dá)式,排

58、序的依據(jù)。 TAG 索引標(biāo)識(shí)名——指定索引標(biāo)識(shí)名,標(biāo)識(shí)名在表設(shè)計(jì)器中就是索引名。 FOR 條件表達(dá)式—指定參加索引的記錄的條件。 ASCENDING——升序,默認(rèn)值 DESCENDING——降序 UNIQUE——取索引關(guān)鍵字段值相同者中的第一個(gè)放入索引文件中。 CANDIDATE—

59、—?jiǎng)?chuàng)建侯選索引標(biāo)識(shí),85,再鍵入命令: DIR XS.*可以看到2個(gè)文件: ①表文件 XS.DBF②結(jié)構(gòu)復(fù)合索引文件 XS.CDX,例如,對(duì)學(xué)生表按學(xué)號(hào)建立結(jié)構(gòu)復(fù)合索引: INDEX ON XH TAG XH LIST,86,,練習(xí)1:對(duì)于表索引操作,下列說(shuō)法中,哪一個(gè)是正確的?A、 一個(gè)獨(dú)立索引文件中可以存儲(chǔ)一張表的多個(gè)索引。B、主索引只能適用于自由表

60、。C、表文件打開時(shí),所有復(fù)合索引文件都自動(dòng)打開。D、在INDEX 命令中選用CANDIDATE子句后,建立的是候選索引。,87,,練習(xí)2:已知一成績(jī)表(score.dbf)的表結(jié)構(gòu)如下:字段名 類型 寬度 含義Xh c 3 學(xué)號(hào)Qzcj n

61、 3,0 其中成績(jī)Qmcj n 3,0 其末成績(jī)表中含有以下3條記錄,按輸入時(shí)的物理順序排列如下:,88,,Xh Qzcj Qmcj001 85 73002 92 81003

62、 80 87對(duì)該表已創(chuàng)建結(jié)構(gòu)復(fù)合索引:索引順序 索引名 索引表達(dá)式降序 cj1 qzcj+qmcj升序 cj2 str(qzcj)+str(qmcj),89,,執(zhí)行如下命令:USE score ORDER TAG cj1

溫馨提示

  • 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ù)僅提供信息存儲(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)論