(第4章-4)多表操作(10最終修改)_第1頁
(第4章-4)多表操作(10最終修改)_第2頁
(第4章-4)多表操作(10最終修改)_第3頁
(第4章-4)多表操作(10最終修改)_第4頁
(第4章-4)多表操作(10最終修改)_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1,第4章 數(shù)據(jù)庫及表的基本操作 多個(gè)表的操作,教學(xué)內(nèi)容 工作區(qū) 表的關(guān)聯(lián)(臨時(shí)關(guān)系) 創(chuàng)建表之間的永久關(guān)系 教學(xué)目的 了解表的關(guān)系及關(guān)系的種類 掌握永久關(guān)系的建立和編輯方法 掌握工作區(qū)的概念與多表操作方法 掌握表間臨時(shí)關(guān)系的建立和使用方法 重點(diǎn):工作區(qū)的概念、多表操作、表間的關(guān)聯(lián) 難點(diǎn):多工作區(qū)中表的使用,3,4.8 多個(gè)表文件的操作,表的關(guān)聯(lián) 表的連接 表間數(shù)據(jù)更新 數(shù)據(jù)庫表的永久關(guān)系 設(shè)置參照完整性,4,4.8.1 工作區(qū),工作區(qū)的概念 用USE命令打開一個(gè)表時(shí),同時(shí)也就關(guān)閉了之前打開的表。為建立多個(gè)表之間的聯(lián)系,必須同時(shí)打開這些表, VFP引入了“工作區(qū)”概念。 每個(gè)工作區(qū)只允許打開一

2、個(gè)表。,工作區(qū)的編號(hào)與別名 工作區(qū)的編號(hào):數(shù)字,從1到32767 工作區(qū)的別名:字母,前10個(gè)工作區(qū)的別名是字母A到J,10號(hào)工作區(qū)以后的別名是W11到W32767 表別名 每一個(gè)打開的表文件都有一個(gè)文件別名 當(dāng)用USE打開表時(shí),系統(tǒng)默認(rèn)表文件名就是它的別名 為表文件另起別名(別名的命名同字段名) USE ALIAS ,選擇工作區(qū)(SELECT 命令) 格式:SELECT |0 功能:把工作區(qū)號(hào)或別名所指定的工作區(qū)轉(zhuǎn)變?yōu)?當(dāng)前工作區(qū)。 說明: 用SELECT 0選擇一個(gè)區(qū)號(hào)最小的空閑工作區(qū) 用USE命令直接指定在那個(gè)工作區(qū)打開表,只要帶上“IN 區(qū)號(hào)”子句即可。如: USE 學(xué)生成績表 IN

3、2 ALIAS xscjb,7,工作區(qū)的互訪 在對(duì)表文件進(jìn)行操作時(shí),當(dāng)前工作區(qū)的字段可以直接引用。如果在當(dāng)前工作區(qū)要使用另一個(gè)工作區(qū)的表字段,則采用如下形式進(jìn)行引用: 別名-字段名 別名.字段名,8,舉例說明多個(gè)工作區(qū)中表的互調(diào): 在成績管理數(shù)據(jù)庫中,顯示學(xué)生的學(xué)號(hào)、姓名、語文、數(shù)學(xué)、英語成績,9,4.8.2 表的關(guān)聯(lián)(臨時(shí)關(guān)系),不同工作區(qū)中分別打開的兩個(gè)表之間是彼此獨(dú)立的,用戶可通過臨時(shí)關(guān)系來使兩個(gè)表之間發(fā)生關(guān)聯(lián)。 臨時(shí)關(guān)系 使用時(shí)臨時(shí)建立的表間聯(lián)系。 在任何表之間建立。建立關(guān)系的兩個(gè)表中,當(dāng)前表叫父表,被關(guān)聯(lián)的表叫子表。 實(shí)現(xiàn)多個(gè)數(shù)據(jù)表之間記錄指針的聯(lián)動(dòng),即當(dāng)一個(gè)表的記錄指針移動(dòng)時(shí)另一表

4、的記錄指針能隨之移動(dòng)。 通過“數(shù)據(jù)工作期”或命令建立。,10,當(dāng)在學(xué)生表中選擇了某一個(gè)學(xué)號(hào),與之關(guān)聯(lián)的表就顯示該學(xué)號(hào)相同的記錄,指針聯(lián)動(dòng),數(shù)據(jù)工作期,數(shù)據(jù)工作期 是VFP的一個(gè)獨(dú)立工作狀態(tài)和操作環(huán)境(指程序、表單或報(bào)表使用的當(dāng)前動(dòng)態(tài)工作環(huán)境)。 每個(gè)數(shù)據(jù)工作期包含了它自己的一組工作區(qū),顯示工作區(qū)中打開的表、表索引以及表之間的關(guān)系。 該窗口設(shè)置的工作環(huán)境可作為視圖文件保存起來。,打開數(shù)據(jù)工作期 單擊常用工具欄中“數(shù)據(jù)工作期”按鈕 “窗口”菜單/“數(shù)據(jù)工作期”命令 命令: SET (或 SET VIEW ON ) 該窗口可以進(jìn)行打開和顯示表或視圖,在表或視圖間建立臨時(shí)關(guān)系等操作。 數(shù)據(jù)工作期窗口各

5、子窗口的意義 當(dāng)前工作期:顯示當(dāng)前工作期名稱。 “別名”列表框:顯示已打開的表。 關(guān)系:顯示表或視圖之間的臨時(shí)關(guān)系。,數(shù)據(jù)工作期窗口中命令按鈕的意義 屬性:打開工作區(qū)屬性對(duì)話框,進(jìn)行工作區(qū)屬性設(shè)置。 瀏覽:打開當(dāng)前表文件的瀏覽窗口。 打開:打開表文件或視圖。 關(guān)閉:關(guān)閉選定的表或視圖。 關(guān)系:建立表或視圖之間的關(guān)系。 一對(duì)多:顯示一對(duì)多對(duì)話框,從而在子表和父表之間建立一對(duì)多的臨時(shí)關(guān)系。,關(guān)閉數(shù)據(jù)工作期窗口 主菜單“文件” “關(guān)閉” 窗口的“關(guān)閉”按鈕 命令:SET VIEW OFF,16,建立表之間臨時(shí)關(guān)系的前提條件: (1)父表和子表必須具有某一個(gè)相同的關(guān)聯(lián)字段,并且值相等。 (2)子表必須

6、按關(guān)聯(lián)的關(guān)鍵字建立索引,并把它設(shè)置為主控索引;,表之間的臨時(shí)關(guān)系建立,17,在“數(shù)據(jù)工作期”窗口建立臨時(shí)關(guān)系 (1)在“數(shù)據(jù)工作期”窗口打開需要建立關(guān)聯(lián)的表; (2)選定父表工作區(qū)為當(dāng)前工作區(qū),使用“關(guān)系”按鈕與一個(gè)子表建立關(guān)聯(lián); (3)關(guān)聯(lián)關(guān)系可以是一對(duì)一關(guān)系、一對(duì)多、多對(duì)一 (4)選定父表工作區(qū)為當(dāng)前工作區(qū),使用“一對(duì)多”按鈕可與一個(gè)子表建立一對(duì)多關(guān)聯(lián);,18,1、先打開所用的表,2、選定父表,在選擇“關(guān)系” 按鈕,之后選擇字段來建立 關(guān)系。如果之前沒有設(shè)定主控 索引,設(shè)定通過什么關(guān)鍵字建 立聯(lián)系。會(huì)彈出如下對(duì)話框。,3、如果要設(shè)定一對(duì)多關(guān)系, 再選擇“一對(duì)多”按鈕, 建立關(guān)聯(lián)。,19,當(dāng)

7、在學(xué)生表中選擇了某一個(gè)學(xué)號(hào),與之關(guān)聯(lián)的表就顯示該學(xué)號(hào)相同的記錄,指針聯(lián)動(dòng),20,格式: SET RELATION TO INTO , INTO ADDITIVE,用命令來建立關(guān)聯(lián)(了解),功能:以當(dāng)前表為父表與其它一個(gè)或多個(gè)子表建立臨時(shí)關(guān)聯(lián)。,21,說明: 為父表的關(guān)聯(lián)表達(dá)式,其值將與子表的索引表達(dá)式的值相對(duì)應(yīng)。 表示子表或其所在工作區(qū),且子表必須按關(guān)聯(lián)的關(guān)鍵字建立索引或確定主控索引。 ADDITIVE不取消以前的關(guān)聯(lián)。,22,建立“一對(duì)多”的關(guān)聯(lián) 命令格式: SET SKIP TO 功能:在父表的每條記錄與子表中所對(duì)應(yīng)記錄之間建立“一對(duì)多”的關(guān)聯(lián)。 說明:執(zhí)行SET SKIP TO 命令,可

8、取消父子之間“一對(duì)多”的關(guān)聯(lián),但父子關(guān)聯(lián)仍然存在。,23,例如:要求顯示學(xué)生的學(xué)號(hào)、姓名、成績,24,25,3.取消表的關(guān)聯(lián) 命令格式1:SET RELATION TO 功能:解除全部父子關(guān)聯(lián)。 命令格式2: SET RELATION OFF INTO 功能:解除父表與或所指定的子表之間的關(guān)聯(lián)。 說明:兩條命令都必須在父表所在的工作區(qū)執(zhí)行,數(shù)據(jù)庫表的永久關(guān)系(掌握),表之間關(guān)系的種類 臨時(shí)關(guān)系:使用時(shí)臨時(shí)建立的表間聯(lián)系 永久關(guān)系:是被存放在數(shù)據(jù)庫表間的聯(lián)系,它隨數(shù)據(jù)庫長期保存,隨數(shù)據(jù)庫的打開而打開、關(guān)閉而關(guān)閉。它只能在數(shù)據(jù)庫表之間建立。 永久關(guān)系解決數(shù)據(jù)庫表之間的數(shù)據(jù)完整性問題,臨時(shí)關(guān)系解決表

9、之間的記錄指針聯(lián)動(dòng)問題。,建立永久關(guān)系的前提條件 父表與子表具有某一相同的關(guān)鍵字,且對(duì)應(yīng)值相等; 每個(gè)表按該關(guān)鍵字建立了索引。 在一對(duì)一關(guān)系表中,父表和子表均應(yīng)按相同的關(guān)鍵字建立主索引或候選索引 一對(duì)多關(guān)系表中,父表應(yīng)建立主索引或候選索引,子表建立普通索引。,永久關(guān)系的建立和刪除 建立:在“數(shù)據(jù)庫設(shè)計(jì)器”中,將主關(guān)鍵字索引(有鑰匙標(biāo)記,如“學(xué)號(hào)” )或者候選索引,拖放到相關(guān)表的索引名上。這時(shí)兩表的索引間出現(xiàn)一條直線,這根線稱為“關(guān)系線”。 修改:雙擊關(guān)系線,在隨后彈出的“編輯關(guān)系”對(duì)話框中進(jìn)行或“數(shù)據(jù)庫” /“編輯關(guān)系” 刪除:單擊兩表間的關(guān)系線,關(guān)系線變粗,表明已選擇了該關(guān)系,按下Del鍵,

10、就可以刪除該關(guān)系線。,建立一對(duì)一關(guān)系,建立一對(duì)多關(guān)系,刪除關(guān)系,32,例:建立school 表與student表之間的一對(duì)多關(guān)聯(lián),并顯示學(xué)校表的學(xué)校編號(hào)、校名和學(xué)生表的學(xué)號(hào)、姓名。,33,永久關(guān)系的作用設(shè)置參照完整性 參照完整性的意義(必須事先設(shè)置關(guān)系) 打開“參照完整性生成器” “數(shù)據(jù)庫設(shè)計(jì)器”/數(shù)據(jù)庫/“編輯參照完整性” “數(shù)據(jù)庫設(shè)計(jì)器”空白處單擊右鍵,選擇“編輯參照完整性” 雙擊兩表之間連線,在彈出的“編輯關(guān)系”對(duì)話框中,單擊“參照完整性” 右擊兩表之間連線,在彈出的對(duì)話框中選擇“編輯參照完整性”,35,參照完整性的內(nèi)容 更新規(guī)則 級(jí)聯(lián):對(duì)父表中關(guān)鍵字的修改,會(huì)自動(dòng)更新子表中相關(guān)記錄中的關(guān)鍵字。 限制:若子表中有相關(guān)記錄,則禁止更改父表中關(guān)鍵字段的值。 忽略:不做參照完整性檢查,可以任意更新父、子表中的記錄。,刪除規(guī)則 級(jí)聯(lián):對(duì)父表中的記錄做刪除,會(huì)自動(dòng)刪除子表中的相關(guān)記錄。 限制:若子表中有相關(guān)記錄,則禁止刪除父表中的相關(guān)記錄。 忽略:不做參照完整性檢查,可以任意刪除父、子表中的記錄。,插入規(guī)則 限制:若

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論