1、第10章 Visual Basic与数据库,数据管理器 ADO数据控件 数据及数据绑定控件 SQL简介 报表制作,10.1 概述,10.1.1 数据库 1数据库(DataBase,简称DB) 按照数据结构来组织和存储在一起的具有较小冗余度、可共享的相关数据的集合 数据库中数据的存储独立于使用它的程序 对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行 数据库的优点: 具有较小的冗余度 集成数据 数据具有完整性 数据具有共通性 保护数据的安全及隐私,http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/
2、http:/ http:/ http:/ http:/www.zg- http:/www.skf- http:/ http:/www.skf- http:/www.nsk- http:/www.fag- http:/ http:/www.ntn- http:/ http:/ http:/ http:/ http:/ http:/www.xunchi- http:/ http:/ http:/ http:/ http:/ http:/ http:/,数据库管理系统(DataBase Management System,简称DBMS)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库
3、数据库管理系统是位于用户与操作系统之间的一层数据管理软件 利用数据库管理系统提供的一系列命令,用户能够方便地建立和管理数据库 数据库管理系统还保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复等任务,2关系数据库 关系数据库是根据表、记录和字段之间的关系进行组织和访问,以行和列的二维表形式存储数据,并通过关系将这些表联系在一起 (1)表 表是以行和列的形式组织起来的数据的集合。一个数据库包括一个或多个表。一般一个关系对应一个表 (2)记录 表中的每一行称为一个记录,记录由若干个字段组成,每个记录行用记录号作为标识 (3)字段 表中的每一列称为一个字段,表是由其包含的各种字段
4、定义的,每个字段描述了它所含有的数据的意义 (4)关键字 关键字是用来确保表中记录的唯一性,通常一个字段或者多个字段可作为一个表的索引字段 对可以唯一标识一个记录的关键字称为主关键字或者简称主键,(5)索引 索引是表中单列或多列数据的排序列表,每个索引指向其对应的数据表的某一行。为提高数据的访问效率,可以为表建立多个索引,从而改变表中记录的排列顺序。例如表10-1和表10-2就是通过“学号”字段建立索引排列顺序的。 (6)表间关系 一个数据库包含一个以上的表,一般一个关系对应一个表,不同数据存放在不同的关系表中,表间关系把各个表联接起来。表间关系是通过各表中的某一个相同的关键字建立起来的。例如
5、表10-1和表10-2中的主键都是学号,因此2个表可以通过学号字段建立关系。 (7)视图 视图是在表的基础上建立的一个虚拟表,它的各项操作与真实的表是相同的,目的在于简化数据的表达,3设计数据库的步骤 (1)确定创建数据库的目的; (2)确定数据库中需要的表; (3)确定表中需要的字段; (4)明确主键; (5)确定表间关系; (6)输入数据和创建其他数据库对象,10.1.2 数据访问对象模型,Visual Basic数据库的核心结构是Microsoft JET数据库引擎 JET引擎不仅为Access格式数据库提供了直接的内建支持,而且为非Access格式的数据库提供了接口支持 因此Visua
6、l Basic几乎可以访问所有的主流数据库 对小型数据库的访问通过数据库引擎实现,对大型数据库,则直接访问ODBC,1数据访问对象(Data Access Objects,简称DAO) 一种使用Jet数据库引擎的面向对象的接口 模型是提供了管理数据库系统的全部操作的属性和方法,主要包括创建数据库,定义表、字段和索引,建立表间关系,定位和查询数据库等 VB将此模型封装于Data控件中,主要用于面向桌面的应用 2远程数据对象 (Remote Data Object,RDO) 是一个到ODBC的、面向对象的数据访问接口,可以与SQL Server、Oracle等大型数据库很好地进行远程连接与访问,V
7、B将此模型封装于RDO控件中 3ActiveX数据对象 (ActiveX Data Object,ADO) ADO融合并扩展了DAO和RDO,它涉及的数据存储有DSN、ODBC、OLE DB三种方式,适用于大流量、大事务量的网络计算机系统 由于ADO技术新于DAO、RDO技术,而且包含并集成了DAO、RDO的功能,现在编程过程中主要使用的是ADO技术,10.2 数据管理器,10.2.1 创建Access格式数据库 Access数据库中包含的主要对象有:表、查询、窗体、报表、数据访问页、宏和模块,数据库文件的扩展名为.mdb 创建Access格式数据库: 使用Microsoft Access软件
8、创建 在Visual Basic中借助“可视化数据管理器”间接创建 见例10.110.2.2 数据窗体设计器 数据窗体设计器为创建简单数据库应用程序提供了便捷的方法 见例10.2,10.3 ADO数据控件,ADO是ActiveX Data Object的缩写,是数据库应用程序开发的数据访问接口 ADO通过属性和方法为数据的访问提供统一的接口,经过简单编程实现与各种类型的数据库进行连接 10.3.1 ADO的对象与集合 1ADO的结构模型 见图10-16,2对象与集合 (1)常用对象 Connection:连接对象,应用程序通过连接访问数据源。 Command:命令对象,从连接到的数据源获取所需
9、数据的命令信息。 Recordset:记录集对象,获得的一组记录组成的记录集。 Error:错误对象,访问数据时从数据源返回的错误信息。 Property:属性对象,ADO控件属性信息。 Parameter:参数对象,与命令对象有关的参数。 Field:字段对象,包含在记录集中某个字段的信息 (2)集合 ADO的4个集合为错误集Errors、字段集Fields、属性集Properties和参数集Parameters,10.3.2 添加ADO,ADO控件是作为可选项集成在VB开发环境中的,在使用前必须先添加 “工程”“引用”“Microsoft ActiveX Data Objects 2.7
10、Library” 10.3.3 ADO应用 使用ADO创建一个到数据库的连接,打开一个指定的数据库表,或定义一个基于结构化查询语言(SQL)的查询,或定义存储过程以及视图的记录集合,从而实现对数据的操作 见例10.3,10.4 数据及数据绑定控件,Visual Basic还可以使用数据控件和数据绑定控件对数据库进行数据查询、数据输入、数据修改等数据的显示和处理操作 10.4.1 Data控件 1Data控件 通过对其属性进行设置,与数据库建立联系,从而对数据表中记录进行读、写、查询等操作 一个Data控件只能访问一个数据库 2Data控件与记录集的主要属性、方法和事件 见表10-9、10-10
11、,10.4.2 通用数据绑定控件,Data控件可以操作表,但本身无法显示数据库中的相关数据 通用数据绑定控件有: TextBox文本框控件 Label标签控件 ListBox列表框控件 ComboBox组合框控件 CheckBox复选框控件 PictureBox图片框控件 Image图像控件和OLE控件 这些控件通过设置DataSource属性和DataField属性实现与数据源的绑定 见例10.4,10.4.3 专用数据绑定控件,Visual Basic 6.0企业版中专有:DBGrid数据库表格控件、DBList数据库列表控件、DBCombo数据库组合控件 与ADO数据控件配合使用的:Da
12、taGrid数据表格控件、DataList数据列表控件、DataCombo数据组合控件等 把这些控件加入工具箱的方法: “工程”“部件”“Microsoft ADO Data Control 6.0”、“Microsoft DataList Control 6.0”、“Microsoft DataGrid Control 6.0”、“Microsoft Chart Control 6.0”等“确定” 见例10.5,10.5 SQL简介,SQL是结构化查询语言(Structure Query Language)的简称,用于存取数据以及查询、更新和管理关系数据库系统 SQL语言包含查询、定义、操纵
13、和控制4个部分,被作为关系型数据库管理系统的标准语言,10.5.1 SQL语言的特点,1综合统一 SQL语言风格统一,集数据定义、查询、操纵及控制功能于一体,可以用于所有用户的DB活动模型 2高度非过程化 使用SQL语言操作数据时只要写明“做什么”而不必指明“怎么做”,存取路径的选择和SQL语言的操作过程均由系统自动完成 3面向集合的操作方式 SQL以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,可以实现一次操作多个记录集合。 4简单易学 SQL语言功能强大,但十分简捷,核心功能仅
14、用9个动词即可完成。语言接近自然语言(英语),学习者易学易用 5以同一种语法结构提供两种使用方式 是交互式语言,也是嵌入式语言,10.5.2 SQL语言对数据库的操作,1SQL语句组成元素一个SQL语句至少包括: 命令动词 被操作的字段列表 指定要操作的数据表 操作方式(有些情况下可省略 ) 2SQL常用动词 SQL语句中的常用命令动词有9个,用于完成对数据库的操作 一般可以分为数据定义、数据查询、数据操纵和数据控制四大类 (1)数据定义语言 数据定义语言(Data Definition Language,DDL)主要作用是定义关系数据库的逻辑结构(例如表、视图、索引表),还可以对各结构进行修
15、改、删除等操作。用到的动词有CREATE、DROP、ALTER,1)创建数据库格式:CREATE DATABASE 2)删除数据库格式:DROP DATABASE 3)创建表格式:CREATE TABLE (列级完整性约束条件,列级完整性约束条件, 4)修改表格式:ALTER TABLEADD完整性约束DROPMODIFY; 5)删除表格式:DROP TABLE ,(2)数据查询语言(Data Query Language,DQL) 对数据库数据进行的查询,使用的动词是SELECT,其构成的语句具有灵活的使用方式,并可以实现多种查询功能 格式: SELECT ALL|DISTINCT,FROM
16、,WHEREGROUP BY HAVINGORDER BY ASC|DESC; 从FROM子句所指定的表中,按照WHERE子句给出的条件,查询SELECT子句中所指的字段 (3)数据操纵语言 (Data Manipulation Language,DML) 对数据的操纵主要包括了对数据的检索和更新两类操作,其中数据更新包含了插入数据、修改数据、删除数据3种操作,使用的动词有INSERT、UPDATE、DELETE 1)插入数据格式:INSERT INTO (, ) VALUE (表达式值),2)修改数据 格式:UPDATE SET =,=WHERE; 3)删除数据。格式:DELETE FROM
17、 ;,(4)数据控制语言 数据控制语言(Data Control Language,DCL)主要用于对表、视图等对象的授权、完整性规则描述、事务开始与结束等控制语句。使用的动词是GRANT、REVOKE 1)授予权限 格式: GRANT ,ON TO ,WITH GRANT OPTION; 2)收回权限 格式: REVOKE ,ON FROM ,;,10.6 报表制作,在数据库系统中数据报表是数据最常用的输出方式,制作数据报表包括了数据的分组、汇总等 Visual Basic为报表的制作提供了数据环境设计器和数据报表设计器 1数据环境设计器 一个交互式的设计环境,通过设置Connection对象和Command对象属性,快速完成对数据库的链接 (1)Connection数据连接对象。在数据环境中操作数据之前,必须先建立连接对象。 (2)Command数据命令对象。命令对象定义了将从数据库连接中取回数据的详细信息。,2数据报表设计器 数据报表设计器是一个方便快捷的报表设计工具,根据数据环境设计器提供的数据,能创建出汇总多个数据表数据的报表3制作报表 见例10.6,10.7 程序举例,见例10.7,