版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
授課-5數(shù)據(jù)庫(kù)管理(一)
5.1創(chuàng)建數(shù)據(jù)庫(kù)5.2數(shù)據(jù)字典的編輯5.3建立表索引與表間關(guān)系1計(jì)算機(jī)系授課-5數(shù)據(jù)庫(kù)管理(一)5.1創(chuàng)建數(shù)據(jù)庫(kù)1計(jì)算機(jī)任務(wù)(高新考試第3.3題):
將C:\2006vfp\Unit3文件夾中的文件夾Y3-03復(fù)制到考生文件夾中,重命名為“X3-03”,然后新建項(xiàng)目管理器,并命名為“項(xiàng)目3-3”,保存在文件夾X3-03中完成下列操作。1.建立數(shù)據(jù)庫(kù)在“項(xiàng)目3-3”中新建數(shù)據(jù)庫(kù)“X3-03.dbc”,保存到文件夾X3-03中;將表Y3_03A.dbf、Y3_03B.dbf、Y3_03C.dbf添加到數(shù)據(jù)庫(kù)X3-03.dbc中。2.設(shè)置字段屬性在數(shù)據(jù)表Y3_03A.dbf,完成以下操作:設(shè)置“民族代碼”字段的默認(rèn)值為“01”;。為“民族代碼”字段添加字段注釋“01代表漢族”。2計(jì)算機(jī)系任務(wù)(高新考試第3.3題):2計(jì)算機(jī)系3.設(shè)置表屬性對(duì)數(shù)據(jù)表Y3_03B.dbf完成以下操作添加表注釋“該表為考生報(bào)名表”;設(shè)置“民族代碼”字段的“記錄有效性”,要求為該字段輸入的值必須為“01”、“02”、“03”或“04”;當(dāng)輸入字段“民族代碼”的值不是“01”、“02”、“03”或“04”時(shí),“信息”則提示“民族代碼必須用01、02、03或04代表,請(qǐng)重新輸入”,結(jié)果如樣文3-03A所示。4.建立字段索引和表之間的關(guān)系在數(shù)據(jù)表Y3_03A.dbf中設(shè)置字段“民族代碼”為主索引,Y3_03B.dbf中設(shè)置字段“報(bào)名序號(hào)”為主索引,設(shè)置字段“民族代碼”為普通索引。Y3_03C.dbf中設(shè)置字段“報(bào)名序號(hào)”為主索引。選擇正確的關(guān)聯(lián)字段,為表Y3_03A.dbf與Y3_03B.dbf建立一對(duì)多關(guān)系,為表Y3_03B.dbf與表Y3_03C.dbf建立一對(duì)一關(guān)系。結(jié)果如樣文3-03B所示。
3計(jì)算機(jī)系3.設(shè)置表屬性3計(jì)算機(jī)系
樣文3-03A
樣文3-03B
4計(jì)算機(jī)系樣文3-03A樣文3-03B4計(jì)算機(jī)系5.1創(chuàng)建數(shù)據(jù)庫(kù)【學(xué)習(xí)目標(biāo)】創(chuàng)建數(shù)據(jù)庫(kù)的基本操作【關(guān)鍵概念】建立數(shù)據(jù)庫(kù)添加數(shù)據(jù)庫(kù)表
5計(jì)算機(jī)系5.1創(chuàng)建數(shù)據(jù)庫(kù)【學(xué)習(xí)目標(biāo)】5計(jì)算機(jī)系【授課】P865.1.1建立數(shù)據(jù)庫(kù)VFP提供了3種建立數(shù)據(jù)庫(kù)的方法:
1.用項(xiàng)目管理器在[數(shù)據(jù)]選項(xiàng)中選擇[數(shù)據(jù)庫(kù)],然后點(diǎn)擊[新建]鈕,打開“新建”對(duì)話框,如下圖所示,點(diǎn)擊[新建文件]鈕。
6計(jì)算機(jī)系【授課】P866計(jì)算機(jī)系2.菜單方式在[文件]菜單中選擇[新建]命令,或單擊[常用]工具欄中的[新建]按鈕,打開“新建”對(duì)話框,如右圖所示。7計(jì)算機(jī)系2.菜單方式7計(jì)算機(jī)系3.命令方式
格式:CREATEDATABASE[數(shù)據(jù)庫(kù)名/?]功能:創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)并打開它。若命令中包含可選項(xiàng)或可選項(xiàng)選擇了“?”,則系統(tǒng)顯示一個(gè)對(duì)話框,請(qǐng)求用戶指定新數(shù)據(jù)庫(kù)的存取路徑和名稱。
[例如]建立cjk.dbc的命令如下:
CREADATAcjk8計(jì)算機(jī)系3.命令方式8計(jì)算機(jī)系【相關(guān)知識(shí)】5.1.2使用數(shù)據(jù)庫(kù)1.打開數(shù)據(jù)庫(kù)打開數(shù)據(jù)庫(kù)的方式有三種:
?通過(guò)“項(xiàng)目管理器”打開
?通過(guò)“打開”對(duì)話框打開
?使用命令打開
格式:OPENDATABASE[[EXCLUSIVE/SHARED];[NOUPDATE][VALIDATE]][例]打開數(shù)據(jù)庫(kù)cjk.dbc的命令如下:
OPENDATAcjk只讀檢查合法性9計(jì)算機(jī)系【相關(guān)知識(shí)】只讀檢查合法性9計(jì)算機(jī)系
2.指定當(dāng)前數(shù)據(jù)庫(kù):VFP可以打開多個(gè)數(shù)據(jù)庫(kù),但在同一時(shí)刻只有一個(gè)當(dāng)前數(shù)據(jù)庫(kù)。
?使用命令
命令:SETDATABASETO數(shù)據(jù)庫(kù)名?使用工具欄通過(guò)“常用”工具欄上的數(shù)據(jù)庫(kù)下拉列表選擇10計(jì)算機(jī)系2.指定當(dāng)前數(shù)據(jù)庫(kù):10計(jì)算機(jī)系3.修改數(shù)據(jù)庫(kù)修改數(shù)據(jù)庫(kù)實(shí)際上是打開數(shù)據(jù)庫(kù)設(shè)計(jì)器進(jìn)行修改
?通過(guò)“項(xiàng)目管理器”打開?通過(guò)“打開”對(duì)話框打開
?使用命令
格式:MODIFYDATABASE[數(shù)據(jù)庫(kù)名/?][NOWAIT][NOEDIT]參數(shù)說(shuō)明:
NOWAIT:打開數(shù)據(jù)庫(kù)設(shè)計(jì)器后繼續(xù)執(zhí)行程序(只在程序中使用,在命令窗口中無(wú)效)
NOEDIT:禁止對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改11計(jì)算機(jī)系3.修改數(shù)據(jù)庫(kù)11計(jì)算機(jī)系4.關(guān)閉數(shù)據(jù)庫(kù)命令格式:CLOSEDATABASE5.刪除數(shù)據(jù)庫(kù)
?使用項(xiàng)目管理器中“移去”按鈕
注:此種方法只刪除數(shù)據(jù)庫(kù),對(duì)庫(kù)中的表及其他對(duì)象不進(jìn)行刪除
?使用命令
格式:DELETEDATABASE[庫(kù)文件名/?];[DELETETABLES][RECYCLE]參數(shù)說(shuō)明:
DELETETABLES:刪除該數(shù)據(jù)庫(kù)中所含的表文件
RECYCLE:將刪除的文件放入回收站中12計(jì)算機(jī)系4.關(guān)閉數(shù)據(jù)庫(kù)參數(shù)說(shuō)明:12計(jì)算機(jī)系任務(wù)的第1點(diǎn):在“項(xiàng)目3-3”中新建數(shù)據(jù)庫(kù)“X3-03.dbc”,保存到文件夾X3-03中;將表Y3_03A.dbf、Y3_03B.dbf、Y3_03C.dbf添加到數(shù)據(jù)庫(kù)X3-03.dbc中。操作:先打開項(xiàng)目管理器“項(xiàng)目3-3”,在[數(shù)據(jù)]選項(xiàng)中選擇[數(shù)據(jù)庫(kù)],然后點(diǎn)擊[新建]鈕,打開“新建”對(duì)話框,點(diǎn)擊[新建文件]鈕。在建立好的數(shù)據(jù)庫(kù)中,再點(diǎn)擊[添加],添加各數(shù)據(jù)表。13計(jì)算機(jī)系任務(wù)的第1點(diǎn):13計(jì)算機(jī)系5.2數(shù)據(jù)字典的編輯【學(xué)習(xí)目標(biāo)】數(shù)據(jù)字典的編輯操作【關(guān)鍵概念】數(shù)據(jù)字典有效性規(guī)則
14計(jì)算機(jī)系5.2數(shù)據(jù)字典的編輯【學(xué)習(xí)目標(biāo)】14計(jì)算機(jī)系【任務(wù)第3.3題(上機(jī)-4)】2.設(shè)置字段屬性:在數(shù)據(jù)表Y3_03A.dbf,完成以下操作:
設(shè)置“民族代碼”字段的默認(rèn)值為“01”;。為“民族代碼”字段添加字段注釋“01代表漢族”。3.設(shè)置表屬性:對(duì)數(shù)據(jù)表Y3_03B.dbf完成以下操作添加表注釋“該表為考生報(bào)名表”;設(shè)置“民族代碼”字段的“記錄有效性”,要求為該字段輸入的值必須為“01”、“02”、“03”或“04”;當(dāng)輸入字段“民族代碼”的值不是“01”、“02”、“03”或“04”時(shí),“信息”則提示“民族代碼必須用01、02、03或04代表,請(qǐng)重新輸入”,結(jié)果如樣文3-03A所示。樣文3-03A15計(jì)算機(jī)系【任務(wù)第3.3題(上機(jī)-4)】樣文3-03A15計(jì)算機(jī)系【授課】5.2.1數(shù)據(jù)字典的編輯(P91)1.進(jìn)入表設(shè)計(jì)器(方法??)(1)使用項(xiàng)目管理器(2)使用數(shù)據(jù)庫(kù)設(shè)計(jì)器(3)使用命令
數(shù)據(jù)字典16計(jì)算機(jī)系【授課】數(shù)據(jù)字典16計(jì)算機(jī)系
【相關(guān)知識(shí)】
顯然,與自由表相比,數(shù)據(jù)庫(kù)表的表設(shè)計(jì)器多了數(shù)據(jù)字典等內(nèi)容。
數(shù)據(jù)字典(P91)
就是包含數(shù)據(jù)庫(kù)中所有表信息的一個(gè)表。存儲(chǔ)在數(shù)據(jù)字典中的信息稱之為元數(shù)據(jù),包括:長(zhǎng)表名、長(zhǎng)字段名、有效性規(guī)則、觸發(fā)器,表間永久關(guān)系以及數(shù)據(jù)庫(kù)對(duì)象的定義等。使用數(shù)據(jù)字典,可以設(shè)置字段級(jí)和記錄級(jí)的有效性檢查,保證主關(guān)鍵字字段內(nèi)容的唯一性。17計(jì)算機(jī)系【相關(guān)知識(shí)】17計(jì)算機(jī)系“格式”文本框中輸入格式化代碼,確定該字段在瀏覽窗口、表單和報(bào)表中顯示的格式,它是對(duì)字段格式進(jìn)行整體控制的。
字段級(jí)規(guī)則設(shè)置“輸入掩碼”文本框中鍵入掩碼代碼,輸入掩碼是按位來(lái)控制格式的。顯示的標(biāo)題改為自己希望的標(biāo)題
字段有效性規(guī)則就是用于數(shù)據(jù)輸入正確性的檢驗(yàn)。
說(shuō)明該字段的用途、特性、使用說(shuō)明等補(bǔ)充信息字段有效性信息是用于數(shù)據(jù)檢驗(yàn)發(fā)現(xiàn)不符合規(guī)則顯示的信息。
18計(jì)算機(jī)系“格式”文本框中輸入格式化代碼,確定該字段在瀏覽窗口、表單和2.設(shè)置字段級(jí)規(guī)則(重點(diǎn))字段級(jí)規(guī)則主要包括:顯示屬性、字段有效性和字段注釋等。(1)設(shè)置字段顯示屬性
格式:指定字段在瀏覽窗口、表單或報(bào)表中顯示和輸入數(shù)據(jù)的樣式;
輸入掩碼:用以限制或控制用戶輸入數(shù)據(jù)的格式,對(duì)非法輸入進(jìn)行屏蔽;
標(biāo)題:該字段在顯示時(shí)的名稱,可達(dá)128個(gè)字符。19計(jì)算機(jī)系2.設(shè)置字段級(jí)規(guī)則(重點(diǎn))19計(jì)算機(jī)系2.設(shè)置字段級(jí)規(guī)則(重點(diǎn))(2)對(duì)字段進(jìn)行有效性檢驗(yàn)字段有效性檢查是在完成特定字段的數(shù)據(jù)項(xiàng)輸入后,系統(tǒng)自動(dòng)檢查所輸入的數(shù)據(jù)項(xiàng)是否符合規(guī)則(3)匹配字段類型(4)為字段輸入注釋20計(jì)算機(jī)系2.設(shè)置字段級(jí)規(guī)則(重點(diǎn))20計(jì)算機(jī)系(5)設(shè)置記錄的有效性規(guī)則(6)設(shè)置觸發(fā)器21計(jì)算機(jī)系(5)設(shè)置記錄的有效性規(guī)則21計(jì)算機(jī)系3.設(shè)置記錄級(jí)規(guī)則記錄級(jí)規(guī)則主要包括記錄有效性、觸發(fā)器的設(shè)置和表注釋?!敖淌诘幕竟べY要≥1650元,其他職工為:550≤基本工資≤3000"
職稱="教授".AND.基本工資>=1650.OR.職稱#"教授".AND.(基本工資=>550.AND.基本工資<=3000)
每逢星期一才可做插入、追加、更新和刪除記錄的操作:CDOW(DATE())="Monday"
22計(jì)算機(jī)系3.設(shè)置記錄級(jí)規(guī)則“教授的基本工資要≥1650元,其他職工任務(wù)的第2、3點(diǎn)操作示范:2.設(shè)置字段屬性:(2分)
選Y3_03A.DBF,進(jìn)入表設(shè)計(jì)器;選“字段”選項(xiàng),選“民族代碼”字段;在“默認(rèn)值”內(nèi)輸入“01”;“字段注釋”內(nèi)輸入“01代表漢族”3.設(shè)置表屬性:(4分)
選Y3_03B.DBF,進(jìn)入表設(shè)計(jì)器;選“表”選項(xiàng),在表注釋內(nèi)輸入“該表為考生報(bào)名表”;選“字段”選項(xiàng),選“民族代碼”字段,在字段有效性的規(guī)則內(nèi)輸入:民族代碼="01".OR.民族代碼="02".OR.民族代碼="03".OR.民族代碼="04";“信息”內(nèi)輸入字符:"民族代碼的值必須用01、02、03或04代表,請(qǐng)重新輸入"23計(jì)算機(jī)系任務(wù)的第2、3點(diǎn)操作示范:23計(jì)算機(jī)系5.3建立表索引和表間關(guān)系【學(xué)習(xí)目標(biāo)】建立表索引和表間關(guān)系數(shù)據(jù)庫(kù)的操作【關(guān)鍵概念】索引的種類索引的建立和應(yīng)用表間永久關(guān)系的建立24計(jì)算機(jī)系5.3建立表索引和表間關(guān)系【學(xué)習(xí)目標(biāo)】24計(jì)算機(jī)系【任務(wù)第3.3題(上機(jī)-4)】4.建立字段索引和表之間的關(guān)系:在數(shù)據(jù)表Y3-03A.dbf中設(shè)置字段“民族代碼”為主索引,Y3-03B.dbf中設(shè)置字段“報(bào)名序號(hào)”為主索引,設(shè)置字段“民族代碼”為普通索引。Y3-03C.dbf中設(shè)置字段“報(bào)名序號(hào)”為主索引。選擇正確的關(guān)聯(lián)字段,為表Y3-03A.bf與Y3-03B.dbf建立一對(duì)多關(guān)系,為表Y3-03B.dbf與表Y3-03C.dbf建立一對(duì)一關(guān)系。結(jié)果如樣文3-03B所示。樣文3-03B25計(jì)算機(jī)系【任務(wù)第3.3題(上機(jī)-4)】樣文3-03B25計(jì)算機(jī)系【授課】5.3.1索引1.基本概念索引是按索引表達(dá)式使數(shù)據(jù)表中的記錄有序地進(jìn)行邏輯排列的技術(shù)。索引不改變當(dāng)前數(shù)據(jù)表記錄的物理順序,而是建立一個(gè)與數(shù)據(jù)表相對(duì)應(yīng)的索引文件。
?按文件擴(kuò)展名分為2類:?jiǎn)嗡饕募?.IDX)和復(fù)合索引文件(*.CDX)
?按索引功能分為4類:主索引、候選索引、普通索引和惟一索引。26計(jì)算機(jī)系【授課】26計(jì)算機(jī)系
?按文件結(jié)構(gòu)形式分為2類:①結(jié)構(gòu)復(fù)合索引文件:復(fù)合索引文件名與表名相同,打開表時(shí),索引文件將自動(dòng)打開。
②非結(jié)構(gòu)復(fù)合索引(獨(dú)立索引)文件:復(fù)合索引文件名與相關(guān)表不同(擴(kuò)展名仍為.CDX)。
我們把表中記錄實(shí)際排列次序稱為物理順序,此順序在輸入記錄時(shí)已確定;把由索引決定的順序稱為邏輯順序或索引順序。因此,索引只是改變了記錄的邏輯順序。27計(jì)算機(jī)系?按文件結(jié)構(gòu)形式分為2類:27計(jì)算機(jī)系2.簡(jiǎn)單索引的建立用表設(shè)計(jì)器建立索引(見(jiàn)后)用命令建立索引
格式:INDEXON<關(guān)鍵字表達(dá)式>TO索引文件名;[.IDX][UNIQUE][FOR條件][COMPACT]
功能:給當(dāng)前表中符合條件的記錄按給定的關(guān)鍵字表達(dá)式建立索引文件。
參數(shù)說(shuō)明:UNIQUE:表示建立惟一索引;COMPACT:表示建立一個(gè)壓縮的.IDX索引文件。注意:目前,簡(jiǎn)單索引已很少使用。28計(jì)算機(jī)系2.簡(jiǎn)單索引的建立28計(jì)算機(jī)系3.簡(jiǎn)單索引的打開與關(guān)閉
?索引的打開:
格式1:USE<表名>INDEX<索引文件名清單>
功能:打開表的同時(shí)打開多個(gè)簡(jiǎn)單索引
格式2:SETINDEXON<索引文件名清單>
功能:先打開數(shù)據(jù)表,然后才打開簡(jiǎn)單索引文件
?索引的關(guān)閉:
格式:SETINDEXTO
29計(jì)算機(jī)系3.簡(jiǎn)單索引的打開與關(guān)閉29計(jì)算機(jī)系4.復(fù)合索引的建立
在表設(shè)計(jì)器中建立索引(結(jié)構(gòu)復(fù)合索引)在“索引名”文本框中輸入索引標(biāo)識(shí)名
在“類型”列表框中,選定索引類型在“表達(dá)式”文本框中,輸入索引關(guān)鍵字表達(dá)式
向上箭頭為升序索引,向下箭頭為降序索引如果需要,可輸入篩選條件表達(dá)式30計(jì)算機(jī)系4.復(fù)合索引的建立在“索引名”文本框中輸入索引標(biāo)識(shí)名在“
用命令建立索引
格式:INDEXON關(guān)鍵字表達(dá)式TAG索引標(biāo)記;[OF獨(dú)立索引文件名][FOR條件];[ASCENDING/DESCENDING][UNIQUE];[CANDIDATE][ADDITIVE]
功能:對(duì)當(dāng)前表按給定的關(guān)鍵表達(dá)式建立索引。
參數(shù)說(shuō)明:
OF獨(dú)立索引文件名:缺省此項(xiàng),則建立結(jié)構(gòu)復(fù)合索引,文件名同表名,擴(kuò)展名為.CDX
FOR條件:只索引符合條件的記錄。
ASCENDING/DESCENDING:說(shuō)明建立升序或降序,默認(rèn)升序。
CANDIDATE:建立候選索引。
ADDITIVE:關(guān)閉以前的索引,使新建立的索引成為當(dāng)前索引。31計(jì)算機(jī)系用命令建立索引31計(jì)算機(jī)系5.主控索引的設(shè)置
若同時(shí)打開多個(gè)索引,則有一個(gè)起著主要作用,它決定著表的當(dāng)前邏輯順序,這個(gè)索引稱為主控索引。
格式:SETORDERTO<數(shù)值表達(dá)式>或<索引文件名>6.刪除索引
格式:DELETETAG索引標(biāo)識(shí)[OF非結(jié)構(gòu)索引文件名]
功能:刪除指定的索引。32計(jì)算機(jī)系5.主控索引的設(shè)置32計(jì)算機(jī)系7.復(fù)合索引打開與關(guān)閉
結(jié)構(gòu)復(fù)合索引文件隨表的打開而自動(dòng)打開,非結(jié)構(gòu)復(fù)合索引文件的打開、關(guān)閉同簡(jiǎn)單索引文件,使用命令:
格式1:USE表名INDEX獨(dú)立復(fù)合索引文件名表功能:打開表同時(shí)打開索引。
格式2:SETINDEXTO非結(jié)構(gòu)復(fù)合索引文件名表功能:?jiǎn)为?dú)打開索引。
格式3:SETORDERTO<TAG索引標(biāo)識(shí)/數(shù)值表達(dá)式>功能:指定主控索引。33計(jì)算機(jī)系7.復(fù)合索引打開與關(guān)閉33計(jì)算機(jī)系[例5.1]
為rsb.dbf按下列要求建立結(jié)構(gòu)復(fù)合索引文件。(1)記錄以姓名降序排列,索引標(biāo)識(shí)xm,索引類型為普通索引;(2)記錄以出生日期升序排列,索引標(biāo)識(shí)csrq,索引類型為唯一索引;(3)記錄以職稱降序排列,職稱相同的按出生日期降序排列,索引標(biāo)識(shí)zccsrq,索引類型為候選索引;
USErsbINDEON姓名TAGxmDESCLISTINDEON出生日期TAGcsrqUNIQLISTINDEON職稱+DTOC(出生日期)TAGzccsrq;DESCCANDLIST34計(jì)算機(jī)系[例5.1]為rsb.dbf按下列要求建立結(jié)構(gòu)復(fù)合索引文件【相關(guān)知識(shí)】索引的應(yīng)用:快速查找記錄需要建立索引的查找:FIND、SEEK不需要建立索引的查找:LOCAFIND查找:查找關(guān)鍵字段與所給常量表達(dá)式的值相符合的第一個(gè)記錄,若找到,指針指向該記錄;否則指向文件尾。
格式:FIND<常量表達(dá)式>功能:在當(dāng)前索引中快速查找并定位到與查找內(nèi)容相匹配的記錄。
說(shuō)明:見(jiàn)書。35計(jì)算機(jī)系【相關(guān)知識(shí)】35計(jì)算機(jī)系SEEK查找:查找關(guān)鍵字段與所給表達(dá)式的值相符合的第一個(gè)記錄,若找到,指針指向該記錄;否則指向文件尾。
格式:SEEK<表達(dá)式>功能:在當(dāng)前索引中快速查找并定位到與查找內(nèi)容相匹配的記錄。
說(shuō)明:見(jiàn)書36計(jì)算機(jī)系SEEK查找:36計(jì)算機(jī)系[例5.2]假設(shè)GZJ.DBF中有兩個(gè)以上的講師,并已按“職稱”字段建立了索引,若abc=“講師”,分別用FIND、SEEK
兩種方法查找第一個(gè)講師。用FIND查找:ABC=‘講師’USEGZJ
SETORDETOTAGZC
FIND&ABCDISP用SEEK查找:ABC=‘講師’USEGZJ
SETORDETOTAGZCSEEKABCDISP由此例看出:FIND查找的是常量,SEEK查找的是表達(dá)式。37計(jì)算機(jī)系[例5.2]假設(shè)GZJ.DBF中有兩個(gè)以上的講師,并已按“職5.3.2表間關(guān)系1.關(guān)系的類型
(1)永久關(guān)系:在數(shù)據(jù)庫(kù)表之間建立的一種關(guān)系,這種關(guān)系不僅在運(yùn)行時(shí)存在,而且一直保留。永久關(guān)系是數(shù)據(jù)庫(kù)表間的關(guān)系,它們存儲(chǔ)在數(shù)據(jù)庫(kù)文件中。永久關(guān)系不能控制相關(guān)表中記錄指針的移動(dòng)。(2)臨時(shí)關(guān)系:
在任意表之間建立的一種關(guān)系,自由表之間只能建立臨時(shí)關(guān)系,表一旦被關(guān)閉,則臨時(shí)關(guān)系不存在。在建立表間的臨時(shí)關(guān)系之后就會(huì)使得一個(gè)表(子表)的記錄指針自動(dòng)隨另一個(gè)表(父表)的記錄指針移動(dòng)而移動(dòng)。38計(jì)算機(jī)系5.3.2表間關(guān)系38計(jì)算機(jī)系2.父表和子表
父表:一對(duì)一或一對(duì)多的表關(guān)系中的主表或主控表。子表:一對(duì)一或一對(duì)多的表關(guān)系中的相關(guān)表或受控(跟隨)表。
在臨時(shí)關(guān)系中,父表中記錄指針的移動(dòng)將導(dǎo)致子表中的當(dāng)前記錄指針也依據(jù)建立的關(guān)系而隨之移動(dòng)。在永久關(guān)系中,由子表建立的索引類型決定兩表之間是一對(duì)一還是一對(duì)多的關(guān)系。若所建索引為主索引或候選索引,則為一對(duì)一;若所建索引為普通索引,則為一對(duì)多。39計(jì)算機(jī)系2.父表和子表39計(jì)算機(jī)系3.建立表間永久關(guān)系(1)在數(shù)據(jù)庫(kù)表間建立永久關(guān)系必須注意的事項(xiàng)
①只能在數(shù)據(jù)庫(kù)表間建立永久關(guān)系。②兩表必須就共同的字段建立索引,且父表索引類型必須為主索引或候選索引。③所建關(guān)系的類型依據(jù)子表索引類型而定。(2)建立表間永久關(guān)系
在“數(shù)據(jù)庫(kù)設(shè)計(jì)器”中,用鼠標(biāo)從一個(gè)表的主索引或候選索引拖到另一個(gè)表的任一索引,當(dāng)出現(xiàn)表間關(guān)聯(lián)連線時(shí)就表示關(guān)系已建立。用鼠標(biāo)右鍵單擊連線,彈出快捷菜單,可以進(jìn)行刪除關(guān)系、編輯關(guān)系和編輯參照完整性操作。40計(jì)算機(jī)系3.建立表間永久關(guān)系40計(jì)算機(jī)系一對(duì)一關(guān)系連線
一對(duì)多關(guān)系連線
41計(jì)算機(jī)系一對(duì)一關(guān)系連線一對(duì)多關(guān)系連線41計(jì)算機(jī)系5.3.3數(shù)據(jù)完整性1.實(shí)體完整性與主關(guān)鍵字
實(shí)體完整性是保證表中實(shí)體(即記錄)惟一的特性,即在一個(gè)表中不允許有重復(fù)的記錄。在VFP中利用主關(guān)鍵字或候選關(guān)鍵字來(lái)保證表中記錄惟一。2.域完整性與約束規(guī)則域完整性是表中域(即字段)的特性。對(duì)字段的限定都認(rèn)為是域完整性的范圍,如字段的類型、字段的寬度和字段的有效性規(guī)則等。實(shí)體完整性和域完整性通過(guò)后面講述的表的數(shù)據(jù)字典進(jìn)行設(shè)置。42計(jì)算機(jī)系5.3.3數(shù)據(jù)完整性42計(jì)算機(jī)系3.參照完整性參照完整性是控制數(shù)據(jù)庫(kù)中不同表的主關(guān)鍵字和外部關(guān)鍵字之間數(shù)據(jù)一致性的關(guān)系規(guī)則。參照完整性則屬于表間規(guī)則。用戶可以通過(guò)“參照完整性生成器”來(lái)進(jìn)行規(guī)則設(shè)置,從而控制相關(guān)表的更新、刪除和插入記錄的數(shù)據(jù)完整性。打開“參照完整性生成器”窗口雙擊兩表之間的連線,在“編輯關(guān)系”對(duì)話框中選定【參照完整性】按鈕。設(shè)置更新、刪除、插入三個(gè)規(guī)則
更新規(guī)則:是指修改父表中關(guān)鍵字值時(shí)所使用的規(guī)則,包括級(jí)聯(lián)、限制和忽略3種。
刪除規(guī)則:是指刪除父表中的記錄時(shí)使用的規(guī)則,包括級(jí)聯(lián)、限制和忽略3種。
插入規(guī)則:是指在子表中插入新的記錄,或更新已存在的記錄時(shí)所用的規(guī)則,包括限制和忽略2種。43計(jì)算機(jī)系3.參照完整性43計(jì)算機(jī)系更新規(guī)則刪除規(guī)則插入規(guī)則級(jí)聯(lián)當(dāng)父表中的關(guān)鍵字值被修改時(shí),系統(tǒng)用新的關(guān)鍵字值更新子表中所有相關(guān)記錄當(dāng)父表的記錄被刪除時(shí),系統(tǒng)相應(yīng)的刪除子表中所有相關(guān)記錄限制若子表有相關(guān)記錄,則系統(tǒng)禁止父表中的關(guān)鍵字值被修改若子表有相關(guān)記錄,則系統(tǒng)禁止父表的記錄被刪除若父表中不存在匹配的關(guān)鍵字值,則禁止在子表插入一個(gè)新記錄或更新一個(gè)已存在的記錄忽略允許更新允許刪除允許插入44計(jì)算機(jī)系更新規(guī)則刪除規(guī)則插入規(guī)則級(jí)聯(lián)當(dāng)父表中的關(guān)鍵字值被修改時(shí),系統(tǒng)在瀏覽bmb表時(shí)將計(jì)算機(jī)系的代碼修改為“A05”,則子表rsb中部門是計(jì)算機(jī)系的所有記錄的部門代碼字段值都被更新為“A05”。
45計(jì)算機(jī)系在瀏覽bmb表時(shí)將計(jì)算機(jī)系的代碼修改為“A05”,則子表rs任務(wù)的第4點(diǎn):
建立字段索引和表之間的關(guān)系:在數(shù)據(jù)表Y3-03A.dbf中設(shè)置字段“民族代碼”為主索引,Y3-03B.dbf中設(shè)置字段“報(bào)名序號(hào)”為主索引,設(shè)置字段“民族代碼”為普通索引。Y3-03C.dbf中設(shè)置字段“報(bào)名序號(hào)”為主索引。選擇正確的關(guān)聯(lián)字段,為表Y3-03A.bf與Y3-03B.dbf建立一對(duì)多關(guān)系,為表Y3-03B.dbf與表Y3-03C.dbf建立一對(duì)一關(guān)系。結(jié)果如樣文3-03B所示。操作:先打開數(shù)據(jù)庫(kù),用表設(shè)計(jì)器建立各個(gè)表的索引。按照要求建立數(shù)據(jù)庫(kù)表的表間關(guān)系。46計(jì)算機(jī)系任務(wù)的第4點(diǎn):46計(jì)算機(jī)系任務(wù)的第4點(diǎn)的操作示范:
修改數(shù)據(jù)庫(kù)X3_03;用表設(shè)計(jì)器建立表的索引;建立數(shù)據(jù)庫(kù)表的表間關(guān)系(拖曳)。47計(jì)算機(jī)系任務(wù)的第4點(diǎn)的操作示范:47計(jì)算機(jī)系【本課小結(jié)】1.創(chuàng)建和使用數(shù)據(jù)庫(kù):菜單或工具鈕,項(xiàng)目管理器,命令。2.數(shù)據(jù)庫(kù)設(shè)計(jì)器的使用:添加表,刪除表。3.編輯表的數(shù)據(jù)字典:設(shè)置字段、表的有效性規(guī)則編輯數(shù)據(jù)庫(kù)的屬性4.表索引的分類和建立表索引的方法:分類:主索引、候選索引、普通索引、惟一索引;建立索引的方法:表設(shè)計(jì)器、命令。5.建立表間關(guān)系的操作:拖曳。6.設(shè)置參照完整性的操作。
【作業(yè)】
上機(jī)5(計(jì)算機(jī)高新考試第3.3題)返回本課目錄48計(jì)算機(jī)系【本課小結(jié)】返回本課目錄48計(jì)算機(jī)系授課-5數(shù)據(jù)庫(kù)管理(一)
5.1創(chuàng)建數(shù)據(jù)庫(kù)5.2數(shù)據(jù)字典的編輯5.3建立表索引與表間關(guān)系49計(jì)算機(jī)系授課-5數(shù)據(jù)庫(kù)管理(一)5.1創(chuàng)建數(shù)據(jù)庫(kù)1計(jì)算機(jī)任務(wù)(高新考試第3.3題):
將C:\2006vfp\Unit3文件夾中的文件夾Y3-03復(fù)制到考生文件夾中,重命名為“X3-03”,然后新建項(xiàng)目管理器,并命名為“項(xiàng)目3-3”,保存在文件夾X3-03中完成下列操作。1.建立數(shù)據(jù)庫(kù)在“項(xiàng)目3-3”中新建數(shù)據(jù)庫(kù)“X3-03.dbc”,保存到文件夾X3-03中;將表Y3_03A.dbf、Y3_03B.dbf、Y3_03C.dbf添加到數(shù)據(jù)庫(kù)X3-03.dbc中。2.設(shè)置字段屬性在數(shù)據(jù)表Y3_03A.dbf,完成以下操作:設(shè)置“民族代碼”字段的默認(rèn)值為“01”;。為“民族代碼”字段添加字段注釋“01代表漢族”。50計(jì)算機(jī)系任務(wù)(高新考試第3.3題):2計(jì)算機(jī)系3.設(shè)置表屬性對(duì)數(shù)據(jù)表Y3_03B.dbf完成以下操作添加表注釋“該表為考生報(bào)名表”;設(shè)置“民族代碼”字段的“記錄有效性”,要求為該字段輸入的值必須為“01”、“02”、“03”或“04”;當(dāng)輸入字段“民族代碼”的值不是“01”、“02”、“03”或“04”時(shí),“信息”則提示“民族代碼必須用01、02、03或04代表,請(qǐng)重新輸入”,結(jié)果如樣文3-03A所示。4.建立字段索引和表之間的關(guān)系在數(shù)據(jù)表Y3_03A.dbf中設(shè)置字段“民族代碼”為主索引,Y3_03B.dbf中設(shè)置字段“報(bào)名序號(hào)”為主索引,設(shè)置字段“民族代碼”為普通索引。Y3_03C.dbf中設(shè)置字段“報(bào)名序號(hào)”為主索引。選擇正確的關(guān)聯(lián)字段,為表Y3_03A.dbf與Y3_03B.dbf建立一對(duì)多關(guān)系,為表Y3_03B.dbf與表Y3_03C.dbf建立一對(duì)一關(guān)系。結(jié)果如樣文3-03B所示。
51計(jì)算機(jī)系3.設(shè)置表屬性3計(jì)算機(jī)系
樣文3-03A
樣文3-03B
52計(jì)算機(jī)系樣文3-03A樣文3-03B4計(jì)算機(jī)系5.1創(chuàng)建數(shù)據(jù)庫(kù)【學(xué)習(xí)目標(biāo)】創(chuàng)建數(shù)據(jù)庫(kù)的基本操作【關(guān)鍵概念】建立數(shù)據(jù)庫(kù)添加數(shù)據(jù)庫(kù)表
53計(jì)算機(jī)系5.1創(chuàng)建數(shù)據(jù)庫(kù)【學(xué)習(xí)目標(biāo)】5計(jì)算機(jī)系【授課】P865.1.1建立數(shù)據(jù)庫(kù)VFP提供了3種建立數(shù)據(jù)庫(kù)的方法:
1.用項(xiàng)目管理器在[數(shù)據(jù)]選項(xiàng)中選擇[數(shù)據(jù)庫(kù)],然后點(diǎn)擊[新建]鈕,打開“新建”對(duì)話框,如下圖所示,點(diǎn)擊[新建文件]鈕。
54計(jì)算機(jī)系【授課】P866計(jì)算機(jī)系2.菜單方式在[文件]菜單中選擇[新建]命令,或單擊[常用]工具欄中的[新建]按鈕,打開“新建”對(duì)話框,如右圖所示。55計(jì)算機(jī)系2.菜單方式7計(jì)算機(jī)系3.命令方式
格式:CREATEDATABASE[數(shù)據(jù)庫(kù)名/?]功能:創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)并打開它。若命令中包含可選項(xiàng)或可選項(xiàng)選擇了“?”,則系統(tǒng)顯示一個(gè)對(duì)話框,請(qǐng)求用戶指定新數(shù)據(jù)庫(kù)的存取路徑和名稱。
[例如]建立cjk.dbc的命令如下:
CREADATAcjk56計(jì)算機(jī)系3.命令方式8計(jì)算機(jī)系【相關(guān)知識(shí)】5.1.2使用數(shù)據(jù)庫(kù)1.打開數(shù)據(jù)庫(kù)打開數(shù)據(jù)庫(kù)的方式有三種:
?通過(guò)“項(xiàng)目管理器”打開
?通過(guò)“打開”對(duì)話框打開
?使用命令打開
格式:OPENDATABASE[[EXCLUSIVE/SHARED];[NOUPDATE][VALIDATE]][例]打開數(shù)據(jù)庫(kù)cjk.dbc的命令如下:
OPENDATAcjk只讀檢查合法性57計(jì)算機(jī)系【相關(guān)知識(shí)】只讀檢查合法性9計(jì)算機(jī)系
2.指定當(dāng)前數(shù)據(jù)庫(kù):VFP可以打開多個(gè)數(shù)據(jù)庫(kù),但在同一時(shí)刻只有一個(gè)當(dāng)前數(shù)據(jù)庫(kù)。
?使用命令
命令:SETDATABASETO數(shù)據(jù)庫(kù)名?使用工具欄通過(guò)“常用”工具欄上的數(shù)據(jù)庫(kù)下拉列表選擇58計(jì)算機(jī)系2.指定當(dāng)前數(shù)據(jù)庫(kù):10計(jì)算機(jī)系3.修改數(shù)據(jù)庫(kù)修改數(shù)據(jù)庫(kù)實(shí)際上是打開數(shù)據(jù)庫(kù)設(shè)計(jì)器進(jìn)行修改
?通過(guò)“項(xiàng)目管理器”打開?通過(guò)“打開”對(duì)話框打開
?使用命令
格式:MODIFYDATABASE[數(shù)據(jù)庫(kù)名/?][NOWAIT][NOEDIT]參數(shù)說(shuō)明:
NOWAIT:打開數(shù)據(jù)庫(kù)設(shè)計(jì)器后繼續(xù)執(zhí)行程序(只在程序中使用,在命令窗口中無(wú)效)
NOEDIT:禁止對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改59計(jì)算機(jī)系3.修改數(shù)據(jù)庫(kù)11計(jì)算機(jī)系4.關(guān)閉數(shù)據(jù)庫(kù)命令格式:CLOSEDATABASE5.刪除數(shù)據(jù)庫(kù)
?使用項(xiàng)目管理器中“移去”按鈕
注:此種方法只刪除數(shù)據(jù)庫(kù),對(duì)庫(kù)中的表及其他對(duì)象不進(jìn)行刪除
?使用命令
格式:DELETEDATABASE[庫(kù)文件名/?];[DELETETABLES][RECYCLE]參數(shù)說(shuō)明:
DELETETABLES:刪除該數(shù)據(jù)庫(kù)中所含的表文件
RECYCLE:將刪除的文件放入回收站中60計(jì)算機(jī)系4.關(guān)閉數(shù)據(jù)庫(kù)參數(shù)說(shuō)明:12計(jì)算機(jī)系任務(wù)的第1點(diǎn):在“項(xiàng)目3-3”中新建數(shù)據(jù)庫(kù)“X3-03.dbc”,保存到文件夾X3-03中;將表Y3_03A.dbf、Y3_03B.dbf、Y3_03C.dbf添加到數(shù)據(jù)庫(kù)X3-03.dbc中。操作:先打開項(xiàng)目管理器“項(xiàng)目3-3”,在[數(shù)據(jù)]選項(xiàng)中選擇[數(shù)據(jù)庫(kù)],然后點(diǎn)擊[新建]鈕,打開“新建”對(duì)話框,點(diǎn)擊[新建文件]鈕。在建立好的數(shù)據(jù)庫(kù)中,再點(diǎn)擊[添加],添加各數(shù)據(jù)表。61計(jì)算機(jī)系任務(wù)的第1點(diǎn):13計(jì)算機(jī)系5.2數(shù)據(jù)字典的編輯【學(xué)習(xí)目標(biāo)】數(shù)據(jù)字典的編輯操作【關(guān)鍵概念】數(shù)據(jù)字典有效性規(guī)則
62計(jì)算機(jī)系5.2數(shù)據(jù)字典的編輯【學(xué)習(xí)目標(biāo)】14計(jì)算機(jī)系【任務(wù)第3.3題(上機(jī)-4)】2.設(shè)置字段屬性:在數(shù)據(jù)表Y3_03A.dbf,完成以下操作:
設(shè)置“民族代碼”字段的默認(rèn)值為“01”;。為“民族代碼”字段添加字段注釋“01代表漢族”。3.設(shè)置表屬性:對(duì)數(shù)據(jù)表Y3_03B.dbf完成以下操作添加表注釋“該表為考生報(bào)名表”;設(shè)置“民族代碼”字段的“記錄有效性”,要求為該字段輸入的值必須為“01”、“02”、“03”或“04”;當(dāng)輸入字段“民族代碼”的值不是“01”、“02”、“03”或“04”時(shí),“信息”則提示“民族代碼必須用01、02、03或04代表,請(qǐng)重新輸入”,結(jié)果如樣文3-03A所示。樣文3-03A63計(jì)算機(jī)系【任務(wù)第3.3題(上機(jī)-4)】樣文3-03A15計(jì)算機(jī)系【授課】5.2.1數(shù)據(jù)字典的編輯(P91)1.進(jìn)入表設(shè)計(jì)器(方法??)(1)使用項(xiàng)目管理器(2)使用數(shù)據(jù)庫(kù)設(shè)計(jì)器(3)使用命令
數(shù)據(jù)字典64計(jì)算機(jī)系【授課】數(shù)據(jù)字典16計(jì)算機(jī)系
【相關(guān)知識(shí)】
顯然,與自由表相比,數(shù)據(jù)庫(kù)表的表設(shè)計(jì)器多了數(shù)據(jù)字典等內(nèi)容。
數(shù)據(jù)字典(P91)
就是包含數(shù)據(jù)庫(kù)中所有表信息的一個(gè)表。存儲(chǔ)在數(shù)據(jù)字典中的信息稱之為元數(shù)據(jù),包括:長(zhǎng)表名、長(zhǎng)字段名、有效性規(guī)則、觸發(fā)器,表間永久關(guān)系以及數(shù)據(jù)庫(kù)對(duì)象的定義等。使用數(shù)據(jù)字典,可以設(shè)置字段級(jí)和記錄級(jí)的有效性檢查,保證主關(guān)鍵字字段內(nèi)容的唯一性。65計(jì)算機(jī)系【相關(guān)知識(shí)】17計(jì)算機(jī)系“格式”文本框中輸入格式化代碼,確定該字段在瀏覽窗口、表單和報(bào)表中顯示的格式,它是對(duì)字段格式進(jìn)行整體控制的。
字段級(jí)規(guī)則設(shè)置“輸入掩碼”文本框中鍵入掩碼代碼,輸入掩碼是按位來(lái)控制格式的。顯示的標(biāo)題改為自己希望的標(biāo)題
字段有效性規(guī)則就是用于數(shù)據(jù)輸入正確性的檢驗(yàn)。
說(shuō)明該字段的用途、特性、使用說(shuō)明等補(bǔ)充信息字段有效性信息是用于數(shù)據(jù)檢驗(yàn)發(fā)現(xiàn)不符合規(guī)則顯示的信息。
66計(jì)算機(jī)系“格式”文本框中輸入格式化代碼,確定該字段在瀏覽窗口、表單和2.設(shè)置字段級(jí)規(guī)則(重點(diǎn))字段級(jí)規(guī)則主要包括:顯示屬性、字段有效性和字段注釋等。(1)設(shè)置字段顯示屬性
格式:指定字段在瀏覽窗口、表單或報(bào)表中顯示和輸入數(shù)據(jù)的樣式;
輸入掩碼:用以限制或控制用戶輸入數(shù)據(jù)的格式,對(duì)非法輸入進(jìn)行屏蔽;
標(biāo)題:該字段在顯示時(shí)的名稱,可達(dá)128個(gè)字符。67計(jì)算機(jī)系2.設(shè)置字段級(jí)規(guī)則(重點(diǎn))19計(jì)算機(jī)系2.設(shè)置字段級(jí)規(guī)則(重點(diǎn))(2)對(duì)字段進(jìn)行有效性檢驗(yàn)字段有效性檢查是在完成特定字段的數(shù)據(jù)項(xiàng)輸入后,系統(tǒng)自動(dòng)檢查所輸入的數(shù)據(jù)項(xiàng)是否符合規(guī)則(3)匹配字段類型(4)為字段輸入注釋68計(jì)算機(jī)系2.設(shè)置字段級(jí)規(guī)則(重點(diǎn))20計(jì)算機(jī)系(5)設(shè)置記錄的有效性規(guī)則(6)設(shè)置觸發(fā)器69計(jì)算機(jī)系(5)設(shè)置記錄的有效性規(guī)則21計(jì)算機(jī)系3.設(shè)置記錄級(jí)規(guī)則記錄級(jí)規(guī)則主要包括記錄有效性、觸發(fā)器的設(shè)置和表注釋?!敖淌诘幕竟べY要≥1650元,其他職工為:550≤基本工資≤3000"
職稱="教授".AND.基本工資>=1650.OR.職稱#"教授".AND.(基本工資=>550.AND.基本工資<=3000)
每逢星期一才可做插入、追加、更新和刪除記錄的操作:CDOW(DATE())="Monday"
70計(jì)算機(jī)系3.設(shè)置記錄級(jí)規(guī)則“教授的基本工資要≥1650元,其他職工任務(wù)的第2、3點(diǎn)操作示范:2.設(shè)置字段屬性:(2分)
選Y3_03A.DBF,進(jìn)入表設(shè)計(jì)器;選“字段”選項(xiàng),選“民族代碼”字段;在“默認(rèn)值”內(nèi)輸入“01”;“字段注釋”內(nèi)輸入“01代表漢族”3.設(shè)置表屬性:(4分)
選Y3_03B.DBF,進(jìn)入表設(shè)計(jì)器;選“表”選項(xiàng),在表注釋內(nèi)輸入“該表為考生報(bào)名表”;選“字段”選項(xiàng),選“民族代碼”字段,在字段有效性的規(guī)則內(nèi)輸入:民族代碼="01".OR.民族代碼="02".OR.民族代碼="03".OR.民族代碼="04";“信息”內(nèi)輸入字符:"民族代碼的值必須用01、02、03或04代表,請(qǐng)重新輸入"71計(jì)算機(jī)系任務(wù)的第2、3點(diǎn)操作示范:23計(jì)算機(jī)系5.3建立表索引和表間關(guān)系【學(xué)習(xí)目標(biāo)】建立表索引和表間關(guān)系數(shù)據(jù)庫(kù)的操作【關(guān)鍵概念】索引的種類索引的建立和應(yīng)用表間永久關(guān)系的建立72計(jì)算機(jī)系5.3建立表索引和表間關(guān)系【學(xué)習(xí)目標(biāo)】24計(jì)算機(jī)系【任務(wù)第3.3題(上機(jī)-4)】4.建立字段索引和表之間的關(guān)系:在數(shù)據(jù)表Y3-03A.dbf中設(shè)置字段“民族代碼”為主索引,Y3-03B.dbf中設(shè)置字段“報(bào)名序號(hào)”為主索引,設(shè)置字段“民族代碼”為普通索引。Y3-03C.dbf中設(shè)置字段“報(bào)名序號(hào)”為主索引。選擇正確的關(guān)聯(lián)字段,為表Y3-03A.bf與Y3-03B.dbf建立一對(duì)多關(guān)系,為表Y3-03B.dbf與表Y3-03C.dbf建立一對(duì)一關(guān)系。結(jié)果如樣文3-03B所示。樣文3-03B73計(jì)算機(jī)系【任務(wù)第3.3題(上機(jī)-4)】樣文3-03B25計(jì)算機(jī)系【授課】5.3.1索引1.基本概念索引是按索引表達(dá)式使數(shù)據(jù)表中的記錄有序地進(jìn)行邏輯排列的技術(shù)。索引不改變當(dāng)前數(shù)據(jù)表記錄的物理順序,而是建立一個(gè)與數(shù)據(jù)表相對(duì)應(yīng)的索引文件。
?按文件擴(kuò)展名分為2類:?jiǎn)嗡饕募?.IDX)和復(fù)合索引文件(*.CDX)
?按索引功能分為4類:主索引、候選索引、普通索引和惟一索引。74計(jì)算機(jī)系【授課】26計(jì)算機(jī)系
?按文件結(jié)構(gòu)形式分為2類:①結(jié)構(gòu)復(fù)合索引文件:復(fù)合索引文件名與表名相同,打開表時(shí),索引文件將自動(dòng)打開。
②非結(jié)構(gòu)復(fù)合索引(獨(dú)立索引)文件:復(fù)合索引文件名與相關(guān)表不同(擴(kuò)展名仍為.CDX)。
我們把表中記錄實(shí)際排列次序稱為物理順序,此順序在輸入記錄時(shí)已確定;把由索引決定的順序稱為邏輯順序或索引順序。因此,索引只是改變了記錄的邏輯順序。75計(jì)算機(jī)系?按文件結(jié)構(gòu)形式分為2類:27計(jì)算機(jī)系2.簡(jiǎn)單索引的建立用表設(shè)計(jì)器建立索引(見(jiàn)后)用命令建立索引
格式:INDEXON<關(guān)鍵字表達(dá)式>TO索引文件名;[.IDX][UNIQUE][FOR條件][COMPACT]
功能:給當(dāng)前表中符合條件的記錄按給定的關(guān)鍵字表達(dá)式建立索引文件。
參數(shù)說(shuō)明:UNIQUE:表示建立惟一索引;COMPACT:表示建立一個(gè)壓縮的.IDX索引文件。注意:目前,簡(jiǎn)單索引已很少使用。76計(jì)算機(jī)系2.簡(jiǎn)單索引的建立28計(jì)算機(jī)系3.簡(jiǎn)單索引的打開與關(guān)閉
?索引的打開:
格式1:USE<表名>INDEX<索引文件名清單>
功能:打開表的同時(shí)打開多個(gè)簡(jiǎn)單索引
格式2:SETINDEXON<索引文件名清單>
功能:先打開數(shù)據(jù)表,然后才打開簡(jiǎn)單索引文件
?索引的關(guān)閉:
格式:SETINDEXTO
77計(jì)算機(jī)系3.簡(jiǎn)單索引的打開與關(guān)閉29計(jì)算機(jī)系4.復(fù)合索引的建立
在表設(shè)計(jì)器中建立索引(結(jié)構(gòu)復(fù)合索引)在“索引名”文本框中輸入索引標(biāo)識(shí)名
在“類型”列表框中,選定索引類型在“表達(dá)式”文本框中,輸入索引關(guān)鍵字表達(dá)式
向上箭頭為升序索引,向下箭頭為降序索引如果需要,可輸入篩選條件表達(dá)式78計(jì)算機(jī)系4.復(fù)合索引的建立在“索引名”文本框中輸入索引標(biāo)識(shí)名在“
用命令建立索引
格式:INDEXON關(guān)鍵字表達(dá)式TAG索引標(biāo)記;[OF獨(dú)立索引文件名][FOR條件];[ASCENDING/DESCENDING][UNIQUE];[CANDIDATE][ADDITIVE]
功能:對(duì)當(dāng)前表按給定的關(guān)鍵表達(dá)式建立索引。
參數(shù)說(shuō)明:
OF獨(dú)立索引文件名:缺省此項(xiàng),則建立結(jié)構(gòu)復(fù)合索引,文件名同表名,擴(kuò)展名為.CDX
FOR條件:只索引符合條件的記錄。
ASCENDING/DESCENDING:說(shuō)明建立升序或降序,默認(rèn)升序。
CANDIDATE:建立候選索引。
ADDITIVE:關(guān)閉以前的索引,使新建立的索引成為當(dāng)前索引。79計(jì)算機(jī)系用命令建立索引31計(jì)算機(jī)系5.主控索引的設(shè)置
若同時(shí)打開多個(gè)索引,則有一個(gè)起著主要作用,它決定著表的當(dāng)前邏輯順序,這個(gè)索引稱為主控索引。
格式:SETORDERTO<數(shù)值表達(dá)式>或<索引文件名>6.刪除索引
格式:DELETETAG索引標(biāo)識(shí)[OF非結(jié)構(gòu)索引文件名]
功能:刪除指定的索引。80計(jì)算機(jī)系5.主控索引的設(shè)置32計(jì)算機(jī)系7.復(fù)合索引打開與關(guān)閉
結(jié)構(gòu)復(fù)合索引文件隨表的打開而自動(dòng)打開,非結(jié)構(gòu)復(fù)合索引文件的打開、關(guān)閉同簡(jiǎn)單索引文件,使用命令:
格式1:USE表名INDEX獨(dú)立復(fù)合索引文件名表功能:打開表同時(shí)打開索引。
格式2:SETINDEXTO非結(jié)構(gòu)復(fù)合索引文件名表功能:?jiǎn)为?dú)打開索引。
格式3:SETORDERTO<TAG索引標(biāo)識(shí)/數(shù)值表達(dá)式>功能:指定主控索引。81計(jì)算機(jī)系7.復(fù)合索引打開與關(guān)閉33計(jì)算機(jī)系[例5.1]
為rsb.dbf按下列要求建立結(jié)構(gòu)復(fù)合索引文件。(1)記錄以姓名降序排列,索引標(biāo)識(shí)xm,索引類型為普通索引;(2)記錄以出生日期升序排列,索引標(biāo)識(shí)csrq,索引類型為唯一索引;(3)記錄以職稱降序排列,職稱相同的按出生日期降序排列,索引標(biāo)識(shí)zccsrq,索引類型為候選索引;
USErsbINDEON姓名TAGxmDESCLISTINDEON出生日期TAGcsrqUNIQLISTINDEON職稱+DTOC(出生日期)TAGzccsrq;DESCCANDLIST82計(jì)算機(jī)系[例5.1]為rsb.dbf按下列要求建立結(jié)構(gòu)復(fù)合索引文件【相關(guān)知識(shí)】索引的應(yīng)用:快速查找記錄需要建立索引的查找:FIND、SEEK不需要建立索引的查找:LOCAFIND查找:查找關(guān)鍵字段與所給常量表達(dá)式的值相符合的第一個(gè)記錄,若找到,指針指向該記錄;否則指向文件尾。
格式:FIND<常量表達(dá)式>功能:在當(dāng)前索引中快速查找并定位到與查找內(nèi)容相匹配的記錄。
說(shuō)明:見(jiàn)書。83計(jì)算機(jī)系【相關(guān)知識(shí)】35計(jì)算機(jī)系SEEK查找:查找關(guān)鍵字段與所給表達(dá)式的值相符合的第一個(gè)記錄,若找到,指針指向該記錄;否則指向文件尾。
格式:SEEK<表達(dá)式>功能:在當(dāng)前索引中快速查找并定位到與查找內(nèi)容相匹配的記錄。
說(shuō)明:見(jiàn)書84計(jì)算機(jī)系SEEK查找:36計(jì)算機(jī)系[例5.2]假設(shè)GZJ.DBF中有兩個(gè)以上的講師,并已按“職稱”字段建立了索引,若abc=“講師”,分別用FIND、SEEK
兩種方法查找第一個(gè)講師。用FIND查找:ABC=‘講師’USEGZJ
SETORDETOTAGZC
FIND&ABCDISP用SEEK查找:ABC=‘講師’USEGZJ
SETORDETOTAGZCSEEKABCDISP由此例看出:FIND查找的是常量,SEEK查找的是表達(dá)式。85計(jì)算機(jī)系[例5.2]假設(shè)GZJ.DBF中有兩個(gè)以上的講師,并已按“職5.3.2表間關(guān)系1.關(guān)系的類型
(1)永久關(guān)系:在數(shù)據(jù)庫(kù)表之間建立的一種關(guān)系,這種關(guān)系不僅在運(yùn)行時(shí)存在,而且一直保留。永久關(guān)系是數(shù)據(jù)庫(kù)表間的關(guān)系,它們存儲(chǔ)在數(shù)據(jù)庫(kù)文件中。永久關(guān)系不能控制相關(guān)表中記錄指針的移動(dòng)。(2)臨時(shí)關(guān)系:
在任意表之間建立的一種關(guān)系,自由表之間只能建立臨時(shí)關(guān)系,表一旦被關(guān)閉,則臨時(shí)關(guān)系不存在。在建立表間的臨時(shí)關(guān)系之后就會(huì)使得一個(gè)表(子表)的記錄指針自動(dòng)隨另一個(gè)表(父表)的記錄指針移動(dòng)而移動(dòng)。86計(jì)算機(jī)系5.3.2表間關(guān)系38計(jì)算機(jī)系2.父表和子表
父表:一對(duì)一或一對(duì)多的表關(guān)系中的主表或主控表。子表:一對(duì)一或一對(duì)多的表關(guān)系中的相關(guān)表或
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 服裝商務(wù)匯報(bào)
- 智能照明布線施工合同
- 借支逾期處理與催收
- 影視行業(yè)招投標(biāo)與合同管理流程
- 4S店店長(zhǎng)招聘合同模板
- 三亞市電動(dòng)自行車道路施工通告
- 稀土礦場(chǎng)地平整服務(wù)協(xié)議
- 在線培訓(xùn)系統(tǒng)服務(wù)器租賃合同
- 化妝品工程水暖系統(tǒng)施工合同
- 汽車制造招投標(biāo)管理流程
- 高一選科指導(dǎo)課件
- 生產(chǎn)檢驗(yàn)記錄表
- 化工廠設(shè)計(jì)車間布置設(shè)計(jì)
- 工業(yè)產(chǎn)品質(zhì)量安全風(fēng)險(xiǎn)管控清單及日管控、周排查、月調(diào)度記錄表
- 七年級(jí)上學(xué)期期中家長(zhǎng)會(huì) (共31張PPT)
- 聚合反應(yīng)工程基礎(chǔ)
- Linux操作系統(tǒng)實(shí)用教程-統(tǒng)信UOS 課件 第2章 國(guó)產(chǎn)操作系統(tǒng)圖形化界面使用
- 各種泥漿處理劑性能簡(jiǎn)介
- 排水管網(wǎng)清淤疏通方案(技術(shù)方案)
- 噴錫工藝參數(shù)與流程培訓(xùn)
- 全國(guó)文物保護(hù)工程施工一級(jí)資質(zhì)單位
評(píng)論
0/150
提交評(píng)論