(7)-第7章 數(shù)據(jù)庫概述計算機程序設計_第1頁
(7)-第7章 數(shù)據(jù)庫概述計算機程序設計_第2頁
(7)-第7章 數(shù)據(jù)庫概述計算機程序設計_第3頁
(7)-第7章 數(shù)據(jù)庫概述計算機程序設計_第4頁
(7)-第7章 數(shù)據(jù)庫概述計算機程序設計_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

程序設計教程第7章

數(shù)據(jù)庫應用VisualBasic學習目標數(shù)據(jù)庫的基本概念

數(shù)據(jù)報表的設計方法了解數(shù)據(jù)庫、數(shù)據(jù)庫表的創(chuàng)建、修改與查詢Data控件的常見屬性、方法、事件和使用方法

掌握

ADO對象訪問數(shù)據(jù)庫的基本方法熟悉目錄7.1數(shù)據(jù)庫基本知識使用可視化數(shù)據(jù)管理器創(chuàng)建數(shù)據(jù)庫Data控件的使用ADO對象訪問技術設計報表7.27.37.47.57.1數(shù)據(jù)庫基本知識數(shù)據(jù)庫基本知識數(shù)據(jù)庫的基本概念關系數(shù)據(jù)庫的相關概念VisualBasic的數(shù)據(jù)庫應用數(shù)據(jù)庫基本知識數(shù)據(jù)庫的基本概念關系數(shù)據(jù)庫的相關概念VisualBasic的數(shù)據(jù)庫應用基礎VisualBasic提供了可視化數(shù)據(jù)管理器(VisData)、數(shù)據(jù)控件(DataControl)、ADO(ActiveXDataObjects)數(shù)據(jù)對象和數(shù)據(jù)報表(DataReport)等工具,方便編程人員輕松開發(fā)出各種數(shù)據(jù)庫應用程序。概念DATA、DB、DBMS、DBS應用ADO、OLEDB、Data控件等數(shù)據(jù)庫基本知識7.1.1數(shù)據(jù)庫基本概念數(shù)據(jù)庫技術產(chǎn)生于20世紀60年代中期,是應數(shù)據(jù)管理任務需要而產(chǎn)生的。數(shù)據(jù)管理是利用計算機軟、硬件對數(shù)據(jù)進行有效地收集、存儲、處理和應用的過程。例如,高校的學生信息管理中,常常需要對學生的基本情況(學號、姓名、籍貫、年齡、簡歷等)加以登記、匯總、存檔、分類和檢索,當學生信息有變更時,需要對其檔案進行更新。與數(shù)據(jù)庫密切相關的4個基本概念是:數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫的基本概念關系數(shù)據(jù)庫的相關概念VisualBasic的數(shù)據(jù)庫應用數(shù)據(jù)庫基本知識7.1.1數(shù)據(jù)庫基本概念數(shù)據(jù)是描述事物的符號記錄,可以是數(shù)字,也可以是文字、圖形、圖像、音頻、視頻等。數(shù)據(jù)庫(DataBase,簡稱DB)指的是長期儲存在計算機內(nèi)、有組織、可共享的、大量數(shù)據(jù)的集合。數(shù)據(jù)是按照特定的數(shù)據(jù)模型來組織、存儲在數(shù)據(jù)庫中的。數(shù)據(jù)庫的基本概念關系數(shù)據(jù)庫的相關概念VisualBasic的數(shù)據(jù)庫應用數(shù)據(jù)庫基本知識

7.1.1數(shù)據(jù)庫的基本概念數(shù)據(jù)庫的基本概念關系數(shù)據(jù)庫的相關概念VisualBasic的數(shù)據(jù)庫應用數(shù)據(jù)庫管理系統(tǒng)(DataBaseMenagementSystem,簡稱DBMS)是位于用戶與操作系統(tǒng)之間的一層管理和維護數(shù)據(jù)庫的軟件,屬于計算機系統(tǒng)軟件。目前使用比較多的數(shù)據(jù)庫管理系統(tǒng)有Oracle、Sybase、Informix、MSSQLSERVER等大中型數(shù)據(jù)庫管理系統(tǒng),還有MicrosoftAccess、VisualFoxPro、Mysql等小型數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫系統(tǒng)(DataBaseSystem,簡稱DBS)是指引入了數(shù)據(jù)庫后的計算機系統(tǒng),一般包括數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、應用系統(tǒng)、數(shù)據(jù)庫管理員(DataBaseAdministrator,DBA)以及用戶。數(shù)據(jù)庫系統(tǒng)構(gòu)成如下圖所示。關系數(shù)據(jù)庫的相關概念VisualBasic的數(shù)據(jù)庫應用數(shù)據(jù)庫系統(tǒng)構(gòu)成數(shù)據(jù)庫基本知識7.1.2關系數(shù)據(jù)庫的相關概念關系數(shù)據(jù)庫是以關系模型為基礎的數(shù)據(jù)庫。關系模型是用二維表來表示實體(客觀存在并可以相互區(qū)分的事物稱為實體)以及實體之間聯(lián)系的數(shù)據(jù)模型。關系數(shù)據(jù)庫建立在嚴格的數(shù)學概念基礎上,采用單一的二維表結(jié)構(gòu),來描述數(shù)據(jù)間的聯(lián)系,并提供了結(jié)構(gòu)化查詢語言SQL的標準接口,具有強大的功能,和良好的數(shù)據(jù)獨立性與安全性。數(shù)據(jù)庫的基本概念關系數(shù)據(jù)庫的相關概念VisualBasic的數(shù)據(jù)庫應用數(shù)據(jù)庫基本知識7.1.2關系數(shù)據(jù)庫相關概念(1)關系關系就是二維表(Table),一個關系數(shù)據(jù)庫可以由一張或多張二維表組成,每張表有一個名稱(如“學生表”),即關系名。數(shù)據(jù)庫的基本概念關系數(shù)據(jù)庫的相關概念VisualBasic的數(shù)據(jù)庫應用數(shù)據(jù)庫基本知識7.1.2關系數(shù)據(jù)庫相關概念(2)記錄

每張二維表是由若干行和列組成,其中每一行稱為一條記錄(Record),表中不允許出現(xiàn)重復的記錄,并且記錄不分先后次序。例如,上述學生表中包含10條記錄。數(shù)據(jù)庫的基本概念關系數(shù)據(jù)庫的相關概念VisualBasic的數(shù)據(jù)庫應用數(shù)據(jù)庫的基本知識7.1.2關系數(shù)據(jù)庫相關概念(3)字段

表中的每一列稱為一個字段(Field)。每一列有一個字段名,各字段名互不相同。字段出現(xiàn)的次序也可以是任意的。上述學生表中包含學號、姓名、性別等都是字段。數(shù)據(jù)庫的基本概念關系數(shù)據(jù)庫的相關概念VisualBasic的數(shù)據(jù)庫應用數(shù)據(jù)庫的基本知識7.1.2關系數(shù)據(jù)庫的相關概念(4)主鍵一張表中,如果某個字段(或幾個字段的集合)能夠惟一的確定一條記錄,則稱該字段(或字段集合)為主鍵(或主關鍵字,記做PrimaryKey)。例如,學生表中“學號”字段可以惟一的確定每一條記錄,可以作為學生表的主鍵。數(shù)據(jù)庫的基本概念關系數(shù)據(jù)庫的相關概念VisualBasic的數(shù)據(jù)庫應用數(shù)據(jù)庫的基本知識7.1.2關系數(shù)據(jù)庫的相關概念(5)索引為了提高數(shù)據(jù)的存取效率,需要將數(shù)據(jù)表中某些字段設為索引(Index),通過索引可以快速的找到對應記錄。例如,在學生表中以“姓名”為索引,可以實現(xiàn)按姓名快速檢索數(shù)據(jù)。數(shù)據(jù)庫的基本概念關系數(shù)據(jù)庫的相關概念VisualBasic的數(shù)據(jù)庫應用數(shù)據(jù)庫的基本知識7.1.2

關系數(shù)據(jù)庫的相關概念(6)記錄指針與當前記錄為了便于對記錄進行逐條管理,系統(tǒng)為每個打開的表設置了一個記錄指針,當進行記錄操作時,指針會隨著移動。指針指向的記錄,為當前記錄。數(shù)據(jù)庫的基本概念關系數(shù)據(jù)庫的相關概念VisualBasic的數(shù)據(jù)庫應用表7-1

學生表學號姓名性別年齡班級所在系20127001李旸男2012計本計算機系20127002李娜女1912計本計算機系20127003李敏女1912計本計算機系20127004楊亞男1812信息信息系20127005劉暢男1912信息信息系20127006王立軍男1912信息信息系20127007徐俊男1912信息信息系20127008許暢男1812計本計算機系20127009路遠卿女1912信息信息系20127010樂林男2012計本計算機系記錄字段主鍵記錄指針數(shù)據(jù)庫的基本知識7.1.3VB的數(shù)據(jù)庫應用在VB程序設計中,數(shù)據(jù)庫應用是一個非常重要、實用的內(nèi)容。一個完整的數(shù)據(jù)庫系統(tǒng),除了包括存儲數(shù)據(jù)的數(shù)據(jù)庫外,還包括用于處理數(shù)據(jù)的數(shù)據(jù)庫應用系統(tǒng)。在數(shù)據(jù)庫設計領域中,通常將數(shù)據(jù)庫本身稱為后臺,后臺數(shù)據(jù)庫是一個二維表的集合。而數(shù)據(jù)庫應用系統(tǒng)通常被稱為前臺,它是一個計算機應用程序,通過該程序可以選擇數(shù)據(jù)庫中的數(shù)據(jù)項,并將所選擇的數(shù)據(jù)按照用戶的要求展示出來。數(shù)據(jù)庫的基本概念關系數(shù)據(jù)庫的相關概念VisualBasic的數(shù)據(jù)庫應用7.2使用可視化數(shù)據(jù)管理器創(chuàng)建數(shù)據(jù)庫7.2.1創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫表記錄的編輯記錄查詢VB既可以使用其他數(shù)據(jù)庫管理系統(tǒng)(如MicrosoftAccess、MSSQLServer、Oracle等)已經(jīng)建立的數(shù)據(jù)庫,也可以在VB內(nèi)部直接建立數(shù)據(jù)庫。本章主要介紹如何使用可視化數(shù)據(jù)管理器建立和維護數(shù)據(jù)庫。

可視化數(shù)據(jù)管理器是VB提供的一款非常適用的數(shù)據(jù)庫管理工具,可以用來創(chuàng)建Access或其他類型的數(shù)據(jù)庫,并可以實現(xiàn)數(shù)據(jù)庫的日常管理與維護。VB默認訪問的數(shù)據(jù)庫是Access,本章以Access數(shù)據(jù)庫為后臺,介紹VB的數(shù)據(jù)庫訪問技術。新建數(shù)據(jù)庫VisData窗體創(chuàng)建數(shù)據(jù)庫表記錄的編輯記錄查詢access數(shù)據(jù)庫文件擴展名為.MDB新建數(shù)據(jù)表新建數(shù)據(jù)表時,必須首先定義表的結(jié)構(gòu),包括各個字段的名稱、數(shù)據(jù)類型、長度等。例如,學生表的結(jié)構(gòu)。新建數(shù)據(jù)表步驟詳見課本7.2節(jié)。創(chuàng)建數(shù)據(jù)庫表記錄的編輯記錄查詢字段名字段類型字段長度學號Text8姓名Text10性別Text2年齡Integer

班級Text10所在系Text20新建索引使用索引可提高訪問數(shù)據(jù)庫表中的數(shù)據(jù)的速度,可以根據(jù)需要在表中建立索引。創(chuàng)建數(shù)據(jù)庫表記錄的編輯記錄查詢7.2.2表結(jié)構(gòu)的修改與刪除在數(shù)據(jù)庫窗口中,右鍵點擊數(shù)據(jù)庫表的名稱,在出現(xiàn)的快捷菜單中,選擇“設計”命令,即可重新打開該表的“表結(jié)構(gòu)”對話框,可實現(xiàn)對表結(jié)構(gòu)的修改。從快捷菜單中,選擇“刪除”命令,可以刪除該數(shù)據(jù)庫表。創(chuàng)建數(shù)據(jù)庫表記錄的編輯記錄查詢表記錄的編輯

新建的數(shù)據(jù)表是一張空表,可以向表中添加記錄。對數(shù)據(jù)表記錄的操作主要包括:記錄編輯(添加、修改、刪除等)和記錄查詢。創(chuàng)建數(shù)據(jù)庫表記錄的編輯記錄查詢7.2.3記錄查詢數(shù)據(jù)查詢是數(shù)據(jù)庫的核心操作,查詢是從數(shù)據(jù)庫中查找符合條件的記錄,組成一個新的數(shù)據(jù)集合,這個集合以數(shù)據(jù)表的格式返回查詢結(jié)果,可以作為數(shù)據(jù)庫操作的數(shù)據(jù)源。查詢記錄有兩種方法:使用查詢生成器和使用SQL語句。創(chuàng)建數(shù)據(jù)庫表記錄的編輯記錄查詢查詢生成器創(chuàng)建數(shù)據(jù)庫表記錄的編輯記錄查詢SQL查詢語句創(chuàng)建數(shù)據(jù)庫表記錄的編輯記錄查詢結(jié)構(gòu)化查詢語言(StructuredQueryLanguage,SQL)是關系數(shù)據(jù)庫的標準語言,是一種通用的、功能全面的關系數(shù)據(jù)庫語言。它集數(shù)據(jù)定義功能、數(shù)據(jù)操縱功能、數(shù)據(jù)控制功能和數(shù)據(jù)查詢功能于一體,已成為關系數(shù)據(jù)庫語言的國際標準。SQL查詢語句SQL的數(shù)據(jù)操縱功能主要包含三種命令:插入記錄(Insert)、修改記錄(Update)和刪除記錄(Delete)。(1)插入記錄(Insert)插入記錄語法格式為:InsertInto數(shù)據(jù)表(字段名列表)Values(字段值)

(2)修改記錄(Update)修改記錄語法格式為:Update數(shù)據(jù)表Set字段名=表達式Where條件表達式(3)刪除記錄(Delete)刪除記錄語法格式為:Deletefrom數(shù)據(jù)表Where條件表達式創(chuàng)建數(shù)據(jù)庫表記錄的編輯記錄查詢SQL查詢語句(4)查詢記錄(Select)Select字段名列表

From

表名[Where

查詢條件表達式][GroupBy

分組依據(jù)字段][Having

分組篩選條件][OrderBy

排序字段]創(chuàng)建數(shù)據(jù)庫表記錄的編輯記錄查詢SQL查詢語句【例7-1】從學生表中查詢計算機系全體學生的記錄。

Select*From學生表

Where所在系='計算機系'【例7-2】查詢所有學生“大學語文”課程的平均分。

SelectAvg(成績)From成績表

Where課程名='大學語文'【例7-3】查詢成績表中各門課程的總分和最高分。Select課程名,Sum(成績)as總分,Max(成績)as平均分

From成績表Groupby課程名創(chuàng)建數(shù)據(jù)庫表記錄的編輯記錄查詢SQL查詢語句【例7-4】查詢平均分高于85分的課程名、平均分。Select課程名,avg(成績)平均分From學生表

Groupby課程名

Havingavg(成績)>85【例7-5】查詢年齡在18~20之間的學生的基本信息Select*From學生表

where年齡between18and20【例7-6】查詢學生表中所有學生的學號、姓名、班級、年齡信息,并按年齡字段降序排列顯示查詢內(nèi)容。Select學號,姓名,班級,年齡From學生表Orderby年齡Desc創(chuàng)建數(shù)據(jù)庫表記錄的編輯記錄查詢SQL查詢語句【例7-7】查詢“12計本”班所有學生課程考試成績信息,要求顯示學號、姓名、班級、課程名、成績信息。Select學生表.學號,姓名,班級,課程名,成績

From學生表,成績表where學生表.學號=成績表.學號and班級='12計本'【例7-8】查詢李娜同學“高等數(shù)學”課程的考試成績信息,要求顯示姓名、課程名和成績信息。Select姓名,課程名,成績

From學生表,成績表where學生表.學號=成績表.學號and姓名='李娜'and課程名='高等數(shù)學'創(chuàng)建數(shù)據(jù)庫表記錄的編輯記錄查詢SQL查詢語句【例7-9】查詢所有姓李的同學的基本信息Select*From學生表where姓名Like‘李%’【例7-10】查詢數(shù)據(jù)庫原理課程考試成績的前三甲。Selecttop3*From成績表where課程名=’數(shù)據(jù)庫原理’Orderby成績desc創(chuàng)建數(shù)據(jù)庫表記錄的編輯記錄查詢7.3Data控件的使用簡單程序?qū)嵗?.3.1DATA控件常見屬性、方法和事件VB提供了多種訪問數(shù)據(jù)庫的工具,Data控件就是其中之一。在VB窗體中使用Data控件,可以實現(xiàn)與數(shù)據(jù)庫的連接,讀、寫數(shù)據(jù)庫表或查詢中的記錄。常用控件工具箱中有Data控件,雙擊Data控件或單擊后在窗體上拖動出控件的大小,都可以看到Data控件的外觀。

1.Data控件常用屬性ConnectConnect屬性用于確定該Data控件所要連接的數(shù)據(jù)庫類型,默認值為Access,其他還包括dBASE、FoxPro、Excel等。DatabaseNameDatabaseName屬性用于確定Data控件使用的數(shù)據(jù)庫的完整存放路徑。例如,鏈接的是Access數(shù)據(jù)庫,單擊按鈕定位mdb文件,選擇”...\學生管理.mdb”文件。RecordSourceRecordSource屬性用于確定Data控件所連接的記錄來源,可以是數(shù)據(jù)表,也可以是查詢。在屬性窗口中單擊下拉箭頭在列表中選出數(shù)據(jù)庫中的記錄來源。例如,選擇“學生表”。1.Data控件常用屬性RecordsetTypeRecordsetType屬性用于指定Data控件存放記錄的類型,包含表類型記錄集(0-Table)、動態(tài)集類型記錄集(1-Dynaset)和快照類型記錄集(2-Snapshot)三種取值。默認為動態(tài)集類型。表類型記錄集(0-Table):包含數(shù)據(jù)表中的所有記錄,這種類型可對記錄進行添加、刪除、修改等操作,可直接更新數(shù)據(jù)。動態(tài)集類型記錄集(1-Dynaset):這類記錄集可以包含來自于一個數(shù)據(jù)表或包含從一個或多個表取出的字段的查詢結(jié)果,并且可以從其中添加、修改、刪除記錄,任何改變都將反映到數(shù)據(jù)表中。快照類型記錄集(2-Snapshot):與動態(tài)集類型記錄集相似,但這種類型的記錄集只能讀不能更改數(shù)據(jù)。1.Data控件常用屬性BOFAction在系統(tǒng)運行時用戶可單擊Data控件的指針按鈕移動記錄到開始或結(jié)尾,BOFAction屬性是指當用戶移動到記錄開始時程序?qū)?zhí)行的操作。BOFAcfion值為“0-MoveFirst”是將指針定位到首條記錄作為當前記錄,為“1-BOF”是將指針定位到記錄的開頭。EOFActionEOFAction指當用戶移動到記錄結(jié)尾時程序?qū)?zhí)行的操作。EOFAction值為“0-MoveLast”是將最后末條記錄作為當前記錄,值為“1-EOF”是將指針定位到所有記錄的末尾,值為“2-AddNew”是移動到記錄結(jié)尾并自動添加一條新記錄。Readonly確定數(shù)據(jù)庫是否以只讀方式打開。Exclusive是否獨占數(shù)據(jù)庫,取True則數(shù)據(jù)庫為單用戶訪問模式,取False則數(shù)據(jù)庫為允許多用戶訪問模式。2.Data控件常用方法常用方法Refresh方法UpdateControls方法UpdateRecord方法詳見課本3.Data控件常用事件常用事件Reposition事件:當Data控件中移動記錄指針改變當前記錄時觸發(fā)該事件。Validate事件:當移動Data控件中記錄指針,并且綁定控件中的內(nèi)容已經(jīng)發(fā)生修改時,此時數(shù)據(jù)庫當前記錄的內(nèi)容將被更新,同時觸發(fā)該事件。Data控件應用舉例【例7-11】設計一個簡單的學生成績管理程序,實現(xiàn)本章的“學生管理.mdb”數(shù)據(jù)庫中的成績表信息處理。窗體運行界面如圖所示。Data控件應用實例應用實例設計的基本步驟啟動VB系統(tǒng),創(chuàng)建新工程。設計界面。建立窗體,再利用工具箱向窗體添加各種對象。設置窗體或控件對象的屬性。編寫程序代碼,建立事件過程。保存工程。運行和調(diào)試應用程序。簡單程序?qū)嵗龔纳蠄D中可知,窗體標題為“學生成績管理”,窗體上有“學號”、“課程名”、“成績”和“查詢條件”4個標簽、用于輸入、顯示學號、課程名、成績、查詢條件的4個文本框,標題為“添加”、“修改”、“查詢”等的8個命令按鈕,以及一個標題為“成績表”的Data控件。分析:簡單程序?qū)嵗\行時用戶通過點擊窗體上的“上一條”、“下一條”命令按鈕可以查看成績表中的記錄。點擊“添加”或“修改”按鈕,可以向成績表中添加記錄或修改當前記錄,點擊“添加”或“修改”按鈕后需要點擊“刷新”按鈕,才能將記錄寫入到成績表中生效。點擊“刪除”按鈕,可以刪除當前記錄。在“查詢條件”標簽后面的文本框中輸入查詢條件,點擊“查詢”按鈕,可以實現(xiàn)按輸入的要求查詢成績表中記錄。分析:簡單程序?qū)嵗?)打開VB軟件,新建“工程1”。(2)點擊“外接程序”,選擇“可視化數(shù)據(jù)管理器”。利用“文件”菜單,打開上節(jié)所述的“學生管理.mdb”數(shù)據(jù)庫。(3)在“工程1”的Form1窗體中,添加1個數(shù)據(jù)控件Data1,4個標簽Label1~Label4,4個文本框Text1~Text4,8個命令按鈕控件Command1~Command8。(4)各控件屬性設置如課本表7-6所示。(5)程序詳細代碼見課本7.3節(jié)操作步驟:7.4ADO對象訪問技術ADO對象訪問技術ADO

(ActiveXDataObjects,ActiveX數(shù)據(jù)對象)是微軟提出的應用程序接口(API),用以實現(xiàn)從應用程序界面訪問關系或非關系數(shù)據(jù)庫中的數(shù)據(jù)。使用ADO技術作為數(shù)據(jù)接口具有ADO控件和ADO對象模型兩種實現(xiàn)方式。1.ADO的基本概念ADO對象訪問技術新建一個工程時,ADO控件不在常用工具箱中,要使用該控件,需要首

溫馨提示

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

評論

0/150

提交評論