版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
VisualFoxpro6.0程序設計基礎重慶工商大學計算機學院計算機基礎教研室VisualFoxpro6.0程序設計基礎重慶工商大學計1數(shù)據(jù)表的分類排序
命令格式sortto<文件名>on<字段1>[/a][/d][/c]……產生的表是關閉的(教科書P73)數(shù)據(jù)表的分類排序命令格式sortto<文件名分類排序有什么缺點數(shù)據(jù)冗余無法自動更新分類排序有什么缺點數(shù)據(jù)冗余無法自動更新數(shù)據(jù)表的索引排序
索引是按索引關鍵字表達式的值使數(shù)據(jù)表中的記錄有序排列的一種技術,在VisualFoxPro系統(tǒng)中是借助于索引文件實現(xiàn)的。1、什么是索引索引關鍵字的值、記錄號(教科書P74)數(shù)據(jù)表的索引排序索引是按索引關鍵字表達式的值使數(shù)VisualFoxPro系統(tǒng)提供了四種不同的索引類型,它們分別是:2、索引的類型VisualFoxPro系統(tǒng)提供了四種不同的索引主索引:僅適用于數(shù)據(jù)庫表,不允許關鍵字段有重復值,一個數(shù)據(jù)表只能建一個主索引。候選索引:不允許索引關鍵字段有重復值普通索引:最常用的索引類型,無任何限制唯一索引:允許索引關鍵字段有重復值
主索引:僅適用于數(shù)據(jù)庫表,不允許關鍵字段有重復值,一個數(shù)據(jù)表VisualFoxPro系統(tǒng)支持單索引文件(.idx)和復合索引文件(.cdx)。3、索引文件的類型3、索引文件的類型(1)單索引文件(略)
單索引文件是每個索引存放在一個獨立的文件(.idx)中。(2)結構化復合索引文件
結構化復合索引文件(.cdx)可以在同一個文件中包含多個索引,其中每個索引稱為索引標識。
(1)單索引文件(略)(2)結構化復合索引文件更重要的是,對于結構復合索引,無論何時打開表文件,該索引都會自動打開。
其文件名與表名相同,一個表文件只產生一個結構化復合索引文件。(3)獨立復合索引文件(略)更重要的是,對于結構復合索引,無論何時打開表文件,該4、索引的建立(教科書P75)Indexon<索引關鍵字表達式>tag<索引標識名>[ascending|descending]……自動產生與表同名的.CDX文件結構化復合索引文件的建立(命令方式)4、索引的建立(教科書P75)Indexon<索引特別注意:
建立索引時,當<索引關鍵字表達式>涉及到兩個或兩個以上的不同類型的字段時:1)順序若相同,則將非字符型轉換為字符型,然后用“+”連接成一個字符表達式。特別注意:2)順序若不同,則以字符型字段的順序為準,若數(shù)字型字段的順序與字符型不同,則用一個較大數(shù)減去該字段,再轉化為字符型;若日期型字段的順序與字符型不同,則用一個較大的日期減去該字段,再轉化為字符型,然后用“+”連接成一個字符表達式。2)順序若不同,則以字符型字段的順序為準,若數(shù)字型字段的順序【例】就學生表建立結構復合索引文件,其中包含2個索引:(1)按學號的升序排列,編號相同的記錄只顯示第一條。(2)先按性別升序,性別相同再按入學成績降序排列。
USE學生INDEXON學號TAGsy1UNIQUEINDEXON性別+STR(1000-入學成績)TAGsy2【例】就學生表建立結構復合索引文件,其中包含2個索引:在表設計器中建立索引表設計器中的“索引”選項卡在表設計器中建立索引表設計器中的“索引”選項卡5、索引的使用一個表文件可以建立多個索引,在操作中可以同時打開多個索引,但是任何時候只有一個索引起作用。
索引依賴于表文件而存在,它隨表的關閉而自動關閉。5、索引的使用一個表文件可以建立多個索引,在操作中可
當前起作用的索引標識稱為主控索引。
要使用索引必須滿足以下條件:
打開表;確定主控索引;
當前起作用的索引標識稱為主控索引。
setorderto[[tag]<索引標識名>](1)確定主控索引命令格式:(教科書P77)(2)刪除索引deletetagall|<索引標識1>……(3)索引更新自動更新setorderto[[tag]<索引標識使用索引文件后,雖然表中各記錄的物理順序并未改變。但記錄指針不再按物理順序移動,而是按主控索引文件中記錄的邏輯順序移動,于是整個表中的記錄是按索引關鍵表達式值排序的效果。使用索引文件時,還要特別注意以下幾點:
(1)在使用GO命令時,GO<數(shù)值表達式>使記錄指針指向具體的物理記錄號,而與索引無關,而GOTOP|BOTTOM將使記錄指針指向邏輯首或邏輯尾記錄,這時GOTOP不再等同于GO1。(2)SKIP命令按邏輯順序移動記錄指針。(3)表被打開后,記錄指針位于TOP位置。使用索引文件后,雖然表中各記錄的物理順序并未改變【例】當索引起作用時,分析記錄指針的移動規(guī)律。
USE學生INDEXON入學成績TAGsy3GO6?RECNO(),姓名&&顯示6李勤奮SKIP?RECNO(),姓名&&顯示5歐陽天地【例】當索引起作用時,分析記錄指針的移動規(guī)律。復合結構索引文件的類型名稱是()A)PJT B)PRG C)CDX D)MEM不允許字段值出現(xiàn)重復的索引是()。
A)侯選索引和主索引
B)普通索引和惟一索引C)惟一索引和主索引
D)惟一索引自由表gz.dbf有姓名/C/8、出生年月/D、基本工資/N/6/2等字段,要建立以“姓名、基本工資”兩字段的組合索引,其索引關鍵字表達式是()。姓名+基本工資(B)“姓名”+“基本工資”(C)“姓名”+基本工資(D)姓名+str(基本工資,6,2)有數(shù)據(jù)表文件CJ.DBF,按姓名(C,8)的升序,上機成績(N,6,2)的降序建立索引,正確的命令是()。A.INDEXON姓名-上機成績TAGCJIDXB.INDEXON姓名+STR(-上機成績,6,2)TAGCJIDXC.INDEXON姓名+STR(1000-上機成績)TAGCJIDXD.INDEXON姓名/A,上機成績/DTAGCJIDX某數(shù)據(jù)表有字段:學號/C、生日/D、成績/N等。要建立學號、成績、生日的組合索引,其索引關鍵字表達式是()。A)學號+成績+生日B)"學號"+"成績"+"生日"C)學號+STR(成績,5,1)+STR(生日,8)D)學號+STR(成績,5,1)+DTOC(生日,1)復合結構索引文件的類型名稱是()不允許字段值出現(xiàn)重多表操作
若要使用多個表,就要使用多個工作區(qū)。一個工作區(qū)是一個編號區(qū)域,它標識一個已打開的表。在應用程序中通常通過使用工作區(qū)號和工作區(qū)別名來標識。
(教科書P82)多表操作若要使用多個表,就要使用多個工作區(qū)。一個工1、工作區(qū)號
VisualfoxPro提供了32767個工作區(qū),編號從1到32767。
每個工作區(qū)只允許打開一個表,一個表只能在一個工作區(qū)打開,系統(tǒng)默認的工作區(qū)為1號工作區(qū)。
1、工作區(qū)號2、別名(1)前十個工作區(qū)除了可用1~10來標識外,還可用A~J來表示工作區(qū)的別名。(2)定義別名use<文件名>alias<別名>格式:2、別名use<文件名>alias<別名>格式:3、選擇當前工作區(qū)select<工作區(qū)號>|<別名>如沒有給表定義別名,則可以用數(shù)據(jù)表名作為別名。
sele0表示選定當前未使用的最小號工作區(qū)。use<表名>in<工作區(qū)號>|<別名>不改變當前工作區(qū)3、選擇當前工作區(qū)select<工作區(qū)號>|<別名>如【例】在不同的工作區(qū)分別打開學生.dbf、選課.dbf和課程.dbf3個表,命令序列如下:CLOSEALL&&關閉所有打開的文件SELECT2USE學生&&選擇2號工作區(qū)打開學生表SELECTCUSE課程&&選擇3號工作區(qū)打開課程表USE選課IN5&&在5號工作區(qū)打開選課表【例】在不同的工作區(qū)分別打開學生.dbf、選課.dbf和課引用非當前工作區(qū)表的字段必須冠以別名,引用格式為:
別名.字段名別名->字段名引用非當前工作區(qū)表的字段必須冠以別名,引用格式【例】在1號工作區(qū)打開學生表,在2號工作區(qū)打開選課表;當前工作區(qū)為1號,顯示選課表中當前記錄的學號、姓名、課程號和成績字段的值。命令序列如下:(演示,并移動指針)CLOSEALL&&關閉所有打開的文件SELECT1USE學生&&選擇1號工作區(qū)打開學生表USE選課IN2&&在2號工作區(qū)打開選課表,當前工作區(qū)為1號?學號,姓名,選課.課程號,選課->成績【例】在1號工作區(qū)打開學生表,在2號工作區(qū)打開選課表;當前工學生管理數(shù)據(jù)庫中的表學生管理數(shù)據(jù)庫中的表
bof(<工作區(qū)>):文件開始的測試函數(shù)
eof(<工作區(qū)>):文件結束的測試函數(shù)
recno(<工作區(qū)>):返回當前記錄號
sele():返回當前工作區(qū)區(qū)號4、工作區(qū)常用函數(shù)bof(<工作區(qū)>):文件開始的測試函數(shù)4、工作區(qū)常用函數(shù)建立表間的關聯(lián)關系
(臨時關系)
要在兩個或兩個以上的表之間進行數(shù)據(jù)操作時,通常有關聯(lián)和連接兩種方法。建立表間的關聯(lián)關系
(臨時關系)要在兩個或兩個以1、關聯(lián)的概念每個工作區(qū)打開的表中都存在一個記錄指針,指針指向的記錄是當前記錄,如果表之間沒有關系,則各個表的記錄指針相互獨立,即當前工作區(qū)指針移動時,其他工作區(qū)的指針不移動。所謂關聯(lián),就是讓不同工作區(qū)數(shù)據(jù)表的記錄指針建立一種臨時的聯(lián)動關系。使一個表的記錄指針移動時,能帶動另一個表的記錄指針按一定的條件作相應地移動。前者稱為關聯(lián)表(主動表、父表),后者稱為被關聯(lián)表(被動表、子表)1、關聯(lián)的概念所謂關聯(lián),就是讓不同工作區(qū)數(shù)據(jù)表的記錄指針建立關鍵字為唯一值關鍵字為唯一值一一關鍵字為重復值關鍵字為唯一值多一關鍵字為唯一值關鍵字為重復值一多關鍵字為重復值關鍵字為重復值多多父表子表主動被動關鍵字為唯一值關鍵字為唯一值一一關鍵建立表間的關聯(lián)建立數(shù)據(jù)庫文件中表間關聯(lián),一是要保證建立關系的表具有相同的字段值(關鍵字值);二是子表要以該字段建立索引。建立表間的關聯(lián)建立兩個表之間的“一對一”和“多對一”關聯(lián)的步驟:①找到兩個表中能夠建立關聯(lián)的字段(字段名可以不同,類型、寬度、小數(shù)位數(shù)必須相同)②根據(jù)關鍵字值確定父表,再確定子表;③先打開子表,建立索引;④最后打開父表建立關聯(lián)。有重復值為父表建立兩個表之間的“一對一”和“多對一”關聯(lián)的步驟:有setrelato[<表達式1>into<別名1>,…,<表達式N>into<別名N>][additive]說明:①發(fā)出關聯(lián)命令所在工作區(qū)的表是父表建立關聯(lián)的命令(教科書P83)setrelato[<表達式1>into②子表必須對關聯(lián)字段索引③<表達式>是關聯(lián)的關鍵字
不同名的字段只要類型和數(shù)值相同也可建立關聯(lián)。④關聯(lián)后,父表指針移動帶動子表指針移動;而如果當前工作區(qū)是子表,其指針移動,父表指針不會移動。實驗指導書P35實驗15任務1(1)②子表必須對關聯(lián)字段索引實驗指導書P35實驗15任務1(1⑤[additive]一般用于三個或三個以上的表之間建立多重關聯(lián),第2、3…個關聯(lián)使用該選項。⑥關聯(lián)后,當前工作區(qū)字段名可以直接使用,子表的字段在使用時要加“別名.字段名”。⑦setrelatorecn()+Ninto<別名>把記錄號作關鍵字建立關聯(lián)。⑧關閉或重新打開數(shù)據(jù)表,關聯(lián)就會消失。(故稱為臨時關系)⑤[additive]一般用于三個或三個以上的表之間建立多BBAASele1UseAAindeon字段tagzdSele2UseBBSetrelato字段intoA(或AA)字段BBAASelesele0useAAindexon字段tagzdsele0useBBsetrelationto字段intoAAsele0AABBCC或BBAACC字段1字段2字段13個表建關聯(lián)?字段2(見實驗書第16頁任務1)AABBsetskipto[<別名1>[,<別名2>]…]一般不用用在setrelation命令之后,說明已建關聯(lián)的性質為一對多關系。建立表間的一對多關系setskipto[<別名1>[,<別名2>]原則:
一般建立“多對一”或“一對一”的關聯(lián);一般如果要求顯示的結果是按照某個字段值的順序排列,則包含該字段的表應作父表。原則:例:在學生表和選課表中,顯示成績<80分的學生的學號、姓名、所學課程的課程號和成績。例:在學生表和選課表中,顯示成績<80分的學生的學號、姓名學生管理數(shù)據(jù)庫中的表學生管理數(shù)據(jù)庫中的表setsafetyoffcloseallclearselect1use學生aliasxsindexon學號tagxhselect2use選課setrelationto學號intoxs系統(tǒng)環(huán)境設置表環(huán)境設置setsafetyoff系統(tǒng)環(huán)境設置表環(huán)境設置listfor成績<80fields學號,xs.姓名,課程號,成績closeallsetsafetyoncancel數(shù)據(jù)處理恢復系統(tǒng)環(huán)境listfor成績<80fields學號,xs.姓名主索引與永久關系
有些數(shù)據(jù)表格和其他數(shù)據(jù)表格之間存在著某些關系,我們需要將這些有關系的數(shù)據(jù)表格納入同一個數(shù)據(jù)庫中,并建立其彼此之間的關系,使用者才能更好的運用數(shù)據(jù)表格,更容易達到數(shù)據(jù)管理的目的。主索引與永久關系有些數(shù)據(jù)表格和其他數(shù)1)主索引的建立
注意:只能為數(shù)據(jù)庫表建立主索引,不能為自由表創(chuàng)建主索引。當從數(shù)據(jù)庫中移走有主索引的表而成為自由表時,他們的主關鍵字將會隨之消失。1)主索引的建立注意:只能為數(shù)據(jù)庫表建立主索引,不能為自由表2)永久關系和臨時關系
永久性關系建立在數(shù)據(jù)庫本身,只要數(shù)據(jù)庫存在,永久關系就存在,不會因其他命令的執(zhí)行而消失。2)永久關系和臨時關系永久性關系建立在數(shù)據(jù)庫本身,只在“數(shù)據(jù)庫設計器”窗口中,兩個數(shù)據(jù)表格之間的連線,就是“永久性關系”。
(見教科書90頁圖5.3)
字段之間的關系(不管是永久性的還是臨時性的),都是要靠索引來達成的,也就是說,某個字段欲建立關系,需先以此字段的內容建立索引,再利用此索引建立關系。
在“數(shù)據(jù)庫設計器”窗口中,兩個數(shù)據(jù)表格之間的連線,就表之間的關系表之間的關系注意:建立“永久性關系”的父表必須以關鍵字建立主索引或侯選索引,而子表則可以以關鍵字建立任意類型的索引(一對一或一對多)。 而建立“臨時關系”的父表可以不需建立索引,只需子表以關鍵字建立任意類型的索引即可(一對一或多對一)。注意:建立“永久性關系”的父表必須以關鍵字建立主索引或侯選索永久關系連線的作用是在數(shù)據(jù)表格作“更新”、“刪除”、“新增”等動作時,對表格做一個檢查的動作,以符合某些規(guī)則。(而存儲這些規(guī)則的地方就是所謂的“參考完整性”(RI)。)永久關系連線的作用是在數(shù)據(jù)表格作“更新”、“刪除”
在數(shù)據(jù)庫中的表建立永久關系后,可以設置管理相關記錄的規(guī)則。這些規(guī)則可以控制相關表中記錄的插入、刪除或更新操作。見書P91表5.5
設置參照完整性(見教科書90-91頁)在數(shù)據(jù)庫中的表建立永久關系后,可以設置管理相關記錄數(shù)據(jù)庫表之間創(chuàng)建的永久關系保存在()中。A)數(shù)據(jù)庫表B)數(shù)據(jù)庫C)表設計器D)數(shù)據(jù)環(huán)境設計器命令SELECT0的功能是()A)隨機選擇一個空閑工作區(qū) B)選擇區(qū)號最大的空閑工作區(qū)C)選擇當前工作區(qū)號加1的工作區(qū) D)選擇區(qū)號最小的空閑工作區(qū)建立兩個數(shù)據(jù)庫表的永久關系,要求()A)兩個表都必須索引 B)兩個表都不要索引C)只有父表必須索引,子表可以不需要索引D)只有子表必須索引,父表可以不需要索引下列敘述中,正確的是()。A)一個工作區(qū)中只能打開一個表文件,打開新的表文件后,原來所打開的表文件自動關閉B)一個表文件可以在不同的工作區(qū)同時打開,并且表別名也相同C)一個工作區(qū)中可以同時打開多個表文件D)命令USE可以關閉所有工作區(qū)打開的表文件Use關閉當前工作區(qū)的數(shù)據(jù)表Clearall關閉所有工作區(qū)的數(shù)據(jù)表,清除內存變量,并將當前工作區(qū)置為1號工作區(qū)Closeall關閉所有文件職工工資數(shù)據(jù)表按基本工資字段建立降序索引,然后執(zhí)行GOTOP命令,此時當前記錄指針指向的記錄是()。A)1號記錄 B)基本工資最少的記錄C)基本工資最多的記錄 D)不能確定下次課課前用于復習回顧如果在表之間的聯(lián)系中設置了參照完整性規(guī)則,并在刪除規(guī)則中選擇了“限制”,則當刪除父表中的記錄時,系統(tǒng)將如何處理?()(A)不做參照完整性檢查(B)不準刪除父表中的記錄(C)自動刪除子表中所有相關的記錄(D)若子表中有相關記錄,則禁止刪除父表中記錄數(shù)據(jù)庫表之間創(chuàng)建的永久關系保存在()中。命令SELEVisualFoxpro6.0程序設計基礎重慶工商大學計算機學院計算機基礎教研室VisualFoxpro6.0程序設計基礎重慶工商大學計56數(shù)據(jù)表的分類排序
命令格式sortto<文件名>on<字段1>[/a][/d][/c]……產生的表是關閉的(教科書P73)數(shù)據(jù)表的分類排序命令格式sortto<文件名分類排序有什么缺點數(shù)據(jù)冗余無法自動更新分類排序有什么缺點數(shù)據(jù)冗余無法自動更新數(shù)據(jù)表的索引排序
索引是按索引關鍵字表達式的值使數(shù)據(jù)表中的記錄有序排列的一種技術,在VisualFoxPro系統(tǒng)中是借助于索引文件實現(xiàn)的。1、什么是索引索引關鍵字的值、記錄號(教科書P74)數(shù)據(jù)表的索引排序索引是按索引關鍵字表達式的值使數(shù)VisualFoxPro系統(tǒng)提供了四種不同的索引類型,它們分別是:2、索引的類型VisualFoxPro系統(tǒng)提供了四種不同的索引主索引:僅適用于數(shù)據(jù)庫表,不允許關鍵字段有重復值,一個數(shù)據(jù)表只能建一個主索引。候選索引:不允許索引關鍵字段有重復值普通索引:最常用的索引類型,無任何限制唯一索引:允許索引關鍵字段有重復值
主索引:僅適用于數(shù)據(jù)庫表,不允許關鍵字段有重復值,一個數(shù)據(jù)表VisualFoxPro系統(tǒng)支持單索引文件(.idx)和復合索引文件(.cdx)。3、索引文件的類型3、索引文件的類型(1)單索引文件(略)
單索引文件是每個索引存放在一個獨立的文件(.idx)中。(2)結構化復合索引文件
結構化復合索引文件(.cdx)可以在同一個文件中包含多個索引,其中每個索引稱為索引標識。
(1)單索引文件(略)(2)結構化復合索引文件更重要的是,對于結構復合索引,無論何時打開表文件,該索引都會自動打開。
其文件名與表名相同,一個表文件只產生一個結構化復合索引文件。(3)獨立復合索引文件(略)更重要的是,對于結構復合索引,無論何時打開表文件,該4、索引的建立(教科書P75)Indexon<索引關鍵字表達式>tag<索引標識名>[ascending|descending]……自動產生與表同名的.CDX文件結構化復合索引文件的建立(命令方式)4、索引的建立(教科書P75)Indexon<索引特別注意:
建立索引時,當<索引關鍵字表達式>涉及到兩個或兩個以上的不同類型的字段時:1)順序若相同,則將非字符型轉換為字符型,然后用“+”連接成一個字符表達式。特別注意:2)順序若不同,則以字符型字段的順序為準,若數(shù)字型字段的順序與字符型不同,則用一個較大數(shù)減去該字段,再轉化為字符型;若日期型字段的順序與字符型不同,則用一個較大的日期減去該字段,再轉化為字符型,然后用“+”連接成一個字符表達式。2)順序若不同,則以字符型字段的順序為準,若數(shù)字型字段的順序【例】就學生表建立結構復合索引文件,其中包含2個索引:(1)按學號的升序排列,編號相同的記錄只顯示第一條。(2)先按性別升序,性別相同再按入學成績降序排列。
USE學生INDEXON學號TAGsy1UNIQUEINDEXON性別+STR(1000-入學成績)TAGsy2【例】就學生表建立結構復合索引文件,其中包含2個索引:在表設計器中建立索引表設計器中的“索引”選項卡在表設計器中建立索引表設計器中的“索引”選項卡5、索引的使用一個表文件可以建立多個索引,在操作中可以同時打開多個索引,但是任何時候只有一個索引起作用。
索引依賴于表文件而存在,它隨表的關閉而自動關閉。5、索引的使用一個表文件可以建立多個索引,在操作中可
當前起作用的索引標識稱為主控索引。
要使用索引必須滿足以下條件:
打開表;確定主控索引;
當前起作用的索引標識稱為主控索引。
setorderto[[tag]<索引標識名>](1)確定主控索引命令格式:(教科書P77)(2)刪除索引deletetagall|<索引標識1>……(3)索引更新自動更新setorderto[[tag]<索引標識使用索引文件后,雖然表中各記錄的物理順序并未改變。但記錄指針不再按物理順序移動,而是按主控索引文件中記錄的邏輯順序移動,于是整個表中的記錄是按索引關鍵表達式值排序的效果。使用索引文件時,還要特別注意以下幾點:
(1)在使用GO命令時,GO<數(shù)值表達式>使記錄指針指向具體的物理記錄號,而與索引無關,而GOTOP|BOTTOM將使記錄指針指向邏輯首或邏輯尾記錄,這時GOTOP不再等同于GO1。(2)SKIP命令按邏輯順序移動記錄指針。(3)表被打開后,記錄指針位于TOP位置。使用索引文件后,雖然表中各記錄的物理順序并未改變【例】當索引起作用時,分析記錄指針的移動規(guī)律。
USE學生INDEXON入學成績TAGsy3GO6?RECNO(),姓名&&顯示6李勤奮SKIP?RECNO(),姓名&&顯示5歐陽天地【例】當索引起作用時,分析記錄指針的移動規(guī)律。復合結構索引文件的類型名稱是()A)PJT B)PRG C)CDX D)MEM不允許字段值出現(xiàn)重復的索引是()。
A)侯選索引和主索引
B)普通索引和惟一索引C)惟一索引和主索引
D)惟一索引自由表gz.dbf有姓名/C/8、出生年月/D、基本工資/N/6/2等字段,要建立以“姓名、基本工資”兩字段的組合索引,其索引關鍵字表達式是()。姓名+基本工資(B)“姓名”+“基本工資”(C)“姓名”+基本工資(D)姓名+str(基本工資,6,2)有數(shù)據(jù)表文件CJ.DBF,按姓名(C,8)的升序,上機成績(N,6,2)的降序建立索引,正確的命令是()。A.INDEXON姓名-上機成績TAGCJIDXB.INDEXON姓名+STR(-上機成績,6,2)TAGCJIDXC.INDEXON姓名+STR(1000-上機成績)TAGCJIDXD.INDEXON姓名/A,上機成績/DTAGCJIDX某數(shù)據(jù)表有字段:學號/C、生日/D、成績/N等。要建立學號、成績、生日的組合索引,其索引關鍵字表達式是()。A)學號+成績+生日B)"學號"+"成績"+"生日"C)學號+STR(成績,5,1)+STR(生日,8)D)學號+STR(成績,5,1)+DTOC(生日,1)復合結構索引文件的類型名稱是()不允許字段值出現(xiàn)重多表操作
若要使用多個表,就要使用多個工作區(qū)。一個工作區(qū)是一個編號區(qū)域,它標識一個已打開的表。在應用程序中通常通過使用工作區(qū)號和工作區(qū)別名來標識。
(教科書P82)多表操作若要使用多個表,就要使用多個工作區(qū)。一個工1、工作區(qū)號
VisualfoxPro提供了32767個工作區(qū),編號從1到32767。
每個工作區(qū)只允許打開一個表,一個表只能在一個工作區(qū)打開,系統(tǒng)默認的工作區(qū)為1號工作區(qū)。
1、工作區(qū)號2、別名(1)前十個工作區(qū)除了可用1~10來標識外,還可用A~J來表示工作區(qū)的別名。(2)定義別名use<文件名>alias<別名>格式:2、別名use<文件名>alias<別名>格式:3、選擇當前工作區(qū)select<工作區(qū)號>|<別名>如沒有給表定義別名,則可以用數(shù)據(jù)表名作為別名。
sele0表示選定當前未使用的最小號工作區(qū)。use<表名>in<工作區(qū)號>|<別名>不改變當前工作區(qū)3、選擇當前工作區(qū)select<工作區(qū)號>|<別名>如【例】在不同的工作區(qū)分別打開學生.dbf、選課.dbf和課程.dbf3個表,命令序列如下:CLOSEALL&&關閉所有打開的文件SELECT2USE學生&&選擇2號工作區(qū)打開學生表SELECTCUSE課程&&選擇3號工作區(qū)打開課程表USE選課IN5&&在5號工作區(qū)打開選課表【例】在不同的工作區(qū)分別打開學生.dbf、選課.dbf和課引用非當前工作區(qū)表的字段必須冠以別名,引用格式為:
別名.字段名別名->字段名引用非當前工作區(qū)表的字段必須冠以別名,引用格式【例】在1號工作區(qū)打開學生表,在2號工作區(qū)打開選課表;當前工作區(qū)為1號,顯示選課表中當前記錄的學號、姓名、課程號和成績字段的值。命令序列如下:(演示,并移動指針)CLOSEALL&&關閉所有打開的文件SELECT1USE學生&&選擇1號工作區(qū)打開學生表USE選課IN2&&在2號工作區(qū)打開選課表,當前工作區(qū)為1號?學號,姓名,選課.課程號,選課->成績【例】在1號工作區(qū)打開學生表,在2號工作區(qū)打開選課表;當前工學生管理數(shù)據(jù)庫中的表學生管理數(shù)據(jù)庫中的表
bof(<工作區(qū)>):文件開始的測試函數(shù)
eof(<工作區(qū)>):文件結束的測試函數(shù)
recno(<工作區(qū)>):返回當前記錄號
sele():返回當前工作區(qū)區(qū)號4、工作區(qū)常用函數(shù)bof(<工作區(qū)>):文件開始的測試函數(shù)4、工作區(qū)常用函數(shù)建立表間的關聯(lián)關系
(臨時關系)
要在兩個或兩個以上的表之間進行數(shù)據(jù)操作時,通常有關聯(lián)和連接兩種方法。建立表間的關聯(lián)關系
(臨時關系)要在兩個或兩個以1、關聯(lián)的概念每個工作區(qū)打開的表中都存在一個記錄指針,指針指向的記錄是當前記錄,如果表之間沒有關系,則各個表的記錄指針相互獨立,即當前工作區(qū)指針移動時,其他工作區(qū)的指針不移動。所謂關聯(lián),就是讓不同工作區(qū)數(shù)據(jù)表的記錄指針建立一種臨時的聯(lián)動關系。使一個表的記錄指針移動時,能帶動另一個表的記錄指針按一定的條件作相應地移動。前者稱為關聯(lián)表(主動表、父表),后者稱為被關聯(lián)表(被動表、子表)1、關聯(lián)的概念所謂關聯(lián),就是讓不同工作區(qū)數(shù)據(jù)表的記錄指針建立關鍵字為唯一值關鍵字為唯一值一一關鍵字為重復值關鍵字為唯一值多一關鍵字為唯一值關鍵字為重復值一多關鍵字為重復值關鍵字為重復值多多父表子表主動被動關鍵字為唯一值關鍵字為唯一值一一關鍵建立表間的關聯(lián)建立數(shù)據(jù)庫文件中表間關聯(lián),一是要保證建立關系的表具有相同的字段值(關鍵字值);二是子表要以該字段建立索引。建立表間的關聯(lián)建立兩個表之間的“一對一”和“多對一”關聯(lián)的步驟:①找到兩個表中能夠建立關聯(lián)的字段(字段名可以不同,類型、寬度、小數(shù)位數(shù)必須相同)②根據(jù)關鍵字值確定父表,再確定子表;③先打開子表,建立索引;④最后打開父表建立關聯(lián)。有重復值為父表建立兩個表之間的“一對一”和“多對一”關聯(lián)的步驟:有setrelato[<表達式1>into<別名1>,…,<表達式N>into<別名N>][additive]說明:①發(fā)出關聯(lián)命令所在工作區(qū)的表是父表建立關聯(lián)的命令(教科書P83)setrelato[<表達式1>into②子表必須對關聯(lián)字段索引③<表達式>是關聯(lián)的關鍵字
不同名的字段只要類型和數(shù)值相同也可建立關聯(lián)。④關聯(lián)后,父表指針移動帶動子表指針移動;而如果當前工作區(qū)是子表,其指針移動,父表指針不會移動。實驗指導書P35實驗15任務1(1)②子表必須對關聯(lián)字段索引實驗指導書P35實驗15任務1(1⑤[additive]一般用于三個或三個以上的表之間建立多重關聯(lián),第2、3…個關聯(lián)使用該選項。⑥關聯(lián)后,當前工作區(qū)字段名可以直接使用,子表的字段在使用時要加“別名.字段名”。⑦setrelatorecn()+Ninto<別名>把記錄號作關鍵字建立關聯(lián)。⑧關閉或重新打開數(shù)據(jù)表,關聯(lián)就會消失。(故稱為臨時關系)⑤[additive]一般用于三個或三個以上的表之間建立多BBAASele1UseAAindeon字段tagzdSele2UseBBSetrelato字段intoA(或AA)字段BBAASelesele0useAAindexon字段tagzdsele0useBBsetrelationto字段intoAAsele0AABBCC或BBAACC字段1字段2字段13個表建關聯(lián)?字段2(見實驗書第16頁任務1)AABBsetskipto[<別名1>[,<別名2>]…]一般不用用在setrelation命令之后,說明已建關聯(lián)的性質為一對多關系。建立表間的一對多關系setskipto[<別名1>[,<別名2>]原則:
一般建立“多對一”或“一對一”的關聯(lián);一般如果要求顯示的結果是按照某個字段值的順序排列,則包含該字段的表應作父表。原則:例:在學生表和選課表中,顯示成績<80分的學生的學號、姓名、所學課程的課程號和成績。例:在學生表和選課表中,顯示成績<80分的學生的學號、姓名學生管理數(shù)據(jù)庫中的表學生管理數(shù)據(jù)庫中的表setsafetyoffcloseallclearselect1use學生aliasxsindexon學號tagxhselect2use選課setrelationto學號intoxs系統(tǒng)環(huán)境設置表環(huán)境設置setsafetyoff系統(tǒng)環(huán)境設置表環(huán)境設置listfor成績<80fields學號,xs.姓名,課程號,成績closeallsetsafetyoncancel數(shù)據(jù)處理恢復系統(tǒng)環(huán)境listfor成績<80fields學號,xs.姓名主索引與永久關系
有些數(shù)據(jù)表格和其他數(shù)據(jù)表格之間存在著
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遙感影像解譯與空間信息提取-洞察分析
- 藥物篩選與高通量技術-洞察分析
- 《網絡是把雙刃劍》課件
- 2024年柳州華僑醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 2025年粵教新版九年級歷史下冊階段測試試卷
- 養(yǎng)殖場糞污處理合同(2篇)
- 2024年05月山西山西銀行社會招考筆試歷年參考題庫附帶答案詳解
- 中位線定理課件
- 2024年05月山東中國民生銀行濟南分行社會招考(512)筆試歷年參考題庫附帶答案詳解
- 2025年人教新起點高二化學上冊月考試卷含答案
- 基于STEAM教育的小學德育創(chuàng)新實踐研究
- 2024年03月山東煙臺銀行招考筆試歷年參考題庫附帶答案詳解
- 河道綜合治理工程施工組織設計
- 安徽省合肥市蜀山區(qū)2024-2025學年七年級上學期地理期末模擬練習(含答案)
- 新建設項目施工人員安全教育培訓課件
- 江蘇省揚州市2024-2025學年高中學業(yè)水平合格性模擬考試英語試題(含答案)
- 品質總監(jiān)轉正述職報告
- 2024年游艇俱樂部會員專屬活動策劃與執(zhí)行合同3篇
- 《項目管理培訓課程》課件
- 2024年企業(yè)團購:銷售合作協(xié)議3篇
- 2024-2025學年八年級語文上學期期末真題復習 專題06 文言文閱讀
評論
0/150
提交評論