數(shù)據(jù)庫應(yīng)用基礎(chǔ)教程.ppt_第1頁
數(shù)據(jù)庫應(yīng)用基礎(chǔ)教程.ppt_第2頁
數(shù)據(jù)庫應(yīng)用基礎(chǔ)教程.ppt_第3頁
數(shù)據(jù)庫應(yīng)用基礎(chǔ)教程.ppt_第4頁
數(shù)據(jù)庫應(yīng)用基礎(chǔ)教程.ppt_第5頁
已閱讀5頁,還剩88頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫應(yīng)用基礎(chǔ)教程,中南大學(xué)出版社,2,5 數(shù)據(jù)庫及其查詢與視圖,5.1 SQL語言 5.2 設(shè)計(jì)數(shù)據(jù)庫 5.3 在數(shù)據(jù)庫中查詢數(shù)據(jù) 5.4 視圖,3,5.1 SQL語言,SQL語言(Structured Query Language,簡稱SQL,結(jié)構(gòu)化查詢語言)是關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言。 SQL語言是一種非過程化語言,它面向集合操作,對數(shù)據(jù)提供自動導(dǎo)航。 SQL語言的幾個(gè)特點(diǎn): 非過程化。在SQL語言中,只要求用戶提出“做什么”,而無需指出“怎么做”。 一體化。集DDL(數(shù)據(jù)定義語言)、DML(數(shù)據(jù)操作語言)、DCL(數(shù)據(jù)控制語言)為一體。 兩種使用方式,統(tǒng)一的語法結(jié)構(gòu)。一種為聯(lián)機(jī)交互使用方式;一種為嵌入某種高級程序設(shè)計(jì)語言的程序中,以實(shí)現(xiàn)數(shù)據(jù)庫操作。,4,SQL語句語言精練,其數(shù)據(jù)查詢、數(shù)據(jù)定義、數(shù)據(jù)操作、數(shù)據(jù)控制等命令只用了9個(gè)動詞,它們是: 數(shù)據(jù)定義: CREATE,DROP,ALTER 數(shù)據(jù)查詢: SELECT 數(shù)據(jù)操作: INSERT,UPDATE,DELETE 事務(wù)控制: GRANT,REVOKE,5,5.11 數(shù)據(jù)定義語句(DDL),數(shù)據(jù)定義語句是SQL中用來生成、修改、刪除關(guān)系數(shù)據(jù)庫的表、視圖等基本要素的語言部分。它允許數(shù)據(jù)庫用戶來創(chuàng)建或重新構(gòu)造數(shù)據(jù)庫對象,如創(chuàng)建或刪除一個(gè)數(shù)據(jù)庫表。 1. 關(guān)于數(shù)據(jù)庫的數(shù)據(jù)定義語句 (1) 建立數(shù)據(jù)庫: CREATE DATABASE; (2) 更改數(shù)據(jù)庫: ALTER DATABASE; (3) 刪除數(shù)據(jù)庫: DROP DATABASE;,6,2、關(guān)于數(shù)據(jù)表的數(shù)據(jù)定義語句 (1) 創(chuàng)建表 命令格式: CREATE TABLE ( 列級完整性約束條件, 列級完整性約束條件,); 說明: 是所要定義表的名字 。表名必須以字母開頭,最大長度為30個(gè)字符。 即屬性名(要求列名唯一)。 完整性約束條件(對數(shù)據(jù)庫表才起作用):就是當(dāng)向某列輸入數(shù)據(jù)時(shí)所必須遵守的規(guī)則,當(dāng)用戶操作表中的數(shù)據(jù)時(shí),由數(shù)據(jù)庫管理系統(tǒng)自動檢查操作是否違背這些完整性約束條件。,7,例1. 建立一個(gè)學(xué)生關(guān)系;,操作命令: CREATE TABLE student (sh NUMBER(6), 學(xué)號 Xm C(6), 姓名 Xb C(2), 性別 Csny D , 出生年月 Xdm C(3) 系代碼 ),8,2 更改表 在實(shí)際操作中,可能需要對已創(chuàng)建的表進(jìn)行修改,如增加新列、增加新的完整性約束條件或刪除已有的完整性約束條件等。SQL提供了ALTER TABLE來完成這一功能。 命令格式: ALTER TABLE ADD 列級完整性約束條件 DROP ;,9,說明: 是所要修改的基本表的名字; ADD子句用于增加新列和新的完整性約束條件,如果表中已經(jīng)存在數(shù)據(jù)的話,則所增加的列不能定義為NOT NULL,以免與完整性約束條件相抵觸; DROP子句用于刪除指定的完整性約束條件;,ALTER TABLE ADD 列級完整性約束條 DROP 列級完整性約束條件;,10,例2:在student 表中增加新列jxj(獎學(xué)金),類型為數(shù)值型,寬度為5,小數(shù)位為2。 操作命令: ALTER TABLE student ADD jxj n(5,2) 3. 刪除表 當(dāng)某個(gè)表不再需要時(shí),可以使用SQL的DROP TABLE語句進(jìn)行刪除,其一般格式為: DROP TABLE 例如:刪除當(dāng)前盤當(dāng)前目錄中表名為GZ1.DBF的文件。 操作命令: DROP TABLE GZ1,11,5.1.2 數(shù)據(jù)查詢語句SELECT,數(shù)據(jù)查詢是數(shù)據(jù)庫的重要操作,SQL語言提供了SELECT語句用于數(shù)據(jù)庫的查詢,該語句具有靈活的使用方法和豐富的功能。 命令格式: SELECT ALL|DISTINCT , FROM , WHERE GROUP BY HAVING ORDER BY ASC|DESC;,12,說明:,SELECT說明執(zhí)行查詢操作; 指查詢結(jié)果表中包含的列名; DISTINCT說明要去掉重復(fù)的記錄; FROM短語說明要查詢的數(shù)據(jù)來自哪些表,可以對一個(gè)或多個(gè)基本表或視圖進(jìn)行查詢。 WHERE短語說明查詢的條件; GROUP BY短語用于對查詢結(jié)果進(jìn)行分組,可以利用它進(jìn)行分組匯總; HAVING短語必須跟隨GROUP BY使用,用來限定分組必須滿足的條件; ORDER BY短語用來對查詢結(jié)果進(jìn)行排序; 注意:WHERE短語和HAVING短語區(qū)別。WHERE短語的作用對象是基本表或視圖,而HAVING短語的作用對象是組;各個(gè)短語之間的位置不能隨意更改。,13,應(yīng)用舉例:,例3.查詢RSDA表中性別為男且ZC為教授的職工。 SELECT * FROM RSDA WHERE XB=“男” AND ZC=“教授” 例4. 查詢RSDA表中性別為男的職工,顯示時(shí)只顯示部門編號、姓名、性別和職稱內(nèi)容。 SELECT bmbh,xm,xb,zc FROM RSDA WHERE XB=“男”,14,在SELECT 子句后,還可以用表達(dá)式來代替屬性名指定,以滿足對查詢結(jié)果的要求。 例5. 在rsda表中,jbgz屬性表示職工的月工資,如果想查詢職工的年工資,查詢語句如下: SELECT XM,JBGZ*12 an_jbgz FROM RSDA 例6. 在工資后面注明單位是人民幣(元)。 SELECT XM,JBGZ*12an_jbgz, 元 RMB FROM RSDA,15,5.1.3 數(shù)據(jù)操作語句(DML),數(shù)據(jù)操作語句允許用戶對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行修改更新。 1. INSERT語句 SQL的數(shù)據(jù)插入語句INSERT語句通常有兩種形式。一種是插入一條記錄,另一種是插入子查詢結(jié)果,后者一次可以插入多條記錄。 (1) 插入單個(gè)記錄 INSERT INTO 表名(屬性列1 ,) VALUES (常量1 ,常量2);,16,其功能是將新記錄插入指定表中。 的值為常量1; 的值為常量2,; 如果某些屬性列在INTO子句中沒有出現(xiàn),則新記錄在這些列上將取空值。 在表定義時(shí)說明了NOT NULL的屬性列不能取空值,否則會出錯(cuò)。 若INTO子句中沒有指明任何列名,則新插入的記錄必須在每個(gè)屬性列上均有值。,INSERT INTO 表名(屬性列1 ,)VALUES (常量1 ,常量2);,17,(2) 插入多個(gè)記錄 子查詢嵌套在INSERT語句中,可以將一張表的查詢結(jié)果輸入到另一張表中。 INSERT INTO 新表名 (屬性列1 ,屬性列2) 子查詢; 注意:此功能在vf6.0中沒有。,18,例7:向?qū)W生表中插入一個(gè)新的學(xué)生記錄。 INSERT INTO student (sh,xm,xb,csny,xdm,jxj) VALUES(199801,王小平,女, 1983/12/14,01,300) 或 INSERT INTO student VALUES(199801,王小平,女, 1983/12/14,01,300) 因?yàn)椴迦氲氖且粭l完整的記錄。 例8. 在上例中暫時(shí)不輸入出生年月。 INSERT INTO student VALUES(199804,劉海艷,女,NULL,01,380),19,2. UPDATE語句 UPDATE 表名 SET 列名=表達(dá)式,列名=表達(dá)式, WHERE 條件; 功能:修改指定表中滿足WHERE子句條件的記錄。 SET子句用于指定修改方法,即用表達(dá)式的值取代相應(yīng)的屬性列。 如果省略WHERE子句,則表示要修改表中的所有記錄。 例如:將rsda表中性別為男的職工基本工資加500元。 UPDATE RSDA SET JBGZ=JBGZ+500 WHERE XB=“男“,20,3. DELETE語句 DELETE FROM WHERE ; 其功能是從指定表中刪除滿足WHERE子句條件的所有記錄。 如果省略WHERE子句,則表示刪除表中的全部記錄。 例如:刪除RSDA表中職稱為“助教”的職工。 DELETE FROM RSDA WHERE ZC=“助教”,21,5.1.4 事務(wù)控制語句,1. GRANT 命令 SQL語言用GRANT語句向用戶授予操作權(quán)限。 命令格式: GRANT ,, ON TO ,, WITH GRANT OPTION;,22,不同類型的操作對象有不同的操作權(quán)限: 屬性列和視圖的操作權(quán)限有5種:查詢(SELECT)、插入(INSERT)、更新(UPDATE)、刪除(DELETE)以及這四種權(quán)限的總和(ALL PRIVILEGES)。 基本表的操作權(quán)限有7種:查詢(SELECT)、插入(INSERT)、更新(UPDATE)、刪除(DELETE)、修改表(ALTER)和建立索引(INDEX)以及這六種權(quán)限的總和(ALL PRIVILEGES)。 對數(shù)據(jù)庫可以有建立表(CREATETAB)的權(quán)限,該權(quán)限屬于DBA,可由DBA授予普通用戶, 普通用戶擁有此權(quán)限后可以建立基本表,并擁有該基本表的一切操作權(quán)限。,23,若選用了WITH GRANT OPTION子句,則獲得某種權(quán)限的用戶還可以把這種權(quán)限授予別的用戶,即可以傳播該權(quán)限。因此,應(yīng)該慎用或不用WITH GRANT OPTION子句,以控制自己的數(shù)據(jù)資源,避免不必要的損失。,24,2. REVOKE命令 授予的權(quán)限可以由DBA(數(shù)據(jù)庫管理員)或者其它授權(quán)者用REVOKE語句收回。 命令格式: REVOKE ,, ON FROM ,,;,25,5.2 設(shè)計(jì)數(shù)據(jù)庫,使用自由表還是數(shù)據(jù)庫表保存要管理的數(shù)據(jù)取決于管理數(shù)據(jù)之間是否存在關(guān)系以及關(guān)系的復(fù)雜程度。 數(shù)據(jù)庫表文件與自由表文件一樣,其擴(kuò)展名仍然為 .DBF,數(shù)據(jù)庫文件的擴(kuò)展名為.DBC。 數(shù)據(jù)庫設(shè)計(jì)的方法有二種: 命令方式; 數(shù)據(jù)庫設(shè)計(jì)器。,26,5.2.1 用命令方式設(shè)計(jì)數(shù)據(jù)庫,1. 創(chuàng)建數(shù)據(jù)庫 命令格式: CREATE DATABASE 數(shù)據(jù)庫名 | ? 功能:創(chuàng)建一個(gè)數(shù)據(jù)庫并且打開它。 例:CREATE DATABASE Zgxx.dbc 新建立的數(shù)據(jù)庫里面是空的,用戶可以通過向數(shù)據(jù)庫中添加表、表之間的關(guān)系等。,27,2. 在數(shù)據(jù)庫中添加、創(chuàng)建和移去表 打開數(shù)據(jù)庫后,可以創(chuàng)建新表,或向數(shù)據(jù)庫中添加已有的自由表,或從數(shù)據(jù)庫中移去表,被移去的表則變成自由表。 例如:向數(shù)據(jù)庫Zgxx中添加Rsda、Bmda、Gz三個(gè)表(數(shù)據(jù)庫文件名和表文件名可省去擴(kuò)展名)。 操作命令: OPEN DATABASE Zgxx ADD TABLE Rsda ADD TABLE Bmda ADD TABLE Gz,28,例如:在數(shù)據(jù)庫中Zgxx中創(chuàng)建Rsda、Bmda、Gz三個(gè)新表。 操作命令: OPEN DATABASE Zgxx CREATE TABLE Rsda (BMBH C(2),BH C(5),XM C(8),XB C(2),HF L,CSNY D,ZC C(10),JBGZ N(6,2),XW G,JL M) CREATE TABLE Bmda (BMBH C(2),MC C(20) CREATE TABLE Gz (BMBH C(2),BH C(5),XM C(8),BT N(6,2),KK N(6,2),SFGZ N(7,2) 表名后括號內(nèi)指出了表內(nèi)各字段名、字段數(shù)據(jù)類型和寬度。新建的表自動屬于創(chuàng)建該表時(shí)打開的數(shù)據(jù)庫。,29,又如:在數(shù)據(jù)庫中Zgxx中移去Rsda表。 操作命令: OPEN DATABASE Zgxx REMOVE TABLE Rsda 3. 數(shù)據(jù)庫的關(guān)閉與刪除 數(shù)據(jù)庫關(guān)閉命令: CLOSE DATABASE ALL,表示關(guān)閉所有數(shù)據(jù)庫。 數(shù)據(jù)庫刪除命令: DELETE DATABASE DELETETABLES 對于數(shù)據(jù)庫刪除命令,有DELETETABLES子句時(shí)表示刪除數(shù)據(jù)庫及所屬數(shù)據(jù)庫表,否則僅刪除數(shù)據(jù)庫,所屬數(shù)據(jù)庫表變成自由表。刪除數(shù)據(jù)庫前必須關(guān)閉數(shù)據(jù)庫,30,4. 創(chuàng)建關(guān)系 關(guān)系數(shù)據(jù)庫中有一對一、一對多、多對多三種關(guān)系模型。在VFP中,只處理前兩種關(guān)系,對于多對多的關(guān)系,需轉(zhuǎn)換成兩個(gè)一對多的關(guān)系實(shí)現(xiàn)。 在數(shù)據(jù)庫中可以建立表間的永久關(guān)系和臨時(shí)關(guān)系。 臨時(shí)關(guān)系僅用于表間的關(guān)聯(lián),即控制關(guān)聯(lián)表之間的記錄指針的配合移動。自由表之間也可用命令實(shí)現(xiàn)關(guān)聯(lián),這些內(nèi)容已在第4章中討論,此處不再贅述。,31,在查詢設(shè)計(jì)器和視圖設(shè)計(jì)器中自動作為默認(rèn)聯(lián)接條件; 在數(shù)據(jù)庫設(shè)計(jì)器中顯示為聯(lián)系表索引的線; 作為表單和報(bào)表的默認(rèn)關(guān)系在數(shù)據(jù)環(huán)境設(shè)計(jì)器中顯示; 建立參照完整性信息。,永久關(guān)系是存儲在數(shù)據(jù)庫文件中的數(shù)據(jù)庫表之間的關(guān)系,在數(shù)據(jù)庫中,可通過數(shù)據(jù)庫所屬的數(shù)據(jù)庫表的索引建立。永久關(guān)系具有如下特點(diǎn):,在數(shù)據(jù)庫表中,對一個(gè)字段可定義主索引 、普通索引、唯一索引或候選索引。在自由表中只能定義后三種索引。,32,主索引:要求相應(yīng)字段的值不重復(fù),即保證唯一性;主索引主要用于建立表間的永久關(guān)系,從而建立參照完整性。一個(gè)數(shù)據(jù)庫表中只能有一個(gè)主索引。 創(chuàng)建主索引和刪除主索引的命令: ALTER TABLE ADD|DROP PRIMARY KEY TAG ADD用于建立索引,DROP用于刪除索引,TAG后的表示用作主索引的字段名,可選項(xiàng)TAG子句缺省時(shí),表示索引關(guān)鍵字與字段同名。,33,普通索引:普通索引不考慮數(shù)據(jù)字段的值是否有重復(fù)值,只簡單的把記錄按照一定的順序進(jìn)行排序??勺鳛橐粚Χ嚓P(guān)系的“多方”,一個(gè)數(shù)據(jù)庫表中可有多個(gè)普通索引??捎肐NDEX命令建立。 建立普通索引和聯(lián)接主索引形成一對多的永久關(guān)系命令: ALTER TABLE ADD FOREIGN KEY TAG REFERENCES 唯一索引:是為VFP與前面版本兼容設(shè)計(jì)的,可用INDEX命令建立,一個(gè)數(shù)據(jù)庫表中可有多個(gè)唯一索引。一般情況下不推薦用戶使用。,34,候選索引:要求相應(yīng)字段的值不重復(fù),可作為主關(guān)鍵字,用于在永久關(guān)系中建立參照完整性。一個(gè)數(shù)據(jù)庫表中可有多個(gè)候選索引。 建立候選索引命令: ALTER TABLE ADD UNIQUE TAG 建立候選索引和聯(lián)接主索引形成一對一的永久關(guān)系命令: ALTER TABLE ADD|ALTER UNIQUE REFERENCES 其中、是用作候選索引的字段的名字和數(shù)據(jù)類型。,35,5.2.2 用數(shù)據(jù)庫設(shè)計(jì)器設(shè)計(jì)數(shù)據(jù)庫,用數(shù)據(jù)庫設(shè)計(jì)器設(shè)計(jì)數(shù)據(jù)庫,需要完成下列步驟。 打開數(shù)據(jù)庫設(shè)計(jì)器 操作步驟: 單擊VFP下的“文件”菜單; 選定“新建”命令,打開“新建”對話框; 選擇“數(shù)據(jù)庫”選項(xiàng); 單擊“新建文件”按鈕,打開“創(chuàng)建”對話框; 輸入要創(chuàng)建的數(shù)據(jù)庫名和位置,單擊“保存”按鈕,打開“數(shù)據(jù)庫設(shè)計(jì)器”窗口。,36,2. 將自由表添加進(jìn)數(shù)據(jù)庫 可用以下方法進(jìn)行操作。 在數(shù)據(jù)庫設(shè)計(jì)器窗口,單擊右鍵彈出一快捷菜單,選擇“添加表”命令。 當(dāng)數(shù)據(jù)庫設(shè)計(jì)器窗口已打開時(shí),VFP會生成一個(gè)“數(shù)據(jù)庫”系統(tǒng)菜單;單擊“數(shù)據(jù)庫”菜單下的“添加表”命令即可。 單擊浮動在數(shù)據(jù)庫設(shè)計(jì)器窗口的“數(shù)據(jù)庫設(shè)計(jì)器工具欄”上“添加表”按鈕。 3. 建立索引 4. 建立永久關(guān)系(用鼠標(biāo)拖動的方法),37,應(yīng)用舉例演示:,按P87 表51 數(shù)據(jù)庫zgxx中的永久關(guān)系定義創(chuàng)建數(shù)據(jù)庫zgxx,其中包含RSDA、BMDA、GZ三個(gè)表。,38,5.2.3 數(shù)據(jù)字典,數(shù)據(jù)字典實(shí)際上是一個(gè)名詞概念。它是記錄在數(shù)據(jù)庫文件中的信息,這些信息包括從屬于數(shù)據(jù)庫的表的屬性、每個(gè)表的字段屬性、每個(gè)表的記錄規(guī)則、表間關(guān)系和參照完整性(Referential Integrity,簡稱RI)信息。數(shù)據(jù)字典中的信息可通過命令、表設(shè)計(jì)器和參照完整性生成器進(jìn)行設(shè)置、顯示或修改。,39,1. 長表名 長表名是表的屬性。 長表名用于對數(shù)據(jù)庫表文件名增加適當(dāng)?shù)淖⑨?,讓用戶易于理解表的含義。表文件名還是短名字,是數(shù)據(jù)庫表或自由表的默認(rèn)表名。用戶還可定義一個(gè)不超過128個(gè)字符的長表名代替短表名標(biāo)識數(shù)據(jù)庫表。長表名可包含字母、數(shù)字、下劃線、漢字,但首字符必須是字母、下劃線或漢字,不能使用空格。如果定義了長表名,當(dāng)表出現(xiàn)在界面(如數(shù)據(jù)庫設(shè)計(jì)器、查詢設(shè)計(jì)器、視圖設(shè)計(jì)器、游覽窗口的標(biāo)題欄等)中時(shí),VFP將顯示長表名。,40,長表名的創(chuàng)建和修改方法: 用命令 命令格式: CREATE TABLE NAME (2) 用表設(shè)計(jì)器 例如:創(chuàng)建一個(gè)表文件名為“ABC”,長表文件名為“大學(xué)基礎(chǔ)課程名稱數(shù)據(jù)庫表”。 命令為: CREATE TABLE ABC NAME ; 大學(xué)基礎(chǔ)課程名稱數(shù)據(jù)表; (課程編號 C(6),課程名稱 C(30) 用表設(shè)計(jì)器演示。,41,2. 記錄規(guī)則 記錄規(guī)則包括記錄有效性和觸發(fā)器兩類。 (1) 記錄有效性 記錄有效性驗(yàn)證,指建立一規(guī)則對同一記錄中不同字段之間的邏輯關(guān)系進(jìn)行驗(yàn)證。規(guī)則欄指定規(guī)則,信息欄指定出錯(cuò)時(shí)的顯示信息。如圖5.5中。 規(guī)則和信息兩欄的指定均可單擊其右邊按鈕,在彈出的對話框中輸入信息。 ( 2) 觸發(fā)器 觸發(fā)器包括插入觸發(fā)器、更新觸發(fā)器和刪除觸發(fā)器。指定一規(guī)則,當(dāng)對數(shù)據(jù)庫表進(jìn)行插入(包括追加)、更新和刪除時(shí),驗(yàn)證規(guī)則,只有當(dāng)規(guī)則成立時(shí)才能進(jìn)行相應(yīng)操作。規(guī)則可以是一邏輯表達(dá)式。,42,3. 字段的屬性 長字段名 自由表的字段名最多包含10個(gè)字符,數(shù)據(jù)庫表的字段名最多包含128個(gè)字符。 (2) 格式 格式文本框用于鍵入格式表達(dá)式,確定當(dāng)前字段(活動框批示的字段,圖5.6中顯示的當(dāng)前字段是BMBH))在瀏覽窗口、表單或報(bào)表中顯示時(shí)采用的大小寫、字體大小和樣式。如鍵入一“!”號,能使瀏覽窗口輸入輸出時(shí)將字母轉(zhuǎn)為大寫,若鍵入字母“A”表示僅允許輸入字母。,43,(3) 輸入掩碼 輸入掩碼用于指定當(dāng)前字段的輸入格式,限制輸入數(shù)據(jù)的范圍,提高輸入準(zhǔn)確率??捎玫妮斎胙诖a如下。 X 允許輸入字符 9 允許輸入數(shù)字 # 允許輸入數(shù)字、空格、+、- $ 顯示SET CURRENCY命令指定的貨幣符號 * 在指定寬度中,值左邊顯示* 指出小數(shù)點(diǎn)位置 , 用逗號分隔小數(shù)點(diǎn)左邊的數(shù)字 輸入掩碼必須按位指定,如設(shè)置99-999,表示相應(yīng)字段只能輸入數(shù)字,可輸入5位數(shù)字,第三個(gè)符號“-”不是輸入掩碼,照原樣顯示,“-”不用輸入。還可指定其它符號。,44,(4) 標(biāo)題 數(shù)據(jù)庫環(huán)境下,若想顯示表中的數(shù)據(jù),可以在表“瀏覽”窗口下進(jìn)行。在進(jìn)行瀏覽時(shí),如果用戶不進(jìn)行字段標(biāo)題的設(shè)置,其表的標(biāo)題顯示的是字段名。由于字段名的最大長度只有10個(gè)字符長(自由表,數(shù)據(jù)庫表字段名長度可以達(dá)到128個(gè)),有時(shí)難以概括清楚該名下數(shù)據(jù)的屬性;另外,為了程序設(shè)計(jì)的方便,程序設(shè)計(jì)者常常把字段名設(shè)計(jì)成代碼,這也難以概括清楚數(shù)據(jù)的屬性,給數(shù)據(jù)瀏覽帶來了很多不便。因此,為了在顯示表中數(shù)據(jù)時(shí)瀏覽的清晰、方便,用戶可以自定義字段標(biāo)題。 通過設(shè)置字段的顯示標(biāo)題可以彌補(bǔ)對字段長度的限制。,45,(5) 字段有效性 為了提高表中數(shù)據(jù)輸入的速度和準(zhǔn)確性,除了定義字段的默認(rèn)值外,還可以定義字段有效規(guī)則。 字段的顯示標(biāo)題、注釋、默認(rèn)值、有效規(guī)則的操作方法: 選擇字段單擊數(shù)據(jù)庫菜單單擊修改打開表設(shè)計(jì)器進(jìn)行相關(guān)操作,46,(6) 設(shè)置表中字段的默認(rèn)值 為了提高表中數(shù)據(jù)輸入的速度和準(zhǔn)確性,可以在向表輸入數(shù)據(jù)前,定義某一字段數(shù)據(jù)的默認(rèn)值。 (7) 設(shè)置表中字段的注釋 為了提高數(shù)據(jù)表的使用效率及它的共享性,可以在建立數(shù)據(jù)表結(jié)構(gòu)時(shí),對字段加以注釋,提醒自己或其它用戶,清楚地掌握字段的屬性、意義及特殊用途等。 注意:字段標(biāo)題和字段注釋的區(qū)別。,47,48,4. 永久關(guān)系 由前面的知識我們已知永久關(guān)系是在數(shù)據(jù)庫中建立的數(shù)據(jù)表之間的關(guān)系,這種關(guān)系能在運(yùn)行結(jié)束后一直保存。具有永久關(guān)系的表必須隸屬于數(shù)據(jù)庫。 由于永久關(guān)系可以保存,因而用戶不必在每次使用數(shù)據(jù)表的時(shí)候都重新創(chuàng)建關(guān)系。但是永久關(guān)系也不具有臨時(shí)關(guān)系的優(yōu)點(diǎn),即永久關(guān)系不能實(shí)現(xiàn)數(shù)據(jù)記錄指針的互動。,49,5. 設(shè)置參照完整性 參照完整性涉及一組表間規(guī)則。對于具有永久關(guān)系的父、子兩個(gè)數(shù)據(jù)庫表,當(dāng)對一個(gè)表更新、刪除或插入一條記錄時(shí),另一個(gè)表并未作相應(yīng)變化,這就破壞了數(shù)據(jù)的完整性。VFP提供一個(gè)RI生成器(即參照完整性生成器)窗口供用戶指出保證數(shù)據(jù)完整性的要求,VFP則根據(jù)用戶要求生成參照完整性規(guī)則以保證數(shù)據(jù)完整性。,50,“參照完整性生成器”可以幫助您建立規(guī)則,控制記錄如何在相關(guān)表中被插入、更新或刪除。 在“參照完整性生成器”窗口,可以設(shè)置記錄的插入、刪除或修改規(guī)則。 在“參照完整性生成器”窗口,有三個(gè)選項(xiàng)卡即:“更新規(guī)則”、“刪除規(guī)則”、“插入規(guī)則”供用戶選擇。,51,當(dāng)選擇“更新規(guī)則”選項(xiàng)卡,可以利用三個(gè)選擇按鈕,設(shè)置關(guān)聯(lián)表間的更新規(guī)則。三個(gè)選擇按鈕的功能如下: 級聯(lián):用新的關(guān)鍵字值更新子表中的所有相關(guān)記錄; 限制:若子表中有相關(guān)記錄則禁止更新; 忽略:允許更新,不管子表中的相關(guān)記錄。,52,當(dāng)選擇“刪除規(guī)則”選項(xiàng)卡,可以利用三個(gè)選擇按鈕,設(shè)置關(guān)聯(lián)表間的刪除規(guī)則。三個(gè)選擇按鈕的功能如下: 級聯(lián):刪除子表中的所有相關(guān)記錄; 限制:若子表中有相關(guān)記錄,則禁止刪除; 忽略:允許刪除,不管子表中的相關(guān)記錄。 選擇“插入規(guī)則”選項(xiàng)卡,可以利用二個(gè)選擇按鈕,設(shè)置關(guān)聯(lián)表間的插入規(guī)則。二個(gè)選擇按鈕的功能如下: 限制:若父表中沒有匹配的關(guān)鍵字值,則禁止插入; 忽略:允許插入。 用戶可根據(jù)具體操作的需要,確定以上插入、刪除、更新的操作規(guī)則。,53,演示操作:,建立表間參照完整性 將數(shù)據(jù)庫文件“zgxx”中的三個(gè)表,設(shè)置記錄的插入、刪除或更新規(guī)則。,54,5.3 在數(shù)據(jù)庫中查詢數(shù)據(jù),查詢實(shí)際上是利用SELECT-SQL命令或查詢設(shè)計(jì)器檢索存儲在表或視圖中的信息,然后按照想得到的輸出類型定向查詢結(jié)果,輸出類型可以是瀏覽、報(bào)表或表等。查詢結(jié)果是以擴(kuò)展名為.QPR的文件形式保存。 5.3.1 使用SELECT-SQL命令直接查詢,自學(xué)完成,55,5.3.2 使用查詢設(shè)計(jì)器查詢,1.用查詢設(shè)計(jì)器創(chuàng)建查詢 利用查詢設(shè)計(jì)器創(chuàng)建查詢的操作方法是: (1)打開“文件”菜單,選擇“新建”。 (2)在“新建”窗口,選擇“查詢”,按“新建文件”。 (3)在“打開”窗口,選擇要使用的表,進(jìn)入“添加表或視圖”窗口。 (4)在“查詢設(shè)計(jì)器”窗口選擇可用字段。 (5)當(dāng)表中可出現(xiàn)在查詢中的字段被選定后,保存查詢結(jié)束操作。,演示操作,利用查詢設(shè)計(jì)器創(chuàng)建查詢,開始實(shí)驗(yàn),例: 利用查詢設(shè)計(jì)器創(chuàng)建單表查詢“rcda查詢1“。,例: 利用查詢設(shè)計(jì)器創(chuàng)建多表查詢“bmbh和rsda查詢1“。,57,2.利用查詢向?qū)?chuàng)建查詢 利用查詢向?qū)?chuàng)建查詢操作方法是: (1)打開“文件”菜單,選擇“新建” (2)在“新建”窗口,選擇“查詢”,再按“向?qū)А保?進(jìn)入“向?qū)нx取”窗口。 (3)在“向?qū)нx取”窗口,選擇“查詢向?qū)А?,再按“確定”按鈕,進(jìn)入“查詢向?qū)А辈襟E窗口。 (4)逐個(gè)選擇出現(xiàn)在查詢中的字段。 (5)添加數(shù)據(jù)表間的關(guān)聯(lián)關(guān)系。 (6)保存查詢。此時(shí),利用查詢向?qū)?chuàng)建查詢操作結(jié)束,演示操作,利用查詢向?qū)?chuàng)建查詢,開始實(shí)驗(yàn),例:利用查詢 向?qū)?chuàng)建單表查詢“rcda查詢2”。,例:利用查詢向?qū)?chuàng)建多表查詢“rsda和bmda查詢2”。,59,3. 使用查詢 使用查詢比使用數(shù)據(jù)表和數(shù)據(jù)庫更方便、更快捷、更安全。查詢的輸出格式的具有多樣化。使用查詢就是確定查詢結(jié)果的輸出格式。在“查詢?nèi)ハ颉贝翱?,系統(tǒng)提供的七種輸出格式。 瀏覽格式:把查詢結(jié)果送入瀏覽窗口; 臨時(shí)表格式:把查詢結(jié)果存入一個(gè)臨時(shí)的數(shù)據(jù)表中,可以隨意處理這個(gè)臨時(shí)表; 表格式:把查詢結(jié)果存入一個(gè)數(shù)據(jù)表中,可以隨意處理這個(gè)數(shù)據(jù)表,當(dāng)關(guān)閉這個(gè)數(shù)據(jù)表后,查詢結(jié)果仍將存在磁盤上; 圖形格式:把查詢結(jié)果以圖形方式輸出; 屏幕格式:把查詢結(jié)果輸出到屏幕上; 報(bào)表格式:把查詢結(jié)果輸出到報(bào)表中; 標(biāo)簽格式:把查詢結(jié)果輸出到標(biāo)簽中。,60,5.3.3 輸出定向,可以只設(shè)置5.3.2節(jié)六個(gè)選項(xiàng)卡中的幾個(gè),完成所需要的選項(xiàng)卡設(shè)置后,可以單擊VFP的查詢菜單下的查詢?nèi)ハ蛎?,產(chǎn)生如圖5.16所示的輸出定向窗口,用戶可單擊圖中所需要的按鈕,選擇所需要的輸出方式。 退出查詢窗口之前可以保存查詢設(shè)置,供以后使用這個(gè)設(shè)置。,61,5.4 視圖,VFP視圖是一個(gè)虛擬表,它的數(shù)據(jù)來源于數(shù)據(jù)表或其它視圖,這些數(shù)據(jù)在數(shù)據(jù)庫中并不存儲,只是在數(shù)據(jù)庫的數(shù)據(jù)字典中存儲視圖的定義。視圖是從SQL語言移植而來的,故又稱SQL視圖。視圖一經(jīng)定義,它就成為數(shù)據(jù)庫的一個(gè)組成部分。在VFP中,可用CREATE SQL VIEW命令創(chuàng)建視圖,也可以用視圖設(shè)計(jì)器創(chuàng)建視圖。創(chuàng)建視圖與創(chuàng)建查詢類似,主要區(qū)別在于視圖可以更新,而查詢不行。視圖分為本地視圖和遠(yuǎn)程視圖,后者數(shù)據(jù)來源于遠(yuǎn)程數(shù)據(jù)庫系統(tǒng)。,62,5.4.1 使用命令創(chuàng)建視圖,創(chuàng)建視圖命令格式: CREATE SQL VIEW REMOTE CONNECTION SHARE| AS SELECT-SQL命令,63,例如:創(chuàng)建一個(gè)名為SHTU的視圖。 CREATE SQL VIEW SHITU; AS SELECT DISTINCT; Bmda.BMBH,Bmda.MC,Rsda.BH,Rsda.XM,Rsda.JBGZ,Gz.BT,Gz.KK,; Rsda.JBGZ + Gz.BT - Gz.KK AS 實(shí)發(fā)數(shù); FROM Bmda, Rsda, Gz; WHERE Bmda.BMBH =Rsda.BMBH .and. Rsda.BH=Gz.BH,64,5.4.2 使用視圖設(shè)計(jì)器創(chuàng)建視圖,操作步驟是: (1)打開數(shù)據(jù)庫文件,進(jìn)入“數(shù)據(jù)庫設(shè)計(jì)器”窗口。 (2)再打開“數(shù)據(jù)庫”菜單,選擇“新建本地視圖”。 (3)在“新建本地視圖”窗口,選擇“新建視圖”按鈕,進(jìn)入“視圖設(shè)計(jì)器”窗口,同時(shí)彈出“添加表或視圖”窗口。 ( 窗口中的其他按鈕: 顯示“打開”對話框,從中可以選擇自由表,并添加到查詢中。) (4)在“添加表或視圖”窗口,把建立視圖所依據(jù)的表添加到視圖設(shè)計(jì)器中,再進(jìn)入“聯(lián)接條件”窗口。 (5)在“聯(lián)接條件”窗口,選擇表間的聯(lián)接條件后,進(jìn)入“視圖設(shè)計(jì)器”窗口。 (6)在“視圖設(shè)計(jì)器”窗口的可用字段列表框中,逐個(gè)單擊可用的字段添加到“選定字段”的列表框中。 (7)當(dāng)表中可出現(xiàn)在視圖中的字段被選定后,保存視圖。并使之被存放在打開的數(shù)據(jù)庫中,一個(gè)視圖文件建立完成。,演示操作,利用視圖設(shè)計(jì)器創(chuàng)建視圖,開始實(shí)驗(yàn),例: 利用視圖設(shè)計(jì)器,依據(jù)“數(shù)據(jù)1”的數(shù)據(jù)庫,創(chuàng)建一個(gè)單表本地視圖“rcda視圖1”,視圖中包含“bh”、“xm”、“xb”、“jbgz”4個(gè)字段。,例: 利用視圖設(shè)計(jì)器,依據(jù)“數(shù)據(jù)1”的數(shù)據(jù)庫,創(chuàng)建一個(gè)多表本地視圖“rcda 和 bmda 視圖1”,視圖中包含“bh”、“xm”、“bmbh”、“mc”4個(gè)字段。,66,視圖設(shè)計(jì)器中選項(xiàng)卡作用的說明 聯(lián)接的含義: 視圖和查詢的一個(gè)數(shù)據(jù)庫操作,通過比較指定字段中的值聯(lián)接兩個(gè)或多個(gè)表或視圖中的記錄。例如,表之間的默認(rèn)聯(lián)接是一個(gè)內(nèi)部聯(lián)接,只有當(dāng)聯(lián)接字段中的值相等時(shí),才選擇兩個(gè)表中的記錄。由于 SQL 是基于數(shù)學(xué)中的集合理論,每個(gè)表都可以有一個(gè)圓代表。聯(lián)接條件決定了交叉點(diǎn),代表相匹配記錄的集合。這個(gè)交叉是在兩個(gè)圓內(nèi)部發(fā)生的。一個(gè)外部聯(lián)接不但包含表內(nèi)部的交叉部分中相匹配的記錄,也包含圓的交叉部分左或右外部的記錄。,前進(jìn),67,內(nèi)部聯(lián)接 一種聯(lián)接,只有當(dāng)聯(lián)接字段中的值滿足一定的條件時(shí),才將兩個(gè)表中的記錄組合并添加到查詢結(jié)果中。例如,查詢設(shè)計(jì)視圖中表之間的默認(rèn)聯(lián)接是內(nèi)部聯(lián)接,并且只有聯(lián)接字段中的值相等時(shí),才從兩個(gè)表中選擇記錄。,68,外部聯(lián)接 一個(gè)查詢中輸入源之間的連接,允許選擇相匹配的記錄,以及不滿足聯(lián)接條件的記錄。使用“左部連接”、“右部連接”或“完全外部連接”,可以從一個(gè)輸入源中選擇所有記錄,或者從其他輸入源中選擇匹配記錄。使用“完全外部連接”,可以不考慮是否匹配,從兩個(gè)輸入源中選擇所有記錄。,返回,69,選項(xiàng)卡選項(xiàng) 字段:指定字段,SUM 或 COUNT 之類的合計(jì)函數(shù),或其它表達(dá)式。 聯(lián)接:指點(diǎn)聯(lián)接表達(dá)式,用它來匹配多個(gè)表或視圖中的記錄。 篩選:指定選擇記錄的條件,比如在字段內(nèi)指定值或在表之間定義臨時(shí)關(guān)系的連接條件。,70,排序依據(jù) 指定字段,SUM 或 COUNT 之類的合計(jì)函數(shù),或用于把有相同字段值的記錄合并為一組的其它表達(dá)式。 分組依據(jù) 指定字段,SUM 或 COUNT 之類的合計(jì)函數(shù),或用于把有相同字段值的記錄合并為一組的其它表達(dá)式。 更新條件 指定更新視圖的條件(僅適用于“視圖設(shè)計(jì)器”)。 雜項(xiàng) 指定是否要對重復(fù)記錄進(jìn)行檢索,同時(shí)是否對記錄(返回記錄的最大數(shù)目或最大百分比)做限制。,71,更新條件:指定條件,將視圖中的修改傳送到視圖所使用的表的原始記錄中。 選項(xiàng)卡選項(xiàng) 表:指定視圖所使用的哪些表可以修改。此列表中所顯示的表都包含了“字段”選項(xiàng)卡“選定字段”列表中的字段。 重置關(guān)鍵字:從每個(gè)表中選擇主關(guān)鍵字字段作為視圖的關(guān)鍵字字段,對于“字段名”列表中的每個(gè)主關(guān)鍵字字段,在鑰匙符號下面打一個(gè)“對號”。關(guān)鍵字字段可用來使視圖中的修改與表中的原始記錄相匹配。 全部更新:選擇除了關(guān)鍵字字段以外的所有字段來進(jìn)行更新,并在“字段名”列表的鉛筆符號下打一個(gè)“對號”。,“更新條件”的有關(guān)解釋,72,發(fā)送 SQL 更新 指定是否將視圖記錄中的修改傳送給原始表。 字段名窗格 顯示所選的、用來輸出(因此也是可更新的)的字段。 關(guān)鍵字段(使用鑰匙符號作標(biāo)記) 指定該字段是否為關(guān)鍵字段。 可更新字段(使用鉛筆符號作標(biāo)記) 指定該字段是否為可更新字段。 字段名 顯示可標(biāo)志為關(guān)鍵字字段或可更新字段的輸出字段名。,73,SQL WHERE 子句包括 控制將哪些字段添加到 WHERE 子句中,這樣,在將視圖修改傳送到原始表時(shí),就可以檢測服務(wù)器上的更新沖突。 沖突是由視圖中的舊值和原始表的當(dāng)前值之間的比較結(jié)果決定的(OLDVAL( ) 和 CURVAL( ) 之間比較)。如果兩個(gè)值相等,則認(rèn)為原始值未做修改,不存在沖突;如果它們不相等,則存在沖突,數(shù)據(jù)源返回一條錯(cuò)誤信息。 舊值和當(dāng)前值之間的沖突所返回的錯(cuò)誤為“錯(cuò)誤 1585:記錄已被其他人修改”,或者是“錯(cuò)誤 1494:更新沖突。請使用 TABLEUPDATE() 進(jìn)行強(qiáng)制更新或使用 TABLEREVERT() 回滾”。,74,關(guān)鍵字段:如果在原始表中有一個(gè)關(guān)鍵字字段被改變,設(shè)置 WHERE 子句來檢測沖突。對于由另一用戶對表中原始記錄的其他字段所做修改,不進(jìn)行比較。 關(guān)鍵字和可更新字段:如果另一用戶修改了任何可更新的字段,設(shè)置 WHERE 子句來檢測沖突。 關(guān)鍵字和已修改字段:如果從視圖首次檢索(默認(rèn))以后,關(guān)鍵字字段或原始表記錄的已修改字段中,某個(gè)字段做過修改,設(shè)置 WHERE 子句來檢測沖突。 關(guān)鍵字段和時(shí)間戳:如果自原始表記錄的時(shí)間戳首次檢索以后,它被修改過,設(shè)置 WHERE 子句來檢測沖突。只有當(dāng)遠(yuǎn)程表有時(shí)間戳列時(shí),此選項(xiàng)才有效。,75,使用更新 指定字段如何在后端服務(wù)器上更新。 SQL DELETE 然后 INSERT 指定刪除原始表記錄,并創(chuàng)建一個(gè)新的在視圖中被修改的記錄。 SQL UPDATE 用視圖字段中的變化來修改原始表的字段。,76,2利用視圖向?qū)?chuàng)建視圖 操作步驟是: (1)打開數(shù)據(jù)庫文件,進(jìn)入“數(shù)據(jù)庫設(shè)計(jì)器”窗口。 (2)打開“數(shù)據(jù)庫”菜單,選擇“新建本地視圖”,進(jìn)入“新建本地視圖”窗口。 (3)在“新建本地視圖”窗口,選擇“視圖向?qū)А卑粹o,進(jìn)入“本地視圖向?qū)А狈植襟E窗口。 (4)逐個(gè)選擇出現(xiàn)在視圖中的字段。 (5)添加數(shù)據(jù)表間的關(guān)聯(lián)關(guān)系。 (6)保存視圖。此時(shí),利用視圖向?qū)?chuàng)建多表本地視圖操作結(jié)束。,演示操作,利用視圖向?qū)?chuàng)建視圖,開始實(shí)驗(yàn),例:利用視圖向?qū)?,依?jù)“數(shù)據(jù)1”的數(shù)據(jù)庫,創(chuàng)建一個(gè)單表本地視圖“rsda 視圖1”,視圖中包含“bh”、“xm”、“zc”、“jbgz” 4個(gè)字段。,例: 利用視圖向?qū)?,依?jù)“數(shù)據(jù)1”的數(shù)據(jù)庫,創(chuàng)建一個(gè)多表本地視圖“rcda和 gz視圖2”,視圖中包含“bh”、“xm”、“xb”、“jbgz”、“ bt”、“kk”、6個(gè)字段。,78,5.4.3 在視圖中更新數(shù)據(jù),查詢的結(jié)果只能閱讀,不能修改。而視圖不僅有查詢的功能,還可以修改記錄數(shù)據(jù)并使源表隨之更新。視圖設(shè)計(jì)器的更新條件選項(xiàng)卡具有更新數(shù)據(jù)功能。 因?yàn)橐晥D可以限定數(shù)據(jù)表中數(shù)據(jù)的使用范圍,因此,也就限定了可更新數(shù)據(jù),數(shù)據(jù)表中字段的數(shù)據(jù)就不會被破壞,并提高數(shù)據(jù)維護(hù)的安全性。 利用本地視圖更新數(shù)據(jù)表中的數(shù)據(jù)操作方法是: (1)打開數(shù)據(jù)庫文件 (2)打開“數(shù)據(jù)庫”菜單,選擇“修改”。 (3)在“視圖設(shè)計(jì)器”窗口,選擇“更新條件”選項(xiàng)卡,選擇要更新數(shù)據(jù)的字段名;當(dāng)要更新數(shù)據(jù)的字段名確定后,結(jié)束更新條件的設(shè)置。,演示操作,利用視圖更新源表中數(shù)據(jù),開始實(shí)驗(yàn),例:在已創(chuàng)建的視圖2中,修改視圖中王強(qiáng)的“xb”的值為“女”,觀察相應(yīng)源表是否隨之變化。,80,實(shí)驗(yàn)內(nèi)容,1利用P100 習(xí)題(3)創(chuàng)建的數(shù)據(jù)庫資源,創(chuàng)建多個(gè)不同的視圖及查詢文件。 2利用已有的查詢文件設(shè)計(jì)不同的查詢?nèi)ハ蛭募?3.將P100101 習(xí)題中的內(nèi)容上機(jī)操作。,81,2.4 VFP 6.0 工程項(xiàng)目 本 節(jié) 要 點(diǎn),創(chuàng)建項(xiàng)目 項(xiàng)目管理器的使用 定制項(xiàng)目管理器,82,項(xiàng)目: 一種文件,用于跟蹤創(chuàng)建應(yīng)用程序所需要的所有程序、表單、菜單、庫、報(bào)表、標(biāo)簽、查詢和一些其他類型的文件。項(xiàng)目用“項(xiàng)目管理器”進(jìn)行維護(hù),具有 .pjx 擴(kuò)展名。即項(xiàng)目是文件、數(shù)據(jù)、文檔和 Visual FoxPro 對象的集合?!绊?xiàng)目管理器”是 Visual FoxPro 的“控制中心”。,項(xiàng)目管理器,83,建立項(xiàng)目文件,“項(xiàng)目管理器”主要是用來組織和管理Visual FoxPro 中不同類型的文件。只

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論