




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
本章內容簡介本章介紹數據庫與數據表的設計、創立、使用及表屬性的設置。學習目標理解關系型數據庫保存數據的特點,重點掌握數據庫中表間的聯系,學習數據庫與數據表的設計、建立與使用的方法,學會在VisualFoxPro中操作數據庫與數據表。通過對本章學習,理論上要求能深入地理解關系型數據庫的特點,掌握設計數據庫表的方法,理解索引的功能和數據完整性的意義。學習切入點及方法以數據管理的需求分析為切入點,通過分析數據庫的表間聯系來加深對關系型數據庫的理解,多上機練習,掌握數據庫與數據表的操作方法。建議學時課堂講授8~10學時,上機15~20學時。另外學生在課后應有預習、復習及練習設計各種不同的數據庫的時間。2023/7/2013.1設計數據庫3.2數據庫的創立和操作3.3數據表的創立3.4數據表的根本操作3.5索引3.6數據完整性2023/7/202VisualFoxPro是一個關系數據庫管理系統。關系型數據庫管理系統以表的形式管理所有的數據。數據庫:指存儲在外存上的有結構的數據集合。在VisualFoxPro中,數據庫用于存儲數據庫表的屬性,組織、關聯表和視圖,創立存儲過程。在VisualFoxPro中,表分為數據庫表和自由表兩類。屬于某一數據庫的表稱為數據庫表;不屬于任何數據庫而獨立存在的表稱為自由表。2023/7/203設計數據庫一般包括以下幾個根本過程:1.分析數據需求:確定需要數據庫保存那些信息。2.確定需要的表:按不同的主題將信息分配到不同的數據表中。3.確定所需字段:確定每個表中要保存哪些信息。4.確定表間聯系:分析數據庫中的表間聯系。5.完善設計:對設計進一步分析,查找錯誤,對設計方案進一步完善。在數據庫應用系統中,數據庫的設計是一項非常重要的工作,數據庫性能的優劣將直接影響到最終應用系統的性能。經過長期摸索,人們提出了數據庫設計方法以及各種設計準那么和規程,這就是標準化設計方案。3.1設計數據庫確定所需字段包括以下幾個方面:
1.字段唯一性2.字段無關性
3.使用主關鍵字4.外部關鍵字
5.收集所需的全部信息6.以最小的邏輯單位存儲信息2023/7/204設計數據庫3.1.1分析數據需求數據庫設計的第一步是明確數據庫的使用目的。需要從數據庫中得到哪些信息,數據庫是作什么用途。明確目的之后,才可以確定需要保存哪些主題的信息〔表〕,以及每個主題需要保存哪些信息〔字段〕,這些主題之間的關系如何。3.1.2確定數據庫表在關系型數據庫中,每一個關系都是一個二維表。在一個數據庫中可以有假設干個關聯的二維表〔關系〕。
確定所需字段字段:是表中最小的數據單位,決定了表中要保存的信息類型。為了保證數據的不多余性且不遺漏信息,在確定表中所需字段時應考慮字段的唯一性、無關性及主關鍵字和外部關鍵字等要求。2023/7/2053.1.4確定表間聯系VisualFoxPro將表間的聯系歸結為3種:一對一、一對多和多對多。3.1.4.1一對一聯系如果A表的一個記錄在B表中只能對應一個記錄,而B表中的一個記錄在A表中也只能有一個記錄與之對應,那么兩表之間就是一對一的聯系。例如:一個單位人事部的職工表和財務部的工資表就是一對一的聯系。2023/7/2063.1.4確定表間聯系3.1.4.2一對多聯系如果對于A表中的任意一個記錄,在B表中可以有多個記錄與之對應,但反過來B表中的任意記錄,在A表中只有一個記錄與之對應,那么兩表之間就是一對多的聯系。在一對多聯系中,位于“一〞端的表稱為父表,和父表關聯的那個表為子表。父表也稱為主表或主控表,子表又稱為相關表或受控表。在一對一或一對多聯系中,位于“一〞端的表中用于建立聯系的字段必須是主關鍵字字段,而位于“多〞端的表中用于建立聯系的字段是外部關鍵字字段。2023/7/2073.1.4確定表間聯系3.1.4.2一對多聯系例如學校里的班級和學生:一個班級有多個學生,而一個學生只能在一個班級里,所以班級和學生之間就是一對多的聯系。班級表和學生表通過編號建立起了一對多聯系。一對多關系示意圖2023/7/2083.1.4確定表間聯系3.1.4.3多對多聯系如果A表的一個記錄在B表中可以對應多個記錄,同樣B表中的一個記錄在A表中也可以對應多個記錄,那么兩表之間就是多對多的聯系。在設計數據庫時,應將多對多聯系分解成兩個一對多聯系,其方法就是在具有多對多聯系的兩個表之間創立第三個表。用于分解多對多聯系的表稱為“紐帶表〞。因為它在兩表之間起著紐帶的作用,可以把兩個表的主關鍵字都放在這個紐帶表中。紐帶表可以只包含它所鏈接的兩個表的主關鍵字,也可以包含其它信息。在紐帶表中,兩個字段連在一起就能使每個記錄具有唯一值。2023/7/2093.1.4確定表間聯系3.1.4.3多對多聯系例如學校里的課程和學生:一門課程有多個學生學習,而一個學生也要學習多門課程,所以課程和學生之間就是多對多的聯系。因為學生學習的每門課程都有相應的成績,可以通過成績將課程和學生聯系起來。“成績〞表就是“學生〞表和“課程〞表之間的紐帶表。多對多關系的分解2023/7/20103.1.4確定表間聯系3.1.4.3多對多聯系多對多關系分解成兩個一對多關系的分解示意圖2023/7/20113.1.5完善數據庫設計在試驗最初的數據庫時,很可能會發現需要改進的地方。①是否遺忘了字段?是否有需要的信息沒有包括進去?如果是,是否屬于已創立的表?如果不在創立的表中,需要另外創立一個表。②是否為每個表選擇了適宜的主關鍵字?在使用主關鍵字查找記錄時,它是否很容易記憶和輸入?要確保主關鍵字值不會出現重復。③是否在某個表中重復輸入了同樣的信息?如果是,需要考慮將此表分成兩個一對多聯系的表。④是否有字段很多、記錄卻很少的表,而且許多記錄中的字段值為空?如果是,要考慮重新設計該表,使它的字段減少,記錄增多。2023/7/20123.1.6例如數據庫:“世界杯〞數據需求:存放各屆足球世界杯舉辦的時間、地點、參賽隊以及冠軍、最正確球員、最正確射手歸屬等方面的信息。可以查出每屆的參賽隊成績、每屆的冠軍、最正確球員、最正確射手的信息;以及每個參賽隊參賽次數、參賽成績等信息。設計要求:數據表信息如下:“基本信息”各屆世界杯的基本信息,如:舉辦的時間、地點、舉辦國、是否點球決以及冠軍得主等。“參賽隊”參賽隊的有關信息。包括參賽隊名稱,所屬的地區(在哪個洲)等。“參賽成績”各個參賽隊的在歷屆世界杯中的比賽成績。“最佳球員”歷屆世界杯所評選的最佳球員的信息。“最佳射手”歷屆世界杯所評選的最佳射手的信息。2023/7/2013字段及主關鍵字:屆次、日期、舉辦國、隊數、冠軍、點球決勝、舉辦背景、照片。參賽隊、地區、備注。屆次、參賽隊、成績。屆次、姓名、國籍。“根本信息〞“參賽隊〞“參賽成績〞“最正確球員〞“最正確射手〞屆次、姓名、國籍、進球數。3.1.6例如數據庫:“世界杯〞2023/7/2014世界杯數據庫中各表間關系表間關系:3.1.6例如數據庫:“世界杯〞2023/7/2015創立數據庫的常用方法有以下3種:1.在“工程管理器〞中創立數據庫;2.使用“文件〞菜單的“新建〞命令創立數據庫;3.在“命令〞窗口中輸入創立數據庫的命令。
VisualFoxPro數據庫文件的擴展名是.DBC。建立.DBC文件的同時,自動建立.DCT〔備注〕和.DCX〔索引〕文件。3.2數據庫的建立和操作3.2.1創立數據庫2023/7/2016例如,在工程管理器中創立數據庫。在前面已創立的“世界杯〞工程中創立數據庫的操作步驟如下:①在“世界杯〞工程中選擇“數據〞選項,選擇“數據庫〞,單擊“新建〞按鈕,翻開“新建數據庫〞對話框。②在“新建數據庫〞對話框中單擊“新建數據庫〞按鈕,翻開“創立〞對話框。③在“創立〞對話框的“數據庫名〞文本框中輸入“世界杯〞作為數據庫文件的名稱;選擇保存數據庫文件的文件夾“D:\世界杯〞;保存類型為默認的“數據庫〔*.DBC〕〞。④單擊“保存〞按鈕,翻開“數據庫設計器〞對話框。3.2數據庫的建立和操作3.2.1創立數據庫2023/7/20173.2.2操作數據庫3.2.2.1在工程中添加/移出數據庫3.2.2.2翻開/關閉數據庫3.2.2.3翻開數據庫設計器“數據庫設計器〞窗口是一個帶有工具欄的設計窗口。“數據庫設計器〞工具欄一般隨“數據庫設計器〞窗口同時翻開,如果“數據庫設計器〞工具欄沒有翻開,可選“顯示〞菜單下的“工具欄〞命令,在“工具欄〞對話框中選中“數據庫設計器〞工具欄將其翻開。“數據庫設計器”和“數據庫設計器”工具欄3.2.2.4給數據庫添加注釋3.2.2.5使用多個數據庫3.2.2.6數據庫錯誤
2023/7/20183.2.2.7操作數據庫的常用命令3.2.2操作數據庫建立數據庫:CREATEDATABASE<數據庫名>翻開數據庫:OPENDATABASE<數據庫名>翻開數據庫設計器:MODIFYDATABASE[<數據庫名>]設置當前數據庫:SETDATABASETO[<數據庫名>]顯示當前數據庫結構:DISPLAYDATABASE[<數據庫名>]關閉數據庫:CLOSEDATABASE[ALL]刪除數據庫:DELETEDATABASE<數據庫名>2023/7/20193.3數據表的創立前面建立的“世界杯〞數據庫還是一個空數據庫。在使用“世界杯〞數據庫之前,需要先將前面為這個數據庫設計的的5個表:“根本信息〞、“參賽隊〞、“參賽成績〞、“最正確射手〞和“最正確球員〞表建立起來。在VisualFoxPro中,創立一個新表分為兩個步驟:步驟一:創立表的結構。即說明表包含哪些字段,每個字段的長度及數據類型等。步驟二:輸入記錄。即向表中輸入數據。2023/7/20203.3數據表的創立3.3.1建立表結構3.3.1.1表的特征表可存儲假設干條記錄。每條記錄可以有假設干個字段,而且每條記錄的字段結構相同,也就是具有相同的字段名、字段類型和字段順序。字段可以是不同的類型,以便存儲不同類型的數據。記錄中每個字段的順序與存儲的數據無關。每條記錄在表中的順序與存儲的數據無關。2023/7/20213.3數據表的創立3.3.1建立表結構3.3.1.2設計字段屬性一個表中的所有字段組成了表的結構,字段屬性決定了表的結構。
字段屬性包括:字段名稱、類型、寬度、小數位數及是否允許為空。字段類型說明2023/7/20223.3數據表的創立3.3.1建立表結構3.3.1.3創立數據庫表可以使用以下3種方法啟動數據庫表的創立:方法一:在“工程管理器〞中選擇“數據庫〞的“表〞選項,單擊“新建〞按鈕,即可創立屬于該數據庫的數據庫表。方法二:在“數據庫設計器〞中,從“數據庫〞菜單中選擇“新建表〞命令或單擊“數據庫設計器〞工具欄上的“新建表〞按鈕。方法三:選擇“文件〞菜單中的“翻開〞命令翻開數據庫,然后再選擇“文件〞菜單中的“新建〞命令來創立表,此時創立的新表自動成為當前數據庫中的數據庫表。2023/7/20233.3數據表的創立3.3.1建立表結構3.3.1.3創立數據庫表采用前述3種方法,都將進入創立方法選擇框,可以選擇表向導或表設計器來創立數據庫表。下面將分別采用表設計器和表向導來創立世界杯數據庫中的4個數據庫表,而“根本信息〞表,可以從自由表轉為數據庫表。為方便管理,在“D:\世界杯〞下創立一個名為“表〞的文件夾,用于存放所有創立的表。保存類型為“表/DBF〔*.DBF〕〞,將創立的表保存為.DBF文件。2023/7/20243.3數據表的創立3.3.1建立表結構3.3.1.3創立數據庫表“世界杯”數據庫中的5個表表結構創立完成后,將得到右圖所示的工程管理器窗口,顯示世界杯數據庫中的5個數據表。2023/7/20253.3數據表的創立3.3.2記錄的輸入和刪除3.3.2.2瀏覽窗口的使用1.瀏覽記錄滾動條、Tab鍵、Shift+Tab鍵、PageUp鍵、PageDown鍵當前記錄:記錄指針查看備注型或通用型字段:雙擊該字段。2.改變列寬和行高3.調整字段順序在瀏覽窗口改變列寬和列的排列順序不會影響字段的實際結構。4.翻開或關閉網格線選擇“顯示〞菜單中的“網格線〞命令可顯示或隱藏瀏覽窗口中的網格線。2023/7/20263.3數據表的創立3.3.2記錄的輸入和刪除5.切換顯示方式兩種顯示方式:瀏覽方式和編輯方式2023/7/20273.3數據表的創立3.3.2記錄的輸入和刪除6.拆分瀏覽窗口將鼠標指向窗口左下角的拆分條,鼠標指針變為左右箭頭對接的形狀,將拆分條拖到所需的位置。
調整拆分窗口的大小,只需向左或向右拖動拆分條即可。默認情況下,兩個窗口是鏈接的。取消“表〞菜單中“鏈接分區〞的選中狀態,可以中斷兩個窗口之間的聯系,使它們的功能相對獨立。拆分“瀏覽〞窗口可以查看同一表中的兩個不同區域或者分別用瀏覽和編輯方式查看同一記錄。2023/7/20283.3數據表的創立3.3.2記錄的輸入和刪除3.3.2.3追加記錄利用其他表中已有的相同內容,可以快速給新表追加記錄。1.追加源表中的所有記錄①將需要追加記錄的表在瀏覽窗口中翻開。②選擇“表〞菜單下“追加記錄〞命令。
2.有選擇的追加記錄和字段在“追加來源〞對話框中單擊“選項〞按鈕,翻開“追加來源選項〞對話框。如只想追加第8屆世界杯的記錄,表達式為:屆次=〞08〞〔因屆次為查找方便定義成字符型,字段變量的值應加上英文雙引號〕。2023/7/20293.3數據表的創立3.3.2記錄的輸入和刪除3.3.2.1在瀏覽窗口中輸入記錄在“工程管理器〞中選擇表,單擊“瀏覽〞按鈕即可翻開“瀏覽〞窗口。翻開“瀏覽〞窗口后,選擇“顯示〞菜單下的“追加方式〞命令,即可在“瀏覽〞窗口中輸入數據。在輸入記錄的字段值時,只能輸入數據類型有效的值。備注型字段和通用型字段的內容不能直接在“瀏覽〞窗口中輸入。雙擊該字段,翻開專門的備注型字段或通用型字段輸入窗口,即可在其中輸入備注型字段或通用型字段的內容。輸入完所有的記錄后,單擊瀏覽窗口右上角的關閉按鈕。2023/7/20303.3數據表的創立3.3.2記錄的輸入和刪除3.3.2.4修改記錄內容在“瀏覽〞窗口中修改表中字段的內容,只需找到記錄中要修改的字段所在的單元格,輸入正確的內容即可。編輯“備注型〞字段,可在“瀏覽〞窗口中雙擊該字段。這時會翻開一個“編輯〞窗口,其中顯示了“備注型〞字段的內容。通過雙擊“瀏覽〞窗口中的“通用型〞字段,可以編輯這個對象。2023/7/20313.3數據表的創立3.3.2記錄的輸入和刪除3.3.2.5刪除記錄在VisualFoxPro中刪除記錄的過程,分為兩大步驟:第一步:對要刪除的記錄作刪除標記,又稱為邏輯刪除。第二步:徹底刪除,又稱為物理刪除。在瀏覽窗口中,記錄前的小方塊就是記錄的刪除標記條。記錄刪除標記條變成了黑色,表示記錄已被作了刪除標記。此時系統就不能對記錄進行任何操作,但記錄仍然保存在表中。對已作了刪除標記的記錄,用戶既可以將其徹底刪除,也可以將其恢復。2023/7/20323.3數據表的創立3.3.2記錄的輸入和刪除3.3.2.5刪除記錄條件刪除:使用“刪除〞對話框進行條件刪除。①翻開“瀏覽〞窗口。②選擇“表〞下“刪除記錄〞,出現“刪除〞對話框。③在“作用范圍〞列表框中選擇操作范圍:All:全部記錄。Next:從當前記錄開始的假設干個記錄。Record:特指某個記錄。Rest:從當前記錄開始直到最后一個記錄。“刪除”對話框1.作刪除標記逐一刪除:在瀏覽窗口中,用鼠標單擊記錄前的刪除標記條,使其變黑,就給該記錄加上了刪除標記。④選擇“For〞或“While〞構造邏輯表達式來設置刪除記錄需要滿足的條件。⑤單擊“刪除〞,符合條件的記錄打上刪除標記。2023/7/20333.3數據表的創立3.3.2記錄的輸入和刪除3.3.2.5刪除記錄2.徹底刪除假設要將已作了刪除標記的記錄真正地從表中刪除,從“表〞菜單中選擇“徹底刪除〞命令,在彈出的“移去已刪除記錄〞對話框中單擊“是〞按鈕也可以在“命令〞窗口使用PACK命令。3.刪除全部記錄如果想刪除表中的所有記錄,只留下表的結構,可使用ZAP命令。在“命令〞窗口中輸入“ZAP〞命令將徹底刪除表中的所有記錄。注意:此命令破壞性極大,應慎用。2023/7/20343.3數據表的創立3.3.2記錄的輸入和刪除3.3.2.6復原記錄標記記錄并不等于刪除記錄。可以撤銷刪除標記,恢復成原來的狀態。逐一恢復:用鼠標單擊記錄前的刪除標記,使其恢復為白色,取消刪除標記。條件恢復:“表〞菜單中的“恢復記錄〞命令。操作和“刪除記錄〞命令相似。注意:執行“徹底刪除〞命令后,帶有刪除標記的記錄被從磁盤上徹底刪除。被徹底刪除的記錄不能再用“恢復記錄〞命令恢復。2023/7/20353.4數據表的根本操作3.4.1在數據庫設計器中操作表3.4.1.1翻開/關閉表1.翻開表方法一:在“工程管理器〞窗口中選定要翻開的表,單擊“瀏覽〞按鈕,那么會翻開該表并在“瀏覽〞窗口中顯示出來。方法二:從“文件〞菜單中選擇“翻開〞命令或直接單擊工具欄上的“翻開〞按鈕,然后在“翻開〞對話框中選擇要翻開的表將其翻開。方法三:在“命令〞窗口輸入“USE<表名>〞命令。例如,要翻開“根本信息〞表,在命令窗口中輸入以下命令:USE根本信息2.關閉表在“命令〞窗口輸入不帶<表名>參數的“USE〞命令即可。2023/7/20363.4數據表的根本操作3.4.1在數據庫設計器中操作表3.4.1.2在“數據庫設計器〞中查看表
1.展開或折疊表2.重排數據庫的表3.在數據庫中查找表或視圖4.選擇顯示的對象世界杯數據庫中的表2023/7/20373.4數據表的根本操作3.4.1在數據庫設計器中操作表3.4.1.3數據庫表和自由表
VisualFoxPro中的數據表可以有兩種存在狀態:自由表〔即沒有和任何數據庫關聯的.DBF文件〕和數據庫表〔即與數據庫關聯的.DBF文件〕。數據庫表和自由表可以互相轉換:當用戶將數據庫表從一個數據庫中移出,數據庫表便成了自由表;反之,如將自由表參加到某一個數據庫中,自由表便成了數據庫表。數據庫表只能屬于一個數據庫,如想將一個數據庫中的表移到其他數據庫,必須先將該表從數據庫中移出變為自由表,再將其參加到另一數據庫中。數據庫表和自由表相比,具有一些自由表所沒有的屬性,如主關鍵字、觸發器、默認值、表間聯系等。將表組合到數據庫內,可以使它們協同工作。2023/7/20383.4數據表的根本操作3.4.1在數據庫設計器中操作表3.4.1.4在數據庫設計器中添加、移出或刪除表1.添加數據庫表2.移出或刪除數據庫表添加、移去或刪除數據庫表的操作也可以直接在工程管理器中進行。1.在“工程管理器〞窗口中添加數據庫表2.在“工程管理器〞窗口中移出或刪除數據庫表3.4.1.5在“工程管理器〞中添加、移出或刪除表2023/7/20393.4數據表的根本操作3.4.2設置數據庫表屬性3.4.2.1查看或修改表結構在“工程管理器〞窗口的“數據〞選項卡中選擇需要查看或修改結構的表,單擊“修改〞按鈕,翻開“表設計器〞對話框。在“表設計器〞中可以查看或改變已有表的結構,如增加或刪除字段、改變字段的數據類型及寬度等。注意:在將字段寬度值改小時,超出字段寬度的字符會自動喪失,如果字段是數值型那么會溢出,這時在表的瀏覽窗口中看到的是幾個“*〞號,并且喪失的字符或數字不能通過將字段長度改為原有長度而得到恢復。改變字段的數據類型也可能導致數據的喪失。2023/7/20403.4數據表的根本操作3.4.2設置數據庫表屬性3.4.2.2設置數據庫表的屬性數據庫表的表設計器比自由表的表設計器多了一些選項:在數據庫表的表設計器的“字段〞選項卡的下部,有“顯示〞、“字段有效性〞、“字段注釋〞和“匹配字段類型到類〞4個輸入區域。數據庫表具有自由表所沒有的一些屬于數據字典的屬性,例如長字段名和長表名、掩碼、默認值、字段級和記錄級規那么及觸發器等。屬性被作為數據庫的一局部保存起來,如果表被從數據庫中移出,那么原來擁有的這些屬性都將失去。2023/7/20413.4數據表的根本操作3.4.2設置數據庫表屬性3.4.2.2設置數據庫表的屬性1.設置字段的顯示屬性·格式規定字段顯示時的樣式。格式決定了字段的顯示風格。例如,將系統日期格式設置為年/月/日,年為四位,在表設計器中設置“根本信息〞表的“日期〞格式為D,那么在瀏覽窗口中顯示日期為yyyy/mm/dd格式。·輸入掩碼指定字段輸入值的格式。使用輸入掩碼可屏蔽非法輸入,減少人為的數據輸入錯誤,提高輸入工作效率,保證輸入的字段數據格式統一、有效。·標題指定顯示代表字段的標題。最多可包含128個字符。·字段的注釋在“工程管理器〞中選擇了這個字段時,在“工程管理器〞的底部顯示該字段的注釋文本。2023/7/20423.4數據表的根本操作3.4.2設置數據庫表屬性3.4.2.2設置數據庫表的屬性2.輸入字段的默認值例如,在輸入“參賽隊〞表中數據時,如果當前正在輸入非洲的球隊,可將地區默認值設置為“非洲〞。3.表名和表注釋·表名指定正在創立或修改的表的名稱。但并不是文件名。·表注釋在表注釋區可以輸入對表的注釋。與字段注釋一樣,在選定一個表時,在“工程管理器〞窗口底部顯示表的注釋文本。2023/7/20433.4.3數據過濾和字段篩選3.4.3.1定位記錄在翻開的表中只有一條記錄是“當前記錄〞。在瀏覽窗口,當前記錄前有一個黑三角標志。1.用“查找〞命令查看數據2.用“轉到記錄〞命令查看數據“轉到記錄〞子菜單“定位記錄”對話框3.4數據表的根本操作2023/7/20443.4.3數據過濾和字段篩選3.4.3.2數據過濾與字段篩選假設有多個記錄都符合定位的條件,使用“定位〞命令只能定位表中的第一個符合條件的記錄,假設想同時查出所有記錄,那么需使用數據過濾功能。1.記錄過濾例如,想在“瀏覽〞窗口中只顯示第17屆和18屆的世界杯的根本信息。“工作區屬性”對話框3.4數據表的根本操作2023/7/20453.4.3.2數據過濾與字段篩選2.字段篩選例如,在“瀏覽〞窗口中顯示“根本信息〞表中的“屆次〞,“舉辦國〞和“冠軍〞字段。“字段選擇器”對話框3.4數據表的根本操作3.4.3數據過濾和字段篩選2023/7/20463.4.4工作區與多表操作3.4.4.1工作區和工作期的概念1.工作區工作區:是一個編號的區域,用來標識一個翻開的表。最多可以有32767個工作區。在每個工作區中只能同時翻開一個表,在工作區中翻開表時,原來在該工作區中翻開的表自動關閉。選擇工作區使用SELECT命令:SELECT<工作區標識>工作區標識可以是0~32767的編號,也可以是表的別名。如果執SELECT命令中的“工作區標識〞為0時,表示選擇了空閑的最小號工作區。如果翻開了多個工作區,那么當前工作區是指最后執行SELECT命令所選擇的工作區。3.4數據表的根本操作2023/7/20473.4.4.1工作區和工作期的概念2.數據工作期“數據工作期〞是當前動態工作環境的一種表示,每個數據工作期包含有自己的一組工作區,這些工作區含有翻開的表、表索引和聯系。3.在“數據工作期〞窗口查看工作區從“窗口〞菜單項選擇擇“數據工作期〞命令,或在“命令〞窗口中輸入SET命令,翻開“數據工作期〞窗口,并顯示在當前數據工作期中的工作區中翻開的表的別名。“數據工作期”窗口3.4數據表的根本操作3.4.4工作區與多表操作2023/7/20483.4.4.2在工作區中翻開/關閉表1.在工作區中翻開表在“數據工作期〞窗口中單擊“翻開〞按鈕,在“翻開〞對話框中選擇要翻開的表及翻開的方式〔是否以“獨占〞的方式翻開〕。2.在工作區中關閉表在“數據工作期〞窗口中選定要關閉的表別名,然后單擊“關閉〞按鈕。或使用SELECT命令選擇工作區后再用USE命令翻開或關閉當前工作區中的表。當在同一工作區中翻開其他表時,自動關閉原工作區中已翻開的表。3.4數據表的根本操作3.4.4工作區與多表操作2023/7/20493.4.4.3使用表別名1.創立用戶自定義別名例如,可以使用以下命令翻開表文件“根本信息.dbf〞,指定別名“JBXX〞:SELECT0USE根本信息ALIASJBXX2.使用VisualFoxPro指定的別名在前10個工作區中指定的默認別名是工作區字母A~J,在工作區11~32767中指定的別名是W11~W32767。別名是指定給一個表或表達式的另一個名稱,通常用來縮短在代碼中引用的名稱。表的別名是用來引用工作區中翻開的表的。當翻開一個表時,自動將表名作為默認的別名。也可以另外指定一個別名。3.4數據表的根本操作3.4.4工作區與多表操作2023/7/20503.4.4.3使用表別名3.使用別名選擇工作區如果執行了下面兩條命令:SELECT1USE根本信息ALIASJBXX那么下面三條命令是等價的:SELECT1SELECTASELECTJBXX4.引用在其他工作區中翻開的表在別名后加上點號分隔符“.〞或“->〞操作符,然后再加字段名,可以引用其他工作區中的字段。例如,訪問其他工作區中翻開的“根本信息〞表的“冠軍〞字段:根本信息.冠軍如果要引用的表是用別名翻開的,那么也可以使用別名。例如:JBXX.舉辦國3.4數據表的根本操作3.4.4工作區與多表操作2023/7/20513.4.5操作表的常用命令建立與修改、翻開與關閉表的命令〔1〕建立數據表:CREATE<表文件名>〔2〕翻開數據表:USE<表名>[IN<工作區號>|<表別名>]〔3〕關閉數據表:USE[IN<工作區號>|<表別名>]〔4〕關閉所有工作區中的數據表:CLOSETABLESALL〔5〕關閉所有翻開的文件:CLOSEALL〔6〕翻開表設計器〔顯示/修改表結構〕:MODIFYSTRUCTURE〔7〕翻開“瀏覽〞窗口〔顯示/修改表記錄〕:BROWSE[FIELDS<字段名>]3.4數據表的根本操作2023/7/20523.4.5操作表的常用命令3.4.5.2顯示表結構與表記錄的命令〔1〕顯示表結構DISPLAY|LISTSTRUCTURE[TOPRINTER[PROMPT]|TOFILE<文件名>]〔2〕顯示表記錄DISPLAY|LIST[<范圍>][FIELDS<字段名表>][FOR<條件表達式>][WHILE<條件表達式>][TOPRINTER[PROMPT]|TOFILE<文件名>]當“范圍〞省略時,DISPLAY命令默認為當前記錄,而LIST默認為全部記錄。3.4數據表的根本操作2023/7/20533.4.5操作表的常用命令3.4.5.3更新、添加與刪除表記錄命令〔1〕交互式修改記錄EDIT|CHANGE[<范圍>][FOR<條件表達式>][WHILE<條件表達式>]〔2〕直接修改記錄REPLACE<字段名1>WITH<表達式1>[,字段名2WITH表達式2...][范圍][FOR<條件表達式>]|[WHILE<條件表達式>]〔3〕在表的末尾追加〔空白〕記錄:APPEND[BLANK]〔4〕利用已有文件追加記錄APPENDFROM<文件名>[FIELDS<字段名表>][FOR<條件表達式>][SDF]〔5〕在當前記錄之后〔之前〕插入〔空白〕記錄:INSERT[BEFORE][BLANK]〔6〕刪除記錄〔刪除標記〕:DELETE[范圍][FOR<條件表達式>][WHILE<條件表達式>]〔7〕恢復記錄〔去刪除標記〕:RECALL[范圍][FOR<條件表達式>][WHILE<條件表達式>]〔8〕從磁盤上刪除表中有刪除標記的記錄:PACK〔9〕從磁盤上刪除表中所有的記錄:ZAP注意:如果在表上建立了主索引或候選索引,那么不能用以上的APPEND或INSERT命令插入記錄,必須使用SQL的INSERT命令。3.4數據表的根本操作2023/7/20543.4.5操作表的常用命令3.4.5.4查找與定位、過濾與篩選及移動記錄指針的命令〔1〕查找〔定位〕記錄LOCATEFOR<條件表達式>[范圍][WHILE<條件表達式>]〔2〕繼續查找〔滿足LOCATE條件的〕下一記錄CONTINUE〔3〕過濾記錄SETFILTERTO[<條件表達式>]〔4〕篩選字段SETFIELDSTO[<字段名表>|ALL]〔5〕定位記錄指針GO|GOTO<記錄號>|BOTTOM|TOP〔6〕移動記錄指針SKIP[數值表達式]3.4數據表的根本操作2023/7/20553.4.5操作表的常用命令3.4.5.5其他命令〔1〕復制表文件的結構:COPYSTRUCTURETO<新表文件名>[FIELDS<字段名表>]〔2〕復制表文件:COPYTO<新文件名>[范圍][FOR<表達式>][WHILE<條件>][FIELDS<字段名表>]〔3〕將表文件復制成文本文件:COPYTO<新文本文件名>TYPEDELIMITED〔4〕文件復制命令:COPYFILE<源文件名>TO<新文件名>〔5〕將表的結構復制成記錄內容:COPYSTRUCTUREEXTENDEDTO<新表文件名>[FIELDS<字段名表>]〔6〕選擇當前工作區:SELECT<工作區號>|<表別名>〔7〕物理排序:SORTTO<新表文件名>ON<字段名1>[/A|/D][/C][,<字段名2>[/A|/D][/C]...][ASCENDING|DESCENDING][FIELDS<字段名表>][FOR<條件表達式>]〔8〕顯示文件內容:TYPE<文件名>[TOPRINTER[PROMPT]|TOFILE<文件名>]〔9〕設置是否以獨占的方式翻開數據表:SETEXCLUSIVEON|OFF3.4數據表的根本操作2023/7/20563.4.5操作表的常用命令3.4.5.6使用命令對表中記錄排序所謂“排序〞,就是指定記錄排列的先后順序。建表時,輸入到新表的記錄按照輸入順序存儲,在瀏覽表時,記錄按輸入的順序出現。SORTTO<新表文件名>ON<字段名1>[/A|/D][/C][,<字段名2>[/A|/D][/C]...][ASCENDING|DESCENDING][FIELDS<字段名表>][FOR<條件表達式>]/A|/D:/A按升序排列,/D按降序排列,默認為按升序排列;/C:排序時不區分大小寫字母,默認區分大小寫;ASCENDING|DESCENDING:除了用/A|/D說明升序或降序的字段外,其他參與排序的字段的排序方式,默認為按升序排列;例如,要將“根本信息〞表生成一個按屆次降序排序的新表:SORTON屆次/DTOJBXX1排序后并不改變原表的順序,但可以生成一個排過序的新表。3.4數據表的根本操作2023/7/2057VisualFoxPro表中的索引是一個記錄號的列表,它指向待處理的記錄,并確定了記錄的處理順序。表索引存儲了一組記錄指針。索引并不改變表中所存儲數據的順序,只改變VisualFoxPro讀取每條記錄的順序。用戶可以用索引快速顯示、查詢或者打印記錄,還可以選擇記錄、控制重復字段的輸入并支持表間的聯系操作。索引對于數據庫內表之間創立關聯至關重要。在數據庫中要建立各表之間的聯系,就要正確合理地建立所有表中的索引。3.5索引3.5.1索引的概念2023/7/20583.5.1.1索引文件的類型1.結構復合索引文件擴展名為.CDX。結構復合索引文件具有與表相同的文件名,當翻開與它同名的表時也自動翻開該結構復合索引文件,關閉的同時自動關閉它。當在表中進行記錄的添加、修改和刪除時,系統會自動對結構復合索引文件中的全部索引記錄進行維護。2.單獨索引文件只包含單個索引項,擴展名為.IDX,其主文件名稱不能和相關表同名,而且該文件不會隨著表的翻開而自動翻開。3.非結構復合索引文件包含多個索引項,擴展名為.CDX。必須用命令翻開,只有在該文件翻開時,系統才能維護索引標記。可以看作是多個.IDX文件的組合。結構復合索引文件是在數據庫中最普遍也最重要的一種索引文件。以下討論的是.CDX結構復合索引文件。3.5索引3.5.1索引的概念2023/7/20593.5.1.2索引的類型3.5索引3.5.1索引的概念四種索引類型:主索引、候選索引、普通索引和唯一索引。1.主索引不允許在索引關鍵字中出現重復值的索引。對于每一個表只能建立一個主索引。自由表沒有主索引。2.候選索引在索引關鍵字中不允許出現重復值的索引,作為主索引的候選者出現,一個表可以創立多個候選索引。3.唯一索引唯一索引無法防止重復值記錄的建立。但在唯一索引中,只在索引文件中保存第一次出現的索引值。4.普通索引除上述三種索引之外的索引就是普通索引。索引關鍵字段和表達式允許重復值出現,可用普通索引進行表中記錄的排序或搜索。2023/7/20603.5.2.1使用“表設計器〞創立或修改索引3.5索引3.5.2創立索引1.創立單字段普通索引2.創立復合字段索引“表設計器”對話框的“索引”選項卡2023/7/20613.5.2.1使用表設計器創立或修改索引3.5索引3.5.2創立索引3.篩選記錄通過在“表設計器〞對話框的“索引〞選項卡中的“篩選〞框中輸入一個篩選表達式,可以控制哪些記錄可包含在索引中。4.修改、刪除或插入索引在“表設計器〞對話框的“索引〞選項卡中可以對表中的索引進行修改。修改:鼠標單擊欲修改處,然后加以修改。刪除:選擇欲刪除的索引,單擊“刪除〞按鈕。插入:選擇欲插入的索引所在的位置,單擊“插入〞按鈕,然后輸入或選擇索引名、類型和索引表達式。在“表設計器〞對話框中設置好索引后,只要關閉“表設計器〞對話框,系統便會在表文件的保存目錄中自動創立一個擴展名為.CDX的結構復合索引文件。2023/7/20623.5.2.1使用“表設計器〞對話框創立或修改索引3.5索引3.5.2創立索引“世界杯〞數據庫表,在“表設計器〞對話框中設置各表的索引。“根本信息〞表:“屆次〞為主關鍵字,設置為主索引,“日期〞設置為候選索引〔因為每屆的舉辦時間沒有重復值〕,“舉辦國〞設置為普通索引以方便以舉辦國為線索進行查詢;“參賽隊〞表:主索引為“參賽隊〞,“地區〞設置為普通索引;“參賽成績〞表:“屆次〞和“參賽隊〞都是外部關鍵字,只能設置為普通索引,將“屆次+參賽隊〞設置為“參賽成績〞表的主索引;“最正確球員〞表:“屆次〞是主索引。“最正確射手〞表:“屆次〞是普通索引。2023/7/20633.5.2.1使用“表設計器〞創立或修改索引3.5索引3.5.2創立索引世界杯數據庫中各表的索引和表間的“永久聯系”有鑰匙標志的是主索引。2023/7/20643.5.2.2使用命令創立索引3.5索引3.5.2創立索引創立索引的命令為INDEX,INDEX命令的格式如下:INDEXON<索引表達式>TO<單獨索引文件名>|TAG<索引標識>[OF<非結構復合索引文件名>][FOR<條件表達式>][COMPACT][ASCENDING|DESCENDING][UNIQUE|CANDIDATE][ADDITIVE]2023/7/20653.5.3.1使用索引建立永久聯系3.5索引3.5.3使用索引建立表間聯系創立方法:在“數據庫設計器〞窗口中,選擇主表中想要關聯的索引名,然后把它拖到相關表匹配的索引名上即可。聯系特點:在數據庫的兩個表中要建立固定聯系,要求兩個表的索引中至少有一個是主索引,必須先選擇主表的主索引,而子表中的索引類型決定了要創立的永久聯系的類型:如果子表中的索引類型為主索引或候選索引,那么建立起的就是一對一聯系;如果子表中的索引類型為普通索引或唯一索引,那么建立起的就是一對多聯系。2023/7/20663.5.3.2使用索引建立臨時聯系3.5索引3.5.3使用索引建立表間聯系永久聯系是同一數據庫中數據庫表間的關聯,這種聯系存儲在數據庫文件中,可以作為查詢、視圖、表單以及報表中所使用的表間的默認關聯。有時也需要能控制不同工作區中記錄指針聯動的臨時聯系。要建立臨時聯系,在“數據工作期〞窗口中通過單擊“關系〞按鈕建立。也可以使用命令:SETRELATIONTO<索引表達式>INTO<工作區號|表別名>“工作區號|表別名〞用來指定和要和當前工作區中的表建立關聯的表;“索引關鍵字〞指定關聯所用的索引關鍵字。2023/7/20673.5索引3.5.4使用索引排序在“瀏覽〞窗口中從“表〞菜單中選擇“屬性〞命令,翻開“工作區屬性〞窗口。在“索引順序〞框中選擇要用的索引名,根據索引值的大小順序顯示記錄。
例如,對于“根本信息表〞,已按日期降序建普通索引,中選擇“索引順序〞為日期時,將按日期降序排序記錄。選擇按日期降序排序記錄使用索引排序不改變表中記錄的存儲順序〔物理順序〕,只改變了讀取每條記錄的順序,稱為邏輯排序,SORT命令排序稱為物理排序。2023/7/20683.5索引3.5.5索引的常用命令〔1〕翻開索引文件SETINDEXTO<索引文件名表>〔2〕設置當前索引SETORDERTO[<索引序號>|[TAG]<索引標識>][ASCENDING|DESCENDING]〔3〕使用索引定位記錄SEEK<索引表達式值>[ORDER<索引序號>|[TAG]<索引標識>][ASCENDING|DESCENDING]〔4〕刪除索引DELETETAG<索引標識>|ALL2023/7/20693.6數據完整性3.6.1實體完整性與主關鍵字數據完整性是指保證數據庫中的數據正確的特性。數據完整性一般包括實體完整性、域完整性和參照完整性等。實體完整性是保證表中記錄唯一的特性,即在表中不允許有重復的記錄。在VisualFoxPro中利用主關鍵字或候選關鍵字來保證實體的唯一性。VisualFoxPro中將主關鍵字作為主索引,候選關鍵字作為候選索引。2023/7/20703.6數據完整性3.6.2域完整性與有效性規那么數據庫的有效性規那么即是對字段或記錄的約束。用來檢驗數據庫中輸入的數據是否合法有效。3.6.2.1有效性規那么的概念有效性規那么分為:字段級有效性規那么和記錄級有效性規那么。字段級規那么:對一個字段的約束稱之為字段級規那么。字段級有效性規那么檢查單個字段中信息輸入的數據是否有效。記錄級規那么:對一個記錄的約束稱之為記錄級規那么,當插入或修改記錄時激活,常用來檢驗數據輸入的正確性。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省蘇州平江中學2025年初三第一次聯考英語試題文試題含答案
- 浙江省湖州市吳興區2025年初三五校聯誼期中考試試卷數學試題含解析
- 上海市徐匯區2025年初三TOP20三月聯考(全國II卷)生物試題含解析
- 股權無償轉移合同范本大全
- BIM技術研究與開發合同
- 遼寧省大連市中山區2019-2020學年八年級上學期期末測試物理試題【含答案】
- 人教版地理七上第五章《發展與合作》表格教學設計
- Brand KPIs for pet supply online shop Zee.Dog in Brazil-外文版培訓課件(2025.2)
- 山東省煙臺市黃務中學六年級歷史下冊 第8課 輝煌的隋唐文化(二)教學設計 魯教版五四制
- 2024年七月三角形分類教學中的多模態資源整合
- A類供應商績效評價表
- 攝影攝像知識競賽考試題庫500題(含答案)
- 2024至2030年中國丹參行業市場發展監測及投資潛力預測報告
- 《無人機測繪技能訓練模塊》課件-模塊7:無人機航測影像獲取
- 2024招商引資協議書范本
- (完整版)12123交管學法減分考試題及答案
- (高清版)JTG 3810-2017 公路工程建設項目造價文件管理導則
- 慢性腎臟病健康宣教
- 幼兒詩歌《家》課件
- 備孕知識講座課件
- 腹瀉便秘課件
評論
0/150
提交評論