版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章表与数据库的基本操作精选1[主要内容]
表的基本操作和索引;数据库和数据库表的基本操作;多表操作及表的常用操作命令。[教学重点]
数据库文件及其中的数据库表文件之间的关系;数据库表及自由表;记录指针的概念及定位;表的操作命令;索引及索引文件的建立;字段及记录级约束规则的概念与设置;数据完整性的概念及完整性规则的定义。[教学难点]
字段及记录级约束规则的概念与设置;触发器的概念与设置;索引、索引文件的概念与建立,索引文件的打开与主控索引的设置;数据完整性的概念及完整性规则的定义;多表操作特别是关联操作。[教学要求]
掌握数据库和表的概念、构成、建立、打开、关闭的方法,数据库表和自由表的区别及相互转化,表的基本操作命令,表的排序与索引及对表的统计命令,数据完整性规则的概念与定义,多表操作的概念及操作的方法。精选2
在VisualFoxPro中,数据存储在表(Table)中,表是数据库中最基本的文件。数据库系统的大部分操作与命令都离不开对表中数据的处理。而数据库是包含有表、索引、视图、规则、关系和触发器等信息的存储容器。在本章中,我们将学习如何创建表和数据库,如何使用表设计器和数据库设计器,如何设置数据库表的属性和表间关系,使它们更有效地协同工作。另外还要介绍表与数据库的操作命令,为下一步的程序设计奠定基础。精选34.1表的基本操作
由于VFP采用关系型数据模型,故能方便地将现实中的二维表以关系“表(table)”的形式存储或处理。在关系表中,表中的每一列称为表的字段,表的每一行称为表的记录。要将现实中的一张二维表变成数据库系统能够处理的表,就要利用DBMS所提供的功能,对表进行定义和创建。精选44.1.1表的设计过程
在VisualFoxPro数据库管理系统中,设计(或定义)一个表分为三个步骤:
1.定义表名定义表名就是给表文件命名,表名是表文件的唯一标识。表名可以用英文或中文。
2.定义表的字段属性表的名称和表的字段属性构成了表的结构。定义表的字段属性包括定义字段名、字段类型、字段宽度和小数位等,还要考虑是否建立索引。
3.向表中输入数据表结构定义好后,表中并没有记录,这时的表称为空表。向表输入数据就是为表中记录的每一个字段赋值。精选54.1.2表的创建
使用VisualFoxPro提供的”表设计器”工具,可完成表的创建。
1.自由表和数据库表
VFP中有两种类型的表:属于数据库的表和自由表。自由表:是一个独立的表,它独立存在于任何数据库之外,不属于任何数据库。数据库表:依赖于数据库的表,属于某个数据库。具有许多自由表没有的属性。注:1)自由表和数据库表可以相互转换;
2)一个表不能同时属于一个以上的数据库。精选62.表结构的创建(1)打开项目管理器,选择”数据”选项卡中的自由表;或数据库中的数据库表(图1),按“新建”按钮,之后(图2)按“新建表”按钮。(2)在创建对话框中输入表名,按“保存”按钮。
(3)在“表设计器”窗口(图3)中依次输入各字段的字段名、类型、宽度或小数位等属性。
(4)字段属性设定完成后单击“确定”按钮,即出现如图4所示的对话框,询问现在是否要输入数据。精选7图1在项目管理器中可新建数据库表和自由表图2新建表对话框精选8图3用表设计器定义Student表的字段属性图4输入记录询问对话框精选94.1.3表记录的输入1.创建表结构后立即输入数据进入表“编辑”窗口,如图5所示。此时窗口中各字段均按表结构字段顺序列出,可逐个记录地输入各字段的内容。图5在表的”编辑”窗口中追加记录精选102.备注型字段和通用型字段的输入当编辑备注型(memo)字段时,双击它或按Ctrl+Home键就可进入memo字段的输入窗口,输入或修改完成后,单击窗口上的关闭按钮或按”Ctrl+W”保存并关闭窗口。如不想保存,则按Esc键或按“Ctrl+Q”退出。 进入通用型(gen)字段与备注型字段的方法相同。进入通用型字段编辑窗口后,打开“编辑”菜单,选择“插入对象”选项,进入插入对象窗口。选择“新建”可以创建多种格式的图像。选择“由文件创建”,可在“文件”框中输入对象的文件名。精选114.1.4表结构的修改
修改表结构主要是增加或删除字段、修改字段的类型或宽度等。修改表结构的方法是在“项目管理器”中选择要修改的表名,然后单击“修改”按钮,进入到“表设计器”窗口中对表进行修改。当修改完成后,单击“表设计器”的“确定”按钮,系统提示“结构更改为永久性更改”,点击“是”,即完成修改表结构的操作。精选124.1.5表中数据的浏览和编辑
用户可以用表“浏览”和表“编辑”两种操作方式对表中的数据进行显示和修改。选择表,按”浏览”按钮,可在表“浏览”窗口中查看表中的数据。若想编辑数据,选择”显示”菜单中的“编辑”选项,即进入表的编辑状态。在“浏览”窗口的左下角有一个小黑竖条(称为窗口拆分条),把它拖到一个适当的位置,就可以把“浏览”窗口拆分成两个窗口,将其改变成有“浏览”和“编辑”两种方式显示的窗口。在这两种显示窗口中,如果当前窗口中光标在不同的记录上移动时,另一个窗口中的显示内容也与其同步。精选134.1.6表中记录的定位1、在浏览窗口中直接定位
2、打开浏览窗口,利用菜单命令定位。“表”/“转到记录”精选144.1.7删除表中的数据1.逻辑删除表中的记录逻辑删除就是给记录加一个删除标记。打开要进行逻辑删除操作的表,进入表“浏览”窗口,把鼠标对准删除标记栏,单击左键,这时被逻辑删除的记录就加上了删除标记.
对记录加逻辑删除标记精选152.恢复表中逻辑删除的记录对加上逻辑删除标记的记录,可对其进行恢复记录的操作。在表“浏览”窗口,把鼠标移到要进行恢复的记录上,对准其删除标记栏,单击左键除去删除标记。
3.物理删除表中的记录物理删除就是把无效的记录彻底从磁盘中删除掉。打开表“浏览”窗口,先对要删除的记录做逻辑删除,然后选择“表”菜单,再选择“彻底删除”。在“系统”窗口,当选择“是”时,数据表中所有带有删除标记的记录将被彻底删除掉。精选164.2表的索引表的索引与书目的索引相类似。书目的索引:是一份关键词对页码的列表并按关键词排序,可帮助用户快速地找到对应的页。表的索引:是索引表达式与记录号的一种对应关系,并可按索引表达式排序查找相应的记录。其中索引表达式可以是表中的一个字段,也可以是由多个字段组成的字段表达式。
精选174.2.1索引文件的类型VFP有两种基本类型的索引文件:复合索引文件或独立索引文件。复合索引文件是指包含一个或多个索引关键字的索引文件,以.CDX作为文件扩展名。复合索引文件又可分为结构化复合索引文件和为非结构化复合索引文件。当复合索引文件使用与表文件名相同的名称时,称为结构化复合索引文件,否则称为非结构化复合索引。结构化复合索引文件的好处是,不论用何种方式打开一个表,VFP自动打开该表的结构化索引.CDX文件,以反映表的更新。独立索引文件的文件扩展名为.IDX,它存放了单独关键字表达式的索引信息。独立索引文件的名称由用户定义。一个表文件可以创建任意多个独立索引文件。在对一个已创建有独立索引文件的表进行数据操作时,若未指定打开相应的独立索引文件,则该索引将不会准确地反映表中内容的更新。在使用索引文件时,建议最好采用结构化的复合索引文件,这样会给用户带来很多方便。精选184.2.2索引的类型1、主索引主索引的索引关键字必须是表的主码,即不允许主索引值出现重复。一个表只能建立一个主索引。主索引只适用于数据库表。
2、候选索引候选索引也要求必须用表的主码来建立,即要求候选索引值不能重复。一个表可以建立多个候选索引。
3、普通索引普通索引允许索引值重复。一个表可以建立多个普通索引。
4、唯一索引唯一索引也允许索引值重复,但索引值相同的记录只有第一个是有效的。一个表可以建立多个唯一索引。精选194.2.3在表设计器中创建索引索引名:用来与其他索引作区别的标志。类似于字段名。一般是根据表达式中用到的字段名来确定。类型:选择索引的类型。表达式:即索引关键字表达式,是建立索引的依据。由一个字段或多个字段构成。筛选:用来限定参与索引的记录。精选204.2.4索引关键字表达式的确定1、根据一个字段建立索引这种索引的关键字表达式很简单,直接由该字段名构成。如:奖学金、专业、出生日期等。
2、根据多个字段建立索引这种相对比较复杂,索引关键字表达式要由多个字段名构成一个字符型的表达式。如:先按照“专业”字段的升序索引,当“专业”字段的值相同时,再按照“学号”的升序索引,那么该索引的关键字表达式应该是,专业+学号(“专业”和“学号”都是字符型);若当“专业”字段的值相同时,再按“出生日期”的升序索引,那么该索引的关键字表达式就应该是,专业+dtoc(出生日期)(“专业”和“出生日期”的类型不一样,应把“出生日期”转换为字符型)。精选214.2.5筛选记录
用来限定参与索引的记录,即控制哪些记录可以包含在索引中4.2.6查看索引结果
首先打开表的浏览窗口,然后选择“表”/“属性”,在“索引顺序”框中,选择要用索引,最后“确定”。精选224.3数据库的基本操作VFP数据库提供了许多功能:存储一系列的表或视图;设置属性和数据验证规则;在表间建立关系;多表关联协同工作等,使数据库中的数据被充分地利用。精选234.3.1创建数据库1、项目管理器
2、“文件”/“新建”
3、常用工具栏中的“新建”工具按钮
4、命令注:利用项目管理器创建的数据库在项目文件;而利用后三种方法创建的数据库单独存在于磁盘上,不属于任何项目文件。精选244.3.2数据库设计器
新建数据库后,系统自动进入“数据库设计器”。“数据库设计器”是VFP创建、修改、管理数据库的一个工具,可用来管理数据库中的表、关系和视图等。编辑存储过程
新的本地视图
移去表
添加表
新建表
新的远程视图
修改表
连接
浏览表
精选254.3.3在数据库中加入、移去、查找表1.向数据库添加数据表单击“数据库设计器”工具栏的“添加表”按钮,在“打开”窗口中,选择要添加的表。
2.向数据库中添加新表单击“数据库设计器”工具栏的“新建表”按钮,进入“创建”窗口。
3.从数据库中移去表选定要移出的表,单击“数据库设计器”工具栏的“移去表”按钮,在对话框中选择“移去”。精选264.3.4创建数据库表间的关系1.什么是永久关系在数据库表之间建立的关系被作为数据库的一部分保存了起来,所以称为永久关系。在VisualFoxPro中建立的关系分为两种类型:一对一关系和一对多关系。
2.建立表间的一对一关系建立两个表之间的“一对一”关系,首先,要使两个表都具有同一属性的字段,并且要求两个表中的同一属性的字段值是一对一的关系。然后,定义其中一个表中的字段为主索引字段,定义另一个表中与其同名字段的索引为主索引或候选索引。精选273.在表间建立一对多关系建立两个表之间的“一对多”关系,首先,要使两个表都具有相同属性的字段,并且要求两个表中的相同属性的字段值有一对多的关系。一对多关系中的“一方”称为父表,“多方”则称为子表。定义父表中关键字段为主索引字段或候选索引(其字段值是唯一的,作为“一对多”关系中的一方),子表中与其同名字段的索引应是普通索引字段(字段值是重复的,作为”一对多”关系中的多方)。建立永久关系的方法:
1.两表必须在同一数据库中并且具有公共属性。
2.两表分别按公共属性建立了相应的索引。
3.在数据库设计器中使用鼠标拖拉连线。精选284.编辑表间的关系表间的关系创建后还可以编辑它。单击关系连线,连线将会变粗,按Delete键可删除该关系。双击表间的关系线显示“编辑关系”对话框,可进行“参照完整性”设置。精选294.4数据库表设计器的基本操作
当选择一个数据库表打开的表设计器就是数据库表设计器,它与自由表的表设计器是有较大区别的,在数据库表设计器中能够完成一些在自由表设计器中所不能进行的操作,这些操作给数据库表增加了许多新的属性。这些属性将作为数据库表的一部分保存起来,当表从数据库中移去后,这些属性当然也就不再存在了。数据库表设计器包括字段、索引和表三个选项卡。精选304.4.1字段选项卡中表属性的设置1.设置字段有效性字段有效性设置包括如下内容:规则:指定实施数据字段有效性检查的规则;消息:指定当输入违反字段有效性规则时,显示的错误信息。默认值:指定字段的默认值。2.设置显示格式显示设置内容包括:格式:指定表达式,使得在“浏览”窗口、表单或报表中,确定字段显示时的大小写、字体大小和样式。输入掩码:指定字段中输入数值的格式。标题:指定在“浏览”窗口、表单或报表中代表字段的标签。表单或报表中的属性设置可覆盖此设置。3.设置表中字段的注释为了提高数据表的使用效率及它的共享性,在建立数据表结构时,可以对字段加以注释,提醒自己或其他用户,清楚地掌握字段的属性、意义及特殊用途等。精选314.4.2表选项卡“数据库表设计器”中的“表”选项卡中包含了一些表的信息,设置记录有效性规则的区域,触发器和注释。而在自由表中没有这些设置。规则:指定实施数据记录级有效性检查的规则。信息:指定当输入不符合记录级有效性规则的值时,显示的错误信息。触发器:用于指定更新、插入、删除的规则。例如更新触发器指定一个规则,每次更新表中记录时,触发该规则。单击对话按钮显示“表达式生成器”。表注释:用于提供键入表注释的区域。在“项目管理器”中选定一个表时,将在“项目管理器”的底部把键入的文本作为该表注释显示。精选324.5多表操作1.工作区的概念工作区是一个内存的独立存储区域,一个工作区只能打开一个表,要使用多个表,就得使用多个工作区。
2.利用数据工作期建立表的关联多表操作与工作区选择离不开“数据工作期”,“数据工作期”窗口可反映出当前使用的工作区中的表、表的索引和关系等状态。精选33
以建立Student表和Grade表的一对多临时关系为例,说明如何使用”数据工作期”建立多表间的关联。先选择“窗口”菜单中的“数据工作期”选项,弹出“数据工作期”窗口。选择数据库和数据库的表。在“数据工作期”窗口中选择要建立关系的父表Student.dbf,按“关系”按钮,然后选择要关联的表Grade.dbf,先打开”设置索引顺序”对话框,又弹出“表达式生成器”窗口输入关联字段。确定子表中的关键字选择数据库和表精选34
此时数据工作期窗口将出现如图1。表明Student表与Grade表按“学号”字段建立了关系。当两个表建立关系后,就会使得子表Grade的记录指针自动随着父表的记录指针而移动,如图2。图1建立两表的临时关系图2在父表(student)与子表(Grade)间建立关联精选354.6表的操作命令
在VFP中,对数据的操作既可用菜单方式也可用命令方式,菜单方式简便,但只能做一些常用操作,命令方式具有快捷的特点。精选364.6.1VisualFoxPro命令的一般结构<命令动词>[<范围>][[<FIELDS><字段名表>][FOR<条件>][WHILE<条件>][OFF][TOPRINT]1.命令动词表示命令执行的操作,是命令中必不可少的部分。如:USE,LIST,DISPLAY,COPY等。
2.常使用的短语
(1)<范围>:表示记录的执行范围,可以是下面几项其中之一:
ALL表示全部记录;
NEXT<n>表示从当前记录开始的以下n条记录;
RECORD<n>表示第n号记录;
REST表示从当前记录到最后一条记录。
(2)FIELDS<字段名表>
用于指定参加操作的字段,多个字段时用逗号分隔。精选37(3)FOR<条件>:对满足条件的记录进行操作。
WHILE<条件>:当遇到第一个不满足条件的记录时,停止命令执行。(4)TOPRINT:表示操作结果输出到打印机。(5)OFF:不显示记录号。4.注释在书写命令格式时,还用到一些符号,这些符号只是在书写时使用,实际操作时并不输入。这些符号以及它们所表示的意义如下。
<>:表示其中内容为必选项;
[]:表示其中内容为可选项;
|:表示其两侧项目任选一项;精选384.6.2表操作命令1.创建表文件结构格式:CREATE<表文件名>
功能:建立指定的表文件结构。说明:默认后缀.DBF可省略
2.表的打开或关闭命令格式:USE[<文件名>]
功能:在当前工作区中打开或关闭表,表打开时,若该表有备注型或通用型字段,将自动打开同名的.FPT文件。说明:
1.<文件名>表示被打开的表的名字;缺省<文件名>表示关闭当前工作区的表。
2.打开一个表时,该工作区中原来打开的表自动关闭
3.表刚打开时,记录指针指向第一个记录。
4.表操作结束后应及时关闭,以便将内存的数据保存到表中。精选394.6.3表数据输入命令1.追加新记录格式:APPEND[BLANK]
功能:向表中增添新记录说明:
使用BLANK子句能在表尾追加一条空白记录,留待以后填入数据。若缺省则出现记录的编辑窗口,等待用户输入数据。
2.插入新记录格式:INSERT[BLANK][BEFORE]
功能:在指定的位置插入新记录。说明:
1.使用BEFORE子句能在当前记录之前插入新记录,缺省该子句则在当前记录之后插入记录。
2.使用BLANK子句在当前记录之后插入一条空白记录,缺省时则出现编辑窗口,等待用户输入记录。精选404.6.4表记录显示命令1.表记录连续显示格式:LIST[FIELDS]<字段名表>][范围][FOR<条件>]|[WHILE<条件>][OFF][TOPRINT[PROMPT]|TO文件<文件>]
说明:
1.<范围>若不选,则表示所有记录;否则仅显示指定范围内的记录。
2.<字段表>若不选,则显示所有字段,但不包括备注型字段;否则仅按指定字段的内容和顺序显示。备注型字段的显示必须指定字段名。
3.FOR<条件>若选择,显示所有符合条件的记录。
4.WHILE<条件>若选择,从当前记录开始显示符合条件的记录,遇到条件不成立的记录就停止显示,且指针指向该记录。精选412.表记录分屏显示格式:DISPLAY[<范围>][[FIELDS]<字段表>][FOR|WHILE<条件>][OFF][TOPRINT]
功能:分屏显示当前数据库中的记录内容。说明:DISPLAY与LIST命令的区别:
DISPLAY命令不选<范围>时,仅显示当前记录,而LIST命令则显示所有记录。
DISPLAY命令满屏时停顿,而LIST命令则不停顿。其他可选项的含义同LIST命令。例:USETEACHERDISPLAY&&仅显示当前记录1,与LISTRECORECN()等效
DISPLAYALL&&只有选择范围ALL时才显示所有记录,与LIST等效精选424.6.5表记录修改命令1.编辑修改格式:EDIT[<范围>][FIELDS<字段名表>][FOR<条件>]
功能:在编辑窗口中修改表的记录说明:
1.缺省限制短语,则以当前记录为入口修改各个记录
2.指定范围和条件时,修改的入口记录是指定范围内满足条件的第一个
2.窗口浏览修改格式:BROWSE[FIELDS<字段名表>]
功能:以窗口方式浏览表的内容,并可对窗口内的数据进行修改。说明:
1.字段表项缺省,则显示全部字段
2.BROWSE命令具有显示、修改、逻辑删除、追加记录等功能精选433.自动替换修改格式:REPLACE[<范围>]<字段名1>WITH<表达式1>[,<字段名2>WITH<表达式2>]…[FOR|WHILE<条件>]
功能:在指定范围内,对满足条件的所有记录按表达式的结果替换指定字段的值说明:1.替换内容是一个表达式,数据类型与相应字段类型一致
2.若有条件项,范围项缺省,是对满足条件的所有记录作替换.3.可选项均缺省,只对当前记录作替换例:将Student表中每位同学的奖学金增加100.00元
REPLACEALL奖学金WITH奖学金+100精选444.6.6记录删除命令1.逻辑删除记录格式:DELETE[<范围>][FOR|WHILE<条件>]
功能:对指定范围内符合条件的记录作删除标记”*”,但并不真正删除记录。若可选项都缺省,只对当前记录有效。示例:逻辑删除所有非计算机专业的同学记录
DELETEALLFOR专业<>”计算机”
LIST&&被逻辑删除的记录前将会出现“*”号。
2.物理删除记录格式:PACK
功能:从物理上真正删除带有删除标记的记录。精选453.逻辑删除记录的恢复格式:RECALL[<范围>][FOR|WHILE<条件>]
功能:对当前表在指定<范围>内满足<条件>的记录去掉删除标记,缺省参数则恢复当前记录。
4.删除所有记录格式:ZAP
功能:物理清除当前表中所有记录,但保留表结构。说明:该命令与以下两条命令等效:
DELEALLPACK精选464.6.7表记录的定位命令1.绝对定位格式:GO[TO]<记录号>
功能:把记录指针直接指向给定记录号说明:GOTO可以简写为GO
记录号必须是一个正整数(或变量,数值表达式)GO命令还有如下形式:GOTOP&&指针指向首记录
GOBOTTOM&&指针指向末记录记录号为常数时,GO可以省略,只写记录号。精选47
示例:USESTUDENT?RECNO()&&显示当前记录号为15 &&将记录指针指向5号记录
?RECNO() &&显示当前记录号为5GOTOP &&记录指针指向首记录
?RECNO() &&显示当前记录号为12.相对定位格式:SKIP[+|-]<数值表达式>
功能:在当前记录位置上进行记录指针的相对移动.
说明:1.”+”号(可以省略)表示当前记录向后(数据库尾部)移动,2.”-”号(不能省略)表示当前记录向前(数据库头部)移动。精选483.数值表达式代表记录移动的距离,向后移动一个记录可以省略移动距离”1”。示例:
USESTUDENTSKIP&&向后移动1个记录的距离
?RECNO() &&当前记录号为2SKIP3 &&向后移动3个记录的距离
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论