版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1. 掌握數(shù)據(jù)庫及數(shù)據(jù)庫管理系統(tǒng)的概念 2. 掌握關(guān)系型數(shù)據(jù)庫模型的關(guān)系(表),記錄、字段、關(guān)鍵字、索引概念等。 3. 學(xué)會(huì)使用可視化數(shù)據(jù)管理器建立的數(shù)據(jù)庫是Access數(shù)據(jù)庫(類型名為.mdb) 4. 了解數(shù)據(jù)庫控件的常用屬性及與相關(guān)控件的綁定 5. 了解結(jié)構(gòu)化查詢語言SQL對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作,本章要求:,第十三章 數(shù)據(jù)庫編程基礎(chǔ),本章重點(diǎn):,本章難點(diǎn):,查詢語言SQL對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作,數(shù)據(jù)庫的建立與使用,13.1 數(shù)據(jù)庫基礎(chǔ),13.1.1 數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展,13.1.2 數(shù)據(jù)庫基本概念,根據(jù)數(shù)據(jù)模型,即實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)化所采用的聯(lián)系方式,數(shù)據(jù)庫可以分為層次數(shù)據(jù)庫、網(wǎng)狀數(shù)據(jù)庫
2、和關(guān)系數(shù)據(jù)庫。,關(guān)系數(shù)據(jù)庫的有關(guān)概念,1 關(guān)系(表) 在關(guān)系數(shù)據(jù)庫中,數(shù)據(jù)以關(guān)系的形式出現(xiàn),可以把關(guān)系理解成一張二維表(Table)。 2 記錄(行) 每張二維表均由若干行和列構(gòu)成,其中每一行稱為一條記錄(Record) 3 字段(列) 二維表中的每一列稱為一個(gè)字段(Field),每一列均有一個(gè)名字,稱為字段名,各字段名互不相同。 4 主鍵 關(guān)系數(shù)據(jù)庫中的某個(gè)字段或某些字段的組合定義為主鍵(Primary Key)。每條記錄的主鍵值都是唯一的,這就保證了可以通過主鍵唯一標(biāo)識(shí)一條記錄。,13.1.2 數(shù)據(jù)庫基本概念,5索引 為了提高數(shù)據(jù)庫的訪問效率,表中的記錄應(yīng)該按照一定順序排列,通常建立一個(gè)較
3、小的表索引表,該表中只含有索引字段和記錄號(hào)。通過索引表可以快速確定要訪問記錄的位置。,13.1.3 Visual Basic的數(shù)據(jù)庫應(yīng)用,Visual Basic是一個(gè)功能強(qiáng)大的數(shù)據(jù)庫開發(fā)平臺(tái),所以常常選擇VB作為開發(fā)數(shù)據(jù)庫前臺(tái)應(yīng)用程序的工具。,13.1.2 數(shù)據(jù)庫基本概念,13.2 數(shù)據(jù)庫的設(shè)計(jì)與管理,13.2.1 建立數(shù)據(jù)庫,VB提供了兩種方法建立數(shù)據(jù)庫,分別是: 可視化數(shù)據(jù)管理器 數(shù)據(jù)訪問對(duì)象(DAO),1、可視化數(shù)據(jù)管理器 使用可視化數(shù)據(jù)管理器建立的數(shù)據(jù)庫是Access數(shù)據(jù)庫(類型名為.mdb),可以被Access直接打開和操作。在VB環(huán)境下,執(zhí)行“外接程序”菜單中的“可視化數(shù)據(jù)管理器
4、”命令,即可打開如圖13-3所示的“可視化數(shù)據(jù)管理器”窗口。,2、 建立數(shù)據(jù)表,以建立一個(gè)如下結(jié)構(gòu)的學(xué)生表為例:,13.2 數(shù)據(jù)庫的設(shè)計(jì)與管理,圖13-4 輸入數(shù)據(jù)庫文件名,(2)在對(duì)話框中選擇數(shù)據(jù)庫文件保存的位置,并輸入文件名后(保存類型只能是MDB)單擊保存按鈕,將打開如圖13-5所示的建立數(shù)據(jù)表窗口。,(1)在“可視化數(shù)據(jù)管理器”窗口中執(zhí)行“文件”菜單中的“新建”命令(假設(shè)選擇Microsoft Access,版本7.0 MDB)后,彈出如圖13-4所示的對(duì)話框。,13.2 數(shù)據(jù)庫的設(shè)計(jì)與管理,圖13-5 建立數(shù)據(jù)表窗口,(3)右擊數(shù)據(jù)庫窗口,在彈出的菜單中選擇“新建表”命令,打開如圖1
5、3-6所示的“表結(jié)構(gòu)”對(duì)話框。,13.2 數(shù)據(jù)庫的設(shè)計(jì)與管理,(4)在“表結(jié)構(gòu)”對(duì)話框中輸入表名后,單擊“添加字段”按鈕,在彈出的如圖13-7所示的“添加字段”對(duì)話框中輸入字段名,選擇字段類型(Text類型字段還需輸入字段大?。?。重復(fù)此過程直至添加完所有字段后,單擊“關(guān)閉”按鈕。,圖13-6 “表結(jié)構(gòu)”對(duì)話框,13.2 數(shù)據(jù)庫的設(shè)計(jì)與管理,圖13-7 “添加字段”對(duì)話框,3 建立索引 單擊“表結(jié)構(gòu)”對(duì)話框的“添加索引”按鈕,在彈出的對(duì)話框中(如圖13-8所示)輸入索引名稱,選擇索引字段后,單擊“確定”按鈕即完成了索引的建立過程。,13.2 數(shù)據(jù)庫的設(shè)計(jì)與管理,圖13-8 “添加索引”對(duì)話框圖1
6、3-9 “數(shù)據(jù)庫”窗口,13.2 數(shù)據(jù)庫的設(shè)計(jì)與管理,13.2.2 數(shù)據(jù)庫的基本操作,輸入數(shù)據(jù) 編輯數(shù)據(jù) 刪除數(shù)據(jù) 排序數(shù)據(jù) 過濾數(shù)據(jù) 移動(dòng)數(shù)據(jù) 查找數(shù)據(jù),右鍵單擊表名,使用快捷菜單的打開,可打開如圖13-10所示的輸入數(shù)據(jù)窗口 。,13.2 數(shù)據(jù)庫的設(shè)計(jì)與管理,13.3 數(shù)據(jù)控件與數(shù)據(jù)庫網(wǎng)格控件,13.3.1 數(shù)據(jù)控件,數(shù)據(jù)控件(Data)提供了一種方便地訪問數(shù)據(jù)庫中數(shù)據(jù)的方法,使用數(shù)據(jù)控件無須編寫代碼就可以對(duì)VB所支持的各種類型的數(shù)據(jù)庫執(zhí)行大部分?jǐn)?shù)據(jù)訪問操作。,數(shù)據(jù)控件本身不能顯示和直接修改記錄,只能在與數(shù)據(jù)控件相關(guān)聯(lián)的數(shù)據(jù)約束控件中顯示各個(gè)記錄。,可以作數(shù)據(jù)約束控件的標(biāo)準(zhǔn)控件有以下8種:
7、文本框、標(biāo)簽、圖片框、圖像框、檢查框、列表框、組合框、OLE控件。,2、 數(shù)據(jù)控件屬性 1. Connect屬性指定數(shù)據(jù)庫類型 VB可識(shí)別的數(shù)據(jù)庫有:MDB文件、DBF文件、DB文件、DF文件和ODBC數(shù)據(jù)庫 2. DatabaseName屬性指定具體使用的數(shù)據(jù)庫。 3. RecordType屬性確定記錄集合類型。 4. RecordSource屬性確定具體可訪問的數(shù)據(jù)表。 5. EofAction和BofAction屬性決定數(shù)據(jù)控件要采取的操作。 6. RedaOnly屬性用于控制能否對(duì)記錄集進(jìn)行寫操作。 要使關(guān)聯(lián)控件能被數(shù)據(jù)庫約束,必須對(duì)控件的兩個(gè)屬性進(jìn)行設(shè)置: 7.DataSource屬
8、性通過指定一個(gè)有效的數(shù)據(jù)控件連接一個(gè)數(shù)據(jù)庫。 8.DataField屬性設(shè)置數(shù)據(jù)庫有效的字段。,13.3 數(shù)據(jù)控件與數(shù)據(jù)庫網(wǎng)格控件,3方法 (1)Refresh方法 可以在數(shù)據(jù)控件上使用Refresh方法來打開或重新打開數(shù)據(jù)庫(如果 DatabaseName、ReadOnly或Connect屬性的設(shè)置值發(fā)生改變)。 (2)UpdateControls方法 此方法用于從數(shù)據(jù)控件的Recordset對(duì)象中讀取當(dāng)前記錄,并將數(shù)據(jù)顯示在相關(guān)約束控件上。 (3)UpdateRecord方法 當(dāng)約束控件的內(nèi)容改變時(shí),如果不移動(dòng)記錄指針,則數(shù)據(jù)庫中的值不會(huì)改變,可通過調(diào)用UpdateRecord方法來確認(rèn)對(duì)
9、記錄的修改,將約束控件中的數(shù)據(jù)強(qiáng)制寫入數(shù)據(jù)庫中。,13.3 數(shù)據(jù)控件與數(shù)據(jù)庫網(wǎng)格控件,4 事件 (1)Reposition事件 當(dāng)數(shù)據(jù)控件中移動(dòng)記錄指針改變當(dāng)前記錄時(shí)觸發(fā)該事件。 (2)Validate事件 如果移動(dòng)數(shù)據(jù)控件中記錄指針,并且約束控件中的內(nèi)容已被修改,此時(shí)數(shù)據(jù)庫當(dāng)前記錄的內(nèi)容將被更新,同時(shí)觸發(fā)該事件。,13.3 數(shù)據(jù)控件與數(shù)據(jù)庫網(wǎng)格控件,5記錄集Recordset對(duì)象,一個(gè)Recordset對(duì)象代表一個(gè)數(shù)據(jù)庫表里的記錄,或運(yùn)行一次查詢所得的記錄的結(jié)果。在“Data”控件中可用3類Recordset對(duì)象,即Table(表類型)、Dynaset(動(dòng)態(tài)類型)和Snapshot(快照類型
10、),默認(rèn)為Dynaset類型。 l表類型:一個(gè)記錄集合,代表能用來添加、更新或刪除記錄的單個(gè)數(shù)據(jù)庫表。 l動(dòng)態(tài)類型:一個(gè)記錄的集合動(dòng)態(tài),代表一個(gè)數(shù)據(jù)庫表或包含從一個(gè)或多個(gè)表取出的字段的查詢結(jié)果??蓮腄ynaset類型的記錄集中添加、更新或刪除記錄,并且任何改變都將會(huì)反映在基本表上。 l快照類型:一個(gè)記錄集合靜態(tài)副本,可用于尋找數(shù)據(jù)或生成報(bào)告。一個(gè)快照類型的Recordset能包含從一個(gè)或多個(gè)在同一個(gè)數(shù)據(jù)庫中的表里取出的字段,但字段不能更改。,13.3 數(shù)據(jù)控件與數(shù)據(jù)庫網(wǎng)格控件,在實(shí)際操作中使用什么記錄集關(guān)鍵取決于要完成的任務(wù)。表類型的記錄集已建立了索引,適合快速定位與排序,但內(nèi)存開銷太大。動(dòng)態(tài)
11、集類型的記錄集則適合更新數(shù)據(jù),但其搜索速度不及表類型??煺疹愋偷挠涗浖瘍?nèi)存開銷最小,適合顯示只讀數(shù)據(jù)。,使用Recordset對(duì)象的屬性與方法的一般格式為: 數(shù)據(jù)控件名 . Recordset . 屬性/方法,13.3 數(shù)據(jù)控件與數(shù)據(jù)庫網(wǎng)格控件,6 、使用Recordset對(duì)象連接與訪問數(shù)據(jù)庫的記錄 (1) Move方法 使用Move方法遍歷整個(gè)記錄集中的記錄。Move方法是: MoveFirst或MoveLast方法移至第一個(gè)或最后一個(gè)記錄。 MoveNext或MovePrevious方法移至下一個(gè)或上一個(gè)記錄。 Move n 方法向前或向后移n個(gè)記錄,n為指定的數(shù)值。,13.3 數(shù)據(jù)控件與
12、數(shù)據(jù)庫網(wǎng)格控件,(2) Find方法 可在指定的Dynaset或Snapshot類型的Recordset對(duì)象中查找與指定條件相符的一個(gè)記錄,并使之成為當(dāng)前記錄。4種Find方法是: FindFirst或 FindLast方法. 找到滿足條件的第一個(gè)或最后一個(gè)記錄。 FindNext或FindPrevious方法找到滿足條件的下一個(gè)或上一個(gè)記錄。 4種Find方法的語法格式相同: 數(shù)據(jù)集合.Find方法 條件,13.3 數(shù)據(jù)控件與數(shù)據(jù)庫網(wǎng)格控件,(3) Seek方法 使用Seek方法可在Table表中查找與指定索引規(guī)則相符的第一個(gè)記錄,并使之成為當(dāng)前記錄。其語法格式為: 數(shù)據(jù)表對(duì)象.Seek c
13、omparison , key1,key2 (4) Refresh方法 如果在設(shè)計(jì)狀態(tài)沒有為打開數(shù)據(jù)庫控件的有關(guān)屬性全部賦值,或當(dāng)RecordSource在運(yùn)行時(shí)被改變后,必須使用激活數(shù)據(jù)控件的Refresh方法激活這些變化。例如: Data1.DatabaseName = C:VBBiblio.mdb Data1.RecordSource = Titles Data1.Refresh (5) Close方法 關(guān)閉指定的數(shù)據(jù)庫、記錄集并釋放分配給它的資源其語法格式為:對(duì)象.Close,13.3 數(shù)據(jù)控件與數(shù)據(jù)庫網(wǎng)格控件,(6)AddNew方法 向數(shù)據(jù)庫中添加記錄的步驟如下: 首先,調(diào)用AddN
14、ew方法,打開一個(gè)空白記錄; 然后,通過相關(guān)約束控件給各字段賦值; 最后,單擊數(shù)據(jù)控件上的箭頭按鈕,移動(dòng)記錄指針,或調(diào)用UpdateRecord方法確定所做添加。 (7)Delete方法 刪除數(shù)據(jù)庫中記錄的步驟如下: 首先,將要?jiǎng)h除的記錄定位為當(dāng)前記錄; 然后,調(diào)用Delete方法; 最后,移動(dòng)記錄指針,確定所做刪除操作。,13.3 數(shù)據(jù)控件與數(shù)據(jù)庫網(wǎng)格控件,(8)Edit方法 編輯數(shù)據(jù)庫中記錄的步驟如下: 首先,將要修改的記錄定位為當(dāng)前記錄; 然后,調(diào)用Edit方法; 然后,通過相關(guān)約束控件修改各字段值; 最后,移動(dòng)記錄指針,確定所做編輯操作。,13.3 數(shù)據(jù)控件與數(shù)據(jù)庫網(wǎng)格控件,13.3.
15、2 數(shù)據(jù)庫網(wǎng)格控件(略),數(shù)據(jù)庫網(wǎng)格控件DBGrid,幾乎不用寫代碼就可直接將數(shù)據(jù)庫的記錄顯示在網(wǎng)格內(nèi)。 當(dāng)DBGrid控件的DataSource屬性設(shè)置為一個(gè)Data控件時(shí),DBGrid控件會(huì)被自動(dòng)地填充并且其列標(biāo)題會(huì)用Data控件的記錄集里的數(shù)據(jù)自動(dòng)地設(shè)置。 創(chuàng)建DBGrid控件時(shí),它只有一列和一行。當(dāng)控件的AllowUpdate屬性設(shè)為True,可編輯表里的任意單元表格,而當(dāng)移動(dòng)到新的一行時(shí),它被自動(dòng)地更新。將AllowAddNew和AllowDelete屬性設(shè)置為True,可增刪記錄。,DBGrid控件屬于ActiveX控件,需要執(zhí)行“工程”菜單中的“部件”命令項(xiàng),在“部件”對(duì)話框中選
16、擇“Microsoft Data Bound Gird Control 5.0(sp3)”添加到工具箱中,,13.3 數(shù)據(jù)控件與數(shù)據(jù)庫網(wǎng)格控件,13.4.1 SQL概述 結(jié)構(gòu)化查詢語言SQL是操作數(shù)據(jù)庫的工業(yè)標(biāo)準(zhǔn)語言。在SQL語言中,指定要做什么而不是怎么做。只要告訴SQL需要數(shù)據(jù)庫做什么,可以確切指定想要檢索的記錄以及按什么順序檢索??梢栽谠O(shè)計(jì)或運(yùn)行時(shí)對(duì)數(shù)據(jù)控件使用SQL語句。用戶提出一個(gè)查詢,數(shù)據(jù)庫返回所有與該查詢匹配的記錄。,13.4.2 SQL的構(gòu)成,13.4 SQL簡(jiǎn)介,常用的SQL命令表:,常用SQL命令中的子句,13.4.3 SQL在VB中的應(yīng)用 SQL中最經(jīng)常使用的是從數(shù)據(jù)庫中
17、的獲取數(shù)據(jù)。從數(shù)據(jù)庫中的獲取數(shù)據(jù)稱為查詢數(shù)據(jù)庫,查詢數(shù)據(jù)庫通過使用SELECT語句。常見的Select語句包含六部分,其語法形式為: SELECT 字段表 FROM 表名 WHERE 查詢條件 GROUP BY 分組 字段 HAVING 分組條件 ORDER BY 字段ASC|DESC 1. 使用SELECT語句查詢 無論是數(shù)據(jù)控件還是數(shù)據(jù)對(duì)象都可使用SELECT語句查詢數(shù)據(jù)。 例如 用SQL語句顯示數(shù)據(jù)庫Biblio.mdb中出版日期為1996年全部記錄。 Data1.RecordSource = SELECT * FROM Titles WHERE Year Published =1996
18、 用Data1.Refresh方法激活這些變化。,選擇表中所有字段,指定表Title,構(gòu)成查詢條件,SELECT語句可以看作記錄集的定義語句,它從一個(gè)或多個(gè)表中獲取指定字段,生成一個(gè)較小的記錄集。下面通過一組對(duì)前面建立的學(xué)生成績(jī)數(shù)據(jù)庫的查詢操作來學(xué)習(xí)SELECT語句的基本用法。 (1)選取表中部分列。例如查詢學(xué)生成績(jī)表中的英語和計(jì)算機(jī)成績(jī): SELECT 英語,計(jì)算機(jī) FROM score (2)選取表中所有列。例如查詢學(xué)生成績(jī)表中的所有信息: SELECT * FROM score (3)WHERE子句。例如查詢數(shù)學(xué)成績(jī)不及格的學(xué)生信息: SELECT * FROM score WHERE 數(shù)學(xué)60 (4)復(fù)合條件。例如查詢數(shù)學(xué)和英語成績(jī)均不及格的學(xué)生信息: SELECT * FROM score WHERE 數(shù)學(xué)60 AND 英語60,13.4 SQL簡(jiǎn)介,(5)ORDER BY子句。例如查詢學(xué)生成績(jī)表中的所有數(shù)學(xué)成績(jī)及格的學(xué)生信息,并將查詢結(jié)果按數(shù)學(xué)成績(jī)降序排列(ASC表示升序,DESC表示降序): SELECT * FROM score WHERE 數(shù)學(xué)=60 ORDER BY 數(shù)學(xué) DESC (6)統(tǒng)計(jì)信息。例如查詢數(shù)學(xué)成績(jī)不及格的人數(shù)、數(shù)學(xué)平均分、最高分: SELECT COUNT(*)AS 人數(shù) FROM score WHERE 數(shù)學(xué)60 SELECT AVG
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年來安縣城市基礎(chǔ)設(shè)施開發(fā)有限公司選聘經(jīng)理層管理人員二次備考題庫參考答案詳解
- 山西省忻州高級(jí)中學(xué)2026屆高三語文第一學(xué)期期末教學(xué)質(zhì)量檢測(cè)模擬試題含解析
- 2026年中國聯(lián)通甘孜州分公司招聘?jìng)淇碱}庫及參考答案詳解一套
- 2026屆江蘇省高三生物第一學(xué)期期末復(fù)習(xí)檢測(cè)試題含解析
- 廣東省惠州市惠東中學(xué)2026屆生物高二上期末綜合測(cè)試模擬試題含解析
- 2026年南陽醫(yī)學(xué)高等專科學(xué)校第一附屬醫(yī)院公開招聘專業(yè)技術(shù)人員109人備考題庫及一套完整答案詳解
- 2026年中鈔實(shí)業(yè)有限公司招聘?jìng)淇碱}庫有答案詳解
- 2026年安徽涇縣公開引進(jìn)事業(yè)單位急需緊缺專業(yè)人才備考題庫及完整答案詳解一套
- 2026年天津市第一中心醫(yī)院人事代理制工作人員招聘17人備考題庫(第二批)完整答案詳解
- 2026年定南縣發(fā)展投資控股集團(tuán)有限公司招聘3名工作人員備考題庫及答案詳解一套
- 斜弱視眼科學(xué)
- 電商平臺(tái)需求規(guī)格說明書-通用版本
- GB/T 3372-2010拖拉機(jī)和農(nóng)業(yè)、林業(yè)機(jī)械用輪輞系列
- 北京城市旅游故宮紅色中國風(fēng)PPT模板
- 經(jīng)濟(jì)學(xué)原理 第一章課件
- 安川伺服說明書
- 社會(huì)組織管理概論全套ppt課件(完整版)
- 酒精度檢測(cè)原始記錄
- 冷渣機(jī)檢修工藝
- 建筑風(fēng)水學(xué)培訓(xùn)
- SAP成本月結(jié)操作及標(biāo)準(zhǔn)成本估算
評(píng)論
0/150
提交評(píng)論