《第07章数据库基本知识》由会员分享,可在线阅读,更多相关《第07章数据库基本知识(42页珍藏版)》请在金锄头文库上搜索。
1、7.1 数据库基本知识数据库基本知识1. 数据库(数据库(DataBase) 数据库是数据的集合,就象存储数据的仓库,关系型数据库中的数数据库是数据的集合,就象存储数据的仓库,关系型数据库中的数据以二据以二 维的关系表组织数据。维的关系表组织数据。 2. 数据表(数据表(Table)(自学)(自学)7.1 数据库基本知识数据库基本知识3. 字段(字段(Field) 在二维数据表中每一列为一个字段,数据表头的每一列为字段的名称。每在二维数据表中每一列为一个字段,数据表头的每一列为字段的名称。每个字段都分配数据类型、最大长度及其它属性。个字段都分配数据类型、最大长度及其它属性。 4. 记录(记录(
2、Record) 在二维数据表中每一行数据为一个记录,每个记录由多个字段组成,任在二维数据表中每一行数据为一个记录,每个记录由多个字段组成,任意两个记录都不可能完全相同。意两个记录都不可能完全相同。 5. 索引(索引(Index)和关键字和关键字索引是比表搜索更快的排序列表,每个索引输入项指向其相关的数据库行,索引是比表搜索更快的排序列表,每个索引输入项指向其相关的数据库行,如果查询在寻找记录时能浏览索引,就可以执行得更快。关键字是表的字如果查询在寻找记录时能浏览索引,就可以执行得更快。关键字是表的字段,为了快速检索而被索引,关键字可以是唯一或非唯一。段,为了快速检索而被索引,关键字可以是唯一或
3、非唯一。 6. 关系关系数据库是由多个表组成,表与表之间用不同的方式关联就是关系表。数据库是由多个表组成,表与表之间用不同的方式关联就是关系表。7.2.1 创建数据库创建数据库1. 启动数据管理器启动数据管理器 选择选择“外接程序外接程序”菜单菜单“可视化数据管理器可视化数据管理器”菜单项,就可以启动数据管理菜单项,就可以启动数据管理器,出现器,出现VisData窗口如图所示。窗口如图所示。2创建数据库创建数据库 选择选择VisData窗口的窗口的“文件文件”菜单菜单“新建新建”菜单项菜单项“Microsoft Access”菜单菜单项项“Version 7.0 MDB”菜单项,在出现的文件对
4、话框中输入数据库名菜单项,在出现的文件对话框中输入数据库名“StudentAd.mdb”,则在数据管理器中出现图中则在数据管理器中出现图中“数据库窗口数据库窗口”和和“SQL语句语句”两个两个子窗口。子窗口。7.2.1 创建数据库创建数据库3. 建立数据表建立数据表7.2.1 创建数据库创建数据库4. 添加索引添加索引 为了提高搜索数据了提高搜索数据库记录的速度,需要将数据表中的某些字段的速度,需要将数据表中的某些字段设置置为索索引(引(Index)。)。在上在上图中中单击“添加索引添加索引”按按钮,会出,会出现“添加索引添加索引”对话框框如如图所示。所示。7.2.1 创建数据库创建数据库 5
5、. 输入记录输入记录 数据表设计好后,在数据表设计好后,在VisData右侧的右侧的“数据库窗口数据库窗口”中以树状结构显示了数中以树状结构显示了数据库的多个表,用鼠标右键单击某个表名,在下拉菜单中选择据库的多个表,用鼠标右键单击某个表名,在下拉菜单中选择“打开打开”菜单项菜单项就可输入记录。就可输入记录。7.2.1 创建数据库创建数据库6. 建立查询建立查询 (1) 用鼠用鼠标右右键单击“数据数据库窗口窗口”,或用鼠或用鼠标右右键单击“Score”表,在下表,在下拉菜拉菜单中中选择“新建新建查询”菜菜单项,则出出现“查询生成器生成器”窗口。窗口。(2) 在在“查询生成器查询生成器”窗口单击窗
6、口单击“表:表:”框中的表名框中的表名“Score”。(3) 在在“要显示的字段:要显示的字段:”中选择在中选择在查询表中需要显示的字段,选择查询表中需要显示的字段,选择“Score.学号学号”、“Score.姓名姓名”和和“Score.语文语文”;单击选择;单击选择“升序升序”。(4) 单击单击“字段名称字段名称”的下拉箭头选择的下拉箭头选择“Score.语文语文”,在,在“运算符运算符”下拉下拉列表中选择列表中选择“”,在,在“值值”文本框中文本框中输入输入“80”。7.2.1 创建数据库创建数据库 (5) 单击单击“将将And加入条件加入条件”或或“将将Or加入条件加入条件”按钮,在按钮
7、,在“条件:条件:”文本框中显示查询的文本框中显示查询的SQL语句。语句。(6) 单击单击“显示显示”按钮则出现按钮则出现“SQL查询查询”消息框,将查询消息框,将查询条件用条件用SQL语言显示。语言显示。 (7) 单击单击“保存保存”按钮将查询按钮将查询保存,输入查询名为保存,输入查询名为“ScoreYW”。在。在VisData窗口窗口的显示如图所示。的显示如图所示。 生生 成成 查查 询询7.2.2 结构化查询语言结构化查询语言SQL1. SQL运算符运算符 SQL运算符可以使用AND、OR、NOT 逻辑运算符,、=、比较运算符,还可以使用BETWEEN指定运算值范围,LIKE指定格式匹配
8、,IN指定记录。 2. SQL函数函数 SQL语言中可以使用下列函数: AVG:求平均值。 COUNT:计数。SUM:求和。 MAX:求最大数。 MIN:求最小数。 3. SQL语句语句(1) Create语句创建一个新数据表7.2.2 结构化查询语言结构化查询语言SQL(2)SELECT语句从数据库中筛选一个记录集语句从数据库中筛选一个记录集 语法:语法: SELECT 字段列表字段列表 FROM 子句子句 WHERE 子句子句 GROUP BY 子句子句 HAVING 子句子句 ORDER BY 子句子句 (3)INSERT语句在数据表中添加记录语句在数据表中添加记录语法:语法: INSE
9、RT INTO 数据表数据表(字段名字段名1,字段名字段名2,) VALUES (数据数据1,数据数据2,) (4)DELETE语句删除符合条件的记录语句删除符合条件的记录语法:语法: DELETE(字段名字段名) FROM 数据表数据表 WHERE 子句子句(5)UPDATE语句更改符合条件的记录语句更改符合条件的记录语法:语法: UPDATE 数据表数据表 SET 新数据值新数据值 WHERE 子句子句7.3.1 Data 控件的常用属性和数据感知控件控件的常用属性和数据感知控件1. Data 控件的常用属性控件的常用属性(1) Connect属性Connect属性用来指定该数据控件所要访
10、问的数据库格式,默认值为Access,还包括dBASE、FoxPro、Excel等。 (2)DatabaseName属性DatabaseName属性是用于确定数据控件使用的数据库。 (3)RecordSource属性RecordSource属性用于指定数据控件所访问的记录来源,可以是数据表名,也可以是查询名。 (4)RecordsetType属性RecordsetType属性用于指定数据控件存放记录的类型。7.3.1 Data 控件的常用属性和数据感知控件控件的常用属性和数据感知控件2. 数据感知控件数据感知控件 与Data 控件绑定的控件称为数据感知控件,使用数据感知控件可以将Data控件访
11、问的数据库在窗体显示出来。(1)数据感知控件的属性设置 数据感知控件要与Data 控件绑定必须要设置两个属性:DataSource和DataField。7.3.1 Data 控件的常用属性和数据感知控件控件的常用属性和数据感知控件(2)绑定数据控件的步骤数据感知控件绑定的过程不需要加入任何程序代码,就可以通过数据感知控件显示数据库内容,与Data控件绑定的步骤如下: 将Data控件(Data1)放置在窗体中,将数据感知控件Text1放置在窗体中。 设置Data1的DatabaseName属性为“C:StudentAd.mdb”文件,设置Data1的RecordSource属性为“Score”表
12、。 设置Text1的DataSource属性为Data1,设置Text1的DataField属性为“姓名”字段。这样姓名字段就可以在文本框中显示了。7.3.2 Data 控件的记录集控件的记录集1. Data 控件记录集的常用方法控件记录集的常用方法(1)AddNew方法(2)Delete方法(3)Edit方法(4)Find方法群组(5)Move方法群组(6)Update方法7.3.2 Data 控件的记录集控件的记录集2. Data 控件记录集的常用属性控件记录集的常用属性(1)BOF和EOF属性 BOF和EOF属性可以用来设置记录指针的位置。 (2)RecordCount属性 Record
13、Count属性返回记录集的记录总数,是只读属性。当记录集更新频繁时,为了获得RecordCount属性的准确值,应在获取RecordCount属性之前先调用一次MoveLast方法。 (3)BookMark属性BookMark属性用于返回或设置当前记录指针的书签。7.4.1 ADO Data控件的使用控件的使用1ADO Data控件的常用属性控件的常用属性(1)ConnectionString属性ConnectionString属性是一个字符串,用来建立到数据源的连接。可以是OLE DB 文件(.UDL)、ODBC 数据源(.DSN)或连接字符串,当连接打开时ConnectionString属
14、性为只读。7.4.1 ADO Data控件的使用控件的使用(a)“提供程序”选项卡 (b)“连接”选项卡7.4.1 ADO Data控件的使用控件的使用(2)RecordSource属性 RecordSource属性返回或设置记录的来源,可以是数据库表名、查询名或SQL语句。 (3)UserName属性 UserName属性是用户名称,当数据库受密码保护时,需要指定该属性。 (4)Password属性 Password属性设置 ADO Recordset 对象创建过程中所使用的口令。 7.4.1 ADO Data控件的使用控件的使用2ADO Data控件记录集的常用方法控件记录集的常用方法(1
15、)AddNew方法AddNew方法是创建新记录,与Data控件记录集的AddNew方法相同。(2)Delete方法Delete方法可以用于删除Recordset的记录,删除完记录后与数据库绑定的控件上还显示该记录,直到将记录指针移到其它记录。(3)Move方法和Move方法群组Move方法和Move方法群组用于移动Recordset对象记录指针的位置,Move方法可以移动到任意位置。(4)Update方法Update方法用于保存对recordset对象的当前记录所做的所有更改。 (5)Find方法Find方法用来查找指定的记录,并指定查找的条件 7.4.1 ADO Data控件的使用控件的使用
16、3. ActiveX数据感知控件数据感知控件(a)Adodc1的属性页 (b) DataGrid1的属性页7.4.2 数据窗体向导数据窗体向导如果觉得ADO Data控件的使用比较麻烦,还可以使用数据窗体向导。数据窗体向导是ADO Data控件提供的将一组控件绑定到某个数据源的简单方法,包括了用户界面和所需要的代码。7.4.2 数据窗体向导数据窗体向导 (a)第四屏 (b)第五屏7.4.3 ADO编程模型编程模型1. ADO、DAO和和RDO ADO是最简单、最灵活的数据访问接口,可以访问各种类型的数据,而RDO和DAO只能访问关系数据,因此最好使用ADO。 2. ADO编程模型编程模型 AD
17、O访问数据是通过OLE DB来实现的。它是连接应用程序和OLE DB数据源之间的一座桥梁,提供的编程模型可以完成几乎所有的访问和更新数据源的操作。 7.4.3 ADO编程模型编程模型3. 使用使用ADO编程编程(1)Connection对象(2)Command 对象(3)Recordset对象Provider参数值Microsoft JetMicrosoft.Jet.OLEDB.3.51OracleMSDAORAMicrosoft ODBC DriverMSDASQLSQL ServerAQLOLEDB7.5.1 数据环境设计器数据环境设计器1. 给工程添加一个数据环境设计器给工程添加一个数据
18、环境设计器(1)在工程中添加一个数据环境设计器(2)使用数据工程 要添加一个数据环境设计器对象到VB 工程中,选择“工程”菜单“添加 Data Environment”菜单项,则数据环境设计器窗口就会出现在工程资源管理器窗口。 VB提供了“数据工程”模板,可以自动在工程中添加数据环境设计器和一个报表设计器。7.5.1 数据环境设计器数据环境设计器2. 连接对象连接对象 Connection对象用于管理到数据库的连接,必须在数据环境对象中将Connection对象连接到数据源 3. 命令对象命令对象可以使用Command 对象,它可以建立在数据表、视图、SQL查询基础上,也可在命令对象之间建立一
19、定的关系,从而获得一系列相关的数据集合。 7.5.1 数据环境设计器数据环境设计器4. 创建用户界面创建用户界面5. 使用代码访问Data Environment设计器 创建了Command对象以后,记录集的名字就自动定为“rs+Command对象名”,就可以使用代码来访问记录集。7.5.2 数据视图窗口数据视图窗口1. 打开数据视图打开数据视图 选择“视图”菜单“数据视图窗口”菜单项就可以打开数据视图,在“数据视图”窗口中可以看到工程与数据库的当前连接。2. 数据链接和数据环境连接数据链接和数据环境连接有两个文件夹:即数据链接(Data Links)和数据环境连接(Data Environm
20、ent Connection)。当在工程添加了数据链接和数据环境设计器时,数据视图窗口如图所示。7.5.3 查询设计器查询设计器 查询的生成在前面介绍过采用数据管理器(VisData)和SQL语句都可以,VB还提供了可视化的查询设计器(Query Designer),生成查询更加方便。生成生成查询的步的步骤: (1) 首先配置一个数据源,可以用数据环境作数据源。 (2)打开查询设计器(3) 打开“数据视图”窗口,将Student、Score和Department三个表拖放到查询设计窗口中。7.5.3 查询设计器查询设计器 (4)通过单击Student表的“学号”字段与Score表的“学号”字段
21、建立关联,并将Score表的“系别代码”和Department表的“系别代码”字段建立关联。 7.5.3 查询设计器查询设计器 (5)关闭查询设计窗口,出现保存对话框,将查询保存为Command2,在数据环境设计器有两个Command对象:Command1和Command2,如图(a)所示。 (6)在数据环境设计器窗口中用鼠标右键单击Command2,在快捷菜单中选择“属性”,选择“关联”选项卡,将Command1与Command2通过“学号”字段关联,如图(b)所示。7.6.1 报表设计器报表设计器1. 给工程添加一个数据报表设计器给工程添加一个数据报表设计器 选择“工程”菜单“添加 Dat
22、a Report”菜单项,就可以将数据报表设计器添加到工程中,则出现如图所示的DataReport1对象。7.6.1 报表设计器报表设计器2. 数据报表设计器的组成数据报表设计器的组成(1)DataReport 对象 DataReport 对象与VB的窗体相似,具有一个可视化的设计器和一个代码模块。(2)Section 对象 数据报表设计器的每一个部分由Section 对象表示,每一个Section由一个窗格表示。(3)Data Report 控件 当一个新的数据报表设计器被添加到工程时,在窗体的控件箱出现“数据报表”和“General”两个选项卡,如图所示。 控 件 箱7.6.2 报表的设计
23、报表的设计1. 指定数据源指定数据源用数据环境设计器配置一个数据源。2. 将数据报表设计器添加到工程中将数据报表设计器添加到工程中 选择“工程”菜单“添加 Data Report”菜单项,将数据报表设计器添加到工程中,则出现未设计的DataReport1对象。3. 设置设置DataReport对象属性对象属性 在属性页设置DataReport1对象的属性,将DataSource属性设置为数据环境对象“DataEnvironment1”; DataMember属性设置为“Command1”命令。4. 检索结构检索结构 在DataReport1上单击鼠标右键,选择“检索结构”菜单项,出现对话框“用
24、新的数据层次代替现在的报表布局吗?”,单击“是”按钮,则在报表设计器中就添加了与Command1命令对应的分组,自动出现了“分组标头”和“分组注脚”。7.6.2 报表的设计报表的设计5添加控件添加控件(1)在报表标头中设置报表名(2)在分组标头中设置“学号”和“姓名”(3)在细节中显示“语文”、“数学”和“英语” (4)在细节中显示“系别”6设置布局置布局(1) 设置网格(2)添加直线(3)调节各控件的布局查 询 显 示7.6.2 报表的设计报表的设计7. 显示数据报表显示数据报表 有两种方法可以在运行时显示数据报表:(1)选择“工程”菜单“属性”菜单项,将“启动对象”设置为DataRepor
25、t1,则启动工程时就显示数据报表。(2)使用程序代码显示数据报表8. 打印报表打印报表打印一个数据报表有两种方法:使用“打印”按钮或使用 PrintReport 方法打印。(1)使用“打印”按钮当运行显示数据报表时,单击工具栏中的“打印”按钮,则出现“打印”对话框,然后可以进行打印设置。(2)使用 PrintReport 方法PrintReport方法用于在运行时打印用数据报表设计器创建的数据报表。7.5.3 向报表添加向报表添加Function控件控件1. Function 控件的内置函数控件的内置函数函数名功能Sum合计一个字段的值。Min显示一个字段的最小值。Max显示一个字段的最大值。
26、Average显示一个字段的平均值。Standard Deviation显示一列数字的标准偏差。Standard Error显示一列数字的标准错误。Value Count显示包含非空值的字段数。Row Count显示一个报表部分中的行数。7.5.3 向报表添加向报表添加Function控件控件2. 创建创建Function 控件的步骤控件的步骤在数据报表设计器中创建一个Function 控件的步骤如下:(1)在适当的注脚部分绘制一个 Function 控件(2)设置Function 控件的DataMember属性为数据环境的一个Command 对象, DataField属性为一个可运算的数值字
27、段,设置FunctionType属性为一种运算函数。 属性属性值属性属性值属性属性值NameFunction1NameFunction2NameFunction3DataMemberCommand1DataMemberCommand1DataMemberCommand1DataField语文DataField数学DataField英语FunctionType1-rptFuncAveFunctionType1-rptFuncAveFunctionType1-rptFuncAve7.5.3 向报表添加向报表添加Function控件控件7.7.1 将多媒体数据存放在字段将多媒体数据存放在字段1. 在
28、在Access应用程序添加多媒体应用程序添加多媒体据字段据字段 由于VisData窗口不能添加多媒体数据,因此需要通过象Access等数据库处理软件在输入记录时直接将图形、图像、声音或动画直接输入到数据库的字段中,这是较方便的方式。2. 使用使用Data控件由数据感知控或控件由数据感知控或OLE控件输入控件输入 在VB中输入多媒体数据到数据表中,可以通过在窗体界面中的Data控件与数据感知控件或OLE控件绑定,从数据感知控件或OLE控件中输入多媒体数据。7.7.2 在字段中存放文件名在字段中存放文件名在字段中存放文件名的方式是不把多媒体数据存放在数据库的字段中在显示多媒体字段内容时先读出该字段
29、中的文件名,并通过多媒体控件打开或播放多媒体文件。 对象名属性属性值对象名属性属性值Form1Caption输入学生信息Text1Text空Data1VisibleFalseDataSourceData1DataBaseC:StudentAd.mdbDataField学号RecordSourceStudentText2Text空Image1StrechTrueDataSourceData1Command1Caption打开图片DataField姓名Command2Caption前一个Command3Caption后一个7.7.2 在字段中存放文件名在字段中存放文件名(a)设计界面 (b)运行界面