大学软件开发与应用课程PPt--第5章数据库项目开发概述.ppt
5.1数据库基础知识数据库基础知识5.2数据库设计数据库设计5.3SQL语言简介语言简介5.4ODBC与与ADO简介简介5.5VB与与SQLServer数据库关联数据库关联第第5章章数据库项目开发概述数据库项目开发概述1本章主要内容本章主要内容四个基本概念四个基本概念数据模型数据模型SQL语言语言数据库访问技术数据库访问技术25.1数据库基础知识数据库基础知识数据库技术研究数据库技术研究如何科学合理地组织数据、存储数据如何科学合理地组织数据、存储数据如何高效的访问数据如何高效的访问数据数据库技术数据库技术是应数据管理任务的需要而产生的。是应数据管理任务的需要而产生的。数据管理数据管理是指如何对数据进行分类、组织、编码、是指如何对数据进行分类、组织、编码、储存、检索和维护。储存、检索和维护。随着计算机硬件和软件的发展,数据管理经历了随着计算机硬件和软件的发展,数据管理经历了人人工管理工管理、文件系统文件系统和和数据库系统数据库系统三个发展阶段三个发展阶段。3数据库系统阶段数据库系统阶段应用程序与数据间的对应关系:数据在数据库应用程序与数据间的对应关系:数据在数据库中集中存放、统一管理,面向所有应用。中集中存放、统一管理,面向所有应用。应用程序1应用程序2数据库管理系统 数据库4数据库系统的数据库系统的Client/Server结构结构数据库服务器数据库服务器客户机客户机请求数据服务请求数据服务送回服务结果送回服务结果应用软件应用软件应用开发工具应用开发工具客户机客户机OSDBMS网络网络OS数据库数据库用户用户数据库管理员数据库管理员5Database,简称简称DB数数据据库库是是指指长长期期存存储储在在计计算算机机内内、有有组组织织、可共享、统一管理的数据的集合。可共享、统一管理的数据的集合。它它可可以以供供用用户户共共享享,具具有有尽尽可可能能小小的的冗冗余余度度和和较较高高的的数数据据独独立立性性,使使得得数数据据存存储储最最优优,数数据据最最容容易易操操作作,并并且且具具有有完完善善的的自自我我保保护护能力和数据恢复能力。能力和数据恢复能力。5.1.1四个基本概念四个基本概念-数据库数据库65.1.1四个基本概念四个基本概念-数据库管理系统数据库管理系统DatabaseManagementSystem,简称简称DBMS数据库管理系统是位于用户与操作系统间的一层数据管数据库管理系统是位于用户与操作系统间的一层数据管理软件,属系统软件的范畴。理软件,属系统软件的范畴。数据库管理系统负责定义数据和操纵数据,并能够保证数据库管理系统负责定义数据和操纵数据,并能够保证数据库中数据的安全性、完整性,以及进行多用户对数数据库中数据的安全性、完整性,以及进行多用户对数据的并发使用及发生故障后的系统恢复。据的并发使用及发生故障后的系统恢复。Access、SQLServer、Oracle、Sybase、Foxpro是典型是典型的数据库管理系统的数据库管理系统75.1.1四个基本概念四个基本概念-数据库管理员数据库管理员DatabaseAdministrator,简称简称DBADBA是指全面负责数据库系统的是指全面负责数据库系统的“规划、设计、维护、管理和正常使规划、设计、维护、管理和正常使用的用的”人员,其职责如下:人员,其职责如下:(1)参与数据库设计的全过程,决定数据库的结构和内容;)参与数据库设计的全过程,决定数据库的结构和内容;(2)定定义义数数据据的的安安全全性性和和完完整整性性,负负责责分分配配用用户户对对数数据据库库的的使使用用权权限限和和口令管理口令管理;(3)监监督督控控制制数数据据库库的的使使用用和和运运行行,改改进进和和重重新新构构造造数数据据库库系系统统。当当数数据据库库受受到到破破坏坏时时,应应负负责责恢恢复复数数据据库库;当当数数据据库库的的结结构构需需要要改改变变时时,完成完成对数据结构的修改对数据结构的修改。DBA不仅要有较高的技术专长和较深的资历,并应具有了解和阐明管不仅要有较高的技术专长和较深的资历,并应具有了解和阐明管理要求的能力。理要求的能力。特别对于大型数据库系统,特别对于大型数据库系统,DBA极为重要。对于常见的微机数据库系极为重要。对于常见的微机数据库系统,通常只有一个用户,常常不设统,通常只有一个用户,常常不设DBA,DBA的职责由应用程序员或的职责由应用程序员或终端用户代替。终端用户代替。85.1.1四个基本概念四个基本概念-数据库系统数据库系统数据库系统是指由数据库、数据库管理系统、数据库系统是指由数据库、数据库管理系统、应用系统、数据库管理员和用户等构成的系统。应用系统、数据库管理员和用户等构成的系统。广义的讲,数据库系统由下面几部分构成广义的讲,数据库系统由下面几部分构成硬件及数据库硬件及数据库软件:包括操作系统、软件:包括操作系统、DBMS、编译系统及应用编译系统及应用开发工具软件等开发工具软件等人员:包括数据库管理员、用户等。人员:包括数据库管理员、用户等。数据库系统的各类人员对数据库的各种操作请求,都由数据库系统的各类人员对数据库的各种操作请求,都由DBMS完成,完成,DBMS是数据库系统的核心软件。是数据库系统的核心软件。9用户用户用户.应用系统应用系统应用开发工具应用开发工具数据库管理系统数据库管理系统操作系统操作系统数据库数据库数据库管理员长期储存在计算机长期储存在计算机内、有组织、可共内、有组织、可共享的数据集合。享的数据集合。负责定义数据和操纵数负责定义数据和操纵数据,并能够保证数据库据,并能够保证数据库中数据的安全性、完整中数据的安全性、完整性、并发控制及恢复性、并发控制及恢复数据库系统组成数据库系统组成105.1.2常用数据模型常用数据模型在数据库中是用数据模型这个工具来对现实世在数据库中是用数据模型这个工具来对现实世界进行抽象的。数据模型是数据库系统中用于界进行抽象的。数据模型是数据库系统中用于提供信息表示和操作手段的形式构架。提供信息表示和操作手段的形式构架。根据模型应用的目的不同,可将数据模型分为根据模型应用的目的不同,可将数据模型分为两类。两类。概念模型概念模型(信息模型):按照用户的观点对数据和(信息模型):按照用户的观点对数据和信息建模信息建模逻辑模型逻辑模型(层次、网状、关系):按照计算机系统(层次、网状、关系):按照计算机系统的观点对数据建模。的观点对数据建模。111.概念模型概念模型三个世界三个世界认识抽象现实世界信息世界 概念模型 机器世界 DBMS支持的数据模型概念模型概念模型用于信息世界用于信息世界建模,是现实世界到信建模,是现实世界到信息世界的第一层抽象,息世界的第一层抽象,是用户与数据库设计人是用户与数据库设计人员之间进行交流的语言,员之间进行交流的语言,因此概念模型应强调语因此概念模型应强调语义表达能力。要易于用义表达能力。要易于用户理解户理解121.概念模型概念模型信息世界中的基本概念信息世界中的基本概念实体实体(Entity):客观存在并可相互区别的事物称为客观存在并可相互区别的事物称为实体,如:一个学生、一个部门、一门课、学生的实体,如:一个学生、一个部门、一门课、学生的一次选课、部门的一次订货等。一次选课、部门的一次订货等。实体集实体集(EntitySet):同型实体的集合称为实体集。同型实体的集合称为实体集。如:全体学生就是一个实体集。如:全体学生就是一个实体集。属性属性(Attribute):实体所具有的某一特性称为属性。实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。例如学生实体一个实体可以由若干个属性来刻画。例如学生实体可以用学号、姓名、性别、出生年月等属性组成。可以用学号、姓名、性别、出生年月等属性组成。码码(Key):唯一标识实体的属性集称为码。如:学号唯一标识实体的属性集称为码。如:学号是学生实体的码。是学生实体的码。131.概念模型概念模型联系联系:事物之间的联系可以分为三类:事物之间的联系可以分为三类一对一联系(一对一联系(1:1)如果对于实体集如果对于实体集A中的每一个中的每一个实体,实体实体,实体集集B中至多有一个实体与之联系,反之中至多有一个实体与之联系,反之亦然,则称实体集亦然,则称实体集A与实体集与实体集B具有一对一联系。如具有一对一联系。如班级和班长之间的联系班级和班长之间的联系一对多联系(一对多联系(1:n):如果对于实体集如果对于实体集A中的每中的每一个实体,实体集一个实体,实体集B中有中有n个实体与之联系(个实体与之联系(n=0),),反之,对于实体集反之,对于实体集B中的每一个实体,实体集中的每一个实体,实体集A中至中至多只有一个实体与之联系,则称实体集多只有一个实体与之联系,则称实体集A与实体集与实体集B具有一对多联系。如班导师和学生之间的联系。具有一对多联系。如班导师和学生之间的联系。141.概念模型概念模型联系联系:多对多联系(多对多联系(m:n):如果对于实体如果对于实体集集A中的每一个实中的每一个实体,实体集体,实体集B中有中有n个实体与之联系(个实体与之联系(n=0),),反之,对反之,对于实体集于实体集B中的每一个实体,实体中的每一个实体,实体集集A中也有中也有m个实体个实体(m=0)与之联系,则称实体集与之联系,则称实体集A与实体集与实体集B具有多对具有多对多联系。如:学生和课程之间的关系。多联系。如:学生和课程之间的关系。多个实体之间也可以存在一对一、一对多、多对多的联多个实体之间也可以存在一对一、一对多、多对多的联系,如学生、课程和教科书之间的联系。系,如学生、课程和教科书之间的联系。同一个实体集内的各实体之间也可以存在一对一、一对同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系,如职工实体集内有领导和被领导的多、多对多的联系,如职工实体集内有领导和被领导的联系。联系。151.概念模型概念模型概念模型的表示方法:实体联系方法概念模型的表示方法:实体联系方法实体型实体型:用矩形框表示,矩形框内写上实体:用矩形框表示,矩形框内写上实体名名。如:如:属性属性:用椭圆形表示,并用无向边将其与相:用椭圆形表示,并用无向边将其与相应的实体联系起来。如:应的实体联系起来。如:课程学生学生学号学号学号姓名性别年龄1611.概念模型概念模型概念模型的表示方法:实体联系方法概念模型的表示方法:实体联系方法联系联系:用菱形表示,菱形框内写明联系名,并用无:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标向边分别与有关实体连接起来,同时在无向边旁标上联系的类型上联系的类型(1:1,1:n,m:n)。)。如:如:班级班长管理11班级班长管理n1班级学生组成m班级课程管理n学生选修171.概念模型概念模型实体联系实体联系参考书教师课程讲授1nm职工领导1n181.概念模型概念模型E-R图实例图实例学生班级课程学号姓名性别年龄班级编号所属专业系课程号课程名学分教师参考书课程号姓名性别年龄职称书号书名内容提要价格191.概念模型概念模型E-R图实例图实例班级成绩组成领导学生学生人员选修课程讲授教师参考书1nn1nm领导领导1nm202.逻辑模型逻辑模型不同的数据模型具有不同的数据结构形式,目不同的数据模型具有不同的数据结构形式,目前最常用的数据模型有层次模型、网状模型和前最常用的数据模型有层次模型、网状模型和关系模型。关系模型。层次模型和网状模型统称为非关系模型,在非层次模型和网状模型统称为非关系模型,在非关系模型中,实体用记录表示,实体之间的联关系模型中,实体用记录表示,实体之间的联系转换成记录之间的两两联系。系转换成记录之间的两两联系。212.关系模型关系模型关系模型中的重要概念关系模型中的重要概念关系关系:一个二维表是一个关系:一个二维表是一个关系元组元组:表中的一行即为一个元组:表中的一行即为一个元组属性属性:表中的一列即为一个属性:表中的一列即为一个属性主码主码:表中的某个属性组,它可以唯一确定一个元:表中的某个属性组,它可以唯一确定一个元组。组。域域:属性的取值范围:属性的取值范围分量分量:元组中的一个属性值。:元组中的一个属性值。关系模式关系模式:对关系的描述。一般表示为:关系名:对关系的描述。一般表示为:关系名(属性(属性1,属性,属性2,.,属性属性n)222.关系模型关系模型关系模型的数据结构:二维表关系模型的数据结构:二维表学号95001950029500395004。95700姓名性别系别年龄籍贯李勇刘晨王名张立杨晓冬男女女男。男计算机科学信息数学计算机科学。物理20191819。21江苏山东北京北京。山西整数字符串男女信息数学,.14 15 16 17 18 19 20 21 22.北京上海山东.学生登记表关系名主键关系域字段名记录行字段(列)23关系模型关系模型在关系模型中在关系模型中,实体以及实体间的联系都是用实体以及实体间的联系都是用关系来表示的关系来表示的,例如例如,学生、课程、学生与课程学生、课程、学生与课程之间的多对多联系在关系模型中可以表示如下之间的多对多联系在关系模型中可以表示如下:学生学生(学号,(学号,姓名,姓名,性别,性别,系别,系别,年龄年龄,籍贯),籍贯)课程(课程号,课程名,学分)课程(课程号,课程名,学分)选修(学号,课程号,成绩)选修(学号,课程号,成绩)关系模型要求关系必须是规范化的,关系的每关系模型要求关系必须是规范化的,关系的每一分量必须是一个不可分的数据项。一分量必须是一个不可分的数据项。245.2数据库设计数据库设计主要的内容:主要的内容:n需求分析需求分析n概念设计。概念模型和概念设计。概念模型和E_R图图n逻辑设计。关系模型设计逻辑设计。关系模型设计n物理设计物理设计255.2数据库设计数据库设计数据库设计的数据库设计的主要任务主要任务针对特定用途,在给定的软、硬件环境下,设计出针对特定用途,在给定的软、硬件环境下,设计出结构合理、性能良好的数据库,使之能较好地满足结构合理、性能良好的数据库,使之能较好地满足客户需求。客户需求。数据库的设计一般分为以下数据库的设计一般分为以下四个步骤四个步骤(于(于1978年在新年在新奥尔良会议上提出,因此简称奥尔良会议上提出,因此简称新奥尔良法新奥尔良法):需求):需求分析、概念设计、逻辑设计、物理设计。分析、概念设计、逻辑设计、物理设计。26图图56数据库设计步骤数据库设计步骤DBMS特征特征信息结构(与软信息结构(与软件、硬件无关)件、硬件无关)逻辑数据库结构、逻辑数据库结构、应用程序说明书应用程序说明书需求分析需求分析概念设计概念设计逻辑设计逻辑设计物理设计物理设计需求说明书需求说明书总体信息需求总体信息需求处理需求处理需求硬件、操作系统特征硬件、操作系统特征275.3关系数据库标准语言关系数据库标准语言SQL简介简介自结构化查询语言自结构化查询语言SQL(StructureQueryLanguage)成为国际标准语言后,各个数据库厂家纷纷推出各自成为国际标准语言后,各个数据库厂家纷纷推出各自支持的支持的SQL软件,软件,SQL已成为关系数据库领域中的一已成为关系数据库领域中的一个主流语言。个主流语言。SQL的特点:的特点:功能强大功能强大使用灵活使用灵活语言简洁,易学易用语言简洁,易学易用285.3.1SQL的基本概念的基本概念SQL功能功能SQL命令命令数据定义数据定义CREATE,ALTER,DROP数据操纵数据操纵INSERT,UPDATE,DELETE数据查询数据查询SELECT数据控制数据控制GRANT,REVOKE创建表、视创建表、视图、索引等图、索引等向数据表中插向数据表中插入指定的纪录入指定的纪录在数据库中查找在数据库中查找满足条件的记录满足条件的记录授予用户一定授予用户一定的访问权限的访问权限295.3.2常用的常用的SQL语句语句建立数据库的目的是为了查询数据,因此说数据查询是建立数据库的目的是为了查询数据,因此说数据查询是数据库的核心操作。数据库的核心操作。SQL语言提供了语言提供了SELECT语句进行语句进行数据库的查询,该语言具有语言灵活的使用方式和丰富数据库的查询,该语言具有语言灵活的使用方式和丰富的功能。的功能。查询语句一般格式为:查询语句一般格式为:SELECTALL|DISTINCT,FROM,WHEREGROUPBYHAVINGORDERBYASC|DESC;305.3.2常用常用SQL数据查询数据查询整个整个SELECT语句的含义是,根据语句的含义是,根据WHERE子句的表达式,子句的表达式,从从FROM子句指定的基本表或视图中找出满足条件的元组,子句指定的基本表或视图中找出满足条件的元组,再按再按SELECT子句中的目标列表达式,选出元组中的属性子句中的目标列表达式,选出元组中的属性值形成结果表。值形成结果表。如果有如果有GROUP子句,则将结果按子句,则将结果按的值进行分组的值进行分组,该属性列值相等的元组为一个组该属性列值相等的元组为一个组,每个组产生结果表中的一每个组产生结果表中的一条记录条记录.如果如果GROUP子句带子句带HAVING短语短语,则只有满足指定条件的则只有满足指定条件的组才予输出组才予输出.如果有如果有ORDER子句子句,则结果表还要按则结果表还要按的值的升序的值的升序或降序排序或降序排序.31“学生学生-课程课程”数据库中包括三个表数据库中包括三个表1.“学生信息学生信息”表表StuInfo由学号由学号、姓名姓名、班级班级、来源这来源这4个属性组成个属性组成,可记为:可记为:StuInfo(学号学号,姓名姓名,班级班级,来源来源).其中学号为主码其中学号为主码.2.“课程信息课程信息”表表ClassInfo由由课程代号课程代号,课程名称课程名称,任课任课教师教师,学分学分4个属性组成个属性组成,可记为可记为:ClassInfo(课程代号课程代号,课程名称课程名称,任课教师任课教师,学分学分).其中其中课程代号为主码课程代号为主码.3.“学生成绩学生成绩”表表StuScore由由学号学号,课程代号课程代号,成绩成绩3个属个属性组成性组成,可记为可记为:StuScore(学号学号,课程代号课程代号,成绩成绩),其中其中(学学号号,课程代课程代号号)为主码为主码.32例例1:查询考试成绩在查询考试成绩在80分以上的学生学号。分以上的学生学号。SELECT学号学号FROMstuScoreWHERE成绩成绩=80;或者:或者:SELECTDISTINCT学号学号FROMstuScoreWHERE成绩成绩=80;DISTINCT表示将查询结果中的重复信息去掉。表示将查询结果中的重复信息去掉。33例例2:查询学生信息表中姓张的学生的基本信息。查询学生信息表中姓张的学生的基本信息。SELECT*FROMstuInfoWHERE姓名姓名like张张%;或者:或者:SELECT*FROMstuInfoWHERE姓名姓名like张张_;“%”:代表零个或多个字符。:代表零个或多个字符。“_”:代表一个字符。:代表一个字符。34例例3:查询学生成绩表中成绩在查询学生成绩表中成绩在8590之间的学生成之间的学生成绩信息。绩信息。SELECT*FROMstuScoreWHERE成绩成绩BETWEEN85AND90;BETWEENAND指明字段值必须满足的范围指明字段值必须满足的范围 35例例4:查询学生信息表中的所有信息并按学号查询学生信息表中的所有信息并按学号降序排序。降序排序。SELECT*FROMstuInfoORDERBY学号学号DESC;在在ORDERBY子句中,子句中,ASC表示升序,表示升序,DESC表示降序。表示降序。36例例5:查询各个班级的总人数。查询各个班级的总人数。SELECT班级班级,COUNT(*)AS人数人数FROMstuInfoGROUPBY班级班级;COUNT函数用于统计个数,函数用于统计个数,AS用于起别名。用于起别名。37例例6:查询学号为查询学号为“20050001”的学生的总成绩、最高的学生的总成绩、最高分、最低分、平均分。分、最低分、平均分。SELECTSUM(成绩成绩)AS总成绩总成绩,AVG(成绩成绩)AS平均成绩平均成绩,MAX(成绩成绩)AS最高成绩最高成绩,MIN(成绩成绩)AS最低成绩最低成绩FROMstuScoreWHERE学号学号=20050001;SUM函数用于计算数值型数据的总和函数用于计算数值型数据的总和AVG函数用于计算数值型数据的平均值函数用于计算数值型数据的平均值MAX函数用于计算数值型数据的最大值函数用于计算数值型数据的最大值MIN函数用于计算数值型数据的最小值函数用于计算数值型数据的最小值 38例例7:在成绩表中查询成绩不多于在成绩表中查询成绩不多于2门的学号和门的学号和相应门数。相应门数。SELECT学号学号,COUNT(*)AS门数门数FROMstuScoreGROUPBY学号学号HAVINGCOUNT(*)=2;39例例8:查询学生的姓名、课程名、成绩。查询学生的姓名、课程名、成绩。SELECTstuInfo.姓名姓名,classInfo.课程名称课程名称,stuScore.成绩成绩FROMstuInfo,classInfo,stuScoreWHEREstuInfo.学号学号=stuScore.学号学号andclassInfo.课程代号课程代号=stuScore.课程代号课程代号;本例涉及到三个表之间的关联本例涉及到三个表之间的关联 40SQL-数据更新之插入语句数据更新之插入语句数据更新有插入、删除、更新三种操作数据更新有插入、删除、更新三种操作插入语句:插入语句:一次插入一条记录的格式为:一次插入一条记录的格式为:INSERTINTO表名表名(字段名字段名,字段名字段名)VALUES(常量常量,常量常量);一次插入多条记录的格式为:一次插入多条记录的格式为:INSERTINTO表名表名(字段名字段名,字段名字段名)SELECT查询语句查询语句;41例例9:将一条记录将一条记录“1004”、“计算机计算机”、“王海王海”、2插入到课程信息表中。插入到课程信息表中。INSERTINTOclassInfoVALUES(1004,计算机计算机,王海王海,2);例例10:将成绩表中学号为将成绩表中学号为“20050001”的全部记录插入的全部记录插入到到scoreBack表中,其中表中,其中scoreBack是一张新建的表,是一张新建的表,其表结构与成绩表相同。其表结构与成绩表相同。INSERTINTOscoreBackSELECT*FROMstuScoreWHERE学号学号=20050001;42SQL-数据更新之删除语句数据更新之删除语句删除语句指从数据表中删除符合条件的删除语句指从数据表中删除符合条件的记录。它的格式为:记录。它的格式为:DELETEFROM表名表名WHERE条件表达式条件表达式;例例11:删除学生成绩表中学号为删除学生成绩表中学号为“20050003”的记录。的记录。DELETEFROMstuScoreWHERE学号学号=20050003;43SQL-数据更新之更新语句数据更新之更新语句更新语句指修改数据表中符合指定条件记更新语句指修改数据表中符合指定条件记录的某个或某些字段值。它的格式为:录的某个或某些字段值。它的格式为:UPDATE表名表名SET列名列名=值表达式值表达式,列名列名=值表达式值表达式WHERE条件表达式条件表达式;例例12:修改学生信息表中学号为修改学生信息表中学号为“20050001”同学的来源为同学的来源为“河北河北”。UPDATEstuInfoSET来源来源=河北河北WHERE学号学号=20050001;44例例13:将学生成绩表中全部学生的成绩加上五将学生成绩表中全部学生的成绩加上五分作为最终成绩。分作为最终成绩。UPDATEstuScoreSET成绩成绩=成绩成绩+5;455.4ODBC与与ADO简介简介开放数据库互连标准(开放数据库互连标准(OpenDatabaseConnectivity,简称简称ODBC)是)是Microsoft推出的一种客户端连接后台推出的一种客户端连接后台数据库的技术数据库的技术。ODBC把把SQL作为访问数据库的标准,作为访问数据库的标准,实现了用相同的代码访问不同数据库格式的。实现了用相同的代码访问不同数据库格式的。ODBC体系结构主要由数据库应用程序、体系结构主要由数据库应用程序、ODBC驱动程驱动程序管理器、序管理器、ODBC驱动程序、驱动程序、ODBC数据源四部分组成。数据源四部分组成。5.4.1ODBC体系结构体系结构46数据库管数据库管理系统理系统数据库应用程数据库应用程序序ODBC驱动程序管理驱动程序管理器器ACCESS驱动程序驱动程序SQLServer驱驱动程序动程序Oracle驱动程序驱动程序ACCESS数据源数据源SQLServer数据源数据源Oracle数据源数据源ODBC体系结构体系结构475.4.2配置配置ODBC数据源数据源ODBC数据源管理器窗口数据源管理器窗口481)在)在Windows2000环境下,单击环境下,单击“开始开始”“设置设置”“控制面板控制面板”,进入,进入“控制面板控制面板”窗口,再双击窗口,再双击“管理工具管理工具”,进入,进入“管理管理工具工具”窗口窗口 492)双击)双击“数据源(数据源(ODBC)”,进入进入“ODBC数据源管理器数据源管理器”对话框,对话框,选择选择“系统系统DSN”选项卡。选项卡。503)单击)单击“添加添加”按钮,进入按钮,进入“创建新数据源创建新数据源”对话框,选择对话框,选择“MicrosoftAccessDriver(*.mdb)”。514)单击)单击“完成完成”按钮,进入按钮,进入“ODBCMicrosoftAccess安装安装”对话框,对话框,在数据源名后面的文本框内输入一个新名称在数据源名后面的文本框内输入一个新名称(班级学生班级学生)。525)单击)单击“选择选择”按钮,进入按钮,进入“选择数据库选择数据库”对话框,在右边选择数对话框,在右边选择数据库所在的目录,左边选择指定的数据库。据库所在的目录,左边选择指定的数据库。536)单击两次)单击两次“确定确定”按钮,返回按钮,返回“ODBC数据源管理器数据源管理器”对话框,可对话框,可以看到以看到“班级学生班级学生”数据源显示在数据源显示在“系统系统DSN”选项卡的列表框中。选项卡的列表框中。545.4.3ADO简介简介ADO对象模型主要包括连接对象模型主要包括连接(Connection)、命令命令(Command)、记录集记录集(Recordset)、错误错误(Error)、参数参数(Parameter)、字段字段(Field)对象对象对象对象描述描述Connection提供了访问数据源的途经,指定连接的数据库提供了访问数据源的途经,指定连接的数据库Command将对数据源执行的指定命令将对数据源执行的指定命令Recordset执行查询所得到的记录集执行查询所得到的记录集Error连接的错误信息连接的错误信息Parameter与命令对象相关的参数与命令对象相关的参数Field表示记录集中的字段信息表示记录集中的字段信息Property体现体现ADO对象的特性对象的特性555.4.4ADOData控件控件用用ADO控件创建数据库应用程序:控件创建数据库应用程序:1)添加)添加ADO控件到工具箱。创建一个新的控件到工具箱。创建一个新的VB工程,单击工程,单击“工程工程”菜单菜单“部件部件”,打开,打开“部件部件”对话框,选中对话框,选中“MicrosoftADODataControl6.0(OLEDB)”单击单击“确定确定”按钮。按钮。562)双击工具箱中的)双击工具箱中的ADO控控件将其添加到窗体上并适件将其添加到窗体上并适当调整其位置。当调整其位置。3)单击该控件的)单击该控件的ConnectionString属性右属性右侧的侧的按钮,出现按钮,出现“属性属性页页”窗口,选择窗口,选择“使用使用ODBC数据源名称数据源名称”,选,选择择“班级学生班级学生”数据源,数据源,单击单击“确定确定”按钮。按钮。574)单击该控件)单击该控件RecordSource属性右属性右侧的侧的按钮,选择相按钮,选择相应的数据表。应的数据表。5)至此,)至此,ADO控件的配控件的配置完毕。在置完毕。在VB窗体上窗体上添加标签与文本框控添加标签与文本框控件,文本框的名字从件,文本框的名字从上到下依次为上到下依次为txtNum、txtName、txtClass、txtOrigin。586)分别设置各文本框的)分别设置各文本框的DataSource属性和属性和DataField属性,属性,各文本框的各文本框的DataSource属性均为属性均为Adodc1,DataField属属性则分别为学号、姓名、班级、来源。性则分别为学号、姓名、班级、来源。7)单击运行按钮,运行结果如图所示。)单击运行按钮,运行结果如图所示。595.4.5ADO编程编程基于基于ADO的应用程序存取数据源的主要步骤如下:的应用程序存取数据源的主要步骤如下:1)连接到指定的数据源;)连接到指定的数据源;2)打开记录集对象;)打开记录集对象;3)对记录集进行添加、删除、修改、查询记录等操作;)对记录集进行添加、删除、修改、查询记录等操作;4)关闭已打开的连接。)关闭已打开的连接。两个两个ADO对象:对象:Connection对象对象Recordset对象对象601)用)用CONNECTION对象连接到数据源对象连接到数据源State属性:属性:AdStateClosed(关闭,默认)关闭,默认)AdStateOpen(打开)打开)Open方法:打开到数据源的连接,如果能成功打开方法:打开到数据源的连接,如果能成功打开数据源,就可以对它发出命令并且处理结果数据源,就可以对它发出命令并且处理结果语法为:语法为:Connection.OpenConnectionString,UserID,Password,OptionsClose方法:方法:Connection.Close例:例:DimcnnAsADODB.ConnectionSetcnn=NewADODB.Connectioncnn.open“DSN=Student”con.close:setconnothing612)用)用RECORDSET对象表示执行查询所得到的记录对象表示执行查询所得到的记录集集BOF、EOF属性:属性:BOF指明当前记录的位置位于指明当前记录的位置位于Recordset对象的第一个记录之前,对象的第一个记录之前,EOF指明当前记指明当前记录的位置位于录的位置位于Recordset对象的最后一个记录之后。对象的最后一个记录之后。RecordCount属性:属性:返回返回Recordset对象中的记录数目。对象中的记录数目。Fields属性:属性:包含包含Recordset对象的所有字段对象。对象的所有字段对象。假设假设rst是一个是一个Recordset对象,则此记录集的第对象,则此记录集的第1个个字段可以用字段可以用rst.Fields(0)来表示;而来表示;而rst.Fields.Count则用于返回记录集的列数。则用于返回记录集的列数。62Open方法方法Open方法用于打开基本表、查询结果或者以方法用于打开基本表、查询结果或者以前保存的前保存的Recordset中记录的游标。中记录的游标。Open方方法的语法为:法的语法为:Recordset.OpenSource,ActiveConnection,CursorType,LockType,OptionsClose方法方法Close方法用于关闭记录集对象。方法用于关闭记录集对象。63DimcnnAsADODB.ConnectionDimrstAsADODB.RecordsetSetcnn=NewADODB.ConnectionSetrst=NewADODB.Recordsetcnn.open“DSN=Student”str”select*fromcourse”rst.openstr,cnn,adOpenStatic,adLockOptimistic.rst.Fields(i).rst.CloseSetrst=Nothing645.5VB与与SQLServer数据库关联数据库关联5.5.1VB与与ACCESS7.0数据库关联数据库关联使用控件实现使用控件实现VB和和ACCESS关联的步骤为:关联的步骤为:1)建立数据库)建立数据库652)与数据库关联)与数据库关联关联的具体步骤如下:关联的具体步骤如下:在窗体上添加数据控件(在窗体上添加数据控件(Data):如):如Data1。设置数据控件的相应属性:如设置数据控件的相应属性:如Connect属性为属性为“Access”、DatabaseName属性为属性为“试验试验.mdb”、RecordsetType属性为属性为“0-Table”、RecordSource属性属性为为“学生信息表学生信息表”。在窗体上添加数据绑定控件:在窗体上添加数据绑定控件:在在VB窗体上添加标签与窗体上添加标签与文本框控件,文本框的名字从上到下依次文本框控件,文本框的名字从上到下依次为为txtNum、txtName、txtClass、txtOrigin。设置各数据绑定控件的设置各数据绑定控件的DataSource、DataField属性:属性:分别设置各文本框的分别设置各文本框的DataSource属性属性为为Data1,DataField属性则分别为学号、姓名、班级、来源。属性则分别为学号、姓名、班级、来源。运行运行VB程序,查看关联结果。程序,查看关联结果。665.5.2VB与与SQLServer数据库关联数据库关联SQLServer关系数据库的管理系统关系数据库的管理系统.SQL SERVER最初是由微软和最初是由微软和sybase公司开发的。公司开发的。后来微软将后来微软将sql server移植到移植到NT上,而上,而sybase注重注重于在于在unix上的开发。上的开发。SQL SERVER对对SQL 进行了有进行了有针对性的扩展,它开发的针对性的扩展,它开发的sql语句,叫语句,叫transact sql,ORACLE的的sql语言叫语言叫PL/SQL。VB与与SQLServer数据库关联的步骤:数据库关联的步骤:1)建立)建立SQLServer数据库数据库2)创建)创建ODBC数据源数据源3)与)与VB建立连接建立连接4)保存并运行)保存并运行VB工程,可以查看相应的数据工程,可以查看相应的数据671)建立)建立SQLServer数据库数据库启动启动SQLServer服务:在服务:在Windows2000Server环境下,环境下,单击单击“开始开始”菜单菜单“程序程序”“MicrosoftSQLServer”“服务管理器服务管理器”,单击,单击“开始开始/继续继续”按钮。按钮。68创建数据库:单击创建数据库:单击“开始开始”菜单菜单“程序程序”“MicrosoftSQLServer”“企业管理器企业管理器”,即可进入企业管理器界面。展开控制,即可进入企业管理器界面。展开控制台根目录,右击数据库选择台根目录,右击数据库选择“新建数据库新建数据库”(如左图示)(如左图示),就会,就会出现出现“数据库属性数据库属性”对话框(如右图示)对话框(如右图示),输入数据库名称,输入数据库名称(student),),单击单击“确定确定”即可即可。69创建表:选择新建的创建表:选择新建的“student”数据库右键选择数据库右键选择“新建新建”“表表”命令(如左图示),即会出现创建表命令(如左图示),即会出现创建表的对话框(如右图示)。创建表之后单击的对话框(如右图示)。创建表之后单击“保存保存”,将该表的名称保存为将该表的名称保存为“stuInfo”。70输入数据:选择新建的输入数据:选择新