版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Visual Foxpro 6.0程序設(shè)計基礎(chǔ)重慶工商大學(xué)計算機學(xué)院計算機基礎(chǔ)教研室數(shù)據(jù)表的分類排序 命令格式sort to on /a /d/c產(chǎn)生的表是關(guān)閉的(教科書P73)分類排序有什么缺點數(shù)據(jù)冗余無法自動更新數(shù)據(jù)表的索引排序 索引是按索引關(guān)鍵字表達式的值使數(shù)據(jù)表中的記錄有序排列的一種技術(shù),在Visual FoxPro系統(tǒng)中是借助于索引文件實現(xiàn)的。 1、什么是索引索引關(guān)鍵字的值、記錄號(教科書P74) Visual FoxPro系統(tǒng)提供了四種不同的索引類型,它們分別是:2、索引的類型主索引:僅適用于數(shù)據(jù)庫表,不允許關(guān)鍵字段有重復(fù)值,一個數(shù)據(jù)表只能建一個主索引。候選索引:不允許索引關(guān)鍵字段
2、有重復(fù)值普通索引:最常用的索引類型,無任何限制唯一索引:允許索引關(guān)鍵字段有重復(fù)值 Visual FoxPro系統(tǒng)支持單索引文件(.idx)和復(fù)合索引文件(.cdx)。3、索引文件的類型 (1)單索引文件(略) 單索引文件是每個索引存放在一個獨立的文件(.idx)中。 (2)結(jié)構(gòu)化復(fù)合索引文件 結(jié)構(gòu)化復(fù)合索引文件(.cdx)可以在同一個文件中包含多個索引,其中每個索引稱為索引標(biāo)識。 更重要的是,對于結(jié)構(gòu)復(fù)合索引,無論何時打開表文件,該索引都會自動打開。 其文件名與表名相同,一個表文件只產(chǎn)生一個結(jié)構(gòu)化復(fù)合索引文件。(3)獨立復(fù)合索引文件(略)4、索引的建立(教科書P75)Index on tag
3、ascending|descending 自動產(chǎn)生與表同名的.CDX文件結(jié)構(gòu)化復(fù)合索引文件的建立 (命令方式) 特別注意: 建立索引時,當(dāng)涉及到兩個或兩個以上的不同類型的字段時:1)順序若相同,則將非字符型轉(zhuǎn)換為字符型,然后用“+”連接成一個字符表達式。2)順序若不同,則以字符型字段的順序為準,若數(shù)字型字段的順序與字符型不同,則用一個較大數(shù)減去該字段,再轉(zhuǎn)化為字符型;若日期型字段的順序與字符型不同,則用一個較大的日期減去該字段,再轉(zhuǎn)化為字符型,然后用“+”連接成一個字符表達式?!纠?就學(xué)生表建立結(jié)構(gòu)復(fù)合索引文件,其中包含2個索引:(1)按學(xué)號的升序排列,編號相同的記錄只顯示第一條。(2)先按
4、性別升序,性別相同再按入學(xué)成績降序排列。 USE 學(xué)生 INDEX ON 學(xué)號 TAG sy1 UNIQUE INDEX ON 性別+STR(1000-入學(xué)成績) TAG sy2在表設(shè)計器中建立索引表設(shè)計器中的“索引”選項卡5、索引的使用 一個表文件可以建立多個索引,在操作中可以同時打開多個索引,但是任何時候只有一個索引起作用。 索引依賴于表文件而存在,它隨表的關(guān)閉而自動關(guān)閉。 當(dāng)前起作用的索引標(biāo)識稱為主控索引。 要使用索引必須滿足以下條件: 打開表; 確定主控索引; set order to tag (1)確定主控索引命令格式:(教科書P77)(2)刪除索引delete tag all |
5、(3)索引更新自動更新 使用索引文件后,雖然表中各記錄的物理順序并未改變。但記錄指針不再按物理順序移動,而是按主控索引文件中記錄的邏輯順序移動,于是整個表中的記錄是按索引關(guān)鍵表達式值排序的效果。 使用索引文件時,還要特別注意以下幾點: (1)在使用GO命令時,GO 使記錄指針指向具體的物理記錄號,而與索引無關(guān),而GO TOP|BOTTOM將使記錄指針指向邏輯首或邏輯尾記錄,這時GO TOP不再等同于GO 1。 (2)SKIP命令按邏輯順序移動記錄指針。 (3)表被打開后,記錄指針位于TOP位置?!纠?當(dāng)索引起作用時,分析記錄指針的移動規(guī)律。 USE 學(xué)生 INDEX ON 入學(xué)成績 TAG
6、sy3 GO 6 ? RECNO(),姓名 &顯示6 李勤奮 SKIP ? RECNO(),姓名 &顯示5 歐陽天地復(fù)合結(jié)構(gòu)索引文件的類型名稱是( )A)PJTB)PRGC)CDXD)MEM 不允許字段值出現(xiàn)重復(fù)的索引是( )。A)侯選索引和主索引 B)普通索引和惟一索引 C)惟一索引和主索引 D)惟一索引 自由表gz.dbf有姓名/C/8、出生年月/D、基本工資/N/6/2等字段,要建立以“姓名、基本工資”兩字段的組合索引,其索引關(guān)鍵字表達式是( )。姓名+基本工資 (B)“姓名”+“基本工資”(C)“姓名”+基本工資 (D) 姓名+str(基本工資,6,2)有數(shù)據(jù)表文件CJ.DBF,按姓名
7、(C,8)的升序,上機成績(N,6,2)的降序建立索引,正確的命令是( )。A.INDEX ON 姓名-上機成績 TAG CJIDX B.INDEX ON 姓名+STR(-上機成績,6,2) TAG CJIDXC.INDEX ON 姓名+STR(1000-上機成績) TAG CJIDXD.INDEX ON 姓名/A,上機成績/D TAG CJIDX 某數(shù)據(jù)表有字段:學(xué)號/C、生日/D、成績/N等。要建立學(xué)號、成績、生日的組合索引,其索引關(guān)鍵字表達式是( )。A)學(xué)號+成績+生日 B)學(xué)號+成績+生日C)學(xué)號+STR(成績,5,1)+STR(生日,8) D)學(xué)號+STR(成績,5,1)+DTOC
8、(生日,1) 多表操作 若要使用多個表,就要使用多個工作區(qū)。一個工作區(qū)是一個編號區(qū)域,它標(biāo)識一個已打開的表。在應(yīng)用程序中通常通過使用工作區(qū)號和工作區(qū)別名來標(biāo)識。 (教科書P82)1、工作區(qū)號 Visual foxPro提供了32767個工作區(qū),編號從1到32767。 每個工作區(qū)只允許打開一個表,一個表只能在一個工作區(qū)打開,系統(tǒng)默認的工作區(qū)為1號工作區(qū)。 2、別名(1)前十個工作區(qū)除了可用110來標(biāo)識外,還可用AJ來表示工作區(qū)的別名。 (2)定義別名use alias 格式:3、選擇當(dāng)前工作區(qū)select |如沒有給表定義別名,則可以用數(shù)據(jù)表名作為別名。 sele 0 表示選定當(dāng)前未使用的最小號
9、工作區(qū)。use in |不改變當(dāng)前工作區(qū)【例】 在不同的工作區(qū)分別打開學(xué)生.dbf、選課.dbf和課程.dbf 3個表,命令序列如下:CLOSE ALL & 關(guān)閉所有打開的文件SELECT 2USE 學(xué)生 & 選擇2號工作區(qū)打開學(xué)生表SELECT CUSE 課程 & 選擇3號工作區(qū)打開課程表USE 選課 IN 5 & 在5號工作區(qū)打開選課表 引用非當(dāng)前工作區(qū)表的字段必須冠以別名,引用格式為: 別名.字段名 別名-字段名【例】在1號工作區(qū)打開學(xué)生表,在2號工作區(qū)打開選課表;當(dāng)前工作區(qū)為1號,顯示選課表中當(dāng)前記錄的學(xué)號、姓名、課程號和成績字段的值。命令序列如下:(演示,并移動指針)CLOSE AL
10、L & 關(guān)閉所有打開的文件SELECT 1USE 學(xué)生 & 選擇1號工作區(qū)打開學(xué)生表USE 選課 IN 2 & 在2號工作區(qū)打開選課表,當(dāng)前工作區(qū)為1號? 學(xué)號,姓名,選課.課程號,選課-成績學(xué)生管理數(shù)據(jù)庫中的表 bof():文件開始的測試函數(shù) eof():文件結(jié)束的測試函數(shù) recno():返回當(dāng)前記錄號 sele():返回當(dāng)前工作區(qū)區(qū)號 4、工作區(qū)常用函數(shù)建立表間的關(guān)聯(lián)關(guān)系(臨時關(guān)系) 要在兩個或兩個以上的表之間進行數(shù)據(jù)操作時,通常有關(guān)聯(lián)和連接兩種方法。1、關(guān)聯(lián)的概念 每個工作區(qū)打開的表中都存在一個記錄指針,指針指向的記錄是當(dāng)前記錄,如果表之間沒有關(guān)系,則各個表的記錄指針相互獨立,即當(dāng)前工
11、作區(qū)指針移動時,其他工作區(qū)的指針不移動。所謂關(guān)聯(lián),就是讓不同工作區(qū)數(shù)據(jù)表的記錄指針建立一種臨時的聯(lián)動關(guān)系。使一個表的記錄指針移動時,能帶動另一個表的記錄指針按一定的條件作相應(yīng)地移動。前者稱為關(guān)聯(lián)表(主動表、父表),后者稱為被關(guān)聯(lián)表(被動表、子表)關(guān)鍵字為唯一值 關(guān)鍵字為唯一值 一一關(guān)鍵字為重復(fù)值 關(guān)鍵字為唯一值 多一關(guān)鍵字為唯一值 關(guān)鍵字為重復(fù)值 一多關(guān)鍵字為重復(fù)值 關(guān)鍵字為重復(fù)值 多多父表子表主動被動建立表間的關(guān)聯(lián) 建立數(shù)據(jù)庫文件中表間關(guān)聯(lián),一是要保證建立關(guān)系的表具有相同的字段值(關(guān)鍵字值);二是子表要以該字段建立索引。 建立兩個表之間的“一對一”和“多對一”關(guān)聯(lián)的步驟:找到兩個表中能夠建立
12、關(guān)聯(lián)的字段(字段名可以不同,類型、寬度、小數(shù)位數(shù)必須相同)根據(jù)關(guān)鍵字值確定父表,再確定子表;先打開子表,建立索引;最后打開父表建立關(guān)聯(lián)。有重復(fù)值為父表set rela to into , into additive說明:發(fā)出關(guān)聯(lián)命令所在工作區(qū)的表是父表建立關(guān)聯(lián)的命令(教科書P83)子表必須對關(guān)聯(lián)字段索引是關(guān)聯(lián)的關(guān)鍵字 不同名的字段只要類型和數(shù)值相同也可建立關(guān)聯(lián)。關(guān)聯(lián)后,父表指針移動帶動子表指針移動;而如果當(dāng)前工作區(qū)是子表,其指針移動,父表指針不會移動。實驗指導(dǎo)書P35 實驗15任務(wù)1(1)additive 一般用于三個或三個以上的表之間建立多重關(guān)聯(lián),第2、3個關(guān)聯(lián)使用該選項。關(guān)聯(lián)后,當(dāng)前工作區(qū)
13、字段名可以直接使用,子表的字段在使用時要加“別名.字段名”。set rela to recn()+N into 把記錄號作關(guān)鍵字建立關(guān)聯(lián)。關(guān)閉或重新打開數(shù)據(jù)表,關(guān)聯(lián)就會消失。(故稱為臨時關(guān)系)BB AASele 1Use AA inde on 字段 tag zdSele 2Use BBSet rela to 字段 into A(或 AA)字段sele 0use AAindex on 字段 tag zdsele 0use BBset relation to 字段 into AAAA BB CC或 BBAA CC字段1字段2字段13個表建關(guān)聯(lián)?字段2(見實驗書第16頁任務(wù)1)set skip to
14、 , 一般不用用在set relation命令之后,說明已建關(guān)聯(lián)的性質(zhì)為一對多關(guān)系。建立表間的一對多關(guān)系原則: 一般建立“多對一”或“一對一”的關(guān)聯(lián); 一般如果要求顯示的結(jié)果是按照某個字段值的順序排列,則包含該字段的表應(yīng)作父表。例: 在學(xué)生表和選課表中,顯示成績80分的學(xué)生的學(xué)號、姓名、所學(xué)課程的課程號和成績。學(xué)生管理數(shù)據(jù)庫中的表set safety offclose allclearselect 1use 學(xué)生 alias xsindex on 學(xué)號 tag xhselect 2use 選課set relation to 學(xué)號 into xs系統(tǒng)環(huán)境設(shè)置表環(huán)境設(shè)置list for 成績80f
15、ields 學(xué)號,xs.姓名,課程號, 成績close allset safety oncancel數(shù)據(jù)處理恢復(fù)系統(tǒng)環(huán)境 主索引與永久關(guān)系 有些數(shù)據(jù)表格和其他數(shù)據(jù)表格之間存在著某些關(guān)系,我們需要將這些有關(guān)系的數(shù)據(jù)表格納入同一個數(shù)據(jù)庫中,并建立其彼此之間的關(guān)系,使用者才能更好的運用數(shù)據(jù)表格,更容易達到數(shù)據(jù)管理的目的。1)主索引的建立 注意:只能為數(shù)據(jù)庫表建立主索引,不能為自由表創(chuàng)建主索引。當(dāng)從數(shù)據(jù)庫中移走有主索引的表而成為自由表時,他們的主關(guān)鍵字將會隨之消失。2)永久關(guān)系和臨時關(guān)系 永久性關(guān)系建立在數(shù)據(jù)庫本身,只要數(shù)據(jù)庫存在,永久關(guān)系就存在,不會因其他命令的執(zhí)行而消失。 在“數(shù)據(jù)庫設(shè)計器”窗口中
16、,兩個數(shù)據(jù)表格之間的連線,就是“永久性關(guān)系”。 (見教科書90頁圖5.3)字段之間的關(guān)系(不管是永久性的還是臨時性的),都是要靠索引來達成的,也就是說,某個字段欲建立關(guān)系,需先以此字段的內(nèi)容建立索引,再利用此索引建立關(guān)系。表之間的關(guān)系注意:建立“永久性關(guān)系”的父表必須以關(guān)鍵字建立主索引或侯選索引,而子表則可以以關(guān)鍵字建立任意類型的索引(一對一或一對多)。而建立“臨時關(guān)系”的父表可以不需建立索引,只需子表以關(guān)鍵字建立任意類型的索引即可(一對一或多對一) 。 永久關(guān)系連線的作用是在數(shù)據(jù)表格作“更新”、“刪除”、“新增”等動作時,對表格做一個檢查的動作,以符合某些規(guī)則。(而存儲這些規(guī)則的地方就是所謂
17、的“參考完整性”(RI)。) 在數(shù)據(jù)庫中的表建立永久關(guān)系后,可以設(shè)置管理相關(guān)記錄的規(guī)則。這些規(guī)則可以控制相關(guān)表中記錄的插入、刪除或更新操作。 見書P91表5.5 設(shè)置參照完整性(見教科書90-91頁)數(shù)據(jù)庫表之間創(chuàng)建的永久關(guān)系保存在( )中。A)數(shù)據(jù)庫表 B)數(shù)據(jù)庫 C)表設(shè)計器 D)數(shù)據(jù)環(huán)境設(shè)計器命令SELECT 0的功能是( )A)隨機選擇一個空閑工作區(qū)B)選擇區(qū)號最大的空閑工作區(qū)C)選擇當(dāng)前工作區(qū)號加1的工作區(qū)D)選擇區(qū)號最小的空閑工作區(qū) 建立兩個數(shù)據(jù)庫表的永久關(guān)系,要求( )A)兩個表都必須索引B)兩個表都不要索引C)只有父表必須索引,子表可以不需要索引D)只有子表必須索引,父表可以不需要索引下列敘述中,正確的是( )。A)一個工作區(qū)中只能打開一個表文件,打開新的表文件后,原來所打開的表文件自動關(guān)閉B)一個表文件可以在不同的工作區(qū)同時打開,并且表別名也相同C)一個工作區(qū)中可以同時打開多個表文件D)命令USE可以關(guān)閉所有工作區(qū)打開的表文件Use關(guān)閉當(dāng)前工作區(qū)的數(shù)據(jù)表Clear all
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026北京市順義區(qū)衛(wèi)生健康委員會招聘事業(yè)單位高層次人才3人筆試備考試題及答案解析
- 2026江西萍鄉(xiāng)建工集團有限公司直屬工程分公司(萍鄉(xiāng)城投建工集團有限公司)招聘10人考試備考題庫及答案解析
- 2026四川九州電子科技股份有限公司招聘項目管理崗1人筆試模擬試題及答案解析
- 2026年遼寧經(jīng)濟管理干部學(xué)院(遼寧經(jīng)濟職業(yè)技術(shù)學(xué)院)公開招聘高層次和急需緊缺人才40人(第一批)筆試備考試題及答案解析
- 培訓(xùn)班學(xué)生獎勵制度
- 架子鼓培訓(xùn)薪酬制度
- 培訓(xùn)班上課管理制度
- 駕駛員培訓(xùn)例會制度
- 酒店職工重復(fù)培訓(xùn)制度
- 食堂廚師操作培訓(xùn)制度
- 地坪漆施工方案范本
- 2025寧波市甬北糧食收儲有限公司公開招聘工作人員2人筆試參考題庫及答案解析
- 2026年國有企業(yè)金華市軌道交通控股集團招聘備考題庫有答案詳解
- 港口安全生產(chǎn)管理模版
- 產(chǎn)房與兒科交接登記表
- 2022-2023學(xué)年四川省宜賓市高一(下)期末數(shù)學(xué)試卷(含解析)
- 教你填《廣東省普通高中學(xué)生檔案》精編版
- 韓國語topik單詞-初級+中級
- 克林頓1993年就職演講+(中英文)
- 商業(yè)倫理與會計職業(yè)道德(第四版)第五章企業(yè)對外經(jīng)營道德規(guī)范
- DB13 5161-2020 鍋爐大氣污染物排放標(biāo)準
評論
0/150
提交評論