版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
西方哲學史第三章西方哲學史第三章西方哲學史第三章帶范圍ALLNEXTRESTRECORD帶條件FOR性別=“男”FOR教授$職稱FOR四級通過否FOR.not.四級通過否FOR入學成績>560.AND.四級通過否=.t.FOR入學成績<560.oR.四級通過否=.f.FORTRIM(RIGH(姓名,2))=“一”FOR姓名=“張”BROWLAST西方哲學史第三章西方哲學史第三章西方哲學史第三章帶范圍AL1帶范圍ALLNEXTRESTRECORD帶條件FOR性別=“男”
FOR教授$職稱
FOR四級通過否
FOR.not.四級通過否FOR入學成績>560.AND.四級通過否=.t.FOR入學成績<560.oR.四級通過否=.f.
FOR
TRIM(RIGH(姓名,2))=“一”
FOR姓名=“張”BROWLAST帶范圍ALLNEXTRESTRECORD23.索引索引文件名,擴展名,索引項主索引候選索引惟一索引普通索引交互方式命令方式建索引命令方式建立索引立即生效打開表文件的同時使索引生效3.索引3第四章數(shù)據(jù)庫操作4.1.1數(shù)據(jù)庫設計概述前面我們介紹的是自由表,添加到數(shù)據(jù)庫中的自由表稱為數(shù)據(jù)庫表。數(shù)據(jù)庫是一個邏輯上的概念,通過系統(tǒng)文件將相互聯(lián)系的表統(tǒng)一組織管理。數(shù)據(jù)庫文件并不真正含有數(shù)據(jù)庫表,只是在數(shù)據(jù)庫文件中記錄了相關的條目信息。數(shù)據(jù)庫的擴展名為dbc,對應的備注文件擴展名為dCt,索引文件擴展名為dcxP41第四章數(shù)據(jù)庫操作4.1.1數(shù)據(jù)庫設計概述4數(shù)據(jù)庫中的表可以對它們進行連接,如學生信息、成績信息、課程信息可將它們在數(shù)據(jù)庫中進行連接,得到學號、姓名、課程名和成績的信息。數(shù)據(jù)庫中的表的字段名可達到128個字符??梢詫ψ侄卧O置有效性規(guī)則等。如入學成績不大于700等。數(shù)據(jù)庫中的表可以對它們進行連接,如學生5數(shù)據(jù)庫操作主要內容4.1數(shù)據(jù)庫的操作()4.2建立表間的關系()4.3數(shù)據(jù)完整性()數(shù)據(jù)庫操作主要內容64.1.2數(shù)據(jù)庫有建立與打開1.數(shù)據(jù)庫的建立交互方式方法一文件新建數(shù)據(jù)庫新建文件輸入數(shù)據(jù)庫名(默認路徑下、默認數(shù)據(jù)庫名數(shù)據(jù)庫1)保存。一旦創(chuàng)建數(shù)據(jù)后,工具欄下拉列表框中顯示數(shù)據(jù)庫名。表示當前有數(shù)據(jù)庫打開且選中??稍诖蜷_對話框中看到數(shù)據(jù)庫的擴展名為dbc,對應的備注文件擴展名為dCt,索引文件擴展名為dcx4.1.2數(shù)據(jù)庫有建立與打開1.數(shù)據(jù)庫的建立7方法二、使用“項目管理器”創(chuàng)建數(shù)據(jù)庫方法三、使用向導創(chuàng)建數(shù)據(jù)庫二、用命令創(chuàng)建數(shù)據(jù)庫格式:CREADATA[<數(shù)據(jù)庫名>]creadata學生管理庫1命令方式創(chuàng)建的沒有顯示數(shù)據(jù)庫界面,可用Modidata打開界面前面講的CREA表名是創(chuàng)建表當數(shù)據(jù)庫打開且選中時是創(chuàng)建數(shù)據(jù)庫表。(即使數(shù)據(jù)庫界面沒有顯示)方法二、使用“項目管理器”創(chuàng)建數(shù)據(jù)庫82.數(shù)據(jù)庫的打開(1)使用菜單打開數(shù)據(jù)庫對于已經創(chuàng)建的數(shù)據(jù)庫可打開文件打開(文件類型表框)中選擇數(shù)據(jù)庫選數(shù)據(jù)庫確定。(2)使用項目管理器打開數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫數(shù)據(jù)選項卡數(shù)據(jù)庫添加2.數(shù)據(jù)庫的打開9以只讀方式:不能對數(shù)據(jù)庫進行修改以獨占方式:不允許其它用戶使用(3)命令方式打開數(shù)據(jù)庫格式:OPENDATA[<數(shù)據(jù)庫名>]opendata學生管理庫以只讀方式:不能對數(shù)據(jù)庫進行修改103.指定當前數(shù)據(jù)庫如果打開了多個數(shù)據(jù)庫,需用下面的方法指定當前數(shù)據(jù)庫。(1)利用鼠標,單擊顯示的數(shù)據(jù)庫可通過數(shù)據(jù)庫名列表框看到3.指定當前數(shù)據(jù)庫11(2)在常用工具欄指定當前數(shù)據(jù)庫執(zhí)行命令?DBC()可觀察當前選中的數(shù)據(jù)庫(3)使用命令指定當前數(shù)據(jù)庫格式:SETDATATO<數(shù)據(jù)庫名>SETDATATO學生管理庫而SETDATATO不帶選項取消當前數(shù)據(jù)庫(不選中并不關閉)(2)在常用工具欄指定當前數(shù)據(jù)庫124.數(shù)據(jù)庫的關閉關閉數(shù)據(jù)庫是指在內存中清除數(shù)據(jù)庫,而關閉數(shù)據(jù)庫設計器界面并沒有從內存中清除數(shù)據(jù)庫。格式:CLOSDATA|ALLCLOSDATA&&關閉當前數(shù)據(jù)庫如果關閉數(shù)據(jù)庫器界面和關閉數(shù)據(jù)庫不同,如果關閉數(shù)據(jù)庫界面后。再執(zhí)行MODIDATA
顯示數(shù)據(jù)庫界面4.數(shù)據(jù)庫的關閉134.1.3向數(shù)據(jù)庫添加或移去表前面介紹的是自由表,數(shù)據(jù)庫中的表稱為數(shù)據(jù)庫表,自由表可以從數(shù)據(jù)庫中移去,也可將自由表添加到數(shù)據(jù)庫中。1.向數(shù)據(jù)庫中添加表(1)交互方式:方法一、打開數(shù)據(jù)庫顯示工具欄數(shù)據(jù)庫設計器添加表在打開對話框中選擇自由表。4.1.3向數(shù)據(jù)庫添加或移去表前面介紹的是自由表,數(shù)據(jù)庫中的14方法二、數(shù)據(jù)庫設計器的空白位置右擊鼠標,選擇添加表。將學生信息、成績信息添加到數(shù)據(jù)庫中。不能將已經是其它數(shù)據(jù)庫的表添加到當前數(shù)據(jù)庫(2)命令方式先打開數(shù)據(jù)庫,并選中數(shù)據(jù)庫格式:ADDTABLE[<表名>|?]ADDTABLE或ADDTABLE?顯示打開對話框方法二、15ADDTABLE表名&&打開指定表ADDTABLE表名NAME長名以上是將自由表添加到當前指定的數(shù)據(jù)庫中而執(zhí)行USE表名或交互方式打開表即使選中了數(shù)據(jù)庫,自由表不添加到數(shù)據(jù)庫中ADDTABLE表名&&打開指定表162.從數(shù)據(jù)庫中移去或刪除表(1)交互方式打開數(shù)據(jù)庫(若數(shù)據(jù)庫已經打開,將其置為當前數(shù)據(jù)庫)選定表數(shù)據(jù)庫移去(或在表上右擊鼠標)刪除(再選擇移出/刪除)。對于移去的表,長表名和長字段名不再存在。2.從數(shù)據(jù)庫中移去或刪除表17(2)命令方式格式:REMOTABL表名[DELE]DELE選項是刪除表REMOTABL學生信息如果取了長名,需用長名。3.重命名數(shù)據(jù)庫中的表格式:RENATABL<表名>TO<新表名>renatabl學生信息to學生表移去表后表名還原(2)命令方式181.創(chuàng)建數(shù)據(jù)庫表的方法選中數(shù)據(jù)庫后,創(chuàng)建的表為當前數(shù)據(jù)庫表方法1:打開數(shù)據(jù)庫新建表新建文件方法2:打開數(shù)據(jù)庫在命令窗口中執(zhí)行CREA表名如果沒有選中數(shù)據(jù)庫,CREA表名創(chuàng)建自由表方法3:選中數(shù)據(jù)庫數(shù)據(jù)庫新建表輸入表名保存4.1.4創(chuàng)建數(shù)據(jù)庫表1.創(chuàng)建數(shù)據(jù)庫表的方法4.1.4創(chuàng)建數(shù)據(jù)庫表19例4.4在數(shù)據(jù)庫的表設計器中建立“學生成績信息”表打開(文件類型)選數(shù)據(jù)庫.dbc學生管理庫確定。打開學生管理數(shù)據(jù)庫。選中學生管理庫數(shù)據(jù)庫新建表新建表在創(chuàng)建對話框中輸入“學生成績信息”保存打開數(shù)據(jù)庫表設計器。例4.4在數(shù)據(jù)庫的表設計器中建立“學生成績信息”表202.為數(shù)據(jù)庫表建立主索引自由表中不能建立主索引,數(shù)據(jù)庫表中可建立一個主索引。一般在表中能惟一標識一條記錄的字段,如學號。建立主索引。(1)交互方式操作步驟:打開數(shù)據(jù)庫選中表右擊鼠標修改在字段選項卡中將學號設置為升序索引選項卡類型中選主索引確定。2.為數(shù)據(jù)庫表建立主索引21返回后可看到學生信息表的下面增加了一個索引項,前面有一個鑰匙,表示主索引。也可在索引選項卡中刪除主索引。(2)命令方式(只要是庫表,即使數(shù)據(jù)庫沒有打開,也能執(zhí)行)格式:ALTERTABL<表名>ADDPRIMKEY<索引關鍵字>[TAG標識名]altertabl學生信息addprimkey學號省略TAG標識名,默認為學號返回后可看到學生信息表的下面增加了22altertabl學生信息addprimkey學號刪除主索引,由于主索引只有一個,不需指明索引關鍵字。altertabl學生信息dropprimkeyaltertabl學生信息addprimkey學23小結1.打開數(shù)據(jù)庫添加表,移出表命令方式添加(移出)表時要選中數(shù)據(jù)庫2.創(chuàng)建數(shù)據(jù)庫表交互方式命令方式CREA表名時需選中數(shù)據(jù)庫3.建立主索引交互方式命令方式小結1.打開數(shù)據(jù)庫添加表,移出表244.2建立表間的關系4.2.1基本概念數(shù)據(jù)庫中有關系的多個表是在不同工作區(qū)中打開的,在數(shù)據(jù)庫中可以對它們進行一對一或一對多的關聯(lián)。關聯(lián)分為臨時關聯(lián)和永久關聯(lián)。表之間要建立關聯(lián)必須要有相關聯(lián)的字段。臨時關聯(lián),在退出VFP后自動解出。而永久關聯(lián)是為表之間的完整性引入的。稱為連接。4.2建立表間的關系4.2.1基本概念25只有在表之間存在相關聯(lián)的字段才能建立關聯(lián),關聯(lián)的字段要相同的屬性。主關鍵字段存在于發(fā)出關聯(lián)的表(父表,即一對多中的一)外部關鍵字段存在于被關聯(lián)的表(子表)。一對一關聯(lián):父表每一條記錄只能與子表一條記錄相對應。一對多關聯(lián):父表每一條記錄可以與子表的多條記錄對應。父表需建立主索引,子表需建立普通索引?;蛭┮凰饕V挥性诒碇g存在相關聯(lián)的字段才能建立關聯(lián),264.2.1表間的臨時關聯(lián)建立了表之間的臨時關聯(lián)后,能夠實現(xiàn)當移動父表的記錄指針時,子表的記錄指針自動移動到建立了關聯(lián)的相同字段值的記錄上。交互方式建立臨時關聯(lián)成績信息學號建立普通索引關閉成績信息窗口數(shù)據(jù)工作期打開學生信息打開成績信息選中學生信息關系選中成績信息確定確定命令窗口執(zhí)行List學號,姓名,b->成績4.2.1表間的臨時關聯(lián)27一對多選中成績信息移動確定List學號,姓名,b->成績(2)建立3個表的關聯(lián)為成績信息學號建立普通索引為課程信息課程號建立普通索引并關閉這2個表窗口數(shù)據(jù)工作期打開學生信息打開成績信息課程信息選中學生信息關系選中成績信息確定確定選中成績信息關系選中課程信息確定確定選中學生信息一對多選中成績信息,課程信息全部添加確定List學號,姓名,b->成績,C->課程名一對多選中成績信息移動確定284.2.3表的連接
1.建立連接(1)建立連接的目的:設置參照完整性的前提建立視圖、查詢時涉及到多張表時,要先建立連接下頁4.2.3表的連接1.建立連接下頁29(2)建立連接的條件:外部關鍵字(foreignkey)外部關鍵字是兩個關系聯(lián)系的紐帶A:父表要建立主索引或候選索引B:子表要建立索引 (3)方法:從父表的主索引拖向子表的索引主索引候選索引普通索引唯一索引(2)建立連接的條件:主索引普通索引30建立學生信息對成績信息的一對多打開數(shù)據(jù)庫添加學生信息右擊學生信息修改設置主索引確定添加成績信息右擊成績信息修改設置普通索引確定拖動鼠標連接學生信息和成績信息選中編輯線后,按DEL鍵刪除連接建立學生信息對成績信息的一對多312.編輯與刪除永久關系對于關系連接線,可以刪除雙擊關系連線,可編輯打開編輯關系對話框,再單擊參照完整性,打開參照完整性對話框。(1)數(shù)據(jù)庫清理數(shù)據(jù)庫打開參照完整性對話框前需先清理數(shù)據(jù)庫。2.編輯與刪除永久關系32建立連接后執(zhí)行(1)數(shù)據(jù)庫清理數(shù)據(jù)庫注意:清理數(shù)據(jù)庫之前不能瀏覽表。否則不能清理庫。清理數(shù)據(jù)庫后,可雙擊連接線,打開編輯關系對話框。建立連接后執(zhí)行33(2)編輯關系。在“數(shù)據(jù)庫設計器”中雙擊數(shù)據(jù)庫表之間的關系連線,或右鍵單擊關系連線,在彈出的菜單中選擇“編輯關系”,會彈出如圖4-19所示的“編輯關系”對話框。
(2)編輯關系。在“數(shù)據(jù)庫設計器”中雙擊數(shù)據(jù)庫表之間的關系連344.3數(shù)據(jù)完整性在VFP中數(shù)據(jù)的完整性是指保證數(shù)據(jù)正確的特性。數(shù)據(jù)的完整性包括實體完整性域完整性參照性完整性。4.3.1實體完整性實體(記錄)完整性由三部分組成(1)記錄的唯一性(由主索引保證)(2)同一記錄中字段間的相互間的約束(由記錄有效性規(guī)則保證)(3)控制對記錄的修改(由觸發(fā)器控制)4.3數(shù)據(jù)完整性在VFP中數(shù)據(jù)的完整性是指保證數(shù)據(jù)正確的特351.記錄有效性規(guī)則的設置記錄有效性規(guī)則是字段間相互約束的規(guī)則。如將課程信息表設置學分=學時/18,即學分如果違反了這一規(guī)則后,出現(xiàn)提示信息,提示信息可在下面的信息文字框中由用戶自行設定例如將學生管理數(shù)據(jù)庫中的課程信息表的記錄有效性規(guī)則設置為學分=學時/18操作:打開數(shù)據(jù)庫獨占右擊數(shù)據(jù)庫中的課程信息修改表記錄有效性規(guī)則輸入學分=學時/181.記錄有效性規(guī)則的設置36更改后,在瀏覽窗口中改變學分或學時,不符合規(guī)則時,顯示提示信息。這里分為兩種情況:1.先沒有規(guī)則,如果原來的數(shù)據(jù)與規(guī)則不符,再設置規(guī)則,顯示提示信息。2.先設置規(guī)則,然后輸入字段值,不允許違反規(guī)則。提示信息:在該文字框中輸入“學分與學時必須符合:學分=學時/18”更改后,在瀏覽窗口中改變學分或學時,不372.觸發(fā)器當插入觸發(fā)器設置插入規(guī)則后,如:右擊課程信息修改表在插入觸發(fā)器中輸入課程名<>“”對數(shù)據(jù)庫表追加時,課程名為空時,不允許3.表名右擊課程信息修改表在表名中輸入新表名這和renatabl湖北大學課程信息to課程信息相同2.觸發(fā)器384.3.2域完整性域完整性保證對表字段修改的正確性。域約束規(guī)則又稱為字段有效性規(guī)則。在輸入或修改字段時被激活,用于檢驗字段是否符合規(guī)則。設置默認值、限定字段的取值范圍均屬于域完整性范疇。4.3.2域完整性391.字段”顯示”屬性的設置右擊數(shù)據(jù)庫設計器中的表修改出現(xiàn)表設計器(數(shù)據(jù)庫表的設計器與自由表設計器不同)打開表設計器后,可在表設計器窗口中進行如下設置。顯示、輸入掩碼、標題、注釋
1.字段”顯示”屬性的設置40(1)顯示(需先確定字段)a)格式:指定顯示的格式。$:如數(shù)值型的位數(shù)小于定義的寬度時,前面加$b)輸入掩碼:指定輸入字段值的格式,一個符號只指定一個。9:表示對應位只能輸入數(shù)字。并根據(jù)位數(shù)限制長度如將學號格式設置為八個9,則不允許輸入字母或漢字c)標題:在標題框中輸入的為長字段名。當在數(shù)據(jù)庫中瀏覽表時,將該名字作為字段名。一但從數(shù)據(jù)庫從移出時,長字段名失去。(1)顯示(需先確定字段)41(2)字段有效性a)規(guī)則:限制輸入時字段的長度和大小。例:設置出生日期不能大于系統(tǒng)日期。選中出生日期后,在規(guī)則框中輸入:出生日期<DATE()設置后,當輸入日期字段時,如果輸入的出生日期大于系統(tǒng)日期,則顯示系統(tǒng)提示錯誤再如:year(date())-year(出生日期)>18year(date())-year(出生日期)>=12andyear(date())-year(出生日期)<=70(2)字段有效性42例:限制輸入的姓名不少于2個漢字,選中姓名字段后,在規(guī)則框中輸入LEN(TRIM(姓名))=>4,用追加方式時,當輸入的姓名只有一個漢字時,顯示錯誤。例:限制入學成績,選中入學成績,在規(guī)則框中輸入入學成績>=400and入學成績<=700以上的規(guī)則也可通過按左邊的按鈕,進入到表達式生成器中輸入。例:限制輸入的姓名不少于2個漢字,選中姓名字段后,在規(guī)則框中43入學成績>=0and入學成績<=900性別=“男”or性別=“女”入學成績>=0and入學成績<=90044b)信息:當違反規(guī)則后,用戶可設置顯示出錯信息。如在設置姓名規(guī)則后,在該框中輸入“姓名不能是一個漢字”,則出錯時,顯示用戶自己設置的信息。c)默認值:設置該項后,對于所有對應的新增加的字段值取該值。瀏覽時可更改。如選中所在學院后,在默認值框中輸入”人文學院”b)信息:當違反規(guī)則后,用戶可設置顯示出錯信息。如在設置姓名451.參照完整性的概念參照性完整性用于數(shù)據(jù)庫表中相關聯(lián)的數(shù)據(jù)表,保證相關聯(lián)表之間的完整性。當在一個表中插入、修改和刪除時通過參照引用,檢查對表的操作是否正確。2.參照完整性的設置建立永久關聯(lián)后,一般重新啟動VFP。1)清理數(shù)據(jù)庫數(shù)據(jù)庫清理數(shù)據(jù)庫如果打開過瀏覽窗口需關閉表2)編輯參照完整性打開數(shù)據(jù)庫數(shù)據(jù)庫編輯參照完整性2.參照性完整性1.參照完整性的概念2.參照性完整性46方法2:雙擊數(shù)據(jù)庫設計器中兩個表的連線或右擊關系連線編輯關系編輯參照完整性方法3:數(shù)據(jù)庫設計器中右擊空白位置編輯參照完整性方法4:右擊關系連線編輯參照完整性參照完整性對話框中有3個標簽:方法2:雙擊數(shù)據(jù)庫設計器中兩個表的連線47參照完整性對話框中有3個標簽:(1)更新規(guī)則:父表中關鍵字被修改時,進行下面3種規(guī)則設置①級聯(lián):父表的關鍵字修改時,自動更新子表中所有相關的記錄值②限制:當修改父表中的關鍵字段時,若子表中有相關字段,禁止對父表修改③忽略:允許對父表進行修改,不處理子表中的字段。參照完整性對話框中有3個標簽:48(2)刪除規(guī)則①級聯(lián):刪除父表記錄時,子表的記錄自動刪除②限制:刪除父表時,若子表中有相關記錄,禁止刪除父表③忽略:允許對父表刪除,不處理子表中的相關記錄。(3)插入規(guī)則在子表中插入記錄或更新,遵守下面的規(guī)則限制:父表中不存在匹配的關鍵字段值時,禁止在子表插入忽略:允許插入(2)刪除規(guī)則49上次課小節(jié)創(chuàng)建數(shù)據(jù)庫交互方式:新建數(shù)據(jù)庫新建文件取名(默認數(shù)據(jù)1)保存命令方式:CREADATA[數(shù)據(jù)庫名]數(shù)據(jù)庫文件的擴展名.DBC,數(shù)據(jù)庫備注文件擴展名.DCT,數(shù)據(jù)庫索引文件擴展名.DCT2.打開數(shù)據(jù)庫交互方式:打開文件類型選中獨占上次課小節(jié)創(chuàng)建數(shù)據(jù)庫50命令方式:OPENDATA數(shù)據(jù)庫名3.關閉數(shù)據(jù)庫CLOSDATA關閉數(shù)據(jù)庫設計器界面后,可用MODIDATA恢復顯示。4.添加表、移去表習題:P103一、選擇題1.能打開數(shù)據(jù)庫的命令是OPENDATA命令方式:OPENDATA數(shù)據(jù)庫名512.不能關閉庫的命令是CLOSQUIT退出VFPP49CLOSALL等3.在數(shù)據(jù)庫中建立一對多的關聯(lián)時,父表可建立主索引或候選索引,子表可建立普通索引。4.主索引的正確說法是:一個數(shù)據(jù)庫表只能建立一個主索引。5.參照完整性不包括查詢規(guī)則6.數(shù)據(jù)庫表與自由表相比,以上說法都對7.參照完整性規(guī)則,當希望更改主表中的主關鍵字段或候選關鍵字段時,自動更改相關子表的對應值,應選擇級聯(lián)2.不能關閉庫的命令是CLOS52二、填空題1.用于建立主索引或候選索引的關鍵字段的各個值必須是惟一的
對于數(shù)據(jù)庫表可建立一個主索引或多個候選索引。4.VFP中的記錄級有效性規(guī)則用用于檢查相關字段之間的邏輯關系二級等級考試題1.在表設計器的“字段”選項卡中可以創(chuàng)建的索引是A)唯一索引B)候選索引C)主索引D)普通索引二、填空題532.在數(shù)據(jù)庫表設計器中設置字段有效性規(guī)則是為了保證數(shù)據(jù)的A)實體完整性B)表完整性C)參照完整性D)域完整性3.有關參照完整性的刪除規(guī)則,正確描述的是:如果刪除規(guī)則選擇的是“限制”,當用戶刪除父表中的記錄時,系統(tǒng)自動刪除子表中的所有相關記錄。如果刪除規(guī)則選擇的是“級聯(lián)”,當用戶刪除父表中的記錄時,系統(tǒng)禁止刪除與子表相關的父表中的記錄。2.在數(shù)據(jù)庫表設計器中設置字段有效性規(guī)則是為了保證數(shù)據(jù)的54C)如果刪除規(guī)則選擇的是“忽略”,則當用戶刪除父表中的記錄時,系統(tǒng)不做任何工作。D)上面3種說法都不對4.從關系模式中指定若干個屬性組成新的關系的運算稱為A)聯(lián)接B)投影C)選擇D)排序C)如果刪除規(guī)則選擇的是“忽略”,則當用戶刪除父表中的記錄時555.在模型中,“關系中不允許出現(xiàn)相同元組”約束是通過實體完整性實現(xiàn)的。6.使數(shù)據(jù)庫表變?yōu)樽杂杀淼拿钍荝EMOTABL表名7.當刪除父表中的記錄時,若子表中的所有相關記錄也能自動刪除,則相應的參照完整性的刪除規(guī)則為級聯(lián)5.在模型中,“關系中不允許出現(xiàn)相同元組”約束是通過實體完整56 謝謝大家! 謝謝大家!57西方哲學史第三章西方哲學史第三章西方哲學史第三章帶范圍ALLNEXTRESTRECORD帶條件FOR性別=“男”FOR教授$職稱FOR四級通過否FOR.not.四級通過否FOR入學成績>560.AND.四級通過否=.t.FOR入學成績<560.oR.四級通過否=.f.FORTRIM(RIGH(姓名,2))=“一”FOR姓名=“張”BROWLAST西方哲學史第三章西方哲學史第三章西方哲學史第三章帶范圍AL58帶范圍ALLNEXTRESTRECORD帶條件FOR性別=“男”
FOR教授$職稱
FOR四級通過否
FOR.not.四級通過否FOR入學成績>560.AND.四級通過否=.t.FOR入學成績<560.oR.四級通過否=.f.
FOR
TRIM(RIGH(姓名,2))=“一”
FOR姓名=“張”BROWLAST帶范圍ALLNEXTRESTRECORD593.索引索引文件名,擴展名,索引項主索引候選索引惟一索引普通索引交互方式命令方式建索引命令方式建立索引立即生效打開表文件的同時使索引生效3.索引60第四章數(shù)據(jù)庫操作4.1.1數(shù)據(jù)庫設計概述前面我們介紹的是自由表,添加到數(shù)據(jù)庫中的自由表稱為數(shù)據(jù)庫表。數(shù)據(jù)庫是一個邏輯上的概念,通過系統(tǒng)文件將相互聯(lián)系的表統(tǒng)一組織管理。數(shù)據(jù)庫文件并不真正含有數(shù)據(jù)庫表,只是在數(shù)據(jù)庫文件中記錄了相關的條目信息。數(shù)據(jù)庫的擴展名為dbc,對應的備注文件擴展名為dCt,索引文件擴展名為dcxP41第四章數(shù)據(jù)庫操作4.1.1數(shù)據(jù)庫設計概述61數(shù)據(jù)庫中的表可以對它們進行連接,如學生信息、成績信息、課程信息可將它們在數(shù)據(jù)庫中進行連接,得到學號、姓名、課程名和成績的信息。數(shù)據(jù)庫中的表的字段名可達到128個字符??梢詫ψ侄卧O置有效性規(guī)則等。如入學成績不大于700等。數(shù)據(jù)庫中的表可以對它們進行連接,如學生62數(shù)據(jù)庫操作主要內容4.1數(shù)據(jù)庫的操作()4.2建立表間的關系()4.3數(shù)據(jù)完整性()數(shù)據(jù)庫操作主要內容634.1.2數(shù)據(jù)庫有建立與打開1.數(shù)據(jù)庫的建立交互方式方法一文件新建數(shù)據(jù)庫新建文件輸入數(shù)據(jù)庫名(默認路徑下、默認數(shù)據(jù)庫名數(shù)據(jù)庫1)保存。一旦創(chuàng)建數(shù)據(jù)后,工具欄下拉列表框中顯示數(shù)據(jù)庫名。表示當前有數(shù)據(jù)庫打開且選中??稍诖蜷_對話框中看到數(shù)據(jù)庫的擴展名為dbc,對應的備注文件擴展名為dCt,索引文件擴展名為dcx4.1.2數(shù)據(jù)庫有建立與打開1.數(shù)據(jù)庫的建立64方法二、使用“項目管理器”創(chuàng)建數(shù)據(jù)庫方法三、使用向導創(chuàng)建數(shù)據(jù)庫二、用命令創(chuàng)建數(shù)據(jù)庫格式:CREADATA[<數(shù)據(jù)庫名>]creadata學生管理庫1命令方式創(chuàng)建的沒有顯示數(shù)據(jù)庫界面,可用Modidata打開界面前面講的CREA表名是創(chuàng)建表當數(shù)據(jù)庫打開且選中時是創(chuàng)建數(shù)據(jù)庫表。(即使數(shù)據(jù)庫界面沒有顯示)方法二、使用“項目管理器”創(chuàng)建數(shù)據(jù)庫652.數(shù)據(jù)庫的打開(1)使用菜單打開數(shù)據(jù)庫對于已經創(chuàng)建的數(shù)據(jù)庫可打開文件打開(文件類型表框)中選擇數(shù)據(jù)庫選數(shù)據(jù)庫確定。(2)使用項目管理器打開數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫數(shù)據(jù)選項卡數(shù)據(jù)庫添加2.數(shù)據(jù)庫的打開66以只讀方式:不能對數(shù)據(jù)庫進行修改以獨占方式:不允許其它用戶使用(3)命令方式打開數(shù)據(jù)庫格式:OPENDATA[<數(shù)據(jù)庫名>]opendata學生管理庫以只讀方式:不能對數(shù)據(jù)庫進行修改673.指定當前數(shù)據(jù)庫如果打開了多個數(shù)據(jù)庫,需用下面的方法指定當前數(shù)據(jù)庫。(1)利用鼠標,單擊顯示的數(shù)據(jù)庫可通過數(shù)據(jù)庫名列表框看到3.指定當前數(shù)據(jù)庫68(2)在常用工具欄指定當前數(shù)據(jù)庫執(zhí)行命令?DBC()可觀察當前選中的數(shù)據(jù)庫(3)使用命令指定當前數(shù)據(jù)庫格式:SETDATATO<數(shù)據(jù)庫名>SETDATATO學生管理庫而SETDATATO不帶選項取消當前數(shù)據(jù)庫(不選中并不關閉)(2)在常用工具欄指定當前數(shù)據(jù)庫694.數(shù)據(jù)庫的關閉關閉數(shù)據(jù)庫是指在內存中清除數(shù)據(jù)庫,而關閉數(shù)據(jù)庫設計器界面并沒有從內存中清除數(shù)據(jù)庫。格式:CLOSDATA|ALLCLOSDATA&&關閉當前數(shù)據(jù)庫如果關閉數(shù)據(jù)庫器界面和關閉數(shù)據(jù)庫不同,如果關閉數(shù)據(jù)庫界面后。再執(zhí)行MODIDATA
顯示數(shù)據(jù)庫界面4.數(shù)據(jù)庫的關閉704.1.3向數(shù)據(jù)庫添加或移去表前面介紹的是自由表,數(shù)據(jù)庫中的表稱為數(shù)據(jù)庫表,自由表可以從數(shù)據(jù)庫中移去,也可將自由表添加到數(shù)據(jù)庫中。1.向數(shù)據(jù)庫中添加表(1)交互方式:方法一、打開數(shù)據(jù)庫顯示工具欄數(shù)據(jù)庫設計器添加表在打開對話框中選擇自由表。4.1.3向數(shù)據(jù)庫添加或移去表前面介紹的是自由表,數(shù)據(jù)庫中的71方法二、數(shù)據(jù)庫設計器的空白位置右擊鼠標,選擇添加表。將學生信息、成績信息添加到數(shù)據(jù)庫中。不能將已經是其它數(shù)據(jù)庫的表添加到當前數(shù)據(jù)庫(2)命令方式先打開數(shù)據(jù)庫,并選中數(shù)據(jù)庫格式:ADDTABLE[<表名>|?]ADDTABLE或ADDTABLE?顯示打開對話框方法二、72ADDTABLE表名&&打開指定表ADDTABLE表名NAME長名以上是將自由表添加到當前指定的數(shù)據(jù)庫中而執(zhí)行USE表名或交互方式打開表即使選中了數(shù)據(jù)庫,自由表不添加到數(shù)據(jù)庫中ADDTABLE表名&&打開指定表732.從數(shù)據(jù)庫中移去或刪除表(1)交互方式打開數(shù)據(jù)庫(若數(shù)據(jù)庫已經打開,將其置為當前數(shù)據(jù)庫)選定表數(shù)據(jù)庫移去(或在表上右擊鼠標)刪除(再選擇移出/刪除)。對于移去的表,長表名和長字段名不再存在。2.從數(shù)據(jù)庫中移去或刪除表74(2)命令方式格式:REMOTABL表名[DELE]DELE選項是刪除表REMOTABL學生信息如果取了長名,需用長名。3.重命名數(shù)據(jù)庫中的表格式:RENATABL<表名>TO<新表名>renatabl學生信息to學生表移去表后表名還原(2)命令方式751.創(chuàng)建數(shù)據(jù)庫表的方法選中數(shù)據(jù)庫后,創(chuàng)建的表為當前數(shù)據(jù)庫表方法1:打開數(shù)據(jù)庫新建表新建文件方法2:打開數(shù)據(jù)庫在命令窗口中執(zhí)行CREA表名如果沒有選中數(shù)據(jù)庫,CREA表名創(chuàng)建自由表方法3:選中數(shù)據(jù)庫數(shù)據(jù)庫新建表輸入表名保存4.1.4創(chuàng)建數(shù)據(jù)庫表1.創(chuàng)建數(shù)據(jù)庫表的方法4.1.4創(chuàng)建數(shù)據(jù)庫表76例4.4在數(shù)據(jù)庫的表設計器中建立“學生成績信息”表打開(文件類型)選數(shù)據(jù)庫.dbc學生管理庫確定。打開學生管理數(shù)據(jù)庫。選中學生管理庫數(shù)據(jù)庫新建表新建表在創(chuàng)建對話框中輸入“學生成績信息”保存打開數(shù)據(jù)庫表設計器。例4.4在數(shù)據(jù)庫的表設計器中建立“學生成績信息”表772.為數(shù)據(jù)庫表建立主索引自由表中不能建立主索引,數(shù)據(jù)庫表中可建立一個主索引。一般在表中能惟一標識一條記錄的字段,如學號。建立主索引。(1)交互方式操作步驟:打開數(shù)據(jù)庫選中表右擊鼠標修改在字段選項卡中將學號設置為升序索引選項卡類型中選主索引確定。2.為數(shù)據(jù)庫表建立主索引78返回后可看到學生信息表的下面增加了一個索引項,前面有一個鑰匙,表示主索引。也可在索引選項卡中刪除主索引。(2)命令方式(只要是庫表,即使數(shù)據(jù)庫沒有打開,也能執(zhí)行)格式:ALTERTABL<表名>ADDPRIMKEY<索引關鍵字>[TAG標識名]altertabl學生信息addprimkey學號省略TAG標識名,默認為學號返回后可看到學生信息表的下面增加了79altertabl學生信息addprimkey學號刪除主索引,由于主索引只有一個,不需指明索引關鍵字。altertabl學生信息dropprimkeyaltertabl學生信息addprimkey學80小結1.打開數(shù)據(jù)庫添加表,移出表命令方式添加(移出)表時要選中數(shù)據(jù)庫2.創(chuàng)建數(shù)據(jù)庫表交互方式命令方式CREA表名時需選中數(shù)據(jù)庫3.建立主索引交互方式命令方式小結1.打開數(shù)據(jù)庫添加表,移出表814.2建立表間的關系4.2.1基本概念數(shù)據(jù)庫中有關系的多個表是在不同工作區(qū)中打開的,在數(shù)據(jù)庫中可以對它們進行一對一或一對多的關聯(lián)。關聯(lián)分為臨時關聯(lián)和永久關聯(lián)。表之間要建立關聯(lián)必須要有相關聯(lián)的字段。臨時關聯(lián),在退出VFP后自動解出。而永久關聯(lián)是為表之間的完整性引入的。稱為連接。4.2建立表間的關系4.2.1基本概念82只有在表之間存在相關聯(lián)的字段才能建立關聯(lián),關聯(lián)的字段要相同的屬性。主關鍵字段存在于發(fā)出關聯(lián)的表(父表,即一對多中的一)外部關鍵字段存在于被關聯(lián)的表(子表)。一對一關聯(lián):父表每一條記錄只能與子表一條記錄相對應。一對多關聯(lián):父表每一條記錄可以與子表的多條記錄對應。父表需建立主索引,子表需建立普通索引?;蛭┮凰饕?。只有在表之間存在相關聯(lián)的字段才能建立關聯(lián),834.2.1表間的臨時關聯(lián)建立了表之間的臨時關聯(lián)后,能夠實現(xiàn)當移動父表的記錄指針時,子表的記錄指針自動移動到建立了關聯(lián)的相同字段值的記錄上。交互方式建立臨時關聯(lián)成績信息學號建立普通索引關閉成績信息窗口數(shù)據(jù)工作期打開學生信息打開成績信息選中學生信息關系選中成績信息確定確定命令窗口執(zhí)行List學號,姓名,b->成績4.2.1表間的臨時關聯(lián)84一對多選中成績信息移動確定List學號,姓名,b->成績(2)建立3個表的關聯(lián)為成績信息學號建立普通索引為課程信息課程號建立普通索引并關閉這2個表窗口數(shù)據(jù)工作期打開學生信息打開成績信息課程信息選中學生信息關系選中成績信息確定確定選中成績信息關系選中課程信息確定確定選中學生信息一對多選中成績信息,課程信息全部添加確定List學號,姓名,b->成績,C->課程名一對多選中成績信息移動確定854.2.3表的連接
1.建立連接(1)建立連接的目的:設置參照完整性的前提建立視圖、查詢時涉及到多張表時,要先建立連接下頁4.2.3表的連接1.建立連接下頁86(2)建立連接的條件:外部關鍵字(foreignkey)外部關鍵字是兩個關系聯(lián)系的紐帶A:父表要建立主索引或候選索引B:子表要建立索引 (3)方法:從父表的主索引拖向子表的索引主索引候選索引普通索引唯一索引(2)建立連接的條件:主索引普通索引87建立學生信息對成績信息的一對多打開數(shù)據(jù)庫添加學生信息右擊學生信息修改設置主索引確定添加成績信息右擊成績信息修改設置普通索引確定拖動鼠標連接學生信息和成績信息選中編輯線后,按DEL鍵刪除連接建立學生信息對成績信息的一對多882.編輯與刪除永久關系對于關系連接線,可以刪除雙擊關系連線,可編輯打開編輯關系對話框,再單擊參照完整性,打開參照完整性對話框。(1)數(shù)據(jù)庫清理數(shù)據(jù)庫打開參照完整性對話框前需先清理數(shù)據(jù)庫。2.編輯與刪除永久關系89建立連接后執(zhí)行(1)數(shù)據(jù)庫清理數(shù)據(jù)庫注意:清理數(shù)據(jù)庫之前不能瀏覽表。否則不能清理庫。清理數(shù)據(jù)庫后,可雙擊連接線,打開編輯關系對話框。建立連接后執(zhí)行90(2)編輯關系。在“數(shù)據(jù)庫設計器”中雙擊數(shù)據(jù)庫表之間的關系連線,或右鍵單擊關系連線,在彈出的菜單中選擇“編輯關系”,會彈出如圖4-19所示的“編輯關系”對話框。
(2)編輯關系。在“數(shù)據(jù)庫設計器”中雙擊數(shù)據(jù)庫表之間的關系連914.3數(shù)據(jù)完整性在VFP中數(shù)據(jù)的完整性是指保證數(shù)據(jù)正確的特性。數(shù)據(jù)的完整性包括實體完整性域完整性參照性完整性。4.3.1實體完整性實體(記錄)完整性由三部分組成(1)記錄的唯一性(由主索引保證)(2)同一記錄中字段間的相互間的約束(由記錄有效性規(guī)則保證)(3)控制對記錄的修改(由觸發(fā)器控制)4.3數(shù)據(jù)完整性在VFP中數(shù)據(jù)的完整性是指保證數(shù)據(jù)正確的特921.記錄有效性規(guī)則的設置記錄有效性規(guī)則是字段間相互約束的規(guī)則。如將課程信息表設置學分=學時/18,即學分如果違反了這一規(guī)則后,出現(xiàn)提示信息,提示信息可在下面的信息文字框中由用戶自行設定例如將學生管理數(shù)據(jù)庫中的課程信息表的記錄有效性規(guī)則設置為學分=學時/18操作:打開數(shù)據(jù)庫獨占右擊數(shù)據(jù)庫中的課程信息修改表記錄有效性規(guī)則輸入學分=學時/181.記錄有效性規(guī)則的設置93更改后,在瀏覽窗口中改變學分或學時,不符合規(guī)則時,顯示提示信息。這里分為兩種情況:1.先沒有規(guī)則,如果原來的數(shù)據(jù)與規(guī)則不符,再設置規(guī)則,顯示提示信息。2.先設置規(guī)則,然后輸入字段值,不允許違反規(guī)則。提示信息:在該文字框中輸入“學分與學時必須符合:學分=學時/18”更改后,在瀏覽窗口中改變學分或學時,不942.觸發(fā)器當插入觸發(fā)器設置插入規(guī)則后,如:右擊課程信息修改表在插入觸發(fā)器中輸入課程名<>“”對數(shù)據(jù)庫表追加時,課程名為空時,不允許3.表名右擊課程信息修改表在表名中輸入新表名這和renatabl湖北大學課程信息to課程信息相同2.觸發(fā)器954.3.2域完整性域完整性保證對表字段修改的正確性。域約束規(guī)則又稱為字段有效性規(guī)則。在輸入或修改字段時被激活,用于檢驗字段是否符合規(guī)則。設置默認值、限定字段的取值范圍均屬于域完整性范疇。4.3.2域完整性961.字段”顯示”屬性的設置右擊數(shù)據(jù)庫設計器中的表修改出現(xiàn)表設計器(數(shù)據(jù)庫表的設計器與自由表設計器不同)打開表設計器后,可在表設計器窗口中進行如下設置。顯示、輸入掩碼、標題、注釋
1.字段”顯示”屬性的設置97(1)顯示(需先確定字段)a)格式:指定顯示的格式。$:如數(shù)值型的位數(shù)小于定義的寬度時,前面加$b)輸入掩碼:指定輸入字段值的格式,一個符號只指定一個。9:表示對應位只能輸入數(shù)字。并根據(jù)位數(shù)限制長度如將學號格式設置為八個9,則不允許輸入字母或漢字c)標題:在標題框中輸入的為長字段名。當在數(shù)據(jù)庫中瀏覽表時,將該名字作為字段名。一但從數(shù)據(jù)庫從移出時,長字段名失去。(1)顯示(需先確定字段)98(2)字段有效性a)規(guī)則:限制輸入時字段的長度和大小。例:設置出生日期不能大于系統(tǒng)日期。選中出生日期后,在規(guī)則框中輸入:出生日期<DATE()設置后,當輸入日期字段時,如果輸入的出生日期大于系統(tǒng)日期,則顯示系統(tǒng)提示錯誤再如:year(date())-year(出生日期)>18year(date())-year(出生日期)>=12andyear(date())-year(出生日期)<=70(2)字段有效性99例:限制輸入的姓名不少于2個漢字,選中姓名字段后,在規(guī)則框中輸入LEN(TRIM(姓名))=>4,用追加方式時,當輸入的姓名只有一個漢字時,顯示錯誤。例:限制入學成績,選中入學成績,在規(guī)則框中輸入入學成績>=400and入學成績<=700以上的規(guī)則也可通過按左邊的按鈕,進入到表達式生成器中輸入。例:限制輸入的姓名不少于2個漢字,選中姓名字段后,在規(guī)則框中100入學成績>=0and入學成績<=900性別=“男”or性別=“女”入學成績>=0and入學成績<=900101b)信息:當違反規(guī)則后,用戶可設置顯示出錯信息。如在設置姓名規(guī)則后,在該框中輸入“姓名不能是一個漢字”,則出錯時,顯示用戶自己設置的信息。c)默認值:設置該項后,對于所有對應的新增加的字段值取該值。瀏覽時可更改。如選中所在學院后,在默認值框中輸入”人文學院”b)信息:當違反規(guī)則后,用戶可設置顯示出錯信息。如在設置姓名1021.參照完整性的概念參照性完整性用于數(shù)據(jù)庫表中相關聯(lián)的數(shù)據(jù)表,保證相關聯(lián)表之間的完整性。當在一個表中插入、修改和刪除時通過參照引用,檢查對表的操作是否正
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年(全新版)中國石灰和石膏制造行業(yè)發(fā)展現(xiàn)狀規(guī)劃研究報告
- 2025-2030年中國高壓清洗設備產業(yè)規(guī)模分析及發(fā)展建議研究報告
- 2025-2030年中國食品增稠劑行業(yè)市場發(fā)展趨勢規(guī)劃研究報告
- 2025-2030年中國銅合金接觸線行業(yè)運行狀況及未來發(fā)展趨勢分析報告
- 2025-2030年中國金屬切割及焊接設備市場發(fā)展前景調研及投資戰(zhàn)略分析報告
- 出版物發(fā)行與倉儲管理考核試卷
- 廚房電器企業(yè)社會責任與可持續(xù)發(fā)展考核試卷
- 創(chuàng)業(yè)投資行業(yè)趨勢與發(fā)展考核試卷
- 塑料的印刷與裝飾技術考核試卷
- 2025年度船舶船員勞動合同及船舶環(huán)保責任協(xié)議
- 不同茶葉的沖泡方法
- 光伏發(fā)電并網(wǎng)申辦具體流程
- 基本藥物制度政策培訓課件
- 2025年中國華能集團限公司校園招聘高頻重點提升(共500題)附帶答案詳解
- 建筑勞務專業(yè)分包合同范本(2025年)
- GB/T 45002-2024水泥膠砂保水率測定方法
- 廣東省廣州海珠區(qū)2023-2024學年八年級上學期期末數(shù)學試卷(含答案)
- 飛行原理(第二版) 課件 第10章 高速空氣動力學基礎
- 廣西《乳腺X射線數(shù)字化體層攝影診療技術操作規(guī)范》
- 山西省2024年中考道德與法治真題試卷(含答案)
- 小學數(shù)學專題講座:小學數(shù)學計算能力的培養(yǎng)課件
評論
0/150
提交評論