Visual Basic作为应用程序的开发“利器”也表现在数据库应用程序的开发上,它良好的界面和强大的控件功能使数据库编程变得简单多了。但即便如此,数据库应用程序的开发仍然算得上是VB编程中的难点,这是因为你不仅要熟悉VB中关于数据库编程方面的知识(当然这是十分简单的)还要了解数据库的知识。所以我们先介绍一下数据库的基本知识,算是学习数据库编程前的热身运动吧!
一、热身运动
首先需要声明是,我们这里介绍的数据库知识都是指的关系数据库。所谓关系数据库就是将数据表示为表的集合,通过建立简单表之间的关系来定义结构的一种数据库。
不管表在数据库文件中的物理存储方式如何,它都可以看作一组行和列,与电子表格的行和列类似。在关系数据库中,行被称为记录,而列则被称为字段。下面是一个客户表的例子。
表1 客户表
客户号 姓名 地址 城市 街道 邮编
1723 Doe John 1234 Ffth Avenue New York NY 1004
3391 Smith Mary 9876 Myrtle Lavee Bosten MA 6078
3765 Blasel Mortimer 2296j River Road peoria IL 7011
此表中每一行是一个记录,它包含了特定客户的所有信息,而每个记录则包含了相同类型和数量的字段:客户号、姓名等等。
表 是一种按行与列排列的相关信息的逻辑组,类似于工作单表。
字段 数据库表中的每一列称作一个字段。表是由其包含的各种字段定义的,每个字段描述了它所含有的数据。创建一个数据库时,须为每个字段分配一个数据类型、最大长度和其它属性。字段可包含各种字符、数字甚至图形。
记录 各个客户有关的信息存放在表的行,被称为记录。一般来说,数据库表创建时任意两个记录都不能相同。
键 键就是表中的某个字段(或多个字段),它(们)为快速检索而被索引。键可以是唯一的,也可以是非唯一的,取决于它(们)是否允许重复。唯一键可以指定为主键,用来唯一标识表的每行。例如,在前面的例子中,客户标识号 (客户号) 是表的主键,因为客户号唯一地标识了一个客户。
关系 数据库可以由多个表组成,表与表之间可以以不同的方式相互关联。例如,客户数据库还可以有一个包含某个客户的所有定单的表。它只用“客户号”字段来引用该定单的客户,而不在定单表中的每项重复所有客户信息,如下表所示:
表2 定货表
定货 客户号 日期 内容 数量
14764 3391 2/23/94 27 $2295
14932 3391 3/17/94 46 $957
15108 8765 2/15/96 27 $2295
在这个表中,客户号字段引用了客户表中的 客户号字段,从而把定单和客户联系起来了。可以看到,客户 3391 (Mary Smith) 在 94 年 2 月 23 日订购了 27 项,在 94 年 3 月 17 日订购了 46 项。用来建立关系的键叫做外部键,因为它与“外部”表(客户表)的主键关联。
一对多和多对多关系 上表中的关系类型叫做一对多关系,因为一个客户可以发出多个定单,而某个特定的定单只能是一个客户所发。也可以建立多对多的关系。例如,列出所有可以销售的项(存货)的盘存表:
表3 盘存表
内容 描述 供应商 费用 盘存
27 Straw Hat Garden Supply Co $1400 50
46 Garden gloves Garden Supply Co $450 75
102 hanging floral industries $600 137
从盘存表中,可以看到在客户和存货项之间存在多对多的关系。也就是说,一个客户可以订购多个存货项,而一个存货项又能够被多个客户订购。多对多关系是通过两个独立的一对多关系来定义的,公共的“多”表包含了两个其它表的外部键。在该例中,定货s 表与 盘存 表(通过 “内容”)与 Customer 表(通过 客户号)都相关联。通过这三个表,我们可以看到,Mary Smith (客户号 3391) 订购了 Straw Hat (“内容” 27) 和Garden Gloves (“内容” 46),而 Mary Smith (客户号 3391) 和 Mortimer Blaselflatz (客户号 8765) 都订购了Straw Hat (“内容” 27)。如果把客户表和盘存表的相关字段与 定货表的“定货”字段联结起来,建立一个“关联”表,那么这个关系就更清楚了。
表4 关联表:按客户号和内容排序
定货号 客户号 姓名 内容 描述
14764 33391 Smith Mary 27 Straw Hat
14932 33391 Smith Mary 46 Garden Gloves
15168 8765 Blaselfatz Mortimer 27 Straw Hat
规范化 数据库设计者的任务就是组织数据,而组织数据的方法,应能消除不必要的重复,并为所有必要信息提供快速查找路径。为了达到这种目标而把信息分离到各种独立的表中去的过程,叫作规范化。
规范化是用许多指定的规则和不同级别的范式来进行规范的复杂过程。该过程的研讨已超出了本文的范围。但是,大多数简单数据库的规范化可以用下面简单的经验规则来完成:包含重复信息的表必须分成独立的几个表来消除重复。
例如,使学生和课程对应的学生数据库,包含了下表所示的信息。
表5
学生 课程 描述 教授
1 4 Introduction to Physiology Dawson
2 3 Applied Basketweaing Carruth
3 1 Physics for Short-定货 cooks Adms
4 2 Introduction to Physiology Dawsons
如果有选学了十二门课程的 1000 个学生,每门课程的说明和教师将显示100多次— 对选了那门课程的每个学生都要重复一次。要避免这种低效率,应当把表分成两个独立的表来规范化,一个用来表示学生,另一个用来表示课程,如表6,表7所示。
学生 课程
1 4
2 3
3 1
4 4
课程 描述 教授
1 Physics for Short-定货 cooks Adms
2 Counterculture Sociology Beckely
3 Applied Basketweaing Carruth
4 Introduction to Physiology Dawsons
表6
表7
现在表被规范化了,所以,要改变特定课程的课程描述或“数据”,只要改变一个记录就可以了。
以上是关于数据库的基本知识,这是学习数据库编程所必须的。虽然数据库技术作为一门学科,其深度和广度不是这点篇幅能描述的,但作为入门和简单数据库编程应该是足够了。
好了,下面我们就可以开始练练了。我们经常遇到数据库系统是登记系统,不管你是在单位,或是参加什么组织,登记是免不了的,而且它的结构比较简单,我们就以一个登记系统为例吧。分析一下该系统所涉及到的数据。
二、磨刀不误砍柴功
对于登记,要跟踪的信息包括:
● 姓名 ● 性别
● 籍贯 ● 年龄
● 出生年月 ● 单位
● 地址 ● 邮政编码
● 电话 ● 传真
当然,可以简单地创建一个表,使得上述的每个数据项对应一个字段。
现在需要给表指派主键,用以唯一标识每一条记录,在登记表中分别添加登记号作为唯一键,这样就保证数据库中的任两条记录都不同了。
对数据库作出以上分析后,我们就可以开始建立数据库了。
三、建营扎寨
在这里我们学习怎样建立数据库,首先需要确定要建立数据库的类型。在Visual Basic中通过数据访问控件或数据访问对象(DAO)可以访问下列数据库:
1. JET数据库,即Microsoft Access
2. ISAM数据库,如:dBase,FoxPro等
3. ODBC数据库,凡是遵循ODBC标准的客户/服务器数据库。如:Microsoft SQL Server、Oracle
一般来说,如果要开发个人的小型数据库系统,用Access数据库比较合适,要开发大、中型的数据库系统用ODBC数据库更为适宜。而dBase和FoxPro数据库由于已经过时,除非特别的情况,否则不要使用。在我们的例子中,当然选用Access数据库了。建立Access数据库有两种方法:一是在Microsoft Access中建立数据库。点击“新建”按钮就可以建立新的表了(如图1)。这里我们主要介绍第二种方法:使用可视化数据管理器,不需要编程就可创建数据库。可视化数据管理器是一个非常有用的应用程序,它是VB企业版和专业版附带的,在目录DevStudiovbsamplesVisdata下,其界面如下图。
点击菜单“文件”项下“新建”子项“Microsoft ACCESS”子项的“版本70 MDB”项。在d出窗口中输入新建数据库的名称“登记”,出现下面图3所示窗口:
要生成新的表,右键单击数据库窗口d出菜单,然后选择“新表”命令,在随后出现的“表结构”对话框中建立所要的字段。每次向表中加入新的字段,单击“增加字段”按钮,会出现图4 的“增加字段”对话框。
“增加字段”对话框中的选项如表10所示,根据字段的类型,有些选项是无效的,无法读取。
在我们建立的登记数据库中,各个字段的类型如表11。
要注意的是,由于字段登记号用来唯一标志记录的,因此,它不能由用户输入。所以在定义该字段时需要定义为Long数据类型,“自动生成字段”项有效,并选中这一项。这样当用户每输入一条新记录时,系统就会在该字段上自动输入一个与其它记录不同的值。
在ACCESS数据库中,关键字是用索引实现的,作为编程人员在对表类型的记录集编程时,只需调用索引名。在查询时,Rushmore技术自动用索引信息优化查询。完成表定义后,点击“增加索引”按钮,d出如图5所示窗口。
在窗口中右边有三个选项,其意义如表 12。
添加索引对话框选项
完成之后如图6。
当然,学会数据库的建立也并非一朝一夕的事,读者不妨多练习一下。下面你就可以运行VB开始我们的编程了。
四、千里相会
Visual Basic 数据库应用程序有三个部分,如图7所示。
用户程序是程序员开发的,也是我们即将用VB来编写的部分。数据库引擎是数据库驱动程序,使用它程序员可以用统一的格式访问各种数据库,不管这个数据库是本地的 Visual Basic 数据库,还是所支持的其它任何格式的数据库格式,所使用的数据访问对象和编程技术都是相同的。数据库则是我们上面完成的部分。从这个结构可以看出用户与正在访问的特定数据库无关。那我们在用VB编写数据库程序时,就需要使程序能够访问指定的数据库。
如果是简单的数据库应用,可以使用 Data 控件来执行大部分数据访问 *** 作,而根本不用编写代码。与 Data 控件相捆绑的控件自动显示来自当前记录的一个或多个字段的数据。
DATA数据控件
属性
CONNECT属性 指定打开的数据库类型,并且包括参数,如用户和口令等。
例如:
打开Access数据库(缺省)
CONNECT=“ACCESS”
打开ODBC数据库
CONNECT=“ODBC;DATABASE=??;UID=??;PWD=??;DSN=??”
DATABASENAME属性 确定数据控件访问哪一个数据库。
对于多表数据库它为具体的数据库文件名,例如:ACCESS数据库
DATABASENAME=“D:DEMOMDB"
对于单表数据库它为具体的数据库文件所在的目录,而具体文件名放在RECORDSOURCE属性中,例如:访问FOXPRO数据库文件D:FOXDEMODBF
DATABASENAME=“D:FOX”
RECORDSOURCE=“DEMO”不带文件扩展名
RECORDSOURCE属性
确定数据控件的记录集,即:所要访问的数据内容。它可以是一个表名、存储查询名或SQL语句。例如:访问Register表所有数据 :
RECORDSOURCE=“Register”访问RC表中1973年以前出生的数据:
RECORDSOURCE=“SELECT FROM Register WHERE [BIRTHDAY]<#1/1/1973#"
注意:当我们在运行时修改了该属性后,需要调用REFRESH方法刷新记录集。
方法
REFRESH方法 当我们在运行时修改了Record-
Source属性后,需要调用该方法刷新记录集。
UPDATERECORD方法 将绑定在数据控件上的控件的数据写入数据库中。即:当我们修改了数据后调用该方法确定修改。
CANCELUPDATE方法 将数据库中的数据重新读到绑定在数据控件上的控件中。即:当我们修改了数据后调用该方法放弃修改。
事件
VALIDATE事件 当我们移动记录集记录指针时发生。例如:我们将记录集记录指针从A移动到记录B时当产生VALIDATE事件时,记录指针仍在记录A上。
Sub XXXX_Validate(Action As integer,Save As integer)
其中:
Action 指出如何产生了该事件,如:移动,增加,查询等。
Save 表示是否保存已修改的数据。当我们修改了绑定在数据控件的数据,又没有UPDATERECORD,则移动指针时,Save=True。如果在事件中令Save=False,则放弃修改。
例如:
Sub XXXX_Validate(Action As integer,Save As integer)
If Save then
I= MsgBox("Dada changed,Save",vbYesNo)
If I = vbNo then
Save = False
End if
End if
End Sub
Reposition事件 当我们移动记录集指针时发生。例如:我们将记录集记录指针从A移动到记录B 时,当产生Reposition事件时,记录指针已移动到B上。
通常我们在该事件中显示当前的指针位置。例如:
Sub XXXX_Reposition()
XXXXCaption=
XXXXRecordSetAbsolutePosition + 1
End Sub
了解了DATA控件之后我们就可以连接数据库了。现在我们可以编写一个应用程序。因为虽然我们建立了Register数据库,但是数据库中却没有数据,我们程序的目的就是向数据库中输入数据。它的运行情况如图8。
各个文本框正好对应着表Register的各个字段,在文本框中输入数据,点击“增加”按钮,就完成了一条记录的输入。我们看一下,DATA控件是怎样和数据库连接起来的,各个文本框又是怎样和DATA控件捆绑起来的。
在DATA控件的CONNECT属性中,选中“ACCESS”项,在DatabaseName属性中,输入“C:TEMP登记mdb”,在RecordSource属性中,选中“Register”,这样就完成了数据库与DATA控件的连接,也就是完成了与应用程序的连接。
数据库中各个字段又是怎样和文本框连接起来的呢?在VB中,我们可以将普通控件绑定在数据控件上,来完成自动地显示、更新记录集的数据。常用的可绑定的控件有:Label,Text,checkBox,Image等。通过设置这些控件的DataSource和DataField属性来完成绑定。
DataSource 属性 表示绑定到哪一个数据控件上,程序中我们可能使用多个数据控件。
DataField 属性 表示绑定到记录集的哪一个记录上。
现在我们需要把Text1与表“登记”中的姓名字段连接起来。完成DATA控件的连接之后,在Text1控件的DataSource属性中,选中“Data1”,在DataField属性中,选中“姓名”值。用同样的方法,将各个文本框分别绑定到对应的字段上,就完成了文本框的捆绑。
下面我们编写两个按钮命令,完成其相应的 *** 作了。喂!别着急,还有一个重要的对象没讲呢!
当应用程序启动时,Data 控件被自动地初始化。如果 Connect、DatabaseName、Options、RecordSource、Exclusive、ReadOnly 和 RecordsetType 属性是合法的, Microsoft Jet 数据库引擎就会试图创建一个新的基于这些属性的 Recordset 记录集对象。Recordset 对象可以表示表中的记录或者作为查询结果的记录,使用 Recordset 对象可以在记录一级上对数据库中的数据进行处理。这在数据库编程中是一个十分重要的,也是比较复杂的对象。
Recordset 对象有三种类型:表、动态集、快照,它们之间存在明显的区别。
表类型的 Recordset 对象是指当前数据库中的表在创建表类型的记录集时,数据库引擎打开的表。后续的数据 *** 作都是直接对表进行的。只能对单个的表打开表类型的记录集,而不能对联接或者联合查询打开表类型的记录集。与其它类型的 Recordset 对象相比,表类型的搜索与排序速度最快。
动态集类型的 Recordset 对象可以是本地的表,也可以是返回的行查询结果。它实际上是对一个或者几个表中的记录的一系列引用。可用动态集从多个表中提取和更新数据,其中包括链接的其它数据库中的表。动态集类型具有一种与众不同的特点:不同数据库的可更新联接。利用这种特性,可以对不同类型的数据库中的表进行可更新的联接查询。动态集和它的基本表可以互相更新。如果动态集中的记录发生改变,同样的变化也将在基本表中反映出来。在打开动态集的时候,如果其他的用户修改了基本表,那么动态集中也将反映出被修改过的记录。动态集类型是最灵活的Recordset 类型,也是功能最强的。不过,它的搜索速度与其它 *** 作的速度不及表类型的 Recordset。
快照类型的 Recordset 对象包含的数据是固定的,它反映了在产生快照的一瞬间数据库的状态。从 Microsoft Jet 数据源得到的快照是不可更新的,从开放数据库互连 (ODBC) 数据源得到的某些快照是可以更新的,这取决于数据库系统本身的能力。与动态集类型和表类型的 Recordset 对象相比,快照的处理开销较少。因此,它执行查询和返回数据的速度更快,特别是在使用 ODBC 数据源时。快照类型保存了表中所有记录的完整复本,因此,如 果记录的个数很多,快照的性能将比动态集慢得多。为了确定快照与动态集哪一个更快,可以先以动态集方式打开记录集,然后再以快照方式打开它。
具体使用什么记录集,取决于需要完成的任务:是要更改数据呢,还是简单地查看数据。例如,如果必须对数据进行排序或者使用索引,可以使用表。因为表类型的 Recordset 对象是做了索引的,它定位数据的速度是最快的。如果希望能够对查询选定的一系列记录进行更新,可以使用动态集。如果在特殊的情况下不能使用表类型的记录集,或者只须对记录进行扫描,那么使用快照类型可能会快一些。
一般来说,尽可能地使用表类型的 Recordset 对象,它的性能通常总是最好的。
为选择特定的 Recordset 类型,把 Data 控件的RecordsetType属性设成:
RecordSet记录集属性
BOF属性 当记录集记录指针指向第一条记录时返回True
EOF属性 当记录集记录指针指向最后一条记录时返回True
AbsloutePosition属性 返回当前记录集记录指针,第一条记录为0,是只读属性
Bookmark属性 String类型,返回或设置当前记录集记录指针的书签,是可读写属性。每一条记录都有自己唯一的书签,它与记录在记录集中的顺序无关。将Bookmark属性存放到变量中,后面可以通过将该变量赋值给Bookmark属性,并返回到这个记录。
注意:程序中使用BookMark属性重定位记录指针,而不能使用Abslouteposition
NoMatch属性 当我们使用Find方法查询时如果未找到则返回True。常与BookMark属性同时使用。
例如:查找[NAME]字段中第一个姓李的人
Dim S As String
With XXXXRecordSet
S = BookMark
FindFirst "[NAME] Like ’李’"
if NoMatch then
MsgBox "数据未找到“
BookMark = S
End if
End With
记录集方法
AddNew方法 向记录集增加一条新记录
Delete方法 从记录集中将当前记录删除。在删除后常使用MoveNext方法移动指针。
例如:
With XXXXRecordSet
Delete
MoveNext
if EOF then MoveLast
End With
MoveXXXX方法
MoveFirst 将记录集指针移动到第一条记录上
MoveLast 将记录集指针移动到最后一条记录上
MovePrevious 将记录集指针移动到前一条记录上
MoveNext 将记录集指针移动到下一条记录上
FindXXXX方法
FindFirst在记录集中查询符合条件的第一条记录
FindLast 在记录集中查询符合条件的最后一条记录
FindPrevious 在记录集中查询符合条件的前一条记录
FindNext 在记录集中查询符合条件的下一条记录
好了,有了这么充分的知识了,编写两个按钮命令简直是小菜一碟,先来试一下,添一个“增加”命令按钮吧。
Private Sub Command1_Click()
Data1RecordsetAddNew
End Sub
哇!怎么这么简单,再看一下“删除”命令按钮
Private Sub Command2_Click()
Data1RecordsetDelete
Data1RecordsetAddNew
End Sub
就这样行了吗?运行程序吧,OK!一切正常,迫不及待地输入一条记录,点击“增加”按钮,怎么?出问题了!因为你只有在进行了AddNew方法后才可以输入数据,好吧,在窗口的初始化时就增加一条新记录吧。
Private Sub Form_Initialize()
Data1RecordsetAddNew
End Sub
输入完了数据,我们打算退出程序,很自然的我们执行关闭窗口 *** 作,就顺利地结束了输入工作。真的很顺利吗?打开数据库,看看数据库中的数据,我们发现刚才输入的最后一条记录没有存入数据库中。这个很好解释,每当我们调用AddNew方法时,它就将输入的记录存入数据库中,而当我们关闭窗口时,刚输入的记录并没有保存到数据库中,那么在关闭窗口之前对DATA控件进行一次刷新就可以将数据存入数据库中了。
Private Sub Form_QueryUnload(Cancel As Inte ger, UnloadMode As Integer)
Data1Refresh
End Sub
到了这里,我们似乎可以稍稍轻松了一点,这个窗口的功能差不多完成了。但是我不得不给你提出一个忠告:在数据库系统中,应尽量将错误在应用级上处理。这句话看起来似乎有点抽象,实际上用在这个程序中就简单多了。在表Register中,我们将出生日期定义为Date/Time类型,如果在程序运行时,在该字段对应的文本框中输入的不是Date/Time格式,在向数据库提交数据时会出现什么情况呢?数据库会向用户报告错误信息。然而这样对应用程序并不好,这样的错误应该由用户程序处理,而不是交给数据库去处理,所以在数据提交之前就应该检查该字段的输入是否合法。
Private Sub Text3_LostFocus()
If IsDate(Text3Text) Or Text3Text = "" Then ’检查是否输入合法数据
Exit Sub
End If
MsgBox ("输入错误,请输入你出生的年月日!")
,将选取不合法的数据,以便重新输入,并使控制焦点不动
Text3SetFocus
Text3SelStart = 0
Text3SelLength = Len(Text3Text)
End Sub
河南的考点:>
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
数据库管理系统采用的数据模型有几种
(⒈ 层次模型 ⒉ 网状模型 ⒊ 关系模型)是这个吗
VISUAL FOXPRO 项目管理器的文挡选项卡包含什么
在VISIAL FOXPRO中视图与基表的关系是什么VISUAL FOXPOR关系数据库管理系统能够实现的三种关系 *** 作是什么
VISUAL FOXPRO在数据库中可以存放什么文件在VISUAL FOXPRO 中,可以对字段设置默认值的表是什么
解析:
数据库管理系统采用的数据模型有几种 (⒈ 层次模型 ⒉ 网状模型 ⒊ 关系模型)√
在VISIAL FOXPRO中视图与基表的关系:视图不是文件,只是一个定义,是虚拟的(或说寄生的)。需要先打开数据库,才能建立、打开视图。
●N年前整理的学习资料,竟然没被删掉。
1、 数据库包含:表、视图、连接、存储过程 扩展名为 DBC
2、表:存放数据的二维表格,是独立的DBF文件
分类:自由表(是完全独立于数据库的表文件,可以添加到数据库中,成为数据库表)
数据库表(从属于数据库,可于其它文件发生关联
特点:支持长表名、长字段名、有各种有效型安全型检查)
3、视图:是对一个或多个表或其他视图的引用,是一个不独立的、虚拟的表。
VISUAL FOXPRO在数据库中可以存放什么文件(表、视图、连接、存储过程 )在VISUAL FOXPRO 中,可以对字段设置默认值的表是(数据库表)
第一章 数据库系统基础知识
11 数据库系统概述
1 数据处理
数据:
是对事实、概念或指令的一种特殊表达形式,可以用人工的方式或自动化的装置进行通信、翻译转换或者进行加工处理。 它包括两类:一类是能参与数字运算的数值型数据;一类是不能参与数字运算的非数值型数据,如文字、图画、声音、活动图象等。
数据处理:
是对各种类型的数据进行收集、存储、分类、计算、加工、检索与传输的过程。
包括:收集原始数据、编码转换、数据输入、数据处理、数据输出。
2 数据库系统
(1) 数据库(DataBase)
定义:是以一定的组织形式存放在计算机存储介质上的相互关联的数据的集合。
特点: 具有最小的冗余度、具有数据独立性、实现数据共享、安全可靠、保密性能好
(2)数据库管理系统(DataBase Management System)
定义: 是 *** 纵和管理数据库的系统软件。Visual FoxPro 属于一种关系型数据库管理系统。
数据语言:
数据定义语言(DDL): 用来建立所需的数据库。
数据 *** 作语言(DML): 用来对数据库进行查询和维护 *** 作。
关系型数据库使用的标准语言是结构化查询语言(Structured Query Language, SQL)。
(3)数据库系统(DataBase System)
定义: 是以数据库应用为基础的计算机系统。
组成:
数据库
硬件(计算机硬件设备)
软件(数据库管理系统 、 *** 作系统)
用户(应用程序设计员、终端用户、数据库管理员 )
分类:层次型数据库、网状型数据库、关系型数据库
分代:第一代 非关系型数据库系统,60年代末问世,包括层次型和网状型。
第二代 关系型数据库系统(RDBS),70年代中期问世。
第三代 对象-关系数据库系统(ORDBS 、OOBDS),80年代中期至今。
上述三个概念之间的联系:在数据库系统中通过数据库管理系统来建立和使用数据库。
3.关系模型
三个领域: 现实世界→事物(对象、性质)
观念世界→实体(对象、属性)
数据世界→数据(记录、字段)
实体模型:即反映事物联系的实体。
数据模型:即描述实体模型的数据。
数据模型的分类: 层次模型(采用树型结构)
网络模型(采用无向图型结构)
关系模型(采用二维表结构)
关系模型的性质:
二维表的记录数随数据的增加而改变,但其字段数是相对固定的;二维表中的每一列均有唯一的字段名;二维表中不允许出现完全相同的两行二维表中行的顺序、列的顺序均可以任意交换。
二维表的主关键字: 超关键字: 能唯一确定记录的一列或几列的组合
候选关键字:最简练的超关键字
主关键字: 候选关键字中的一个
外部关键字:当A表的主关键字被包含到B表中时,则称A表的主关键字为B表的外部关键字。
4 微机关系型数据库系统的发展
关系型数据库: 即根据表、记录和字段之间的关系进行组织和访问的一种数据库。
名 称 运行环境 公司名称 发布时间
dBASE, dBASEⅡ, dBASEⅢ,dBASEⅢ PLUS, DOS Ashton-Tate
FoxBASE 10 DOS Fox软件公司 19872
FoxBASE + (200/210) DOS Fox软件公司 877/887
FoxPro 10 DOS Fox软件公司 1989
FoxPro 20 DOS Fox软件公司 1991
FoxPro 25 DOS 、 WINDOWS 3x 微软公司 19931
FoxPro 26 DOS 、 Windows 3x 微软公司 1994
Visual FoxPro 30 Windows 3X 微软公司 19961
Visual FoxPro 50 Windows 95 微软公司 19972
Visual FoxPro 60 Windows 98 微软公司 19981
1.2 Visual FoxPro 60概述
1 VFP60的特点
完善了关系型数据库的概念,采用了Rushmore技术,引入了SQL命令;支持多种数据交换格式;采用了可视化的面向对象的程序设计方式;提供了功能完善的集成环境和丰富的开发工具。
2 VFP60的用户界面 [图例]
界面基本组成:标题栏、主菜单栏、工具栏、主窗口、命令窗口、状态栏
系统工具一览表
各种菜单 各种工具栏 各种窗口 各种设计器 各种生成器 各种向导
文件菜单 常用工具栏 命令窗口 数据库设计器 文本框生成器 表向导
编辑菜单 表单控制工具栏 浏览窗口 表设计器 组合框生成器 交叉表向导
显示菜单 布局工具栏 代码窗口 表单设计器 命令组生成器 查询向导
格式菜单 调色板工具栏 调试窗口 菜单设计器 编辑框生成器 本地视图向导
工具菜单 打印预览工具栏 编辑窗口 报表设计器 表达式生成器 表单向导
程序菜单 报表控制工具栏 查看窗口 标签设计器 表单生成器 一对多表单向导
窗口菜单 查询设计器工具栏 跟踪窗口 类设计器 表格生成器 报表向导
帮助菜单 表单设计器工具栏 属性窗口 连接设计器 列表框生成器 一对多报表向导
菜单菜单 报表设计器工具栏 通用字段窗口 查询和视图设计器 参照完整性生成器 标签向导
数据环境菜单 数据库设计器工具栏 远程视图向导
表单菜单 项目管理器窗口 数据环境设计器 自动格式生成器 邮件合并向导
项目菜单 导入向导
查询菜单 选项组生成器 图形向导
报表菜单 数据透视表向导
表菜单 分组/总计报表向导
数据库菜单
类菜单
3 VFP 60的工作方式
(1) 菜单 *** 作方式
根据所需的 *** 作从菜单中选择相应的命令(与WORD类似)。每执行一次菜单命令,命令窗口中一般都会显示出与菜单对应的命令内容。
利用工具菜单中的向导可以很方便地完成常规任务。
(2) 命令交互方式
根据所要进行的各项 *** 作,采用人机对话方式在命令窗口中按格式要求逐条输入所需命令,按回车后,机器逐条执行。
(3) 程序执行方式
先在程序编辑窗口中编完程序,再从程序菜单中选择执行,或从命令窗口中输入DO 命令,让机器执行。
4 VFP 60常用文件类型
VFP 60常用的文件扩展名及其关联的文件类型
扩展名 文件类型 扩展名 文件类型
app 生成的应用程序 frx 报表
exe 可执行程序 frt 报表备注
pjx 项目 lbx 标签
pjt 项目备注 lbt 标签备注
dbc 数据库 prg 程序
dct 数据库备注 fxp 编译后的程序
dcx 数据库索引 err 编译错误
dbf 表 mnx 菜单
fpt 表备注 mnt 菜单备注
cdx 复合索引 mpr 生成的菜单程序
idx 单索引 mpx 编译后的菜单程序
qpr 生成的查询程序 vcx 可视类库
qpx 编译后的查询程序 vct 可视类库备注
scx 表单 txt 文本
sct 表单备注 bak 备份文件
5 创建文件
新建各种类型的文件时,可以利用系统提供的相应工具,以提高工作效率。新建文件时可用的设计器和向导。
13 项目管理器
1 项目管理器简介
项目:
是一种文件,用于跟踪创建应用系统所需要的所有程序、表单、菜单、库、报表、标签、查询和一些其他类型的文件。
项目管理器:[图例]
是开发VFP应用系统的一个工具,它生成一个项目文件,项目文件的扩展名为 PJX,项目备注的扩展名为:PJT。
项目管理器窗口的组成:
由6大类数据项(全部、数据、文档、类、代码、其他)和10个命令按钮(新建、添加、修改、浏览、关闭、打开、预览、运行、移去、连编)组成。
注:粗斜体表示的命令按纽根据用户选择的不同对象相应地出现。
项目菜单的组成:13个子菜单(其中一部分与项目管理器中的命令按钮功能相同)。
项目管理器的功能:组织和管理所有与应用系统有关的各种类型的文件。
2 创建项目文件
用菜单方式:
打开文件菜单 → 新建 → 项目→ 新文件 → 给出合适的项目文件名及保存位置 → 进入项目管理器 → 开发应用系统 → 完成后关闭窗口退出。
用命令方式:
语法:CREATE PROJECT <项目文件名>
功能:打开项目管理器窗口进行应用系统的开发。
3 修改项目文件
用菜单方式:
打开文件菜单 → 打开 → 找到所需的项目文件并确定之 → 进入项目管理器→ 修改应用系统 → 完成后关闭窗口退出。
用命令方式:
语法:MODIFY PROJECT <项目文件名>
功能:打开项目管理器窗口进行应用系统的修改。
4 项目管理器的使用
可以利用项目管理器来创建、打开、浏览、修改所有VFP文件并运行其中的表单、报表、标签、菜单、程序等。特别是可以利用它来连编项目(追踪这些文件的变化情况,包括它们之间的相关性、引用和连接等,确保引用的完整,并加入自上次连编之后更新了的一些组件)、应用程序(扩展名为APP,在VFP环境下执行)和可执行文件(扩展名为EXE,能脱离VFP环境执行)。
14 VFP 60 的一些规则
1 VFP60 的命名规则:
• 只能使用字母、下划线和数字。
• 使用字母或下划线作为名称的开头。
• 名称可以是 1 至 128 个字符,但自由表的字段名和索引标识最多只能有 10 个字符。
• 避免使用 Visual FoxPro 的保留字。
• 文件的命名遵循 *** 作系统的约定。
2 命令和子句的书写规则
(1) 以命令动词开始;
(2) 各部分之间要用空格隔开;
(3) 命令、子句、函数名都可简写为前4个字符,大、小写等效;
(4) 一行只能写一条命令,总长度不超过8192个字符,超过屏幕宽度时用续行符“;”;
(5) 变量名、字段名和文件名应避免与命令动词、关键字或函数名同名,以免运行时发生混乱。
(6) 命令格式中的符号约定:
命令中的[ ] 、| 、…、< > 符号都不是命令本身的语法成分,使用时不能照原样输入,
其中:[ ] 表示可选项,根据具体情况决定是否选用
| 表示两边的部分只能选用其中的一个
… 表示可以有任意个类似参数,各参数间用逗号隔开
< > 表示其中内容要以实际名称或参数代入
3. 命令工作方式中的常见错误
(1) 命令动词写错
(2) 格式不符合要求
• 标点符号不对(一定要用英文标点符号)
• 缺少必需的空格或添加了不该有的空格
• 数据类型不一致,要注意字符型、数值型、日期型、逻辑型数据的书写格式
(3) 打不开所需文件:没有正确输入盘符和路径或文件名输错
1 数据库VF
先说明一下,因为VF里面不能有中文的标点符号,所以下面这些命令你得自己输内入一遍。
1、 Select 专业容,等级,学号,姓名 from stuinfo where 专业 = 计算机
2、 Set century on
Set date to ymd
Select 姓名,出生日期 from stuinfo where SUBSTR(DTOC(出生日期),5,2) = "12" and 性别 = “女”
3、 Update stuinfo set 补助 = 150 where 专业 = 体育 and 姓别 = 男
4、 Delete from stuinfo where 专业 = 会计 and 姓别 = 男
5、 Select 姓名,补助,出生日期 from stuinfo into table 学生2 order by 年龄 desc
2 VF与SQL连接详细步骤
用ODBC设置一个SQL连接,用连接制作一个视图,然后你想怎么用就怎么用了和本地表一样
3 打开VF数据库的具体步骤
可以单击来工具栏上的“打自开”按钮,在d出的打开窗口下方的“文件类型”下拉组合框中选择“数据库”(注意有滚动条可以上下拖动);接下来在上方文件列表窗口中选择要打开的数据库就可以了;
如果用命令打开的话可以在命令窗口中输入:open database 数据库名
在想打开数据库设计器对数据库进行编辑的话可以输入:modify database
来打开数据库设计器
4 VF数据库的下载地址
//1191474116/down1cid=&t=2&fmt=&usrinput=vf数据库&dt=1002011&ps=0_0&rt=0kbs&plt=0
你机上装有讯雷的话直接点下载就行了不然你得装个回讯雷!我测试过答可以下载
5 vf程序设计是什么是什么学科的课程
是语言编程工具、数据库,是电信工程的课程
6 VF数据库有哪六种常用的数据类型
数据库当中的6种常用数据是根据个人使用习惯进行分类和规划的。
7 vf数据库是什么
Visual FoxPro ,是Microsoft公司从Fox公司的FoxBase数据库软件经过数次改良,并且移植到之后,得来的应用程序开发软件。
VFP是Microsoft公司推出的最新可视化数据库管理系统平台,是功能特别强大的32位数据库管理系统。
它提供了版功能完备的工具、极其友邓的用户界面、简单的数据存取方式、独一无二的跨平台技术,交肯有良好的兼容性权、真正的可编译性和较强的安全性,是目前最快的捷、最实用的数据库管理系统软件之一。
(7)vf数据库精品课程扩展阅读:
Visual FoxPro 60 的特点
Visual FoxPro 60 能够得到广泛的使用,这是与其具有的强大的功能分不开的,Visual FoxPro 60 与其前期的版本相比,有更高的性能指标和鲜明的特点。
1、提供多种可视化编程工具,最突出的是面向对象编程。
2、在表的设计方面,增添了表的字段和控件直接结合的设置。
3、对项目及数据库控制的增强
在 Visual FoxPro 60 中可以借助“项目管理器”创建和集中管理应用程序中的任何元素;可以访问所有向导、生成器、工具栏和其他易于使用的工具。
8 想学数据库,VF,sql,access有什么区别和联系应该从哪里学起
都是数据库,
VF好象用得比较少吧,后二种比较多些
一般的话,可以先熟悉熟悉SQL语言,找本书看看
9 vf数据库怎么考
考试内容如下:
1 数据库和表的建立、修改与有效性检验:
(1) 表结构的建立与修改。内
(2) 表记录的浏容览、增加、删除与修改。
(3) 创建数据库,向数据库添加或移出表。
(4) 设定字段级规则和记录级规则。
(5) 表的索引:主索引,候选索引,普通索引,唯一索引。
2 多表 *** 作:
(1) 选择工作区。
(2) 建立表之间的关联,一对一的关联,一对多的关联。
(3) 设置参照完整性。
(4) 建立表间临时关联。
3 建立视图与数据查询:
(1) 查询文件的建立、执行与修改。
(2) 视图文件的建立、查看与修改。
(3) 建立多表查询。
(4) 建立多表视图。
10 我想问一下学习vf课程的功能及作用
我是一个过来人,我劝你 不要学习 vfp,这是教育部那些官老爷们在办公室里拍脑门回想出来的馊主意,学答了vfp 可以参加等级考试,可是还能做什么呢?
lz,我可以负责任的告诉你,不要指望学了vfp 去IT公司工作,几乎没有哪个IT公司用这个东西,它太弱了,不能写出存储过程来,安全性差等等,学这个还不如学习access呢,不过我推荐学习SQL server或者Oracle,这个用的很普遍
SQL是Structured Quevy Language(结构化查询语言)的缩写。SQL是专为数据库而建立的 *** 作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库 *** 作的基础,并且现在几乎所有的数据库均支持SQL。 <br>
##1 二、SQL数据库数据体系结构 <br>
SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型术语不同。在SQL中,关系模式(模式)称为“基本表”(base table);存储模式(内模式)称为“存储文件”(stored file);子模式(外模式)称为“视图”(view);元组称为“行”(row);属性称为“列”(column)。名称对称如^00100009a^: <br>
##1 三、SQL语言的组成 <br>
在正式学习SQL语言之前,首先让我们对SQL语言有一个基本认识,介绍一下SQL语言的组成: <br>
1一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。 <br>
2一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。 <br>
3一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。 <br>
4一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储上一个物理文件对应。 <br>
5用户可以用SQL语句对视图和基本表进行查询等 *** 作。在用户角度来看,视图和基本表是一样的,没有区别,都是关系(表格)。 <br>
6SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada语言等。SQL用户也能作为独立的用户接口,供交互环境下的终端用户使用。 <br>
##1 四、对数据库进行 *** 作 <br>
SQL包括了所有对数据库的 *** 作,主要是由4个部分组成: <br>
1数据定义:这一部分又称为“SQL DDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。 <br>
2数据 *** 纵:这一部分又称为“SQL DML”,其中包括数据查询和数据更新两大类 *** 作,其中数据更新又包括插入、删除和更新三种 *** 作。 <br>
3数据控制:对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。 <br>
4嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的规则。 <br>
下面我们将分别介绍: <br>
##2 (一)数据定义 <br>
SQL数据定义功能包括定义数据库、基本表、索引和视图。 <br>
首先,让我们了解一下SQL所提供的基本数据类型:(如^00100009b^) <br>
1数据库的建立与删除 <br>
(1)建立数据库:数据库是一个包括了多个基本表的数据集,其语句格式为: <br>
CREATE DATABASE <数据库名> 〔其它参数〕 <br>
其中,<数据库名>在系统中必须是唯一的,不能重复,不然将导致数据存取失误。〔其它参数〕因具体数据库实现系统不同而异。 <br>
例:要建立项目管理数据库(xmmanage),其语句应为: <br>
CREATE DATABASE xmmanage <br>
(2) 数据库的删除:将数据库及其全部内容从系统中删除。 <br>
其语句格式为:DROP DATABASE <数据库名> <br>
例:删除项目管理数据库(xmmanage),其语句应为: <br>
DROP DATABASE xmmanage <br>
2基本表的定义及变更 <br>
本身独立存在的表称为基本表,在SQL语言中一个关系唯一对应一个基本表。基本表的定义指建立基本关系模式,而变更则是指对数据库中已存在的基本表进行删除与修改。 <br>
……<br>
常用的数据库软件有:
1、Oracle
70年代一间名为Ampex的软件公司,正为中央情报局设计一套名叫Oracle的数据库,Ellison是程序员之一。Oracle是世界领先的信息管理软件开发商,因其复杂的关系数据库产品而闻名。Oracle数据库产品为财富排行榜上的前1000家公司所采用,许多大型网站、银行、证券、电信等都选用了Oracle系统。
2、SQLServer
SQLServer(StructuredQueryLanguageServer)是一个关系数据库管理系统(DBMS)。它最初是由MicrosoftSybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。
在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本。
3、ACCESS
Aess是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS,即RelationalDatabaseManagementSystem),是Office系列应用软件之一。
它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等 *** 作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。
4、DB2
IBM公司研制的一种关系型数据库系统。DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于OS/2Windows等平台下。
DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。
5、MySQL
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。在2008年1月16号被Sun公司收购。
而2009年,SUN又被Oracle收购。对于Mysql的前途,没有任何人抱乐观的态度。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
扩展资料:
VisualFoxPro原名FoxBase,最初是由美国FoxSoftware公司于1988年推出的数据库产品,在DOS上运行,与xBase系列兼容。
FoxPro是FoxBase的加强版,最高版本曾出过26。之后于1992年,FoxSoftware公司被Microsoft收购,加以发展,使其可以在Windows上运行,并且更名为VisualFoxPro。
FoxPro比FoxBASE在功能和性能上又有了很大的改进,主要是引入了窗口、按纽、列表框和文本框等控件,进一步提高了系统的开发能力。
以上就是关于VB数据库的问题全部的内容,包括:VB数据库的问题、计算机2级考试VF的介绍、数据库的基本常识等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)