数据库多表与外键操作.ppt_第1页
数据库多表与外键操作.ppt_第2页
数据库多表与外键操作.ppt_第3页
数据库多表与外键操作.ppt_第4页
数据库多表与外键操作.ppt_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第五章 多表与数据库的操作,教学计划,目的:了解工作区、数据库表的基本概念,掌握表的关联的建立及多表间数据的使用 重点:表的关联、数据库的基本操作 难点:表间关系的建立、多表操作 课时:课堂讲授2 课时、上机实验2 课时 方式:课堂讲授、上机实验,本章纲要,数 据 库 的 设 计,多表 操 作,数据库的基本操作,数据库表的基本操作,5.1 多表操作,5.1.1 工作区,1、工作区的概念 工作区就是内存中的一块区域。打开表文件就是从磁盘将数据表调入内存的某个工作区。 如果同时要打开多个表文件,则需指定多个工作区并分别打开不同的数据表文件。每个工作区中只能打开一个表文件及其相关文件。 如果在一个工

2、作区中打开一个新的表文件,则该工作区中原来打开的表文件被关闭。但无论打开多少工作区,任何时刻用户只能选择一个工作区进行操作,这个工作区称为当前工作区。,2、工作区号与别名 不同的工作区用其编号或别名进行区分。 Visual FoxPro提供32767个工作区,每个工作区可以用132767作为各工作区的编号,称为工作区号。启动Visual FoxPro系统时,系统默认编号为1的工作区为当前工作区。 工作区的别名有两种,一种由系统定义;另一种由用户定义。Visual FoxPro系统对前10个工作区除使用110编号外,还为其定义了别名,即依次用AJ来表示110号工作区。,用户也可以在一个工作区中打

3、开一个数据表文件的同时为该表定义一个别名,而该表的别名也可作为工作区的别名。如果未给该数据表定义别名,则数据表的主名就是别名。,格式:USE ALIAS 功能:打开指定的数据表文件,并给表文件指定一个别名。,例:打开工资表,并给该表指定别名GZ。 USE 工资表 ALIAS GZ,3、选定工作区 当需要同时对多个数据表进行操作时,须使用选择工作区的命令。 格式:SELECT 功能:选择所指定的工作区作为当前工作区。,说明: 由1,2,3,32767 表示。 使用别名时,对于110号工作区可使用系统给定的别名AZ或数据表的别名;对于是110号工作区之外的工作区则使用数据表的别名。,命令SELEC

4、T 0 表示选择当前未使用的工作区中的最小号工作区作为当前工作区。 工作区的切换不影响各工作区数据表记录指针的位置。在工作区未建立关联时,对当前工作区中数据表进行操作时,不影响其他工作区中数据表的内容和记录指针。,例:在1号工作区打开工资表,在2号工作区打开员工表。 SELECT 1 USE 工资表 SELECT 2 USE 员工表,4、工作区的互访 在当前工作区中可以访问其他工作区中已打开的表的数据,可用别名.字段名或别名-字段名来实现。需要注意的是互访时字段前不能使用工作区号。,例:要求显示员工编号为“010301”的职工编号、 姓名以及基本工资。,分析:由于浏览的信息来自于两个表,姓名信

5、息存储于员工表,基本工资信息存储于工资表,因此,这就要进行多表操作。,由于两个表的指针之间不存在任何关系,因此,只能分别在二个表中先移动指针到员工编号为“010301”的记录上再进行浏览。,命令序列如下: SELECT 3 USE 员工表 LOCATE FOR 员工编号=010301 SELECT 2 USE 工资表 LOCATE FOR 员工编号=010301 DISPLAY 员工编号, 姓名, c.基本工资,5.1.2 建立表的临时关系,Visual FoxPro提供在各表之间建立关联的操作,本节所介绍这种关联是表之间的临时关系。因为这种关联未被保存在任何文件中,每次打开表后,若需要使用,

6、都必须重新建立关联。,1、关联 不同的工作区中打开的数据表都有各自的记录指针,用以指向当前记录。建立关联,就是在不同工作区的记录指针之间建立临时的联动关系,使得当一个工作区的数据表的记录指针移动时,另一个工作区的数据表的记录指针能随之移动。,关联是建立在两个表之间,这两个表分别为主表和子表。建立好关联后,当主表的记录指针移动时,子表的记录指针会自动移到满足关联条件的记录上。,关联条件通常设置为主表和子表在关联表达式上的值相等。例如,在员工表与工资表之间建立关联,主表是员工表,子表是工资表,其关联条件是员工表中的“员工编号”字段值与工资表的“员工编号”字段值相等。关联建立后,当员工表的记录指针指

7、向某一个记录时,工资表的记录指针依据关联条件自动将记录指针指向与员工表当前记录的员工编号字段值相等的记录。,关联与关联条件,2、建立关联 建立关联有两种方法:一种是通过数据工作期窗口建立关联,一种是命令方式来建立关联。,(1)数据工作期窗口的基本操作 数据工作期是一个用来设置数据工作环境的交互操作窗口。利用数据工作期窗口可以打开或显示表或视图、建立表间临时关系以及设置工作区属性等,并且在数据工作期窗口设置的环境能以视图文件的形式保存起来,需要时将视图文件打开就能恢复所保存的环境。,数据工作期窗口的打开与关闭的方式有菜单 方式和命令方式两种: 菜单方式 选择“窗口”菜单的“数据工作期”命令,即打

8、开 数据工作期窗口;选择“文件”菜单的“关闭”命令,即关闭数据工作期窗口。 命令方式 打开窗口的命令格式:SET |SET VIEW ON 关闭窗口的命令格式: SET VIEW OFF,数据工作期窗口包括三个部分:左边的“别名”列表框显示已打开的表,可以在其中选择当前表。右边的“关系”列表框显示表之间的关联情况。中间一列是多个功能按钮。,数据工作期窗口,中间多个功能按钮的功能如下: 属性按钮:用于打开“工作区属性”对话框,对表进行多种设置。 “索引顺序”列表框选择主控索引; “修改”按钮打开表设计器,用于修改表结构、建立或修改索引。通过“数据过滤器”与“字段筛选”按钮选择需要操作的字段和记录

9、。,属性对话框,浏览按钮:打开当前表的浏览窗口,供浏览或修改数据。 打开按钮:可用来打开表。若某数据库已打开,也可用来打开数据库表。 关闭按钮:用来关闭当前表。 关系按钮:以当前表为主表建立关联。 一对多按钮:建立一对多的关系,等效于SET SKIP TO 命令。若不选此按钮,系统默认为多对一的关联。,(2)在数据工作期窗口建立关联 在数据工作期窗口,可以建立自由表之间的关联(表间临时关系),也可以建立数据库中各表之间的关联。建立的步骤是: 打开需建立关联的多个表。 为子表按关联的关键字建立索引或确定为主控索引。 选择主表工作区为当前工作区,并建立主表与一个或多个子表的关联。 建立一对多的关联

10、。若缺省本步,则默认建立的是多对一的关联。,(3)用命令方式建立关联 一对一的关联 一对一的关联是指主表中的记录在子表中只有一条记录满足关联条件,而且子表记录在主表中也只有一条记录相匹配。 格式:SET RELATION TO INTO | , INTO | ADDITIVE 功能:使当前工作区的数据表(主表)与INTO子句所指定的工作区上的一个或多个表(子表)按关联表达式建立关联。,说明: (1)建立关联前,必须在不同工作区中打开主表和子表,并选择主表所在工作区为当前工作区。INTO子句中的或 指定子表。 (2) 用于指定关联条件。关联条件有两种形式:索引表达式或数值表达式。索引表达式与关联

11、表达式不一定相同,但大多数情况相同。 (3)如果选用“索引表达式”建立关联,首先要在子表中按索引表达式建立索引且指定为主控索引,然后,使用SET RELATION TO命令建立关联。,关联建立好后,每当主表的记录指针移动时,Visual FoxPro就自动在子表中查找其索引表达式值与主表中索引表达式值相等的记录,若找到了,则记录指针指向找到的第一条记录,如果没有找到,则记录指针指向表尾。,(4) 选用“数值表达式”建立关联,则当主表的记录指针移动时,子表的记录指针移至记录号与数值表达式值相等的记录上。此时,子表不需要建立索引,只是将数值表达式的值作为一个记录号的值进行关联,相当于在子表中执行一

12、条GOTO 命令。若该表达式的值大于子表的文件记录总数,则记录指针指向表尾。,(5) 若选用ADDITIVE选项,则在建立新关联的同时保持原先的关联,否则,删除以前建立的关联。 省略所有选项时,命令“SET RELATION TO”的功能是解除所有关联。 (7) 该命令也可实现多对一的关联,即主文件中多条记录对应到子文件中的一条记录,执行过程与一对一的关联的执行过程相同。,例:在员工表与工资表之间按职工编号建立一对一的关联。 显示以下内容:(1)所有职工的姓名,基本工资,水电费;(2)显示所有已婚职工的姓名、职称和职称津贴。 分析:设主表为员工表,子表为工资表,关联表达式为“员工编号”。先在子

13、表中按“员工编号”建立索引,然后,选择主表的工作区为当前工作区,并在此工作区中建立关联。,SELECT 1 USE 工资表 & 打开子表 INDEX ON 员工编号 TAG ZGBH & 在子表中建立索引 SELECT 2 USE 员工表 & 打开主表 SET RELATION TO 员工编号 INTO A & 建立一对一的关联 LIST 姓名,A-基本工资,A-水电费,主窗口显示如下: Record# 姓名 A-基本工资 A-水电费 1 陈胜利 1800.00 180.00 2 刘莉莉 649.00 80.00 3 唐家 1400.00 240.00 4 赵高 1050.00 170.00

14、5 刘敏敏 1100.00 105.00 6 胡卫国 800.00 60.00 7 贺子 760.00 30.00,LIST 姓名,职称,A-职称津贴 FOR 婚否 主窗口显示如下: Record# 姓名 职称 A-职称津贴 1 陈胜利 教授 2000.00 2 唐家 副教授 1500.00 3 赵高平 讲师 1000.00 4 刘敏敏 讲师 1000.00,例:建立员工表、工资表和部门表之间的关联。要求显示职工的姓名,基本工资和所在部门。 分析:由于要显示的字段内容分别来自三个表,所以解决问题的关键是建立好三个表之间的关联,员工表与工资表之间可按员工编号建立一对一的关联,员工表与部门表之间按

15、部门编号建立多对一的关联。,命令序列如下: SELECT 2 USE 工资表 编号 INTO C LIST 姓名,B-基本工资,C-部门名称,主窗口显示如下: Record# 姓名 B-基本工资 C-部门名称 1 陈胜利 1800.00 校办 2 刘莉莉 649.00 人事处 3 唐家 1400.00 校办 4 赵高 1050.00 会计系 5 刘敏敏 1100.00 信管系 6 胡卫国 800.00 人事处 7 贺子 760.00 财金系,一对多的关联 在多表关联中,如果主表中一条记录与子表中的多条记录相匹配,当需要访问子表中的多条匹配记录时,就需要建立一对多的关联。 在上个例题中,若选择部

16、门表为主表,员工表为子表,并要求显示职工的姓名和所在部门,就需要在部门表和员工表中建立一对多的关联,如图所示。,格式:SET SKIP TO , 功能:建立当前表(主表)与子表之间的一对多 的关联。 说明: (1) 别名指定子表所在的工作区。 (2) 省略所有选项时,命令“SET SKIP TO”的功能是解除主表所建立的一对多关联,但是SET RELATION 命令建立的关联仍然存在。 (3)建立一对多的关联需分两步来完成:先使用命令SET RELATION TO建立一对一的关联(只能使用索引表达式),再使用命令SET SKIP TO建立一对多的关联。,例:部门表与员工表之间按部门编号建立一对

17、多的关联。要求显示职工的姓名和所在部门。,分析:在上个例题中,建立了员工表与部门表之间多对一的关联,本例题要求建立部门表与员工表之间一对多的关联,关联表达式都是部门编号。 两者区别仅仅在于选择的主表和子表不同,以及建立的关联不同,从显示结果分析可知,两种方法获得的信息是一致的。,命令序列如下: SELECT 1 USE 员工表 ALIAS YG INDEX ON 部门编号 TAG BMBH SELECT 2 USE 部门表 SET RELATION TO 部门编号 INTO YG SET SKIP TO A LIST A-姓名,部门名称,主窗口显示如下: Record# A-姓名 部门名称 1

18、 陈胜利 校办 1 唐家 校办 2 刘莉莉 人事处 2 胡卫国 人事处 3 赵高 会计系 4 刘敏敏 信管系 5 贺子 财金系,在建立一对多的关联后,两表中记录指针的联动的过程是:当主表的记录指针指向某一条记录时,子表的记录指针会在子表中所有的记录中去寻找匹配记录,每一条匹配记录都将和主表的该条记录组合生成一条新记录,然后主表的记录指针移到下一条记录,子表又将在子表的所有记录中寻找匹配记录,依次进行下去,直到主表的最后一条记录匹配完成,该命令执行完毕。,5.1.3 表的联接,JOIN WITH | TO FOR FIELDS ,将当前表与指定工作区的表按指定的条件进行联接,联接后产生一个新的数

19、据表。,联接时,首先两个工作区的记录指针分别指向联接和被联接表中的第一条记录,然后顺序检索被联接表中的每条记录,看是否满足条件,如果条件满足则在新表中生成一条新记录,当被联接表所有记录扫描完以后,则联接表的记录指针即下移一条记录,继续在被联接表中查找满足条件的记录并联接生成新记录。 重复上述过程,直至两表中所有记录均处理完毕。,若联接表的一条记录在被联接表中有m条符合条件的记录,便可在新数据表文件中生成m条记录。若联接表有n条记录,设被联接表的所有记录都符合条件,则新生成的表将含有mn条记录。 当m,n值较大时,表联接过程将花费较长的时间。如果很宽,将使很多记录参与联接,并且产生一个庞大的表。

20、 联接中最常用的是等值联接,即联接条件为两个表中公共字段值对应相等。,例:以员工编号相等为条件联接员工表与工资表组合生成一个新数据表XSCJ .DBF,其中包括员工编号,姓名,基本工资和职称津贴四个字段。 SELE 1 USE 工资表 SELE 2 USE 员工表 JOIN WITH A TO XSCJ FOR 员工编号=A.员;工编号 FIELDS 员工编号,姓名,A.基本工资,; A.职称津贴 USE XSCJ LIST,5.2 数据库的设计,使用自由表还是数据库表来保存要管理的数据,取决于需要管理的数据之间是否存在关系以及关系的复杂程度。 如果开发的是一个工资管理系统,要保存的数据不能只

21、用一个表存储,而需要多张表,表与表之间也存在相互关系,这时就有必要设计和建立数据库,把这些表添加进数据库,并建立表与表之间的永久关系。 用户的数据仍然保存在数据表里,而表与表之间的关系等信息则保存在数据库里。,Visual FoxPro是关系型数据库管理系统。关系型数据库是由相关的表通过其相互关系组合起来的数据集合。 在数据库里,主体是表,除此之外还包括视图、连接和存储过程等,使得数据库中的所有信息成为一个有机的整体,为数据库的使用者提供极大的方便和强大的处理功能。 Visual FoxPro数据库不但提供了存储数据的结构,而且在使用数据库时,可以在表一级进行功能扩展。,5.2.1 数据库设计

22、的目的和方法,创建数据库之前,首先对数据库总体设计,明确数据库要实现的功能,建立数据库的目的和使用的方法,以及用户可以从数据库中获取的信息。 首先列出需要数据库解决的问题清单。例如,职称不同时,基本工资是否不同;对于不同的用户,其使用权限是否不同等等,然后收集系统需要输出的表和报表等信息。 最后确定需要保存的主题信息(表),以及每个主题需要保存的信息(表中的字段)。,5.2.2 数据库设计的一般过程,数据库设计过程的关键在于明确关系型数据库管理系统存储数据的方式与关联方式。,数据库设计的一般过程如下: 1、需求分析 确定建立数据库的目的,是整个数据库设计中最重要的步骤之一,也是后续各阶段的基础

23、。 2、确定需要的表 在明确了对数据的需求后,就可以着手把所需求的各种信息分成各个独立的主题。,3、确定需要的字段 确定在每个表中要保存哪些信息,从而确定表的结构,并对各个字段的类型、长度、有效性等进行设定。 4、确定各表之间的关系 分析每个表,确定一个表的数据和其他表的数据之间的关系,各表之间的数据的联接方式(建立永久关系或临时关系),最后使用不同的组合来获取来自多个数据表的信息。 5、设计求精 对设计进一步分析,查找其中的不合理处。创建表时,在表中加入几个示例数据记录,看能否从表中得到想要的结果。如果发现设计不完备,可对设计作一些调整。,5.3 数据库的基本操作,在Visual FoxPr

24、o中,数据库通过一组系统文件对相互联系的数据库表及其相关联的数据库对象进行统一的组织和管理。 建立数据库时,数据库文件的扩展名为.dbc,同时自动建立与之相关的一个扩展名为.dct的备注文件和一个扩展名为.dcx的索引文件。 数据库的基本操作包括建立、打开、关闭和删除数据库,浏览数据库文件以及向数据库中增加、移去表等操作。,5.3.1 数据库的创建,创建数据库有菜单方式和命令方式。,1、菜单方式 选择“文件”菜单中的“新建”命令,弹出“新建”对话框,如右图所示。,在“新建”对话框中,选择“数据库”按钮,然后单击“新建文件”按钮,弹出“创建”对话框。,在“创建”对话框中输入数据库文件名和保存位置

25、。选择“保存”按钮,将打开数据库设计器。,数据库设计器是交互修改数据库对象的界面和工具,其中显示数据库中包含的全部表、视图和表间联系。,此时,完成创建数据库的操作,并同时打开了数据库设计器。,2、命令方式 格式:CREATE DATABASE |? 功能:建立新数据库。 说明: (1) 指定生成的数据库文件,此处可指定路径及文件名。 省略扩展名则默认为.dbc。如果未指定数据库文件名或用“?”代替数据库文件名,Visual FoxPro会弹出“创建”对话框,以便用户选择数据库存放的位置和输入数据库名。 (2) 该命令建立数据库后并不打开数据库设计器,而是建立一个新的数据库文件,并自动以独占方式

26、打开此数据库文件。,例: 在e:my data下建立文件名为“工资管理”的数据库文件。 CREATE DATABASE e:my data工资管理 系统环境中,若已将Visual FoxPro的默认工作目录设置为e:my data,则在命令中可以 省略路径,直接使用命令: CREATE DATABASE 工资管理,5.3.2 数据库的打开,1、菜单方式 (1) 选择“文件”菜单下的“打开”命令,出现“打开”对话框。 (2) 在该对话框中的“文件类型”下拉列表框中选择“数据库(*.DBC)”;然后,选择所要打开的数据库文件,单击“确定”按钮,此时,打开了数据库文件,同时也打开了数据库设计器。,建

27、立数据库后,若要在库中建立的数据库表或使用数据库中的表时,都必须先打开数据库。,2、命令方式 格式:OPEN DATABASE | ? NOUPDATE EXCLUSIVE|SHARED 功能:打开一个数据库文件,与之相关数据库备注文件(.dct)与索引文件(.dcx)也一起被打开。 说明: (1) 指定要打开的数据库文件。 若省略扩展名,默认为.dbc。如果未指定数据库文件名或用“?”代替数据库文件名,则出现“打开”对话框,在对话框中选择数据库文件并打开。,(2)NOUPDATE指定以只读方式打开数据库;EXCLUSIVE指定以独占方式打开数据库,即不允许其他用户在同一时刻也使用该数据库;S

28、HARED指定以共享方式打开数据库。 (3)该命令打开了数据库文件,但并不打开 数据库设计器。这是与菜单方式不同的地方。若需打开数据库设计器,可以使用MODIFY DATABASE命令。,例:打开数据库文件e:my data工资管理.dbc。 OPEN DATABASE e:my data工资管理,在Visual FoxPro中,操作时可以打开多个数据库,但在同一时刻只有一个当前数据库,所有作用于数据库的命令或函数都是对当前数据库而言。打开多个数据库时,最后被打开的数据库为当前数据库,也可从常用工具栏上的数据库下拉列表中选择一个打开的数据库作为当前数据库,或使用SET DATABASE命令选择

29、一个数据库作为当前数据库。 在数据库被打开的情况下,该数据库中所有表都可以使用,但这些表并没有自动打开,使用时仍需用USE命令打开。,5.3.3 数据库的关闭,数据库文件操作完成后,必须将其关闭,以确保数据的安全性。 格式: CLOSE ALL | DATABASE 说明: (1)ALL用于关闭所有对象,例如,数据库、表、索引等。 (2)DATABASE用于关闭当前数据库和数据库表。,在Visual FoxPro中,修改数据库实际上是打开数据库设计器,在其中完成各种数据库对象的建立、修改和删除等操作。 MODIFY DATABASE | ? 功能:打开指定的数据库文件所对应的数据库设计器,以便

30、对该数据库中的各种数据库对象进行修改操作。 说明: 指定要修改的数据库文件。如果未指定数据库文件名或用“?”代替数据库文件名,则出现“打开”对话框。,5.3.4 数据库的修改,5.3.5 数据库的删除,DELETE DATABASE | ? DELETETABLES RECYCLE,例:彻底删除数据库文件e:my data工资管理.dbc以及其中的数据表等相关文件。 DELETE DATABASE ; e:my data工资管理 DELETETABLES,5.4 数据库表的基本操作,在Visual FoxPro中,表分为数据库表和自由表两种,两种表的扩展名均为.dbf。 属于某一数据库的数据表

31、称为数据库表,不属于任何数据库而独立存在的数据表称为自由表,两种表可以互相转换。 当一个自由表添加到某一个数据库时,自由表就成为数据库表,反之,若将数据库表从某一数据库中移出,该数据库表就成为自由表。,使用数据库表还是自由表来保存需要管理的数据,取决于管理的数据之间是否存在着关系以及关系的复杂度。如果要保存的数据需要多个表,表与表之间又存在相互关系,这时必须建立一个数据库,把这些表添加进数据库。 需要注意的是,在数据库中,实际只存储指向数据库表的路径指针,而数据库中的表或者其他数据库对象是独立存放在磁盘上的。,5.4.1 添加数据库表,首先打开需要添加表的数据库文件,然后就 可以建立一个新的数

32、据表或将自由表添加到该数 据库中而使之成为数据库表。 操作步骤是: 打开数据库设计器,在数据库设计器中,单 击工具栏的“添加表”按钮。 在“打开”对话框中选择要添加的表名,单击 “确定”按钮。这样,自由表就被添加进数据库 中,成为数据库表。,5.4.2 建立新数据库表,1、菜单方式 操作步骤是: (1)打开数据库设计器后,在 “数据库”菜单或数据库设计器的快捷菜单中,选择“新建表”命令,出现 “新建表”对话框中。 (2)从“新建表”对话框中选择“新建表”,出现“创建”对话框;在“创建”对话框可以输入表名、选择保存表的位置,然后单击“保存”按钮,便出现数据库表的“表设计器”对话框。,2、命令方式

33、,注意:如果已打开了数据库,则CREATE命令在数据库中直接建立表。如果没有打开数据库,则CREATE命令建立的表是自由表。 数据库表的表设计器对话框的下部,有显示、字段有效性、匹配字段类型到类和字段注释4个输入区域,而这些设置在自由表的表设计器中并未包含。,用CREATE命令建立新数据库表: CREATE DATABASE |?,数据库表的表设计器,数据库表所具有,而自由表不具备的几个属性: (1)数据库表可以使用长表名和长字段名。 (2)可为数据库表中的字段指定标题和添加注释。 (3)可为数据库表的字段指定默认值和输入掩码。 (4)数据库表的字段有默认的控件类。 (5)可为数据库表规定字段

34、级规则和记录级规则。 (6)数据库表支持参照完整性的主关键字索引和 表间关系。 (7)支持INSERT、UPDATE和DELETE事件的触 发器等。,在Visual FoxPro中,自由表的字段名最多包含10个字符,数据库表的字段名最多包含128个字符。 建立数据库表时,不仅要确定字段名、类型、宽度等内容,还可给字段和表定义属性。当自由表添加到数据库后,便可以设置许多自由表中得不到的属性,这些属性作为数据库的一部分保存起来,并且一直为其所拥有。然而,一旦数据库表移出成为自由表,则这些属性就被取消。,1、设置字段属性 数据库表设计器中,在字段选项卡的“显示”区域来设置字段属性,包括显示和格式、输

35、入掩码和标题。 (1)格式 在“显示”区域的“格式”文本框用于键入格式表达式,确定当前字段在浏览窗口、表单或报表中输出显示时的格式,包括大小写、字体大小和样式等。 例如,如果在“格式”文本框中键入“!”号,则在输出显示该字段内容时,将所有字母转换为大写字母;如果键入字母A表示仅允许输出文字字符,不允许输出数字、空格和标点符号。,部分格式字符及功能如下表所示:,(2)输入掩码 在“显示”区的“输入掩码”文本框中键入输入掩码,用来指定字段的输入格式,从而减少人为的数据输入错误,控制数据输入的正确性。需要注意的是,输入掩码必须按位指定。例如,将输入掩码设置为999,999,表示在输入时,只能输入数字

36、且最多输入6位数字,中间的“,”号不是掩码,不必输入,保持原样,输入时光标会自动跳过。,部分输入掩码字符功能如下表所示:,(3)标题 “标题”文本框中用来指定字段显示时的字段标题。 在定义数据库表的字段名时,一般都比较简练,例如,代表学生姓名的字段可使用姓名、XM、NAME等作为字段名,但在输出显示时难于表现字段的含义。所以,标题就是设置当前字段在浏览窗口、表单或报表的标题中所显示的内容。,2设置有效性规则 有效性规则是一个与字段或记录相关的表达式,通过对用户的值加以限制,提供数据有效性检查。建立有效性规则时,必须建立一个有效的规则表达式,以此来控制输入到数据库表的字段和记录的数据有效性。数据

37、输入时,有效性规则把所输入的值与所定义的规则表达式进行比较,如果输入的值不满足规则要求,则拒绝该值。 有效性规则分两种:字段有效性规则和记录有效性规则。,字段有效性规则用来对当前字段输入数据的有效性、合法性进行检验,它是对字段的约束,用以检查单个字段中输入的数据是否有效。 记录有效性规则用来对同一记录中不同字段之间的逻辑关系进行验证,它是对记录的约束。当插入或修改记录时,记录有效性规则被激活,用来检查数据输入的正确性。记录有效性规则只有在整条记录输入完毕后才开始检查数据的有效性。 有效性规则只在数据库表中存在。如果从数据库中移去或删除一个表,则所有属于该表的字段有效性规则和记录有效性规则都会从

38、数据库中删除。,(1)字段有效性 字段有效性区域包含规则、信息和默认值三个文本框,各文本框均可以直接键入数据,也可以通过单击其右边的对话按钮 。,字段有效性的设置, “规则” 文本框:输入对字段数据有效性进行检查的逻辑表达式。例如,性别=”男” OR 性别=”女”。其设置过程可直接在文本框中输入也可以在“表达式生成器”对话框中进行。,表达式生成器,“信息”文本框:用于输入出错提示信息。在进行字段有效性校验时,发现输入的字段内容有错时,显示出错提示信息,例如“性别字段内容只能输入男或女”。 “默认值” 文本框:用于指定字段的默认值。在增加新记录时,字段默认值会自动在新记录中显示出来,当该字段为默

39、认值时,不用输入,从而提高输入速度。例如,在性别字段中,设置默认值为“男”。,(2)记录有效性 在数据库表的表设计器中,“表”选项卡中包含记录有效性区域,其中包含“规则”和“信息”两个文本框,文本框的内容输入均可通过单击其右边按钮,在弹出的对话框中输入信息。 “规则”文本框用于指定记录级有效性检查规则,是一个逻辑表达式。 “信息”文本框用于指定出错提示信息。在检验记录级有效性规则时,发现输入与规则不符时该信息将会显示出来。,例如设置员工表的记录有效性。在“规则“文本框中输入:SUBSTR(部门编号,2,1)=SUBSTR(员工编号,4,1)。在“信息”文本框输入“ 部门编号的第2位数字与员工编

40、号的第4位数字要相同”。,(3)触发器 字段级有效性和记录有效性规则主要限制非法数据的输入,而数据输入后还要进行修改、删除等操作。若要控制对已经存在的记录所作的非法操作,则应使用数据库表的记录级触发器。 触发器是在某些事件发生时触发执行的一个表达式或一个过程。这些事件包括插入记录、修改记录和删除记录。,“表”选项卡中有3个触发器,分别用于指定记录插入、更新、删除的规则。 插入触发器:每次向数据库表中插入或追加记录时,触发该规则,以检查插入的记录是否满足规则。 更新触发器:每次更新记录时,触发该规则。 删除触发器:每次对表记录进行逻辑删除时,触发该规则。,5.4.3 从数据库中移去表,在数据库设

41、计器中,先选择要移去的表,然后单击 “移去表”按钮,或在“数据库”菜单中选择“移去”命令,将弹出“系统提示”对话框 :,选择“移去”按钮,数据表仅从数据库中移去,该数据表仍存在磁盘上;选择“删除”按钮,则数据表不但从该数据库中移去,而且也进行了物理删除。,5.4.4 修改数据库表,在数据库设计器中可以直接修改表的内容和表结构,右击要修改的数据库表,弹出快捷菜单:,若选择“浏览”命令,即进入表的浏览窗口, 以后的操作和对自由表的浏览操作相同; 若选择“删除”命令,即可删除表; 若选择“修改”命令,即打开相应表的表设计 器,在表设计器中可以修改表结构、建立索 引以及设置字段属性和表的有效性规则。,5.4.5 建立表间的永久关系,在Visual FoxPro中,可以建立数据库表之间的永久关系,使相互关联的表协同工作,使数据得到更充分的利用。 多表间的永久关系在查询和视图中能作为多表联接的条件,也可作为表单和报表的默认关系,永久关系被存储在数据库文件中,可以一直使用,除非该永久关系被删除或更改。而多表间的临时关系仅用于控制关联表之间的指针联动,这种关系不能被保存在文件中,每次要使用时都需要重新建立。,1、为数据库表建立索引 选择需要建立索引的数据库表,单击数据库设计器工具栏的“修改表”按钮,弹出表设计器窗口,单击索引选项卡,在各栏输入有关内

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论