visual basic 第14章 數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)
《visual basic 第14章 數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)》由會(huì)員分享,可在線閱讀,更多相關(guān)《visual basic 第14章 數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)(127頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第第1414章章 數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)w 14.1 創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù) w 14.2 VB如何訪問(wèn)數(shù)據(jù)庫(kù)如何訪問(wèn)數(shù)據(jù)庫(kù) w 14.3 用控件訪問(wèn)數(shù)據(jù)庫(kù)用控件訪問(wèn)數(shù)據(jù)庫(kù) w 14.4 初識(shí)記錄集對(duì)象初識(shí)記錄集對(duì)象w 14.5 用用SQL語(yǔ)句生成記錄集語(yǔ)句生成記錄集 w 14.6 數(shù)據(jù)庫(kù)記錄的操作數(shù)據(jù)庫(kù)記錄的操作w 14.7 ADO編程模型簡(jiǎn)介編程模型簡(jiǎn)介 w 14.8 數(shù)據(jù)報(bào)表數(shù)據(jù)報(bào)表 結(jié)束14.1 14.1 創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù) w 14.1.1 14.1.1 關(guān)系型數(shù)據(jù)庫(kù)的基本結(jié)構(gòu)關(guān)系型數(shù)據(jù)庫(kù)的基本結(jié)構(gòu) w 14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessA
2、ccess數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù) w 14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù) 返回首頁(yè)14.1.1 14.1.1 關(guān)系型數(shù)據(jù)庫(kù)的基本結(jié)構(gòu)關(guān)系型數(shù)據(jù)庫(kù)的基本結(jié)構(gòu)(1)(1)在討論關(guān)系型數(shù)據(jù)庫(kù)的結(jié)構(gòu)之前,先來(lái)在討論關(guān)系型數(shù)據(jù)庫(kù)的結(jié)構(gòu)之前,先來(lái)看一個(gè)記載學(xué)生基本信息的表格??匆粋€(gè)記載學(xué)生基本信息的表格。表表14.1 學(xué)生基本信息表學(xué)生基本信息表 14.1.1 14.1.1 關(guān)系型數(shù)據(jù)庫(kù)的基本結(jié)構(gòu)關(guān)系型數(shù)據(jù)庫(kù)的基本結(jié)構(gòu)(2)(2)表表14.1是一個(gè)由若干行和列組成的二維是一個(gè)由若干行和列組成的二維表格,一個(gè)關(guān)系型數(shù)據(jù)庫(kù)由多個(gè)這樣的二維表格,一個(gè)關(guān)系型數(shù)據(jù)庫(kù)由多個(gè)
3、這樣的二維表格組成。關(guān)系型數(shù)據(jù)庫(kù)使用以下術(shù)語(yǔ)描述表格組成。關(guān)系型數(shù)據(jù)庫(kù)使用以下術(shù)語(yǔ)描述數(shù)據(jù)庫(kù)中的信息:數(shù)據(jù)庫(kù)中的信息:記錄記錄(Record):):二維表中的每一行為一二維表中的每一行為一條記錄(表?xiàng)l記錄(表14.1中的第一行中的第一行“學(xué)號(hào)學(xué)號(hào)”、“姓姓名名”等列標(biāo)題除外)。一個(gè)表中不允許含有等列標(biāo)題除外)。一個(gè)表中不允許含有完全相同的兩條記錄。完全相同的兩條記錄。字段字段(Field):):二維表中的每一列為一二維表中的每一列為一個(gè)字段。列標(biāo)題為字段名(必須惟一)。個(gè)字段。列標(biāo)題為字段名(必須惟一)。14.1.1 14.1.1 關(guān)系型數(shù)據(jù)庫(kù)的基本結(jié)構(gòu)關(guān)系型數(shù)據(jù)庫(kù)的基本結(jié)構(gòu)(3)(3)數(shù)據(jù)表
4、數(shù)據(jù)表(Table):):二維表中的所有記錄二維表中的所有記錄構(gòu)成數(shù)據(jù)表,簡(jiǎn)稱為表。構(gòu)成數(shù)據(jù)表,簡(jiǎn)稱為表。數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)(Database):):多個(gè)相互關(guān)聯(lián)但多個(gè)相互關(guān)聯(lián)但不同名的數(shù)據(jù)表構(gòu)成數(shù)據(jù)庫(kù)。不同名的數(shù)據(jù)表構(gòu)成數(shù)據(jù)庫(kù)。目前較流行的桌面數(shù)據(jù)庫(kù)目前較流行的桌面數(shù)據(jù)庫(kù)MS Access,大大型網(wǎng)絡(luò)數(shù)據(jù)庫(kù)型網(wǎng)絡(luò)數(shù)據(jù)庫(kù)MS SQL Server、Oracle和和Sybase等都屬于關(guān)系型數(shù)據(jù)庫(kù)。本章以等都屬于關(guān)系型數(shù)據(jù)庫(kù)。本章以MS Access數(shù)據(jù)庫(kù)為例討論數(shù)據(jù)庫(kù)為例討論VB的數(shù)據(jù)庫(kù)應(yīng)用技的數(shù)據(jù)庫(kù)應(yīng)用技術(shù)。術(shù)。返回首頁(yè)返回本節(jié)14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建Acces
5、sAccess數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)(1)(1)1.啟動(dòng)數(shù)據(jù)管理器啟動(dòng)數(shù)據(jù)管理器 在在VB環(huán)境中執(zhí)行【外接程序】菜單中的【可環(huán)境中執(zhí)行【外接程序】菜單中的【可視化數(shù)據(jù)管理器】命令,打開(kāi)可視化數(shù)據(jù)管理器視化數(shù)據(jù)管理器】命令,打開(kāi)可視化數(shù)據(jù)管理器(VisData),),如如圖圖14.1所示。所示。2.建立數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù) 在在VisDataVisData窗口執(zhí)行菜單命令【文件】窗口執(zhí)行菜單命令【文件】|【新建】【新建】|Microsoft Access Ver 7.0 MDBMicrosoft Access Ver 7.0 MDB,打開(kāi)【選擇要打開(kāi)【選擇要?jiǎng)?chuàng)建的創(chuàng)建的Microsoft AccessMicr
6、osoft Access數(shù)據(jù)庫(kù)】對(duì)話框,在對(duì)數(shù)據(jù)庫(kù)】對(duì)話框,在對(duì)話框中輸入數(shù)據(jù)庫(kù)文件名(如話框中輸入數(shù)據(jù)庫(kù)文件名(如“Student.mdbStudent.mdb”)并保存后,并保存后,VisDataVisData窗口的工作區(qū)將出現(xiàn)如窗口的工作區(qū)將出現(xiàn)如圖圖14.214.2所示的【數(shù)據(jù)庫(kù)窗口】(此時(shí)為空庫(kù),無(wú)表)。所示的【數(shù)據(jù)庫(kù)窗口】(此時(shí)為空庫(kù),無(wú)表)。14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)(2)(2)圖圖14.1 可視化數(shù)據(jù)管理器可視化數(shù)據(jù)管理器 圖圖14.2 數(shù)據(jù)庫(kù)窗口數(shù)據(jù)庫(kù)窗口 返回14.1.2 14.1.2 在在VBVB環(huán)境中
7、創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)(3)(3)3.建立數(shù)據(jù)表建立數(shù)據(jù)表 右擊【數(shù)據(jù)庫(kù)窗口】空白處,在彈出菜單中選右擊【數(shù)據(jù)庫(kù)窗口】空白處,在彈出菜單中選擇【新建表】菜單項(xiàng),打開(kāi)如擇【新建表】菜單項(xiàng),打開(kāi)如圖圖14.3所示的【表結(jié)所示的【表結(jié)構(gòu)】對(duì)話框,輸入表名稱(如構(gòu)】對(duì)話框,輸入表名稱(如“基本情況基本情況”)后,)后,單擊【添加字段】按鈕,打開(kāi)單擊【添加字段】按鈕,打開(kāi)如圖如圖14.4所示的【添所示的【添加字段】對(duì)話框,輸入字段名稱,設(shè)置類型和大加字段】對(duì)話框,輸入字段名稱,設(shè)置類型和大小(僅?。▋HText類型可設(shè)置大?。?。添加了所有字段后,類型可設(shè)置大?。?。添加了所有字段
8、后,單擊圖單擊圖14.3中的【生成表】按鈕即可建立數(shù)據(jù)表。中的【生成表】按鈕即可建立數(shù)據(jù)表。在一個(gè)庫(kù)中可建立多個(gè)不同名稱的表。在一個(gè)庫(kù)中可建立多個(gè)不同名稱的表。14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)(4)(4)圖圖14.3 表結(jié)構(gòu)表結(jié)構(gòu)返回14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)(5)(5)圖圖14.4 添加字段添加字段 返回14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)(6)(6)4.添加索引添加索引 為數(shù)據(jù)表添加索引可以提高數(shù)據(jù)
9、檢索的速度。為數(shù)據(jù)表添加索引可以提高數(shù)據(jù)檢索的速度。在在圖圖14.314.3所示的【表結(jié)構(gòu)】對(duì)話框中單擊【添加所示的【表結(jié)構(gòu)】對(duì)話框中單擊【添加索引】按鈕,打開(kāi)如索引】按鈕,打開(kāi)如圖圖14.514.5所示的【添加索引所示的【添加索引 到到 基本情況】對(duì)話框。在【名稱】文本框中輸入索基本情況】對(duì)話框。在【名稱】文本框中輸入索引名稱(如引名稱(如“sNosNo”),),在【可用字段】列表框中在【可用字段】列表框中選擇需要為其設(shè)置索引的字段(如選擇需要為其設(shè)置索引的字段(如“學(xué)號(hào)學(xué)號(hào)”),),并設(shè)置是否為主索引或惟一索引(無(wú)重復(fù))。并設(shè)置是否為主索引或惟一索引(無(wú)重復(fù))。5.輸入記錄輸入記錄 雙擊【
10、數(shù)據(jù)庫(kù)窗口】中數(shù)據(jù)表名稱左側(cè)的圖標(biāo),雙擊【數(shù)據(jù)庫(kù)窗口】中數(shù)據(jù)表名稱左側(cè)的圖標(biāo),打開(kāi)如打開(kāi)如圖圖14.614.6所示的記錄操作窗口,可以對(duì)記錄所示的記錄操作窗口,可以對(duì)記錄進(jìn)行增、刪、修改等操作。進(jìn)行增、刪、修改等操作。14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)(7)(7)圖圖14.5 添加索引添加索引 返回14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)(8)(8)圖圖14.6 記錄操作記錄操作 返回返回首頁(yè)返回本節(jié)14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫(kù)
11、建立數(shù)據(jù)庫(kù)(1 1)下面以下面以MS Access 2000為例簡(jiǎn)介數(shù)據(jù)庫(kù)的創(chuàng)建。為例簡(jiǎn)介數(shù)據(jù)庫(kù)的創(chuàng)建。1.1.建立數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù) 啟動(dòng)啟動(dòng)MS AccessMS Access,在對(duì)話框中選定【空在對(duì)話框中選定【空 Access Access 數(shù)據(jù)庫(kù)】單選按鈕。單擊【確定】按鈕后,在數(shù)據(jù)庫(kù)】單選按鈕。單擊【確定】按鈕后,在【文件新建數(shù)據(jù)庫(kù)】對(duì)話框中選擇保存位置并輸【文件新建數(shù)據(jù)庫(kù)】對(duì)話框中選擇保存位置并輸入文件名入文件名,然后單擊【創(chuàng)建】按鈕。然后單擊【創(chuàng)建】按鈕。2.2.建立數(shù)據(jù)表建立數(shù)據(jù)表 新建一個(gè)空白數(shù)據(jù)庫(kù)后,在新建一個(gè)空白數(shù)據(jù)庫(kù)后,在MS AccessMS Access主窗口主窗口中
12、將會(huì)出現(xiàn)如中將會(huì)出現(xiàn)如圖圖14.914.9所示的數(shù)據(jù)庫(kù)窗口。在此窗所示的數(shù)據(jù)庫(kù)窗口。在此窗口中可以管理口中可以管理AccessAccess數(shù)據(jù)庫(kù)的各組成部分。數(shù)據(jù)庫(kù)的各組成部分。14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù)(2 2)圖圖14.9 創(chuàng)建數(shù)據(jù)表創(chuàng)建數(shù)據(jù)表 返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù)(3 3)在數(shù)據(jù)庫(kù)窗口中雙擊【使用設(shè)計(jì)器創(chuàng)建表】圖在數(shù)據(jù)庫(kù)窗口中雙擊【使用設(shè)計(jì)器創(chuàng)建表】圖標(biāo),打開(kāi)如標(biāo),打開(kāi)如圖圖14.1014.10所示的表設(shè)計(jì)器窗口【表所示的表設(shè)計(jì)器窗口【表1 1:表】,輸入
13、字段名稱,設(shè)置字段的數(shù)據(jù)類型、字表】,輸入字段名稱,設(shè)置字段的數(shù)據(jù)類型、字段大小及其他屬性。段大小及其他屬性。若需設(shè)置主鍵,可選定擬設(shè)為主鍵的字段,若需設(shè)置主鍵,可選定擬設(shè)為主鍵的字段,然后單擊然后單擊MS Access主窗口工具欄中的【主鍵】圖主窗口工具欄中的【主鍵】圖標(biāo)標(biāo) ,此時(shí),被設(shè)為主鍵的字段名左側(cè)會(huì)出現(xiàn)鑰,此時(shí),被設(shè)為主鍵的字段名左側(cè)會(huì)出現(xiàn)鑰匙狀的圖標(biāo),同時(shí),【字段屬性】中的【索引】匙狀的圖標(biāo),同時(shí),【字段屬性】中的【索引】屬性將自動(dòng)設(shè)為【有屬性將自動(dòng)設(shè)為【有(無(wú)重復(fù)無(wú)重復(fù))】?!俊H孔侄卧O(shè)置結(jié)束后,關(guān)閉表設(shè)計(jì)器窗口,全部字段設(shè)置結(jié)束后,關(guān)閉表設(shè)計(jì)器窗口,系統(tǒng)將顯示如系統(tǒng)將顯示如圖
14、圖14.11所示的對(duì)話框,可根據(jù)提示所示的對(duì)話框,可根據(jù)提示保存新建的數(shù)據(jù)表并設(shè)置表的名稱。保存新建的數(shù)據(jù)表并設(shè)置表的名稱。14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù)(4 4)圖圖14.10 設(shè)計(jì)表的結(jié)構(gòu)設(shè)計(jì)表的結(jié)構(gòu) 返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù)(5 5)圖圖14.11 保存數(shù)據(jù)表保存數(shù)據(jù)表 返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù)(6 6)若需修改數(shù)據(jù)表的結(jié)構(gòu)定義(如添加、刪除若需修改數(shù)據(jù)表的結(jié)構(gòu)定義(如添加、刪除或修改字段),可在
15、如圖或修改字段),可在如圖14.12所示的數(shù)據(jù)庫(kù)窗口所示的數(shù)據(jù)庫(kù)窗口選定數(shù)據(jù)表(如選定數(shù)據(jù)表(如“基本信息基本信息”),然后單擊該窗),然后單擊該窗口工具欄中的【設(shè)計(jì)】按鈕,打開(kāi)前面口工具欄中的【設(shè)計(jì)】按鈕,打開(kāi)前面圖圖14.10所所示的表設(shè)計(jì)器窗口進(jìn)行操作。示的表設(shè)計(jì)器窗口進(jìn)行操作。圖圖14.12 修改表結(jié)構(gòu)修改表結(jié)構(gòu) 14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù)(7 7)如果要添加一個(gè)新表,可再次雙擊【使用設(shè)計(jì)如果要添加一個(gè)新表,可再次雙擊【使用設(shè)計(jì)器創(chuàng)建表】圖標(biāo),或者單擊工具欄【新建】按鈕,器創(chuàng)建表】圖標(biāo),或者單擊工具欄【新建】按鈕,在如圖在如
16、圖14.13所示的【新建表】對(duì)話框中選擇【設(shè)所示的【新建表】對(duì)話框中選擇【設(shè)計(jì)視圖】后,單擊【確定】按鈕,均可打開(kāi)如計(jì)視圖】后,單擊【確定】按鈕,均可打開(kāi)如圖圖14.10所示的表設(shè)計(jì)器窗口。所示的表設(shè)計(jì)器窗口。圖圖14.13 添加新表添加新表 14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù)(8 8)3.輸入記錄輸入記錄 在數(shù)據(jù)庫(kù)窗口中雙擊數(shù)據(jù)表在數(shù)據(jù)庫(kù)窗口中雙擊數(shù)據(jù)表,或者選定表后單擊工具欄或者選定表后單擊工具欄中的【打開(kāi)】按鈕中的【打開(kāi)】按鈕,打開(kāi)如圖打開(kāi)如圖14.14所示的數(shù)據(jù)表窗口所示的數(shù)據(jù)表窗口,向表向表中輸入數(shù)據(jù)。輸入結(jié)束后關(guān)閉該窗口,根據(jù)系
17、統(tǒng)提示保存中輸入數(shù)據(jù)。輸入結(jié)束后關(guān)閉該窗口,根據(jù)系統(tǒng)提示保存數(shù)據(jù)表。數(shù)據(jù)表。圖圖14.14 輸入記錄輸入記錄 14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù)(9 9)4.建立表間關(guān)聯(lián)關(guān)系建立表間關(guān)聯(lián)關(guān)系 在一個(gè)數(shù)據(jù)庫(kù)中,一般需要用多個(gè)表存放不同在一個(gè)數(shù)據(jù)庫(kù)中,一般需要用多個(gè)表存放不同類別而又相互關(guān)聯(lián)的信息。例如,在學(xué)生信息數(shù)類別而又相互關(guān)聯(lián)的信息。例如,在學(xué)生信息數(shù)據(jù)庫(kù)中用據(jù)庫(kù)中用“基本信息基本信息”表存放學(xué)生的學(xué)號(hào)、姓名、表存放學(xué)生的學(xué)號(hào)、姓名、性別等基本情況,用性別等基本情況,用“成績(jī)成績(jī)”表存放學(xué)生的各科表存放學(xué)生的各科成績(jī),用成績(jī),用“課程課程
18、”表存放已開(kāi)的課程。假設(shè)這三表存放已開(kāi)的課程。假設(shè)這三個(gè)表中含有如個(gè)表中含有如表表14.314.3表表14.514.5所示的信息,當(dāng)需所示的信息,當(dāng)需要查詢某位學(xué)生的一門或幾門課程的成績(jī)時(shí),就要查詢某位學(xué)生的一門或幾門課程的成績(jī)時(shí),就要從上述三個(gè)表中獲取數(shù)據(jù)。假如某位學(xué)生的學(xué)要從上述三個(gè)表中獲取數(shù)據(jù)。假如某位學(xué)生的學(xué)號(hào)在最初輸入時(shí)有誤,需要修改,則必須確保號(hào)在最初輸入時(shí)有誤,需要修改,則必須確?!盎拘畔⒒拘畔ⅰ北砗捅砗汀俺煽?jī)成績(jī)”表中的表中的“學(xué)號(hào)學(xué)號(hào)”字段字段進(jìn)行同步更改。因此,應(yīng)當(dāng)為三個(gè)表建立必要的進(jìn)行同步更改。因此,應(yīng)當(dāng)為三個(gè)表建立必要的關(guān)聯(lián)關(guān)系。關(guān)聯(lián)關(guān)系。14.1.3 14.1.3
19、 用用MS AccessMS Access建立數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù)(1010)注:注:*為主鍵。為主鍵。返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù)(1111)建立表間關(guān)聯(lián)關(guān)系的前提是兩個(gè)表各含有一個(gè)關(guān)聯(lián)字段建立表間關(guān)聯(lián)關(guān)系的前提是兩個(gè)表各含有一個(gè)關(guān)聯(lián)字段(屬性必須相同),其中一個(gè)表的關(guān)聯(lián)字段必須被設(shè)為主(屬性必須相同),其中一個(gè)表的關(guān)聯(lián)字段必須被設(shè)為主鍵或具有惟一索引,該表稱為鍵或具有惟一索引,該表稱為“主表主表”,另一個(gè)表稱為,另一個(gè)表稱為“從表從表”。下面以表下面以表14.3表表14.5為例,簡(jiǎn)介建立數(shù)據(jù)表為例,簡(jiǎn)介建立數(shù)據(jù)表之間關(guān)聯(lián)關(guān)系的一般
20、步驟。之間關(guān)聯(lián)關(guān)系的一般步驟。單擊單擊Microsoft Access主窗口工具欄【關(guān)系】按鈕主窗口工具欄【關(guān)系】按鈕 ,若數(shù)據(jù)庫(kù)中尚未定義任何關(guān)系,則在打開(kāi)【關(guān)系】窗口的若數(shù)據(jù)庫(kù)中尚未定義任何關(guān)系,則在打開(kāi)【關(guān)系】窗口的同時(shí)彈出如同時(shí)彈出如圖圖14.1514.15所示的【顯示表】對(duì)話框。所示的【顯示表】對(duì)話框。在【顯示表】對(duì)話框中選定需要建立關(guān)系的表,單擊在【顯示表】對(duì)話框中選定需要建立關(guān)系的表,單擊【添加】按鈕,然后單擊【關(guān)閉】按鈕,屏幕顯示如【添加】按鈕,然后單擊【關(guān)閉】按鈕,屏幕顯示如圖圖14.1614.16所示的【關(guān)系】窗口所示的【關(guān)系】窗口。14.1.3 14.1.3 用用MS A
21、ccessMS Access建立數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù)(1212)圖圖14.15 選擇擬建立關(guān)系的表選擇擬建立關(guān)系的表 返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù)(1313)圖圖14.16 【關(guān)系】窗口【關(guān)系】窗口 返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù)(1414)在【關(guān)系】窗口將【基本信息】表中的【學(xué)號(hào)】在【關(guān)系】窗口將【基本信息】表中的【學(xué)號(hào)】字段拖放到【成績(jī)】表中的【學(xué)號(hào)】字段,彈出字段拖放到【成績(jī)】表中的【學(xué)號(hào)】字段,彈出如圖如圖14.17所示的【編輯關(guān)系】對(duì)話框。所示的【編輯關(guān)系】對(duì)話框
22、。圖圖14.17 編輯關(guān)系編輯關(guān)系 14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù)(1515)在【編輯關(guān)系】對(duì)話框中,將【實(shí)施參照完整在【編輯關(guān)系】對(duì)話框中,將【實(shí)施參照完整性】、【級(jí)聯(lián)更新相關(guān)字段】和【級(jí)聯(lián)刪除相關(guān)性】、【級(jí)聯(lián)更新相關(guān)字段】和【級(jí)聯(lián)刪除相關(guān)記錄】三個(gè)復(fù)選框全部選中,單擊【創(chuàng)建】按鈕。記錄】三個(gè)復(fù)選框全部選中,單擊【創(chuàng)建】按鈕。重復(fù)第、步的操作,建立【成績(jī)】表中的重復(fù)第、步的操作,建立【成績(jī)】表中的【課號(hào)】字段與【課程】表中的【課號(hào)】字段的【課號(hào)】字段與【課程】表中的【課號(hào)】字段的關(guān)聯(lián)。關(guān)聯(lián)。建立表間關(guān)聯(lián)關(guān)系后的效果如建立表間關(guān)聯(lián)關(guān)系后
23、的效果如圖圖14.18所示。所示。14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù)(1616)圖圖14.18 表間關(guān)系表間關(guān)系 返回首頁(yè)返回本節(jié)14.2 14.2 VBVB如何訪問(wèn)數(shù)據(jù)庫(kù)(如何訪問(wèn)數(shù)據(jù)庫(kù)(1 1)目前,目前,Visual BasicVisual Basic訪問(wèn)數(shù)據(jù)庫(kù)的主流技術(shù)是訪問(wèn)數(shù)據(jù)庫(kù)的主流技術(shù)是ADOADO。ADOADO是一種基于對(duì)象的數(shù)據(jù)訪問(wèn)接口,在是一種基于對(duì)象的數(shù)據(jù)訪問(wèn)接口,在VBVB中中提供了利用提供了利用ADOADO訪問(wèn)數(shù)據(jù)庫(kù)的兩種主要形式:訪問(wèn)數(shù)據(jù)庫(kù)的兩種主要形式:ADOADO數(shù)數(shù)據(jù)控件據(jù)控件(ADODCADODC)和和A
24、DOADO對(duì)象編程模型對(duì)象編程模型(ADOADO代碼代碼)。這兩種方式可以單獨(dú)使用,也可以同時(shí)使用。這兩種方式可以單獨(dú)使用,也可以同時(shí)使用。使用使用ADOADO數(shù)據(jù)控件的優(yōu)點(diǎn)是代碼少,一個(gè)簡(jiǎn)單的數(shù)據(jù)控件的優(yōu)點(diǎn)是代碼少,一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)應(yīng)用程序甚至可以不用編寫(xiě)任何代碼。它的數(shù)據(jù)庫(kù)應(yīng)用程序甚至可以不用編寫(xiě)任何代碼。它的缺點(diǎn)是功能簡(jiǎn)單,不夠靈活,不能滿足編制較復(fù)雜缺點(diǎn)是功能簡(jiǎn)單,不夠靈活,不能滿足編制較復(fù)雜的數(shù)據(jù)庫(kù)應(yīng)用程序的需要。的數(shù)據(jù)庫(kù)應(yīng)用程序的需要。14.2 14.2 VBVB如何訪問(wèn)數(shù)據(jù)庫(kù)(如何訪問(wèn)數(shù)據(jù)庫(kù)(2 2)使用使用ADOADO對(duì)象編程模型的優(yōu)點(diǎn)是具有高度的靈活性,可以對(duì)象編程模型的優(yōu)點(diǎn)
25、是具有高度的靈活性,可以編制復(fù)雜的數(shù)據(jù)庫(kù)應(yīng)用程序。它的缺點(diǎn)是代碼編寫(xiě)量較大,編制復(fù)雜的數(shù)據(jù)庫(kù)應(yīng)用程序。它的缺點(diǎn)是代碼編寫(xiě)量較大,對(duì)初學(xué)者來(lái)說(shuō)有一定困難。對(duì)初學(xué)者來(lái)說(shuō)有一定困難。無(wú)論采用哪種方式訪問(wèn)數(shù)據(jù)庫(kù),都要經(jīng)歷以下基本步驟:無(wú)論采用哪種方式訪問(wèn)數(shù)據(jù)庫(kù),都要經(jīng)歷以下基本步驟:w 與數(shù)據(jù)庫(kù)建立連接,打開(kāi)數(shù)據(jù)庫(kù)。與數(shù)據(jù)庫(kù)建立連接,打開(kāi)數(shù)據(jù)庫(kù)。w 從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)并在適當(dāng)?shù)目丶酗@示。從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)并在適當(dāng)?shù)目丶酗@示。w 對(duì)所獲數(shù)據(jù)進(jìn)行瀏覽以及增、刪、改等操作,并將修改對(duì)所獲數(shù)據(jù)進(jìn)行瀏覽以及增、刪、改等操作,并將修改后的數(shù)據(jù)存入數(shù)據(jù)庫(kù)。后的數(shù)據(jù)存入數(shù)據(jù)庫(kù)。在后面的幾節(jié)中將以在后面的幾節(jié)中將以
26、ADOADO數(shù)據(jù)控件為主詳細(xì)介紹數(shù)據(jù)控件為主詳細(xì)介紹VBVB訪問(wèn)數(shù)訪問(wèn)數(shù)據(jù)庫(kù)的基本操作。據(jù)庫(kù)的基本操作。返回首頁(yè)14.3 14.3 用控件訪問(wèn)數(shù)據(jù)庫(kù)用控件訪問(wèn)數(shù)據(jù)庫(kù)w 14.3.1 14.3.1 ADOADO數(shù)據(jù)控件數(shù)據(jù)控件 w 14.3.2 14.3.2 數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件 w 14.3.3 14.3.3 使用數(shù)據(jù)窗體向?qū)褂脭?shù)據(jù)窗體向?qū)?返回首頁(yè)14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(1 1)1.1.加載加載ADOADO數(shù)據(jù)控件數(shù)據(jù)控件 ADO ADO數(shù)據(jù)控件屬于數(shù)據(jù)控件屬于ActiveXActiveX控件,加載后才能使用:控件,加載后才能使用:右擊工具箱,在彈出
27、菜單中選擇【部件】菜單項(xiàng),打開(kāi)右擊工具箱,在彈出菜單中選擇【部件】菜單項(xiàng),打開(kāi)【部 件】對(duì) 話 框,在【控 件】選 項(xiàng) 卡 的 列 表 中 選 中【部 件】對(duì) 話 框,在【控 件】選 項(xiàng) 卡 的 列 表 中 選 中“Mcrosoft ADO Data Control 6.0Mcrosoft ADO Data Control 6.0”前面的復(fù)選框,單擊前面的復(fù)選框,單擊【確定】按鈕?!敬_定】按鈕。2.2.連接數(shù)據(jù)庫(kù)及指定記錄源連接數(shù)據(jù)庫(kù)及指定記錄源 ADO ADO數(shù)據(jù)控件與數(shù)據(jù)庫(kù)的連接有數(shù)據(jù)控件與數(shù)據(jù)庫(kù)的連接有3 3種方式:數(shù)據(jù)鏈接文件種方式:數(shù)據(jù)鏈接文件(.(.UDL)UDL)、ODBCODB
28、C(DSNDSN)和字符串連接。與和字符串連接。與AccessAccess數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù)建立連接的常用方式是連接的常用方式是字符串連接字符串連接。14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(2 2)通常通過(guò)屬性頁(yè)一次完成連接數(shù)據(jù)庫(kù)和指定記錄通常通過(guò)屬性頁(yè)一次完成連接數(shù)據(jù)庫(kù)和指定記錄源的設(shè)置。操作步驟如下:源的設(shè)置。操作步驟如下:將將ADOADO數(shù)據(jù)控件數(shù)據(jù)控件(Adodc)Adodc)添加到窗體上,右擊該添加到窗體上,右擊該控件,在彈出菜單中選擇【控件,在彈出菜單中選擇【ADODCADODC屬性】菜單項(xiàng),屬性】菜單項(xiàng),打開(kāi)如打開(kāi)如圖圖14.2014.20所示的【屬性頁(yè)】對(duì)話框
29、所示的【屬性頁(yè)】對(duì)話框。在對(duì)話框【通用】選項(xiàng)卡中選擇【使用連接字符在對(duì)話框【通用】選項(xiàng)卡中選擇【使用連接字符串】,單擊【生成】按鈕,打開(kāi)如串】,單擊【生成】按鈕,打開(kāi)如圖圖14.2114.21所示的所示的【數(shù)據(jù)鏈接屬性】對(duì)話框【數(shù)據(jù)鏈接屬性】對(duì)話框。在【提供程序】選項(xiàng)卡。在【提供程序】選項(xiàng)卡的列表中選擇的列表中選擇“Microsoft Jet 4.0 OLE DB Microsoft Jet 4.0 OLE DB ProviderProvider”,單擊【下一步】,切換到如單擊【下一步】,切換到如圖圖14.2214.22所示的【連接】選項(xiàng)卡所示的【連接】選項(xiàng)卡。14.3.1 14.3.1 AD
30、OADO數(shù)據(jù)控件(數(shù)據(jù)控件(3 3)圖圖14.20 14.20 ADODCADODC屬性頁(yè)屬性頁(yè) 返回14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(4 4)圖圖14.21 14.21 選擇提供程序選擇提供程序返回14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(5 5)圖圖14.22 14.22 連接數(shù)據(jù)庫(kù)連接數(shù)據(jù)庫(kù)返回14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(6 6)在【連接】選項(xiàng)卡中單擊【在【連接】選項(xiàng)卡中單擊【1.1.選擇或輸入數(shù)據(jù)庫(kù)名稱】選擇或輸入數(shù)據(jù)庫(kù)名稱】輸入框右側(cè)的輸入框右側(cè)的 按鈕,在彈出的【連接按鈕,在彈出的【連接 Access Ac
31、cess 數(shù)據(jù)庫(kù)】數(shù)據(jù)庫(kù)】對(duì)話框中選擇數(shù)據(jù)庫(kù),單擊【打開(kāi)】按鈕后返回【連接】選對(duì)話框中選擇數(shù)據(jù)庫(kù),單擊【打開(kāi)】按鈕后返回【連接】選項(xiàng)卡,單擊【測(cè)試連接】按鈕,成功后單擊【確定】,完成項(xiàng)卡,單擊【測(cè)試連接】按鈕,成功后單擊【確定】,完成連接數(shù)據(jù)庫(kù)的設(shè)置,返回【屬性頁(yè)】對(duì)話框。連接數(shù)據(jù)庫(kù)的設(shè)置,返回【屬性頁(yè)】對(duì)話框。單擊【屬性頁(yè)】對(duì)話框【記錄源】選項(xiàng)卡單擊【屬性頁(yè)】對(duì)話框【記錄源】選項(xiàng)卡,顯示如顯示如圖圖14.2314.23所示的界面所示的界面,在【記錄源】選項(xiàng)卡中設(shè)【命令類型】為在【記錄源】選項(xiàng)卡中設(shè)【命令類型】為“2-2-adCmdTableadCmdTable”,”,然后在【表或存儲(chǔ)過(guò)程名稱
32、】下拉列表然后在【表或存儲(chǔ)過(guò)程名稱】下拉列表中選擇數(shù)據(jù)表。也可以設(shè)【命令類型】為中選擇數(shù)據(jù)表。也可以設(shè)【命令類型】為“1-1-adCmdTextadCmdText”或或“8-8-adCmdUnknownadCmdUnknown”,”,然后在【命令文本然后在【命令文本(SQL)SQL)】文本框中文本框中輸入輸入SQLSQL語(yǔ)句語(yǔ)句(如如圖圖14.2414.24所示所示)。最后單擊【確定】按鈕完成。最后單擊【確定】按鈕完成設(shè)置。設(shè)置。14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(7 7)圖圖14.23 14.23 用數(shù)據(jù)表作記錄源用數(shù)據(jù)表作記錄源返回14.3.1 14.3.1 ADO
33、ADO數(shù)據(jù)控件(數(shù)據(jù)控件(8 8)圖圖14.24 14.24 用用SQLSQL語(yǔ)句作記錄源語(yǔ)句作記錄源返回14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(9 9)上述操作實(shí)際上是設(shè)置了上述操作實(shí)際上是設(shè)置了ADOADO數(shù)據(jù)控件的兩個(gè)重?cái)?shù)據(jù)控件的兩個(gè)重要屬性:要屬性:ConnectionStringConnectionString(連接字符串)屬性用于建立連接字符串)屬性用于建立與數(shù)據(jù)庫(kù)的連接。與數(shù)據(jù)庫(kù)的連接。RecordSourceRecordSource(記錄源)屬性用于指定記錄源。記錄源)屬性用于指定記錄源。除了使用屬性頁(yè)之外,也可以通過(guò)屬性窗口或程除了使用屬性頁(yè)之外,也可以通
34、過(guò)屬性窗口或程序代碼設(shè)置這兩個(gè)屬性。序代碼設(shè)置這兩個(gè)屬性。在設(shè)置在設(shè)置ADOADO數(shù)據(jù)控件與數(shù)據(jù)庫(kù)的連接時(shí),有一點(diǎn)數(shù)據(jù)控件與數(shù)據(jù)庫(kù)的連接時(shí),有一點(diǎn)要提請(qǐng)讀者注意要提請(qǐng)讀者注意:14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(1010)如圖如圖14.2214.22所示所示,在【數(shù)據(jù)鏈接屬性】窗口的【連接】,在【數(shù)據(jù)鏈接屬性】窗口的【連接】選項(xiàng)卡中指定數(shù)據(jù)庫(kù)時(shí)采用的是絕對(duì)路徑。為了保證數(shù)據(jù)庫(kù)選項(xiàng)卡中指定數(shù)據(jù)庫(kù)時(shí)采用的是絕對(duì)路徑。為了保證數(shù)據(jù)庫(kù)應(yīng)用程序移植到其它計(jì)算機(jī)上仍可正常使用,應(yīng)當(dāng)采用相對(duì)應(yīng)用程序移植到其它計(jì)算機(jī)上仍可正常使用,應(yīng)當(dāng)采用相對(duì)路徑,即在測(cè)試連接成功后刪除數(shù)據(jù)庫(kù)名稱前面
35、的所有路徑路徑,即在測(cè)試連接成功后刪除數(shù)據(jù)庫(kù)名稱前面的所有路徑(圖圖14.2214.22輸入框中的反相顯示部分輸入框中的反相顯示部分),僅保留數(shù)據(jù)庫(kù)文件名。,僅保留數(shù)據(jù)庫(kù)文件名。將數(shù)據(jù)庫(kù)文件與工程文件存放在同一文件夾下,在工程啟動(dòng)將數(shù)據(jù)庫(kù)文件與工程文件存放在同一文件夾下,在工程啟動(dòng)窗體的窗體的InitializeInitialize事件過(guò)程中進(jìn)行路徑初始化處理:事件過(guò)程中進(jìn)行路徑初始化處理:Private Sub Form_Initialize()ChDrive App.Path 設(shè)當(dāng)前驅(qū)動(dòng)器為工程所在驅(qū)動(dòng)器設(shè)當(dāng)前驅(qū)動(dòng)器為工程所在驅(qū)動(dòng)器 ChDir App.Path 設(shè)當(dāng)前目錄為工程所在目錄設(shè)
36、當(dāng)前目錄為工程所在目錄End Sub14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(1111)3.3.用代碼設(shè)置或改變記錄源用代碼設(shè)置或改變記錄源 ADO ADO數(shù)據(jù)控件一旦建立了與數(shù)據(jù)庫(kù)的連接,就可以通過(guò)設(shè)數(shù)據(jù)控件一旦建立了與數(shù)據(jù)庫(kù)的連接,就可以通過(guò)設(shè)置或改變其置或改變其RecordSourceRecordSource(記錄源)屬性訪問(wèn)數(shù)據(jù)庫(kù)中的任記錄源)屬性訪問(wèn)數(shù)據(jù)庫(kù)中的任何表,亦可訪問(wèn)由一個(gè)或多個(gè)表中的部分或全部數(shù)據(jù)構(gòu)成的何表,亦可訪問(wèn)由一個(gè)或多個(gè)表中的部分或全部數(shù)據(jù)構(gòu)成的記錄集。在實(shí)際應(yīng)用中,常常在程序運(yùn)行時(shí)用代碼設(shè)置記錄集。在實(shí)際應(yīng)用中,常常在程序運(yùn)行時(shí)用代碼設(shè)置Reco
37、rdSourceRecordSource屬性及其相關(guān)屬性(如屬性及其相關(guān)屬性(如CommandTypeCommandType),),從而從而使使ADOADO數(shù)據(jù)控件具有更大的靈活性。例如:數(shù)據(jù)控件具有更大的靈活性。例如:用數(shù)據(jù)表名稱作為記錄源:用數(shù)據(jù)表名稱作為記錄源:Adodc1.CommandType=adCmdTable 設(shè)置命令類型為數(shù)據(jù)表設(shè)置命令類型為數(shù)據(jù)表Adodc1.RecordSource=基本信息基本信息Adodc1.Refresh14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(1212)用用SQLSQL語(yǔ)句生成的記錄集作為記錄源:語(yǔ)句生成的記錄集作為記錄源:Ado
38、dc1.CommandType=adCmdText 設(shè)置命令類型為設(shè)置命令類型為SQL語(yǔ)句語(yǔ)句Adodc1.RecordSource=SELECT*FROM 基本信息基本信息Adodc1.Refresh 上述兩段代碼的效果相同。有關(guān)上述兩段代碼的效果相同。有關(guān)SQLSQL語(yǔ)言的應(yīng)用語(yǔ)言的應(yīng)用將在將在14.514.5節(jié)介紹。節(jié)介紹。注意:設(shè)置記錄源后,必須調(diào)用注意:設(shè)置記錄源后,必須調(diào)用ADOADO數(shù)據(jù)控件的數(shù)據(jù)控件的RefreshRefresh方法刷新對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。方法刷新對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。返回首頁(yè)返回本節(jié)14.3.2 14.3.2 數(shù)據(jù)綁定控件(數(shù)據(jù)綁定控件(1 1)ADO ADO數(shù)據(jù)控件本
39、身不能顯示數(shù)據(jù),需通過(guò)綁定具數(shù)據(jù)控件本身不能顯示數(shù)據(jù),需通過(guò)綁定具有顯示功能的其他控件顯示數(shù)據(jù),這些控件稱為數(shù)有顯示功能的其他控件顯示數(shù)據(jù),這些控件稱為數(shù)據(jù)綁定控件或數(shù)據(jù)識(shí)別據(jù)綁定控件或數(shù)據(jù)識(shí)別(感知感知)控件,如文本框、控件,如文本框、DataGridDataGrid、標(biāo)簽、圖像標(biāo)簽、圖像(片片)框、列表框、組合框、框、列表框、組合框、復(fù)選框等。其中最常用的是復(fù)選框等。其中最常用的是DataGridDataGrid和和文本框文本框。1.1.數(shù)據(jù)綁定控件的相關(guān)屬性數(shù)據(jù)綁定控件的相關(guān)屬性 DataSourceDataSource(數(shù)據(jù)源)屬性:指定(綁定到)數(shù)據(jù)源)屬性:指定(綁定到)ADOAD
40、O數(shù)據(jù)控件。數(shù)據(jù)控件。DataFieldDataField(數(shù)據(jù)字段)屬性:綁定到特定字段。數(shù)據(jù)字段)屬性:綁定到特定字段。綁定后只要移動(dòng)指針綁定后只要移動(dòng)指針,自動(dòng)將修改內(nèi)容寫(xiě)入數(shù)據(jù)庫(kù)。自動(dòng)將修改內(nèi)容寫(xiě)入數(shù)據(jù)庫(kù)。14.3.2 14.3.2 數(shù)據(jù)綁定控件(數(shù)據(jù)綁定控件(2 2)2.2.在屬性窗口設(shè)置綁定控件屬性在屬性窗口設(shè)置綁定控件屬性 在屬性窗口將數(shù)據(jù)綁定控件的在屬性窗口將數(shù)據(jù)綁定控件的DataSourceDataSource屬性設(shè)屬性設(shè)為為ADOADO數(shù)據(jù)控件(如數(shù)據(jù)控件(如Adodc1Adodc1)。)。如果是單字段顯示如果是單字段顯示控件(如文本框等),還需將控件的控件(如文本框等),
41、還需將控件的DataFieldDataField屬屬性設(shè)置為特定字段。性設(shè)置為特定字段。DataGridDataGrid控件屬于多字段顯示控件屬于多字段顯示控件,沒(méi)有控件,沒(méi)有DataFieldDataField屬性。屬性?!纠纠?4.114.1】用】用ADOADO數(shù)據(jù)控件和數(shù)據(jù)控件和DataGridDataGrid控件創(chuàng)建一控件創(chuàng)建一個(gè)簡(jiǎn)單的數(shù)據(jù)訪問(wèn)窗體,顯示個(gè)簡(jiǎn)單的數(shù)據(jù)訪問(wèn)窗體,顯示14.1.314.1.3節(jié)創(chuàng)建的節(jié)創(chuàng)建的Student2K.mdbStudent2K.mdb數(shù)據(jù)庫(kù)中數(shù)據(jù)庫(kù)中“基本信息基本信息”表的內(nèi)容。表的內(nèi)容。14.3.2 14.3.2 數(shù)據(jù)綁定控件(數(shù)據(jù)綁定控件(3
42、3)右擊工具箱,在彈出菜單中選擇【部件】命令,右擊工具箱,在彈出菜單中選擇【部件】命令,在 對(duì) 話 框【控 件】選 項(xiàng) 卡 的 列 表 中 選 中在 對(duì) 話 框【控 件】選 項(xiàng) 卡 的 列 表 中 選 中“Microsoft ADO Data Control 6.0Microsoft ADO Data Control 6.0”和和“Microsoft DataGrid 6.0Microsoft DataGrid 6.0”,單擊【確定】。選單擊【確定】。選擇工具箱中新增加的擇工具箱中新增加的ADOADO數(shù)據(jù)控件和數(shù)據(jù)控件和DataGridDataGrid控件控件 ,將其添加到窗體上,默認(rèn)名稱分別
43、為將其添加到窗體上,默認(rèn)名稱分別為Adodc1Adodc1和和DataGrid1DataGrid1。按按14.3.114.3.1小節(jié)所述步驟建立小節(jié)所述步驟建立Adodc1Adodc1與與Student2K.mdbStudent2K.mdb數(shù)據(jù)庫(kù)的連接,并設(shè)數(shù)據(jù)庫(kù)的連接,并設(shè)Adodc1Adodc1的記錄的記錄源為源為“基本信息基本信息”表。將表。將DataGrid1DataGrid1控件的控件的DataSourceDataSource屬性設(shè)為屬性設(shè)為Adodc1Adodc1。程序運(yùn)行效果如圖程序運(yùn)行效果如圖14.2514.25所示。所示。14.3.2 14.3.2 數(shù)據(jù)綁定控件(數(shù)據(jù)綁定控件
44、(4 4)圖圖14.25 14.25 使用使用DataGridDataGrid控件控件14.3.2 14.3.2 數(shù)據(jù)綁定控件(數(shù)據(jù)綁定控件(5 5)3.3.用代碼設(shè)置綁定控件屬性用代碼設(shè)置綁定控件屬性 程序運(yùn)行時(shí)可以動(dòng)態(tài)地設(shè)置數(shù)據(jù)綁定控件的屬性。程序運(yùn)行時(shí)可以動(dòng)態(tài)地設(shè)置數(shù)據(jù)綁定控件的屬性。例如:例如:Set Text1.DataSource=Adodc1Text1.DataField=姓名姓名Set DataGrid1.DataSource=Adodc1 說(shuō)明:說(shuō)明:DataSourceDataSource是對(duì)象類型的屬性,必須用是對(duì)象類型的屬性,必須用SetSet語(yǔ)句為其賦值。語(yǔ)句為其賦值
45、。14.3.2 14.3.2 數(shù)據(jù)綁定控件(數(shù)據(jù)綁定控件(6 6)4.4.不用綁定方法如何顯示和處理數(shù)據(jù)不用綁定方法如何顯示和處理數(shù)據(jù) 不使用綁定的方法處理數(shù)據(jù)是指不對(duì)數(shù)據(jù)顯示控不使用綁定的方法處理數(shù)據(jù)是指不對(duì)數(shù)據(jù)顯示控件的件的DataSourceDataSource和和DataFieldDataField屬性進(jìn)行設(shè)置,而是屬性進(jìn)行設(shè)置,而是通過(guò)代碼將當(dāng)前記錄某個(gè)字段的值顯示在控件(如通過(guò)代碼將當(dāng)前記錄某個(gè)字段的值顯示在控件(如文本框)中。這種方法比較靈活,缺點(diǎn)是代碼編寫(xiě)文本框)中。這種方法比較靈活,缺點(diǎn)是代碼編寫(xiě)量較大,其中涉及到記錄集對(duì)象的操作。量較大,其中涉及到記錄集對(duì)象的操作。(1 1
46、)字段內(nèi)容的顯示)字段內(nèi)容的顯示控件屬性控件屬性=記錄集記錄集(“字段字段”)例如:例如:Text1.Text=Adodc1.Recordset(學(xué)號(hào)學(xué)號(hào))Text2.Text=Adodc1.Recordset(姓名姓名)14.3.2 14.3.2 數(shù)據(jù)綁定控件(數(shù)據(jù)綁定控件(7 7)每當(dāng)記錄指針移動(dòng)時(shí)均需對(duì)控件屬性重新賦值。若需要顯每當(dāng)記錄指針移動(dòng)時(shí)均需對(duì)控件屬性重新賦值。若需要顯示的字段較多,可以編制一個(gè)自定義過(guò)程用于記錄指針移動(dòng)示的字段較多,可以編制一個(gè)自定義過(guò)程用于記錄指針移動(dòng)時(shí)顯示各字段內(nèi)容。時(shí)顯示各字段內(nèi)容。(2 2)為字段賦值)為字段賦值記錄集記錄集(“字段字段”)=)=控件屬性
47、控件屬性例如:例如:Adodc1.Recordset(學(xué)號(hào)學(xué)號(hào))=Text1.TextAdodc1.Recordset(姓名姓名)=Text2.TextAdodc1.Recordset.Update 說(shuō)明:為字段賦值后,應(yīng)調(diào)用記錄集的說(shuō)明:為字段賦值后,應(yīng)調(diào)用記錄集的UpdateUpdate方法更新數(shù)方法更新數(shù)據(jù)庫(kù)。據(jù)庫(kù)。返回首頁(yè)返回本節(jié)14.3.3 14.3.3 使用數(shù)據(jù)窗體向?qū)Вㄊ褂脭?shù)據(jù)窗體向?qū)В? 1)使用使用“數(shù)據(jù)窗體向?qū)?shù)據(jù)窗體向?qū)А笨梢钥焖賱?chuàng)建一個(gè)數(shù)據(jù)訪問(wèn)窗體??梢钥焖賱?chuàng)建一個(gè)數(shù)據(jù)訪問(wèn)窗體。執(zhí)行【工程】菜單中【添加窗體】命令執(zhí)行【工程】菜單中【添加窗體】命令,打開(kāi)如打開(kāi)如圖圖14.
48、2614.26所所示的對(duì)話框,在【新建】選項(xiàng)卡中選擇【示的對(duì)話框,在【新建】選項(xiàng)卡中選擇【VBVB數(shù)據(jù)窗體向?qū)А浚瑪?shù)據(jù)窗體向?qū)А?,單擊【打開(kāi)】按鈕后將會(huì)出現(xiàn)向?qū)У牡谝粋€(gè)對(duì)話框。單擊【打開(kāi)】按鈕后將會(huì)出現(xiàn)向?qū)У牡谝粋€(gè)對(duì)話框。如果是創(chuàng)建單表訪問(wèn)窗體,數(shù)據(jù)窗體向?qū)⒂衅邆€(gè)步驟:如果是創(chuàng)建單表訪問(wèn)窗體,數(shù)據(jù)窗體向?qū)⒂衅邆€(gè)步驟:【介紹】、【數(shù)據(jù)庫(kù)類型】、【數(shù)據(jù)庫(kù)】、【窗體【介紹】、【數(shù)據(jù)庫(kù)類型】、【數(shù)據(jù)庫(kù)】、【窗體(FormForm)】、【)】、【記錄源】、【控件選擇】和【完成】,可根記錄源】、【控件選擇】和【完成】,可根據(jù)向?qū)崾静僮?。?jù)向?qū)崾静僮鳌D圖14.2714.27是利用數(shù)據(jù)窗體向?qū)?chuàng)建的
49、數(shù)據(jù)窗體,數(shù)據(jù)庫(kù)為是利用數(shù)據(jù)窗體向?qū)?chuàng)建的數(shù)據(jù)窗體,數(shù)據(jù)庫(kù)為Student2K.mdbStudent2K.mdb,記錄源為記錄源為“基本信息基本信息”表中的所有字段。表中的所有字段。向?qū)е械钠渌襟E均采用默認(rèn)設(shè)置。向?qū)е械钠渌襟E均采用默認(rèn)設(shè)置。14.3.3 14.3.3 使用數(shù)據(jù)窗體向?qū)Вㄊ褂脭?shù)據(jù)窗體向?qū)В? 2)圖圖14.26 14.26 啟動(dòng)數(shù)據(jù)窗體向?qū)?dòng)數(shù)據(jù)窗體向?qū)Х祷?4.3.3 14.3.3 使用數(shù)據(jù)窗體向?qū)Вㄊ褂脭?shù)據(jù)窗體向?qū)В? 3)圖圖14.27 14.27 用數(shù)據(jù)窗體向?qū)?chuàng)建的數(shù)據(jù)窗體用數(shù)據(jù)窗體向?qū)?chuàng)建的數(shù)據(jù)窗體返回返回首頁(yè)返回本節(jié)14.4 14.4 初識(shí)記錄集對(duì)象(初識(shí)記
50、錄集對(duì)象(1 1)無(wú)論是使用無(wú)論是使用ADOADO數(shù)據(jù)控件數(shù)據(jù)控件,還是使用還是使用ADOADO對(duì)象編程對(duì)象編程模型,都會(huì)涉及到記錄集對(duì)象。因此模型,都會(huì)涉及到記錄集對(duì)象。因此,在進(jìn)一步討在進(jìn)一步討論數(shù)據(jù)庫(kù)操作之前論數(shù)據(jù)庫(kù)操作之前,有必要初步了解一下記錄集對(duì)有必要初步了解一下記錄集對(duì)象。象。請(qǐng)看下面來(lái)自學(xué)生數(shù)據(jù)庫(kù)的幾個(gè)集合:請(qǐng)看下面來(lái)自學(xué)生數(shù)據(jù)庫(kù)的幾個(gè)集合:取取“基本信息基本信息”表中所有學(xué)生的記錄構(gòu)成一個(gè)集表中所有學(xué)生的記錄構(gòu)成一個(gè)集合;合;取取“基本信息基本信息”表中所有男生的記錄構(gòu)成一個(gè)集表中所有男生的記錄構(gòu)成一個(gè)集合;合;取取“基本信息基本信息”表中張三的學(xué)號(hào)和姓名,根據(jù)其表中張三的學(xué)
51、號(hào)和姓名,根據(jù)其學(xué)號(hào)取學(xué)號(hào)取“成績(jī)成績(jī)”表(含學(xué)號(hào)、課號(hào)和分?jǐn)?shù)三個(gè)字段)表(含學(xué)號(hào)、課號(hào)和分?jǐn)?shù)三個(gè)字段)中該學(xué)生的各科成績(jī)構(gòu)成一個(gè)集合。中該學(xué)生的各科成績(jī)構(gòu)成一個(gè)集合。14.4 14.4 初識(shí)記錄集對(duì)象(初識(shí)記錄集對(duì)象(2 2)以上幾個(gè)集合都是以上幾個(gè)集合都是“記錄的集合記錄的集合”,由此得出以下概念:,由此得出以下概念:將數(shù)據(jù)庫(kù)中一個(gè)或多個(gè)表中的部分或全部數(shù)據(jù)構(gòu)成一個(gè)將數(shù)據(jù)庫(kù)中一個(gè)或多個(gè)表中的部分或全部數(shù)據(jù)構(gòu)成一個(gè)“記 錄 的 集 合記 錄 的 集 合”,這 個(gè) 集 合 就 稱 為,這 個(gè) 集 合 就 稱 為“記 錄 集記 錄 集”(RecordsetRecordset)。)。記錄集由行(記
52、錄)和列(字段)構(gòu)成。記錄集由行(記錄)和列(字段)構(gòu)成。若將記錄集看作一個(gè)對(duì)象,這個(gè)對(duì)象就是記錄集對(duì)象。記若將記錄集看作一個(gè)對(duì)象,這個(gè)對(duì)象就是記錄集對(duì)象。記錄集對(duì)象具有特定的屬性、方法和事件。錄集對(duì)象具有特定的屬性、方法和事件。ADO ADO數(shù)據(jù)控件的數(shù)據(jù)控件的RecordsetRecordset屬性代表屬于本控件的記錄集屬性代表屬于本控件的記錄集對(duì)象。對(duì)象。記錄集對(duì)象是記錄集對(duì)象是ADOADO中的一個(gè)功能強(qiáng)大的對(duì)象,對(duì)數(shù)據(jù)庫(kù)的中的一個(gè)功能強(qiáng)大的對(duì)象,對(duì)數(shù)據(jù)庫(kù)的絕大部分操作,如記錄指針的移動(dòng),記錄的查找、添加、絕大部分操作,如記錄指針的移動(dòng),記錄的查找、添加、刪除和修改等,都是針對(duì)記錄集對(duì)象
53、進(jìn)行的。刪除和修改等,都是針對(duì)記錄集對(duì)象進(jìn)行的。返回首頁(yè)14.5 14.5 用用SQLSQL語(yǔ)句生成記錄集語(yǔ)句生成記錄集w 14.5.1 14.5.1 最簡(jiǎn)單的最簡(jiǎn)單的SQLSQL語(yǔ)句語(yǔ)句 w 14.5.2 14.5.2 限定記錄集篩選條件限定記錄集篩選條件 w 14.5.3 14.5.3 在在VBVB程序中如何使用程序中如何使用SQLSQL語(yǔ)句語(yǔ)句 w 14.5.4 14.5.4 記錄排序記錄排序 w 14.5.5 14.5.5 記錄分組記錄分組 w 14.5.6 14.5.6 過(guò)濾重復(fù)記錄過(guò)濾重復(fù)記錄 返回首頁(yè)14.5.1 14.5.1 最簡(jiǎn)單的最簡(jiǎn)單的SQLSQL語(yǔ)句語(yǔ)句 (1 1)1.
54、1.最簡(jiǎn)單的查詢語(yǔ)句最簡(jiǎn)單的查詢語(yǔ)句 下面的下面的SQLSQL語(yǔ)句是最簡(jiǎn)單的查詢形式,生成的記語(yǔ)句是最簡(jiǎn)單的查詢形式,生成的記錄集包含整個(gè)表的全部數(shù)據(jù):錄集包含整個(gè)表的全部數(shù)據(jù):SELECT*FROM 基本信息基本信息 其中其中“*”指表中所有字段指表中所有字段(列列)。FROMFROM子句用于子句用于指定數(shù)據(jù)表。指定數(shù)據(jù)表。2.2.SELECTSELECT語(yǔ)句的基本語(yǔ)法語(yǔ)句的基本語(yǔ)法 在實(shí)際應(yīng)用中,往往需要從一個(gè)或多個(gè)表中選在實(shí)際應(yīng)用中,往往需要從一個(gè)或多個(gè)表中選擇符合特定條件的記錄構(gòu)成記錄集,因此應(yīng)對(duì)擇符合特定條件的記錄構(gòu)成記錄集,因此應(yīng)對(duì)SELECTSELECT語(yǔ)句的語(yǔ)法有一定的了解。以
55、下是語(yǔ)句的語(yǔ)法有一定的了解。以下是SELECTSELECT語(yǔ)語(yǔ)句的基本語(yǔ)法。句的基本語(yǔ)法。14.5.1 14.5.1 最簡(jiǎn)單的最簡(jiǎn)單的SQLSQL語(yǔ)句語(yǔ)句 (2 2)SELECT SELECT*|字段列表字段列表 FROM FROM 表名表名 WHERE WHERE 查詢條件查詢條件 GROUP BY GROUP BY 分組字段分組字段 HAVING HAVING 分組條件分組條件 ORDER BY ORDER BY 排排序字段序字段 ASC|DESCASC|DESC說(shuō)明說(shuō)明:*|字段列表字段列表:“*”表示所有字段;表示所有字段;“字段列字段列表表”指定字段,多個(gè)字段間用逗號(hào)分隔,來(lái)自不同指
56、定字段,多個(gè)字段間用逗號(hào)分隔,來(lái)自不同表的同名字段前須加表的名稱和圓點(diǎn)表的同名字段前須加表的名稱和圓點(diǎn)。FROM FROM子句:指定表。若指定多個(gè)表子句:指定表。若指定多個(gè)表,用逗號(hào)分隔。用逗號(hào)分隔。WHERE WHERE子句:指定選擇記錄的條件。子句:指定選擇記錄的條件。14.5.1 14.5.1 最簡(jiǎn)單的最簡(jiǎn)單的SQLSQL語(yǔ)句語(yǔ)句 (3 3)GROUP BYGROUP BY及及HAVINGHAVING子句:分組過(guò)濾,將分組字段子句:分組過(guò)濾,將分組字段中同值記錄合并為一條記錄。中同值記錄合并為一條記錄。ORDER BYORDER BY:排序。排序。ASCASC為升序?yàn)樯?默認(rèn)默認(rèn));D
57、ESCDESC為降為降序。序?!纠纠?4.214.2】選擇】選擇“基本信息基本信息”表中的表中的“學(xué)號(hào)學(xué)號(hào)”和和“姓名姓名”字段,字段,“成績(jī)成績(jī)”表中的表中的“課號(hào)課號(hào)”和和“分?jǐn)?shù)分?jǐn)?shù)”字段構(gòu)成記錄集。字段構(gòu)成記錄集。SELECT 基本信息基本信息.學(xué)號(hào)學(xué)號(hào),姓名姓名,課號(hào)課號(hào),分?jǐn)?shù)分?jǐn)?shù) FROM 基本信息基本信息,成績(jī)成績(jī) WHERE 基本信息基本信息.學(xué)號(hào)學(xué)號(hào)=成成績(jī)績(jī).學(xué)號(hào)學(xué)號(hào) 返回首頁(yè)返回本節(jié)14.5.2 14.5.2 限定記錄集篩選條件(限定記錄集篩選條件(1 1)在在SELECTSELECT語(yǔ)句的各子句中,語(yǔ)句的各子句中,WHEREWHERE子句使用頻率子句使用頻率最高。該子句
58、指明查詢的條件。在最高。該子句指明查詢的條件。在WHEREWHERE子句中可子句中可使用各種關(guān)系使用各種關(guān)系(比較比較)運(yùn)算符表示篩選記錄的條件。運(yùn)算符表示篩選記錄的條件。FROM 選表選表 表 1 表 2 表 i SELECT 選字段選字段 字段 1 字段 2 字段 j 生成生成 記錄集記錄集 記錄 1 記錄 2 記錄 k WHERE 限定條件限定條件 圖14.28 用SQL語(yǔ)句生成記錄集 14.5.2 14.5.2 限定記錄集篩選條件(限定記錄集篩選條件(2 2)【例【例14.314.3】選擇】選擇“基本信息基本信息”表中所有男生構(gòu)成表中所有男生構(gòu)成記錄集:記錄集:SELECT*FROM
59、基本信息基本信息 WHERE 性別性別=男男 【例【例14.414.4】取】取“基本信息基本信息”表中張三的學(xué)號(hào)和姓表中張三的學(xué)號(hào)和姓名,根據(jù)其學(xué)號(hào)取名,根據(jù)其學(xué)號(hào)取“成績(jī)成績(jī)”表中該學(xué)生的各科成績(jī)表中該學(xué)生的各科成績(jī)構(gòu)成記錄集:構(gòu)成記錄集:SELECT 基本信息基本信息.學(xué)號(hào)學(xué)號(hào),姓名姓名,課號(hào)課號(hào),分?jǐn)?shù)分?jǐn)?shù) FROM 基本信基本信息息,成績(jī)成績(jī) WHERE 基本信息基本信息.學(xué)號(hào)學(xué)號(hào)=成績(jī)成績(jī).學(xué)號(hào)學(xué)號(hào) AND 姓名姓名=張三張三 在在WHEREWHERE子句中使用子句中使用LikeLike運(yùn)算符可實(shí)現(xiàn)模糊查詢。運(yùn)算符可實(shí)現(xiàn)模糊查詢。SQLSQL語(yǔ)句中語(yǔ)句中LikeLike運(yùn)算符的通配符是
60、運(yùn)算符的通配符是“%”“%”,可代表任,可代表任何字符,字符數(shù)不限。何字符,字符數(shù)不限。14.5.2 14.5.2 限定記錄集篩選條件(限定記錄集篩選條件(3 3)【例【例14.514.5】用】用LikeLike運(yùn)算符進(jìn)行模糊查詢。運(yùn)算符進(jìn)行模糊查詢。查詢所有姓查詢所有姓“張張”的學(xué)生:的學(xué)生:SELECT*FROM 基本信息基本信息 WHERE 姓名姓名 Like 張張%查詢所有姓名中含有查詢所有姓名中含有“小小”字的學(xué)生:字的學(xué)生:SELECT*FROM 基本信息基本信息 WHERE 姓名姓名 Like%小小%查詢姓名最后一個(gè)字為查詢姓名最后一個(gè)字為“剛剛”的所有學(xué)生:的所有學(xué)生:SELE
61、CT*FROM 基本信息基本信息 WHERE 姓名姓名 like%剛剛返回首頁(yè)返回本節(jié)14.5.3 14.5.3 在在VBVB程序中如何使用程序中如何使用SQLSQL語(yǔ)句語(yǔ)句(1)(1)在程序代碼中,在程序代碼中,SQLSQL語(yǔ)句必須以字符串形式提供。例如:語(yǔ)句必須以字符串形式提供。例如:Adodc1.RecordSource=SELECT*FROM 基本信息基本信息 如果如果SQLSQL語(yǔ)句中含有字符串常量,必須將字符串常量放在語(yǔ)句中含有字符串常量,必須將字符串常量放在一對(duì)單引號(hào)中。一對(duì)單引號(hào)中?!纠纠?4.614.6】在】在SQLSQL語(yǔ)句中引用字符串常量。語(yǔ)句中引用字符串常量。Dim
62、strSQL As StringstrSQL=SELECT*FROM 基本信息基本信息 WHERE 性別性別=男男Adodc1.RecordSource=strSQL 如果如果SQLSQL語(yǔ)句中引用了語(yǔ)句中引用了StringString型變量或其他控件的字符串型變量或其他控件的字符串類型的屬性(如文本框的類型的屬性(如文本框的TextText屬性),應(yīng)當(dāng)采用下面的引屬性),應(yīng)當(dāng)采用下面的引用形式(注意單引號(hào)的位置):用形式(注意單引號(hào)的位置):.&.&字符串變量或控件屬性字符串變量或控件屬性&.&.14.5.3 14.5.3 在在VBVB程序中如何使用程序中如何使用SQLSQL語(yǔ)句語(yǔ)句(2)(
63、2)【例【例14.714.7】在】在SQLSQL語(yǔ)句中引用字符串變量。語(yǔ)句中引用字符串變量。Dim strSQL As String,strSex As StringstrSex=男男strSQL=SELECT*FROM 基本信息基本信息 WHERE 性別性別=_&strSex&Adodc1.RecordSource=strSQL【例例14.814.8】在】在SQLSQL語(yǔ)句中引用控件的字符串類型的屬性。語(yǔ)句中引用控件的字符串類型的屬性。Dim strSQL As StringText1.Text=張張strSQL=SELECT*FROM 基本信息基本信息 WHERE 姓名姓名 Like _&
64、Text1.Text&%Adodc1.RecordSource=strSQL14.5.3 14.5.3 在在VBVB程序中如何使用程序中如何使用SQLSQL語(yǔ)句語(yǔ)句(3)(3)如果如果SQLSQL語(yǔ)句中引用了非字符串類型的變量或控語(yǔ)句中引用了非字符串類型的變量或控件屬性,不使用單引號(hào)。件屬性,不使用單引號(hào)?!纠纠?4.914.9】在】在SQLSQL語(yǔ)句中引用非字符串類型的變量。語(yǔ)句中引用非字符串類型的變量。Dim strSQL As String,intGrade As IntegerintGrade=60strSQL=SELECT*FROM 成績(jī)成績(jī) WHERE 分?jǐn)?shù)分?jǐn)?shù)=_&intGra
65、de&AND 課程課程=英語(yǔ)英語(yǔ)Adodc1.RecordSource=strSQL返回首頁(yè)返回本節(jié)14.5.4 14.5.4 記錄排序記錄排序 用用ORDER BYORDER BY子句(子句(ASCASC為升序,為升序,DESCDESC為降序)為降序)對(duì)記錄排序。例如:對(duì)記錄排序。例如:SELECT*FROM 基本信息基本信息 ORDER BY 學(xué)號(hào)學(xué)號(hào) ASCSELECT*FROM 基本信息基本信息 ORDER BY 姓名姓名 DESC返回首頁(yè)返回本節(jié)14.5.5 14.5.5 記錄分組記錄分組 用用GROUP BYGROUP BY子句將指定字段中數(shù)值相等的多條記錄子句將指定字段中數(shù)值相等
66、的多條記錄合并為一條記錄。可用合并為一條記錄??捎肏AVINGHAVING子句附加條件。子句附加條件?!纠纠?4.1014.10】以】以“班級(jí)班級(jí)”作為分組字段,查詢各班作為分組字段,查詢各班女生人數(shù)。女生人數(shù)。SELECT 班級(jí)班級(jí),Count(*)AS 女生女生 FROM 基本基本情況情況 GROUP BY 班級(jí)班級(jí),性別性別 HAVING 性別性別=女女說(shuō)明:上面的語(yǔ)句中說(shuō)明:上面的語(yǔ)句中Count(Count(*)表示統(tǒng)計(jì)記錄總數(shù),表示統(tǒng)計(jì)記錄總數(shù),ASAS子句表示存放統(tǒng)計(jì)結(jié)果的臨時(shí)字段別名。其他子句表示存放統(tǒng)計(jì)結(jié)果的臨時(shí)字段別名。其他SQLSQL函數(shù)還有函數(shù)還有SumSum、AvgAvg、MaxMax和和MinMin等。等。返回首頁(yè)返回本節(jié)14.5.6 14.5.6 過(guò)濾重復(fù)記錄(過(guò)濾重復(fù)記錄(1 1)過(guò)濾重復(fù)記錄是指忽略字段值相同的重復(fù)記錄。過(guò)濾重復(fù)記錄是指忽略字段值相同的重復(fù)記錄。例如,假定學(xué)籍表中含有例如,假定學(xué)籍表中含有400400名學(xué)生的信息,這些名學(xué)生的信息,這些學(xué)生來(lái)自學(xué)生來(lái)自1010個(gè)班級(jí),現(xiàn)在要查詢學(xué)籍表中的個(gè)班級(jí),現(xiàn)在要查詢學(xué)籍表中的“班級(jí)班級(jí)”字段生成
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案