vf實驗報告三

2022-09-15 08:09:04 字數 4581 閱讀 9290

第3章關聯、查詢和資料庫

實驗3-1 多表關聯與查詢

1.實驗目的

(1)理解關聯的概念,掌握在資料工作期視窗中建立關聯的方法。

(2)掌握select-sql查詢命令。

(3)掌握用查詢設計器建立查詢的方法。

2.實驗要求

(1)在資料工作期視窗上建立以「訂單」為父表,「訂單明細」為子表的一多關係;再建立以「訂單明細」為父表,「貨物」為子表的多一關係的二級關聯。然後檢視關聯後的效果。

(2)用select-sql命令對上述5個表作多表查詢練習。

①查詢聯絡「東南實業」公司的員工姓名及聯絡**。

②查詢訂購麻油的訂單份數。

(3)用查詢設計器查詢公司訂貨情況。

3.實驗準備

(1)閱讀主教材3.1.2節、3.2.3節、3.3節、3.5.1節和3.5.2節。

(2)建立好訂單、訂單明細、員工、客戶和貨物表(見實驗2-2)。

4.實驗步驟

(1)為「關聯」建立索引:為訂單表的訂單號字段建立索引,再為貨物表的貨號字段建立索引。

(2)建立關聯:開啟資料工作期視窗→分別用「開啟」按鈕開啟訂單表、訂單明細表和貨物表→在「別名」列表框中選定「訂單」,單擊「關係」按鈕→在「別名」列表框中選定「訂單明細」→隨即彈出「設定南索引順序」對話方塊,其列表框中顯示「訂單明細.訂單號」(參閱主教材圖3.

7)。選定「確定」按鈕→隨即彈出「表示式生成器」對話方塊,其set relation框中顯示「訂單號」(參閱主教材圖3.8)。

選定「確定」按鈕,多一關係建立完成→選定「一對多」按鈕→在隨即彈出的「建立一對多關係」對話方塊中→選定「確定」按鈕,一多關係建立完成。

在「別名」列表框中選定「訂單明細」→為確定以訂單明細表為父表建立下一級關聯,在「關係」列表框中也選定「訂單明細」→單擊「關係」按鈕→在「別名」列表框中選定「貨物」→在隨即彈出的「設定索引順序」對話方塊中選定「確定」按鈕→在「表示式生成器」對話中選定「確定」按鈕,多一關係(第2級)建立完成,如圖2.3.1所示。

輸入命令如下所示:

(3)檢視關聯效果:分別「訂單」、「訂單明細」和「貨物」瀏覽視窗,並按左中右順序排列→選定「訂單」表的某個記錄,「訂單明細」和「貨物」瀏覽視窗的內容即會關聯變化,如圖2.3.

2所示。

輸入命令如下所示:

(4)查詢聯絡「東南實業」公司的員工姓名及聯絡**:根據「東南實業」分司的客戶編號,可在訂單表中找到與其聯絡的員工工號,據此就可在員工表中查出該員工的姓名及**號碼。select-sql命令如下:

select 客戶.公司名稱,員工.姓名,員工.**;

from 客戶,訂單,員工;

where 客戶.客戶編號=訂單.客戶編號 and 訂單.工號=員工.工號;

and 客戶.公司名稱=」東南實」

(5)查詢訂購麻油的訂單份數:先通過貨物表與訂單明細表聯接生成兩表貨號相同的記錄,再用where子句在這些記錄中篩選出貨名是「麻油」的記錄,此時就可用count函式對兩表的任何字段(例如訂單明細.訂單號)進行計數。

下面是寫出的一種命令。

select 貨物.貨名,count(訂單明細.訂單號) as 訂單份數;

from 貨物 inner join 訂單明細 on 貨物.貨號=訂單明細.貨號;

where 貨物.貨名=」麻油」

(6)用查詢設計器查詢訂貨情況:根據客戶表中的客戶編號,可在訂單表中查出該客戶的訂單號,然後在訂單明細表中查出所訂貨物的貨號及數量,並通過貨物表查出相應的化名和庫存量。

選定選單命令「檔案|新建」,或單擊「常用」工具欄的「新建」按鈕,即顯示「新建」對話方塊(見主教材圖2.2)→檔案型別選定為「查詢」,單擊「新建檔案」按鈕,即出現查詢設計器和「開啟」對話方塊→在「開啟」對話方塊的列表中雙擊「客戶.dbf」→選定「新增表或檢視」對話方塊的「其他」按鈕,然後在「開啟」對話方塊的列表框中雙擊「訂單.

dbf」→在隨即出現的「聯接條件」對話方塊中選定「確定」按鈕→類似地再通過「其他」按鈕分別新增訂單明細和貨物表,然後關閉「新增表或檢視」對話方塊,此時查詢設計器的上窗格如圖2.2.3所示→在查詢設計器的「字段」選項卡中,將「可用字段」互敬互愛框中的客戶.

公司名稱、客戶.聯絡人、訂單.訂單號、訂單明細.

貨號、貨物.貨名、訂單明細.數量及貨物.

庫存量移到「選定字段」列表框→選定「排序依據」選項卡,將「選定字段」列表框中的「客戶.公司名稱」移到「排序條件」列表框→單擊「常用」工具欄中的「執行」按鈕執行查詢,結果如圖2.3.

4所示。

圖2.3.3 「查詢訂貨情況」的查詢設計器

圖2.3.4 訂貨情況一覽表

5.思考與操作

(1)在圖2.3.2的「訂單」瀏覽視窗中,第2、5行是用星號填充的,試原因。

答:該錶為父表,用星號填充說明該行記錄的子表有兩條記錄。

(2)用select-sql查詢倒序查詢國皓電器分司的訂單號及訂購日期。

答: 可用如下select-sql命令進行查詢:

select 客戶.公司名稱,訂單.訂單號,訂單.訂購日期;

from 客戶,訂單;

where 客戶.客戶編號=訂單.客戶編號 and 客戶.公司名稱=」國皓電器分司」

(3)用查詢設計器查詢員工鄭大地完成訂單情況。

實驗3-2 資料庫的基本操作

1.實驗目的

(1)掌握資料庫的建立和維護方法。

(2)熟練掌握設定資料庫表字段級驗證和記錄級驗證的方法。

(3)掌握為資料庫表建立永久關係和設定參照完整性的方法。

2.實驗要求

(1)建立「訂貨」資料庫,要求包含訂單、訂單明細、貨物、客戶和員工5個表。

(2)建立上述資料庫表間的永久關係(見圖2.3.5)。

圖2.3.5 建立資料庫表間的永久關係

(3)以「貨物」表為例設定資料庫表屬性。

(4)練習設定資料庫表之間的參照完整性。

3.實驗準備

(1)閱讀主教材3.6節。

(2)準備好實驗2-2建立的5個自由表。

4.實驗步驟

(1)建立「訂貨」資料庫:執行如下命令建立並開啟乙個空的「訂貨」資料庫。

modify database 訂貨

然後選定「資料庫」選單(或快捷選單)的「新增表」命令,雙擊「開啟」對話方塊中的「訂單.dbf」,「訂單」字段視窗就出現在資料庫設計器視窗中。用同樣方法新增訂單明細、貨物、客戶和員工表。

(2)在建立資料庫表間的永久關係:參閱主教材例3-26,按表2.3.

1分別為訂單等5個表建立主索引和普通索引。然後,單擊「客戶」字段視窗中的「客戶編號」主索引(其左側有乙個鑰匙圖示),按住滑鼠左鍵,手拖曳到「訂單」視窗的「客戶編號」索引位置,鬆開滑鼠後即可畫出表間關係線、貨物表和訂單明細表的永久關係,如圖2.3.

5所示。

表2.3.1 索引清單

(3)設定「貨物」表的字段級驗證:開啟表設計器,選定「字段」選項卡→選定列表框中的「貨號」字段→在「顯示」區的「格式」文字框中輸入格式符「!」,使瀏覽視窗輸入/輸出時將字母都轉為大寫→在「輸入掩碼」文字框中輸入掩碼「a9999」,限制輸入的貨號必須第1位是字母,後4位是數字字元→在「字段有效性」區的「規則」文字框中輸入表示式「len(alltrim(貨號))=5」,要求貨號必須有5個字元,不能空缺→在「資訊」文字框中輸入表示式中輸入提示資訊「」請輸入5位貨號:

字母開頭,後跟4位數字字元。」」,以便在出錯時給出明確的提示資訊→在「預設值」文字框輸入預設值」a」,可提高輸入不哭亦足矣,減少輸入錯誤;同時,還提示貨號的第1位應輸入字母→在「字段注釋」編輯框中輸入該字段的說明性文字,如圖2.3.

6所示。

(4)設定「貨物」表的記錄級驗證:選定「表」選項卡→在「記錄有效性」區的「規則」文字框中輸入表示式「not len(alltrim(貨名))=0」,確保「貨名」字段必須輸入資料→在「資訊」文字框中輸入「」請輸入貨名!」」,以便在貨名字段為空的情況下離開被編輯記錄時給出提示→在「觸發器」區的「刪除觸發器」文字框中輸入表示式「left(貨號,1)#」s」」,指定貨號以s開頭的記錄不能刪除。

參閱圖2.3.7。

(5)練習設定「參照完整性」:開啟「訂貨」資料庫,執行選單命令「資料庫|清理資料庫」 →選定「編輯參照完整性」命令,隨即彈出如圖2.3.

8所示的「參照完整性生成器」視窗,此時已選定「更新規則」選項卡→單擊**第2行行首的按鈕,選定貨物表與訂單明細時開啟貨物表和訂單明細表的瀏覽視窗→將貨物表的「貨號」字段值a1052改為a1055→單擊訂單明細表的瀏覽航空器,逾期成為當前視窗,可見其「貨號」欄位中的a1052也變成了a1055。

按上述步驟,現將貨物表與訂單明細表的更新規則設定為「限制」,將貨物表的貨號字段值a1055重新改為a1052,觀察其結果。對刪除規則和插入規則,讀者可作相應練習。

5.思考與操作

(1)設定貨物表的字段級驗證和記錄級驗證規則後,在瀏覽視窗已開啟的情況下,不能使用「表」選單中的「追加新記錄」命令,也不能使用命令append blank為貨物表新增記錄;但可用「顯示」選單中的「追加方式」命令,或用命令append新增記錄。試解釋原因。

答:因為在設定貨物表的字段級驗證和記錄級驗證規則後,不能新增空記錄,而使用「表」選單中的「追加新記錄」命令和append blank命令是在表尾新增一條空白記錄;所以只能用「顯示」選單中的「追加方式」命令,或用命令append新增記錄。

(2)設定訂單明細表的字段級驗證和記錄級驗證,要求所有記錄的「訂單號」和「貨號」二字段都不能為空。

答:可為「訂單號」和「貨號」二字段的設定其字段級驗證和記錄級驗證。

一VF實驗報告

一實驗內容 用visual foxpro 6.0設計乙個汽車交強險保費計算器二實驗資料調查 表1 交強險費率表 表2 交通違法相關浮動係數表 表3 與有責交通事故相關浮動係數表 三實驗目的 通過上機實驗課程,自己動手操作設計乙個交強險的保費計算器。並能熟悉並掌握visual foxpro 6.0的簡...

VF程式設計實驗報告冊 實踐教程

visual foxpro程式設計 課程 實驗報告手冊 學院年級專業 姓名學號 任課教師上機地點 以上由學生填寫 實驗教師 簽字 西南大學計算機與資訊科學學院 計算機基礎教育系 年月日一 實驗說明 本課程實驗分為一般性實驗 驗證和簡單設計 和綜合性實驗 課程設計 一般性實驗學生需要按照要求填寫階段性...

彙編實驗報告三

集美大學 計算機工程學院 實驗報告 1.實驗目的及內容 1.實驗目的 掌握迴圈程式的設計方法。2.實驗內容 程式接收使用者鍵入的乙個關鍵字以及乙個句子,如果句子中不包含關鍵字則顯示 no match 如果句子包含關鍵字則顯示 match 且把該字在句子中的位置用十六進製制數顯示出來。2.實驗環境 p...