背景:                 
[本书目录] [图书首页] [本书讨论区]  
链接地址:http://www.17xie.com/read-3386.html    注册17xie 一起来写书 实现您的出书梦想!

7  Visual Basic的数据库功能

学习目标

VB在数据库方面提供了强大的功能和非常丰富的工具,本章介绍有关数据库的基本概念与基本知识,以及在Visual Basic中访问数据库的基本方法主要内容包括:数据库的基础概念、关系数据库的特点、SQL常用语句的使用、使用VB自带的可视化数据管理器创建数据库、使用AccessSQL Server创建数据库、ADO数据控件与ADO数据对象编程等知识。本章共有8个实例和1个项目。

实训项目

1.项目题目

教师资料表

2.项目要求

设计集全面功能(包括插入、删除、修改、随机查询、连接查询、汇总统计、查询定位、即时SQL命令查询、主子表关联查询等)于一体的数据表操作窗口。

3.项目界面及其要求

其运行界面如图7-1所示。

一般来说,数据库按其结构主要分为层次型、网络型和关系型三类。目前在计算机上广泛使用的是关系型数据库。

7.1  数据库基础

数据库技术是现代社会信息处理的最优技术,目前它是各行各业信息处理中广泛应用着的技术。数据库技术所研究的问题是如何科学地组织和存储数据,如何高效地获取和处理数据。

VB6.0提供了强大的数据库管理能力,可以访问的数据库类型有AccessFoxProdBase等本地数据库;还可以通过ODBC方式访问MS SQL ServerOracleSybase的等客户端/服务器数据库。

7.1.1  数据库管理系统概述

1.数据库系统组成

一个数据库系统通常由5部分组成,包括相关的计算机硬件、数据库集合、数据库管理系统、相关软件和人员。

1)计算机硬件系统。一个数据库系统需要有足够容量的内存与外存来存储大量的数据,同时需要有足够快的处理器来处理这些数据,以便快速响应用户的数据处理和数据检索请求。对于网络数据库系统,则还需要有网络通信设备的支持。

2)数据库集合。数据库不仅包含数据本身,而且还包括数据之间的联系。数据库中的数据通常可以被多个用户和(或)多个应用程序所共享。在一个数据库系统中,常常可以根据实际应用的需要创建多个数据库。

3)数据库管理系统。数据库管理系统用来对数据库进行集中统一的管理,是帮助用户创建、维护和使用数据库的软件系统。数据库管理系统是整个数据库系统的核心。

4)相关软件。除了数据库管理系统软件之外,一个数据库系统还必须有其他相关软件的支持。这些软件包括:操作系统、编译系统、应用软件开发工具等。对于大型的多用户数据库系统和网络数据库系统,则还需要多用户系统软件和网络系统软件的支持。

5)人员。数据库系统的人员包括数据库管理员和用户。在大型的数据库系统中,需要有专门的数据库管理员来负责数据库系统的日常管理和维护工作。而数据库系统的用户则可以根据应用程度的不同,分为专业用户和最终用户。

2.数据库管理系统的组成

数据库管理系统DBMSDataBase Management System)是用来控制数据存取及维护数据的计算机系统软件,它提供统一的控制机制,是连接用户和计算机的桥梁。DBMS3部分组成:

1数据描述语言DDLData Description Language)用于建立数据库和数据表。

2数据操作语言DMLData Manipulation Language)用于进行数据操作、查询。

3其他管理和控制,如输入、输出等。

3.数据库管理系统的功能

总体来说,数据库管理系统主要有以下几个功能:

1)数据定义功能

数据库管理系统软件都具有专门的数据定义语言,用于描述数据库的结构。例如关系型数据库管理系统的标准语言SQL,有CREATEALTERDROP等命令分别用来创建、修改、删除关系数据库的二维表结构。

2)数据操作功能

数据库管理系统提供的数据操作功能,可支持用户对数据库中的数据进行查询、追加、插入、删除、修改、更新、统计、排序等操作。不同的数据库管理系统实现数据操作的方法和命令格式不尽相同。

3)控制和管理功能

数据库管理系统必须具有控制和管理功能,以保障数据资源的安全。通常的安全措施包括对数据的备份、恢复和转储等功能,对用户的身份检查和用户权限控制,以及在多个用户同时操作数据库时进行并发控制等。数据库系统规模越大,要求的这类功能也就越强。

4)数据字典

数据库管理系统通常提供数据字典功能,以便对数据库中数据的各种描述进行集中管理。数据字典中存放了系统中所有数据的定义和设置信息,例如字段的属性、字段间的规则和记录间的规则、数据表之间的联系等。用户可以利用数据字典功能,为数据表的字段设置默认值、创建表之间的永久关系等。

7.1.2  关系数据库

1.关系数据库中的术语

关系型数据库通常由许多二维关系的数据表集合而成,通过建立数据表之间的相互连接关系来定义数据库结构。在关系型数据库中主要用到以下常用术语:

l          关系:一个关系就是一张符合一定条件的二维表格,每个关系有一个关系名。

l          元组:在一个具体的关系(二维表格)中,每一行被称为一个元组,或者称为一个记录。

l          属性:在一个具体的关系(二维表格)中,每一列被称为一个属性,或者称为一个字段。

l          域:是属性的取值范围,即不同元组对同一个属性的取值所限定的范围。例如【性别】属性的域范围为【男】和【女】;【成绩】属性的域是0100等。

l          关键字:在一个关系中有一个或几个这样的属性(字段),其值可以惟一地标识一个元组(记录),便称之为关键字。例如,教工档案表中的【编号】字段就可以作为关键字,而【职称】字段则因其值不惟一而不能作为关键字。

l          关系模式:对关系的描述称为关系模式。一个关系模式对应于一个关系结构,它是命名的属性集合。其格式为:关系名(属性名1,属性名2,…,属性名 n)。

如果从集合论的观点来定义关系,可以将关系定义为元组的集合;关系模式是命名的属性集合;元组是相关的属性值的集合;而一个具体的关系模型则是若干个相联系的关系模式的集合。

2.关系数据库的特点

在关系模型中,每一个关系都必须满足一定的条件,即关系必须规范化。一个规范化的关系必须具备以下几个特点:

1)每个属性必须是不可分隔的数据单元,即表中不能再包含表。或者说,每一个字段不能再细分为若干个字段。

2)在同一个关系中不能出现相同的属性名。

3)在一个关系中不允许有完全相同的元组。

4)在一个关系中任意交换两行的位置不影响数据的实际含义。

5)在一个关系中任意交换两列的位置不影响数据的实际含义。

7.1.3  常用的SQL语句

SQLStructure Query Language的缩写,中文翻译为【结构化查询语言】。它现在已成为国际标准的数据库语言,是现代各种关系数据库系统广泛采用的数据库语言。许多数据库和软件系统都支持SQL和提供SQL接口。下面介绍SQL的常用语句。

1SQL语句的组成

SQL语言由命令、子句、运算和函数等组成。利用它们可以组成所需要的语句,以建立、更新和处理数据库数据。

1SQL主要的命令名及功能如下:

l          CREATE:用于建立新的数据库结构。

l          DROP:用于删除数据库中的数据表以及索引。

l          ALTER:用于修改数据库结构。

l          SELECT:用于查找符合设定条件的某些记录。

l          INSERT:用于向数据库中加入数据。

l          UPDATE:用于更新特定记录或字段的数据。

l          DELETE:用于删除记录。

2SQL命令中可能用到的子句及功能为:

l          FROM:用于指定数据所在的数据表。

l          WHERE:用于指定数据需要满足的条件。

l          GROUP BY:将选定的记录分组。

l          HAVING:用于说明每个组需要满足的条件。

l          ORDER BY:用于确定排序情况。

3SQL的运算符有逻辑运算符和比较运算符两类:

l          逻辑运算符:AND(与),OR(或),NOT(非)。

l          比较运算符:<<=>>==<>等。

4SQL集函数有:

l          AVG:求平均值。

l          COUNT:记录记数。

l          SUM:求和。

l          MAX:求最大值。

l          MIN:求最小值。

2SQL语句应用

1)建立数据表

语句格式:CREATE TABLE数据表名称(字段名1 数据类型[(长度)],字段名2 数据类型[(长度)],……)

【实例7.1  建立一个文件名为student的数据表,表中含有两个字段,分别为sno(学号)sname(姓名)

CREATE TABLE student(sno Text(5),sname Text(6))

2)添加字段

语句格式:ALTER TABLE表名ADD COLUMN 字段名 数据类型[(长度)]

【实例7.2  在表student中,增加一个【ssex】即【性别】的字段

ALTER TABLE student ADD COLUMN ssex Text (2)

3)删除字段

语句格式:ALTER TABLE数据表名DROP COLUMN 字段名

【实例7.3  删除student表中的【性别】字段。

ALTER TABLE student DROP COLUMN ssex

4)数据查询

语句格式:SELECT字段名表1                          

        FROM 表名1[[,表名2],……]

        WHERE 条件表达式1

        GROUP BY 字段名表2

        HAVING 条件表达式2

        ORDER BY 字段名表3

【实例7.4  查询student表中,性别为【男】的记录。

SELECT * FROM student WHERE ssex="" SELECT sno,sname,ssex FROM xsh WHERE ssex=""

即:【*】代表数据表中的所有字段。

另外,在SELECT语句中,可以加入INTO子句,把查询结果制表,即查询结果形成一个新的数据表。如:SELECT * INTO student2 FROM student WHERE ssex=""

5)添加记录

语句格式:INSERT INTO 表名[(字段名1,字段名2,……)] VALUES(数据1,数据2,……)

【实例7.5  student表增加一个记录:学号为【98008】,姓名为【李淘】,性别为【女】。

INSERT INTO student(sno,sname,ssex) VALUES(98008,"李淘","")

6)删除查询结果

语句格式:DELETE FROM 表名WHERE 条件表达式

【实例7.6  删除student表中性别为【男】的记录。

DELETE FROM student WHERE ssex=""

7)更新查询结果

语句格式:UPDATE 表名 SET 字段名1=新数据值1[,字段名2=新数据值2][,……]

        WHERE 条件表达式

【实例7.7  student表中姓名【李淘】改为【李萍】

UPDATE student SET sname="李萍" WHERE sname="李淘"

特别需要说明的是,SQL语句在Visual Basic的执行,是通过把整个SQL语句作为对象如DatabaseQueryDefADO对象的Excute方法的参数来使用的。SQL语句往往由相应数据库管理系统具体解释执行的,SQL语句应符合该数据库管理系统的语法要求。

7.2  数据库的创建

要使用数据库编程,首先需要创建数据库。创建数据库的方法有很多种,其中最简单的方法就是使用VB自带的可视化数据管理器,除此之外,还可以使用Microsoft Office组件之一Access创建数据库,如果要进行大型的数据库编程,则需要使用Microsoft SQL ServerOracle创建客户端/服务器数据库。

7.2.1  VB的可视化数据管理器

可视化数据管理器(Visual Data Manager)是VB提供的一个非常实用的、可视化的数据库管理工具。使用它可以非常方便地完成创建数据库、建立数据表、数据库查询等工作。可视化的工作界面为用户带来了极大的方便。

使用VB的可视化数据管理器创建数据库的方法如下:

1)启动VB,单击菜单【外接程序】/【可视化数据管理器】命令,打开【VisData】窗口。单击菜单【文件】/【新建】/Microsoft Access/Version 7.0 MDB】命令,如图7-2所示。

7-2  单击【Version 7.0 MDB】命令

2)在打开的对话框中选择数据库保存位置及名称,单击【保存】按钮后即可新建一个空数据库。在如图7-3所示的【数据库】窗口中右击,从弹出的菜单中选择【新建表】命令

7-3  选择【新建表】命令

3)打开【表结构】对话框,单击【添加字段】按钮,打开【添加字段】对话框。分别输入字段名称、类型、大小等信息,完成后单击【确定】按钮,继续添加下一个字段。如果全部添加完毕,则单击【关闭】按钮退出并返回到【表结构】对话框中如图7-4所示。

7-4  添加字段

4)返回到【表结构】对话框后,还需要为表创建一个索引(关键字),单击【添加索引】按钮,打开如图7-5所示的对话框,从【可用字段】中选择要添加为索引的字段,然后在【名称】中输入索引的名称,单击【确定】按钮。

5)返回到【表结构】对话框,添加的索引显示在【索引列表】中。最后在【表名称】文本框中给此表命名,然后单击【生成表】按钮,即可创建该表,如图7-6所示。

 

7-5  添加索引                              7-6  输入【表名称】

6)在【数据库窗口】中双击新建的表,打开表输入数据窗口,如图7-7所示。可以向表中输入具体的数据,不过要按下【VisData】窗口中工具栏上的 按钮,否则无法向表中输入数据。

7-1  教师表综合操作窗口

该窗体实现的功能概述如下:

窗体实现功能的特点是:所有数据库操作,均利用ADO数据对象编程实现,未用到任何现成数据控件;操作简捷、方便、灵活。运行该窗体能在教师主表的所有记录,课程子表则显示第一个教师对应的担任课程情况,单记录区也显示该记录的每个字段值。当你单击教师表数据网格不同行时,课程子表与单记录区显示内容相应变化。体现关联性。

单记录区8个文本框未与数据集绑定。当显示某记录时,若对某些字段值作了修改,按【修改】按钮,即能直接修改到数据库中,并能在教师主表中相应显示修改情况;按【删除】按钮能删除工号文本框中对应值的教师记录;8个文本框中输入了新教师记录值后,若按【插入】按钮,能立刻插入该记录值;按【刷新】按钮能再次全部显示数据库中教师表的记录;按【随机查询】按钮,某字段能自动与第一个非空文本框(顺序为Text1Text2……Text8)中内容相应相等比较形成查询条件,查询后左上教师数据网格中将只显示满足该查询的记录了,这体现了与DataGrid1数据网格绑定记录集的动态性,在其他查询、统计中也将利用到记录集的动态变化性,若再要显示全部教师记录,则需按【刷新】按钮了;【明细查询】按钮能实现各种SQL动态查询与显示功能,动态SQL命令可输入于Text8文本框中,若Text8文本框中为空,则显示预置的教师与课程表的连接查询内容(SQL命令见下面程序);【汇总统计】主要面向带统计功能的SQL命令,同样带统计功能的SQL命令可放于Text8文本框中,若其为空,则执行预先设定的【select 性别,count(*) as 人数 from js group by  性别SQL命令,实现分性别教师人数显示功能;其他命令按钮如【清空】、【第一】、……等其功能一目了然,不必多言了。

需要强调的是:插入、删除与修改操作均以Text1文本框中的工号为基准,操作时多加注意,另删除、修改前会弹出信息框,要求操作确认。


字数:8737    最后更新:1年以前 [09-07 15:39]我爱钱 修改
本页编辑者:我爱钱  
[前一页]:第六章  [后一页]:第七章
[在本页中加入书签] [收藏本书] [推荐本书]
  17xie论坛 > 本书讨论区 > 本页评论   (共0条)
发表评论

用户名称 匿名发表
评论内容
验证码

关于我们 | 版权声明 | 免责声明 | 诚聘英才 | 联系我们 | 合作伙伴 | 友情链接 | 广告合作 | 提交意见
Copyright © 2007 17xie.com 互联网协同写书平台 京ICP备08002671号