visual foxpro6.0 数据库及其操作

89
铜铜铜铜铜铜铜铜铜铜铜 Visual FoxPro6.0 数数数数数数数 3.1 数数数数数数 3.2 数数数数数数数数数 3.3 数数数数数数数数 3.4 数数数数数 3.5 数数数数 3.6 数数数 数 3.7 数数数数数数 3.8 数数数数

Upload: peyton

Post on 06-Jan-2016

66 views

Category:

Documents


11 download

DESCRIPTION

Visual FoxPro6.0 数据库及其操作. 3.1 数据库的建立 3.2 数据表的设计与建立 3.3 数据表的基本操作 3.4 排序与索引 3.5 数据查询 3.6 数据统计 3.7 多工作区操作 3.8 数据词典. 数据库(. DBC). 备注(. FTP). 库表(. DBF). 索引(. IDX). 3. 1 数据库的建立. 数据库是表的集合,即在一个数据库中可以包含若干个通过关键字段相互关联的表。一个数据库文件(. DBC) 中存储了所包含的表与表之间的联系,以及依赖于表的视图、联接和存储过程等信息。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

Visual FoxPro6.0 数据库及其操作

3.1 数据库的建立3.2 数据表的设计与建立3.3 数据表的基本操作3.4 排序与索引 3.5 数据查询3.6 数据统计3.7 多工作区操作3.8 数据词典

3.1 数据库的建立3.2 数据表的设计与建立3.3 数据表的基本操作3.4 排序与索引 3.5 数据查询3.6 数据统计3.7 多工作区操作3.8 数据词典

Page 2: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.1 数据库的建立 数据库是表的集合,即在一个数据库中可以包含若干个通过关键字段相互关联的表。一个数据库文件( .DBC )中存储了所包含的表与表之间的联系,以及依赖于表的视图、联接和存储过程等信息。 把表放入数据库中可以减少数据冗余,保护数据的完整性,使得对数据的管理更加方便和有效。

数据库 (.DBC)数据库 (.DBC)

库表 (.DBF)库表 (.DBF)备注 (.FTP)备注 (.FTP) 索引 (.IDX)索引 (.IDX)

Page 3: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

项目是文件、数据、文档和 VFP 对象的集合。利用“项目管理器”可以很方便地组织和管理项目中的各类数据和对象 用户在开发一个应用系统时,通常都是先从创建项目开始的。

项目 (.PJX)项目 (.PJX)

文档文档 数据数据 代码代码类类 其他其他

Page 4: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

VFP 项目组织简图

查询 (.QPR)查询 (.QPR)

项目 (.PJX)项目 (.PJX)

文档文档 数据数据 代码代码类类 其他其他

自由表 (.DBF)自由表 (.DBF)数据库 (.DBC)数据库 (.DBC)

库表 (.DBF)库表 (.DBF)备注 (.FTP)备注 (.FTP) 索引 (.IDX)索引 (.IDX)

Page 5: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

1. 建立工作目录 : 组织和管理磁盘中的各类文件 2 .建立项目文件 ⑴ 菜单:选择“文件 / 新建”菜单命令,或按工具栏“新建”按钮,在“新建”对话框中选择“项目”项 ⑵ 命令: CREATE PROJECT [< 项目文件名 >] 3 .打开项目文件 ⑴ 菜单:选择“文件 / 打开”菜单命令,或按工具栏的“打开”按钮,在“打开”对话框中选择项目文件 (*.PJX) ⑵ 命令: MODIFY PROJECT [< 项目文件名>]

Page 6: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.1.2 数据库的建立 1. 建立数据库 ⑴ 项目管理器:“新建 : 数据库” ⑵ 菜单:选择“文件 / 新建 : 数据库”菜单命令 ⑶ 命令: CREATE DATABASE < 数据库名 >

2 .在项目中添加数据库 在项目管理器中选定“数据库”项,按“添加”按钮,在“打开”对话框中选择需要添加的数据库文件

Page 7: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.1.3 数据库的基本操作1. 打开数据库 ⑴ 项目管理器:选定要打开的数据库,按“打开”按钮 ⑵ 菜单:选择“文件 / 打开”菜单命令 ⑶ 命令 ① 打开数据库文件: OPEN DATABASE [< 数据库文件名 >]

② 打开数据库设计器: MODIFY DATABASE [< 数据库文件名 >]

Page 8: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

2. 关闭数据库 ⑴ 项目管理器:选定要关闭的数据库,按“关

闭”按钮 ⑵ 命令: CLOSE DATABASES3. 删除数据库 ⑴ 项目管理器:选定数据库后,按“移去”按钮,

将从项目中移去选定的库文件;按“删除”按钮,则将选定的库文件从磁盘上删除

⑵ 命令: DELETE DATABABE < 数据库文件名>

Page 9: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.2 数据表的设计与建立1. 数据表和数据库 表 (Table) 是处理数据和建立关系型数据库及应用程序的基本元素。数据库(DATABASE) 是表的集合2. 数据表的类型 ⑴ 自由表:不属于任何数据库而独立存在的表 ⑵ 数据库表:属于某一数据库的表3. 数据表的结构 数据表形式上是一组相关联的数据按行和列排列的二维表格,用来描述一个实体

字段字段

记录记录

Page 10: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.2.1 表结构的设计 在 VFP 中,二维表中的每一列称为一个字段( Field ),除标题行外的每一行称为一条记录 (Record) 。每一列的标题叫字段名,列标题下的数据叫字段值,所有的字段名构成二维表的标题行(表头),标题行就叫数据表的结构( Structure )。一个数据表就是由表结构和记录两部分组成。

设计表的结构即定义该表所包含的字段名、类型、宽度、小数位数、索引和 NULL 等。

Page 11: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

1 .字段名 字段名用来标识表中的字段,它必须以字母或汉字开头,由字母、汉字、数字或下划组成,不能含空格。数据库表的字段名最长为 128 字符( 64 个汉字),自由表的字段名最长为 10 个字符( 5 个汉字)。一个表最多可以有 128 个字段,且字段名不能重复。

2 .字段的数据类型 字段的数据类型决定了存储在此字段中的数据的类型,由字段的数据类型决定对该字段所允许的操作。 VFP 提供了 13 种数据类型,如下所示:

Page 12: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

数据 类型

数值型 : 可以是正数或负数,也可以是整数或小数,数据长度最多为 20 位。如表 XSDA中的“入学分”字段的数据类型可以设置成数值型。

货币型 :货币单位,如货物的价格。货币型数据的表示方法是在数据前添加符号$。

字符型 : 可以是英文字母、汉字、数字字符 各种字符型文本,所占用的宽度为 1~254个字节,如学生情况表 XSDA 中的“姓名”字段的数据类型可以设置成字符型。

Page 13: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

数据 类型 日期时间型 : 由年、月、日、时、分、秒

构成的数据类型,如学生上课的时间。

日期型 : 由年、月、日构成的数据类型,如表 XSDA 中的“出生日期”字段的数据类型可以设置成日期型。

浮点型 : 功能上类似于“数值型”,其长度在表中最长可达 20 位。

Page 14: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

逻辑型:值为“真”( .T. )或“假”( .F. ),如表 XSDA 中的“是否团员”字段的数据类型可以设置成逻辑型。

整型:不带小数点的数值类型,其优点在于比其他数值型数据占据有存储空间要小,它只用 4 个字节,简记 I型。

双精度型:双精度数值类型,一般用于要求精度很高的数据。

数据 类型

Page 15: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

数据 类型

通用型 : 用于标记电子表格、文档、图片等 OLE 对象。通用型数据类型的固定长度也为 4 个字节,但实际长度仅受磁盘存储空间限制,并且所保存的数据信息也是存放在与表文件同名,扩展名为 .FPT 的文件中。

备注型 : 不定长的字符型文本,如用于存放个人简历等。备注型数据类型的固定长度为 4 个字节,但实际长度仅受磁盘存储空间限制,并且所保存的数据信息实际上并不存放在表文件中,而是存放在与表文件同名,扩展名为 .FPT 的文件中。

Page 16: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3 .字段宽度 数据类型为 C 、 N 、 F 的字段的宽度必须能容纳将要显示的信息的内容, C 型字段的宽度不能大于 254 个字节,否则必须使用M 型字段。数据类型为Y 、 D 、 T、 I、 B 、 L、M 、 G 的字段的宽度由系统规定。

4 .小数位数 对于 N 型和 F 型的字段,还要定义小数位数。

小数位数指小数点右边有几位数字。字段宽度包括整数位数、小数位数、正负号和小数点。对于整数,小数位数设为 0 ;对于纯小数,小数位数至少比字段宽度少 1 位。

Page 17: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

5 .使用空值( NULL ) 在创建数据表结构时,是否选定字段为 NULL 值,这决定该字段中的数据是否接收空值。空值不同于0 ,空字符串或者空白,而是一个不确定的值。

字段 字段名 类型 宽度 小数位数

1 学号 字符型 (C) 5

2 姓名 字符型 (C) 8

3 性别 字符型 (C) 2

4 出生日期 日期型 (D) 8

5 是否团员 逻辑型 (L) 1

6 籍贯 字符型 (C) 10

7 简历 备注型 (M) 4

8 照片 通用型 (G) 4

Page 18: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.2.2 表结构的建立 表结构的定义在“表设计器”中完成。打开表设计器的方法有: ⑴ 菜单:选择“文件 / 新建”菜单命令 ⑵ 命令: CREATE < 表文件名 >

⑶ 项目管理器 定义表结构就是设置表的字段属性,包括字段名、数据类型、字段宽度和小数位数等。

Page 19: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

输入记录数据可以选择“显示 /浏览”或“编辑”菜单命令,在“浏览”或“编辑”窗口中进行。 ⑴ 一般数据的输入 字符型、数值型、逻辑型、日期型等字段类型数据可以直接在浏览窗口或编辑窗口中输入。

Page 20: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

⑵ 备注型字段数据的输入 双击名为“ memo” 的备注字段标志,进入备注窗口,输入文本内容 ⑶ 通用型字段数据的输入 双击名为“ gen” 的通用字段标志,进入通用型字段输入编辑窗口。选择“编辑 /插入对象”菜单命令,在“插入对象”对话框中选择插入 OLE 对象 如果在数据表中定义了备注型或通用型字段,系统会自动生成与表文件名相同的备注文件 (.FPT) 。备注文件是表文件的辅助文件,它随着表文件的打开而打开,随着表文件的关闭而关闭 无论一个表中定义了多少个备注型或通用型字段,系统只生成一个备注文件。

Page 21: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

Visual FoxPro 6.0 数据表分为数据库表和自由表两种,当某一个表不从属于任何一个数据库的时候就是一个自由表。在创建表时,如果当前没有打开任何数据库,则创建的表就是自由表;否则,创建的就是从属于当前数据库的数据库表。一个自由表可以被添加到某一个数据库中成为从属于该数据库的数据库表;反之,一个从属于某个数据库的数据库表也可以从该数据库中移出,使其成为自由表,两者可以相互转换。

Page 22: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

将自由表添加到数据库 ⑴ 项目管理器 选择“数据库 : 表”项,按“添加”按钮 ⑵ 命令: ADD TABLE < 数据表文件名 >

数据库中的表只能属于一个数据库文件,如果向当前数据库中添加的表已属于其它数据库,则需要先从其它数据库中移去该数据表,然后才能将它添加到当前数据库中。

Page 23: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

从数据库中移去数据表 ⑴ 项目管理器 选定要移去的表,按“移去”按钮,在提示对话框中按“移去”按钮;若 按“删除”按钮,则不仅从数据库中移去该表,同时也从磁盘上删除了该表

⑵ 命令: REMOVE TABLE  <数据表文件名 >。

Page 24: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.2.3 表结构的修改 表结构的修改主要包括:添加和删除字段;修改字段名称、数据类型、字段长度;是否允许为 NULL 值;添加、删除和修改索引标识等。表结构的修改主要是在表设计器中进行,通常首先要打开表文件,然后再打开所选表的“表设计器”对话框。

方法一:用菜单方式修改表的结构 方法二:使用命令方式修改表的结构

Page 25: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

方法一:菜单方式修改表的结构 1. 选择“文件”菜单的中的“打开”或按“Ctrl+O” 键,也可以单击工具栏上的“打开”按钮,在“打开”对话框中选择“文件类型”、为“表( *.dbf )”,选择表所在的文件夹,找到表文件后,双击要打开的表。 2. 选择“显示”菜单的中的“表设计器”,打开所选表的“表设计器”对话框,然后就可以进行表结构的有关修改。

Page 26: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

方法二:用命令方式修改表的结构命令格式: MODIFY STRUCTURE功能:打开表设计器窗口,显示并修改当前 数据表的结构。说明:在使用此命令之前,一定要打开被修 改的数据表。

Page 27: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.3 数据表的基本操作3.3.1 表的打开与关闭3.3.2 表记录的浏览3.3.3 表记录的定位3.3.4 表记录的修改3.3.5 表记录的追加与插入 3.3.6 表记录的删除与恢复 3.3.7 表与表结构的复制 3.3.8 数组和表之间的数据交换

Page 28: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

INSERTAPPENDAPPEND FROM

BROWSEEDITCHANGEREPLACE

DELETERECALLPACKZAP

LISTDISPLAYBROWSE

LOCATECONTINUEFINDSEEK

COUNTSUMAVERAGETOTAL

COPY

统计数据统计数据

数据表结构

数据表记录

新建表新建表

打开 /关闭打开 /关闭

增加记录增加记录 删除记录删除记录 显示记录显示记录修改记录修改记录 检索记录检索记录

排序排序

索引索引

复制表复制表

显示结构显示结构 修改结构修改结构 复制结构复制结构

LIST STRU MODI STRU

COPY STRU

Page 29: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.3.1 表的打开与关闭命令格式: USE [< 表文件名 >] [EXCLUSIVE]

[SHARED]功能:打开指定的数据表文件。• 如果只用 USE ,不带任何选项,则表示关闭当前打

开的数据表文件。• EXCLUSIVE 选项表示以独占的方式打开数据表文

件,不允许其它用户在同一时刻也使用该数据表。• SHARED 选项表示以共享的方式打开数据表文件,

允许其它用户在同一时刻也使用该数据表。 【例 3.1】用命令以独占方式打开学生表 XSDA.dbf ,然

后再用命令关闭该文件。 USE D:\vfp\XSDA.dbf EXCLUSIVE USE

Page 30: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

1 .浏览窗口显示方式 编辑方式和浏览方式。

把浏览窗口分割成两各窗格,各用一种显示方式。

3.3.2 表记录的浏览

Page 31: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

(2) 显示记录 (主窗口 ) 命令: LIST|DISPLAY [<范围 >] [FIELDS <字段名表 >][WHILE <条件 >] [FOR<条件 >]•LIST 命令表示连续显示, DISPLAY 命令表示显示满一屏时暂停,等待按任一键继续显示。•若无 < 范围 > 和 < 条件 > 选项, LIST 命令显示表中所有记录,而 DISPLAY 命令只显示当前一条记录。•若无 FIELDS< 字段名表 > 选项,显示表中记录的全部字段数据,否则,按指定的字段名显示记录数据。•若无OFF 选项,记录号一起显示;若有 OFF 选项,记录号不显示,只显示记录内容。

Page 32: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

数据表的浏览应用示例1. 显示所有男生的姓名与在 2007 年的年龄

2. 显示所有姓“张”同学的学号、姓名 3. 显示所有姓名中含有“林”字同学的学号、姓名 4. 显示所有在本月过生日同学的姓名和出生日期 5. 显示当前记录信息

LIST 姓名 ,2007-YEAR(出生日期 ) FOR 性别=‘男’

LIST 学号 ,姓名 ,FOR LEFT(姓名 ,2)=[ 张 ]

LIST LIST 学号 ,姓名 FOR AT(“林” ,姓名 )#0 $$ “林” $姓名

LIST FIELDS 姓名 ,出生日期 FOR MONTH(出生日期 )=MONTH(DATE())

DISPALY

Page 33: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

记录指针存放的是记录号。被记录指针指向的记录称为“当前记录” 向表中录入数据时,系统会按照录入次序为记录加上记录号 数据表刚打开时,记录指针总是指向首记录 通过移动记录指针可以指定当前要操作的记录

文件起始标识( BOF)

首记录( TOP)

第 2条记录………

记录指针→ 第 i 条记录………

第 n-1条记录尾记录 (Bottom)

文件结束标识( EOF)

3.3.3 表记录的定位 ____1. 记录指针

Page 34: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.3.3 表记录的定位 ____2. 移动记录指针 ⑴ 菜单:打开浏览窗口,选择“表 /转到记录”菜单命

令 ⑵ 命令 ① 绝对移动: [GO[TO]] <记录号 >|TOP|BOTTOM 功能:将记录指针定位在指定记录号的记录上 TOP表示第一条记录, BOTTOM表示最后一条记录 ② 相对移动: SKIP [+|-][<算术表达式 >] 功能:将记录指针从当前位置向前或向后 移动若干条记录位置

Page 35: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

【例 3.2】用命令方式定位并显示表 XSDA 的指定记录。 USE D:\VFP\XSDA GO TOP DISPLAY GO 6 DISPLAY GO BOTTOM DISPLAY 【例 3.3】用命令方式显示表 XSDA倒数第 5条记录信息。 GOTO BOTTOM SKIP -4

DISPLAY

Page 36: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.3.4 表记录的修改1 .在浏览窗口中修改数据方法一:用菜单方式显示数据记录和修改数据【例 3.4 】用编辑方式显示“学生情况表”的数据记

录,并把第 4 条记录同学的籍贯字段内容“浙江”改为“福建”。

Page 37: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

方法二:用命令方式显示数据记录和修改数据命令格式 1 : EDIT [<范围>] [FIELDS< 字段名表 >] [FOR/WHILE < 条件 >]命令格式 2 : CHANGE [<范围>] [FIELDS< 字段名

表 >] [FOR/WHILE < 条件 >]

功能:打开编辑方式窗口,显示数据表中满足指定范围 和条件的记录,并进行修改。说明:• 如果不指定任何选项,从当前记录开始显示所有字段

的数据。• FIELDS< 字段名表 > 选项,指定在窗口中显示的字

段,供编辑修改。不指定此项,则显示全部字段。

Page 38: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

命令格式 3 : BROWSE [FIELDS< 字段名表 >] [FOR < 条件 >] [FREEZE < 字段名 >]

[NOAPPEND] [NOEDIT/NOMODIFY]功能:打开浏览方式窗口,显示数据表中满足指定条件的记 录,并进行编辑修改。说明:• 如果不指定任何选项,显示当前数据表的全部记录。• FIELDS< 字段名表 > 选项,指定在窗口中显示的字段,

供编辑修改。不指定此项,则显示全部字段。• FREEZE < 字段名 > 选项,表示在窗口中只允许修改由< 字段名 > 指定的字段,其它字段只能显示不能修改。不指定此项,允许修改所有字段。

• NOAPPEND 表示在窗口中不能追加任何记录。• NOEDIT/NOMODIFY 表示在窗口中不能修改表中的记录。

不指定此项,表示可修改记录。

Page 39: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

2 .成批量的修改数据方法一:用菜单方式成批修改数据【例 3.5】给学生成绩表 XSCJ.dbf增加一个“平均

分” 字段( N , 5 , 1 ),然后要求用菜单方式 计算出所有同学的“平均分”字段值。

Page 40: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

方法二:用命令方式成批修改数据命令格式: REPLACE [<范围>] < 字段 1> WITH < 表达

式 1> [,< 字段 2> WITH < 表达式 2>…] [FOR/WHILE < 条件 >]

功能:对当前数据表中指定范围内满足条件的记录,自动用给定的表达式的值替换对应的字段值。

说明:• 此命令可对表中数据进行成批的修改,即用 < 表达式 1> 的

值替换< 字段 1> 的值,用 < 表达式 2> 的值替换< 字段2> 的值,…,一次可替换多个字段的值。

• 若无范围无条件选项,则只替换修改当前记录的指定字段内容。

• 若无条件选项,则替换修改指定范围内所有记录的指定字段内容。

• 若无范围选项,则替换修改整个数据表中满足条件的记录的指定字段内容。

Page 41: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

【例 3.6 】 XSCJ 有学号、高等数学、英语、计算机基础、马哲五个字段,现要求增加一个“总分”字段( N , 5 , 1 ),然后要求用REPLACE 命令计算出所有同学的“总分”字段值。 CLOSE ALL

USE XSCJ MODIFY STRUCTURE && 打开表设计器,增加总分字段REPLACE 总分 WITH 英语 +高等数学

+ ;

计算机 基础 +马哲 ALL

Page 42: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.3.5 表记录的追加与插入 __1. 在浏览窗口中追加记录

⑴ 菜单:打开浏览窗口,选择“显示 /追加方式”菜单命令,可以在原有记录的后面追加多条新记录 选择“表 /追加新记录”菜单命令,每次只能添加一条新记录。 ⑵ 命令: APPEND [BLANK]

BLANK 表示空记录

Page 43: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.3.5 表记录的追加与插入 __ 2.插入记录

3.3.5 表记录的追加与插入 __ 2.插入记录

命令: INSERT [BLANK][BEFORE]

功能:在数据表的当前记录之前或之后插入一条 记录。 BEFORE 表示“之前”

Page 44: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.3.5 追加记录 ____3. 从其它文件中追加记录

⑴ 菜单:打开浏览窗口,选择“表 /追加记录”菜单命令 ⑵ 命令: APPEND FROM <源表文件名 > [FIELDS <字段名表 >][FOR <条件 >] 功能:将指定表的满足条件记录追加到当前打开的数据表的尾部。选择“表∣追加记录”命令,打开“追加来源”对话框,如下图所示。在“来源于”文本框中输入追加记录的来源表的文件名,也可单击其右边的浏览按钮,从对话框中选择来源文件。两个表的结构要求完全相同。

Page 45: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.3.6 表记录的删除与恢复 1. 逻辑删除 : 给记录加删除标记 ⑴ 鼠标操作:在浏览窗口中,单击左侧白色 方框使之变黑⑵ 菜单:选择“表 /删除记录”菜单命令⑶ 命令: DELETE [<范围 >][FOR <条件 >]

2. 恢复逻辑删除 : 取消删除标记⑴ 鼠标操作:单击逻辑删除标记,取消黑色方框⑵ 菜单:选择“表 /恢复记录”菜单命令⑶ 命令: RECALL [<范围 >][FOR <条件 >]3. 物理删除:从磁盘上删除记录,不可恢复⑴ 菜单:选择“表 /彻底删除”菜单命令⑵ 命令: PACK(删除带有删除标记的记录) ZAP (一步、全部清除表中记录,仅保留表结构)

RECALL

DELETE

PACK

ZAP

记 录记 录

物理删除物理删除

逻辑删除逻辑删除

Page 46: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.3.7 表与表结构的复制 1. 数据表文件的复制⑴ 菜单:打开表文件,选择“文件 /导出”菜单命令,

显示“导出”对话框

⑵ 命令: COPY TO <新表文件 > [< 范围 >][FIELDS <字段名表 >]

[FOR <条件 >][WHILE <条件 >]2. 数据表结构的复制命令: COPY STRUCTURE TO < 新表文件 > [FIELDS <字段名表 >]

Page 47: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.4.1 排序 排序是把数据表中的记录按照某个字段值的大小重新排列,作为排序依据的字段称为“关键字”。 按照关键字的值从小到大的排序称为升序,从大到小的排序称为降序。 排序后生成一个新的数据表文件,其结构和数据可以与源文件完全相同,也可以取自源文件的一部分字段。

原数据表

(无序)

原数据表

(无序)

排序结果数据表

(有序)

排序结果数据表(有序)

排序

3.4 排序与索引

Page 48: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

排序命令 : SORT TO <新文件名 > [<范围 >][FIELDS <字段名表 >][FOR <条件 >] ON <字段名 1>[/A][/D][/C][,<字段名 2>[/A][/D][/C]…]

功能:将当前数据表按指定的一个或多个字段进行排序,并将排序的结果保存到一个新的数据表中。

/A表示升序, /D 表示降序, /C 表示字母不分大小写 , 默认为升序。

Page 49: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.4.2 索引 ____1. 基本概念

⑴ 索引是由指向表记录的指针构成的文件,这些指针逻辑上按照索引关键字的值进行排序 索引文件和表文件分别存储,并且不改变表中记录的物理顺序

原数据表

(无序)

原数据表

(无序)索引文件

(有序)

索引文件

(有序)

索引

.DBF .IDX

# … 英语 … # 英语

1 … 77 … 1 92

2 … 63 … 2 87

3 … 92 … 3 77

4 … 43 … 4 66

5 … 87 … 5 63

6 … 66 … 6 43

Page 50: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

⑵ 索引的类型(从组织方式分类)

索引文件类型 描 述 关键字数目 限制

单索引 .IDX

文件名由用户确定,必须明确打开

单关键字表达式

100 个字符以内

结构复合索引.CDX

文件名与表文件名相同,随表自动打开 多关键字

表达式,称为标识

240 个字符以内

非结构复合索引

文件名由用户确定,随表自动打开

Page 51: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

⑶ 索引关键字 索引关键字是指建立索引用的字段或字段表达式,可以是表中的单个字段,也可以是几个字段组成的表达式。

索引表达式通常用字符串运算符“ +”将几个字段连接起来。若组成表达式的字段具有不同类型时,则必须使用函数对字段进行类型转换,使其具有相同的数据类型。一般多字段排列,都将相应的字段转换成 C 型表达式,例如, STR()

函数可将 N 型数据转换为 C 型数据, DTOC()函数可以把 D 型数据转换为 C 型数据。

Page 52: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

⑷ 索引关键字的类型(按功能分类)

索引类型 关键字重复值 说 明 创建修改命令 索引个数

主索引

不允许

仅适用数据库表,可用于在永久关系中建立参照完整性

CREATE

TABLE

ALTER

TABLE

仅 1个

候选索引可用作主关键字,可用于在永久关系中建立参照完整性

INDEX

CREATE

TABLE

ALTER

TABLE 允许多个

惟一索引允许,但输出无重复值

为与以前版本兼容而设置INDEX

普通索引 允许可作为一对多永久关系中的“多方”

Page 53: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

1. 使用索引命令建立索引命令格式:

INDEX ON < 索引关键字表达式 > TO < 单索引文件名 > | TAG < 索引标识名>

[OF < 复合索引文件名 >] [FOR < 条件 >] [COMPACT] [ASCENDING | DESCENDING] [UNIQUE | CANDIDATE] [ADDITIVE]

功能:建立索引文件或建立索引标识。

用于指定非结构复合索引文件的名字

TO 子句用于建立单索引文件

TAG子句用于建立复合索引标识或复合索引文件

分别用于指定升序或降序

表示建立唯一索引

表示建立候选索引

用来指定单索引文件为压缩的

3.4.2 索引 ____2.建立索引

Page 54: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

如果需要,可输入筛选条件表达式

向上箭头为升序索引,向下箭头为降序索引

在“表达式”文本框中,输入索引关键字表达式

在“类型”列表框中,选定索引类型

在“索引名”文本框中输入索引标识名

2. 利用表设计器来建立索引

Page 55: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.4.2 索引 ____3.打开索引文件

与表名相同的结构索引在打开表时都已自动打开,但对于单索引文件和非结构索引文件必须在使用之前打开索引文件。

( 1 )若索引文件已经建立,可在打开表文件的同时打开索引文件。

格式 : USE < 表文件名 > INDEX < 索引文件名表 >

功能 : 打开表的同时打开一个或多个索引文件。 说明 :< 索引文件名表 >:指定要打开的一个或多个索引文

件,多个索引文件之间要用逗号分隔,第一个索引文件自动成为主控索引文件。

( 2 )若索引文件已经建立,且表文件已经打开,需单独打开索引文件。

格式 :SET INDEX TO < 索引文件名表 > [ ADDITIVE] 功能 : 打开当前表的一个或多个索引文件。

Page 56: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.4.2 索引 ____4.设置当前索引 一个表可以打开多个相关的索引文件,同一个复合索

引文件中也可能包含多个索引标识,但任何时候只有一个索引文件起作用,在复合索引中也只能有一个索引标识起作用。当前起作用的索引文件称为主控索引文件,当前起作用的索引标识称为当前索引(又称为主控索引),就是控制当前显示顺序的索引。因此,使用索引的一般步骤:打开表;打开索引文件;如果只打开一个索引文件,它自然就是主控索引文件,否则就要确定主控索引文件;若当前主控索引文件是某一个复合索引文件还需进一步确定它的哪一个索引标识是当前索引。

格式 :SET ORDER TO [ < 索引序号 >|<IDX 文件名>| [ TAG ] < 索引标识名 > [ OF<CDX 文件名 >]]

功能 : 在打开的索引文件中指定主控索引文件,或在打开的复合索引文件中设置当前索引。

Page 57: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

5. 更新索引 (1) 自动更新 (2) 重新索引 命令格式: REINDEX 功能:重建打开的索引文件。6. 删除索引 (1) 单索引文件可采取删除文件的方法直接删除。 格式: DELETE FILE < 索引文件名 > (2) 删除索引标识命令 格式 :DELETE TAG ALL | < 索引标识 1> [ ,索引标识 2] [OF < 复合索引文件名 >] 功能:删除打开的复合索引文件的索引标识。 说明: ALL子句用于删除所有的索引标识。如果所

有的索引标识都被删除,则索引文件也将被删除。

Page 58: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

【例 3.7】建立索引、打开索引和设置当前索引示例。 USE XSDA INDEX ON 姓名 TAG XM LIST INDEX ON 性别 TAG XB DESC UNIQUE LIST INDEX ON 姓名 +DTOC (出生日期) TAG XD LIST CLOSE ALL USE XSDA ORDER TAG XM LIST SET ORDER TO XB LIST SET ORDER TO LIST

Page 59: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.5 数据查询 3.5.1 顺序查询命令 顺序查询是在表中按记录的物理顺序依次进行的查询。

命令格式: LOCATE [<范围 >] FOR < 条件 > [WHILE < 条件 >] CONTINUE功能:在当前表的指定范围中搜索满足条件的第一条 记录。说明:此命令找到第一条满足条件的记录,记录指针就指向该记录;若找不到满足条件的记录,则记录指针指向文件结束处(即 EOF()返回 .T. 值)。( 1 )缺省 <范围 > 表示 ALL 。( 2 )找到一条满足条件的记录后,要继续往下查找满足 条件的其它记录就必须用 CONTINUE 命令。

Page 60: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

【例 3-8 】 在学生档案表 XSDA.dbf 中(设共有 7 条记录)按顺序查找籍贯为江苏的所有同学记录。

CLOSE ALLUSE XSDALOCATE FOR 籍贯 =”江苏”?FOUND () && 显示是否找到记录,本例中结果为 .T.?RECNO () && 显示当前记录号 , 本例中结果为 1DISPLAY && 显示找到的记录 DISPLAY 的运行结果如下:记录号 学号 姓名 性别 出生日期 是否团员 籍贯 简历 照片 1 00001 李平 男 12/11/78 .F. 江苏 Memo gen CONTINUE && 继续查找 ?FOUND () && 本例中结果为 .T.?RECNO () && 本例中结果为 3DISPLAYDISPLAY 的运行结果如下:记录号 学号 姓名 性别 出生日期 是否团员 籍贯 简历 照片 3 00003 李彤 女 10/16/77 .F. 江苏 Memo gen CONTINUE?FOUND () && 本例中结果为 .F.?RECNO () && 本例中结果为 8

Page 61: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.5.2 索引查询命令 索引查询按记录的逻辑顺序查询,速度很快,又称为快速查

询,但它需要事先对表建立索引文件。 格式: SEEK < 表达式 > 功能:在已确定当前索引的表文件中快速查找满足 < 表达式 >

值的第一个记录。( 1 ) < 表达式 >指定 SEEK搜索的索引关键字表达式,可查询

C 、 N 、 D 和 L 型数据,注意 : C 、 D 和 L 型数据要加相应的定界符。

( 2 )必须先打开索引并确认相应的主控索引后才能使用。( 3 )当表中有多个满足条件的记录时,指针定位在第一条满足 条件的记录上,用 SKIP 可定位到下一条。( 4 )如果查找成功,则函数 RECNO ()可返回该记录的记录 号,此时函数 FOUND ()返回值为 .T. , EOF ()返回值 为 .F. ;否则,记录指针指向文件末尾,此时 RECNO () 的值为表文件总记录数加 1 , FOUND ()返回值为 .F. , EOF ()返回值为 .T.

Page 62: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

【例 3-9 】 索引查找示例。CLOSE ALL USE XSDAINDEX ON 姓名 TAG XMINDEX ON 出生日期 TAG CSRQSET ORDER TO XM && 设置标识为 XM 的索引为主控索引 SEEK ”李彤” && 查找姓名为李彤的记录 ?RECNO()DISPLAYSET ORDER TO CSRQ && 设置标识为 CSRQ 的索引为主控索引 SEEK {^1988/04/21} && 查找出生日期为{ ^1988/04/21}的记录 ?RECNO()DISPLAY

Page 63: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.6 数据统计3.6.1 统计记录个数命令命令格式: COUNT [<范围>] [FOR < 条件 1>] [WHILE < 条件 2>] [TO <内存变量>]功能:计算指定范围内满足条件的记录个数。说明: < 范围 > 缺省时默认为所有记录。【例 3-10 】 分别统计学生档案表 XSDA.dbf 中的学生总人数、男同学以及女同学的人数。

USE XSDA COUNT TO n ?n COUNT FOR 性别 =”男” TO boy COUNT FOR 性别 =”女” TO girl ?boy,girl

Page 64: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.6.2 求和命令命令格式: SUM [< 数值表达式表 >] [<范围>] [FOR < 条件 1>] [WHILE < 条件 2>][TO <内存变量表 >|TO ARRAY<

数组 >]功能:功能 : 在当前表中,对指定范围内给定条件的数值型 字段或含数值型字段的数值表达式进行纵向求和计 算,并将结果存入指定的内存变量或数组中。【例 3-11】分别求成绩表 XSCJ.dbf 中全班高等数学、英语、 计算机基础、马哲课程的成绩和。 USE XSCJ

SUM 高等数学 ,英语 , 计算机基础 ,马哲 TO ARRAY SCORE

?SCORE(3)

Page 65: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.6.3 求平均值命令命令格式: AVERAGE [< 数值表达式表 >] [<范围>]

[FOR < 条件 1>] [WHILE < 条件 2>] [TO <内存变量表 >|TO ARRAY< 数组 >]功能 : 对当前表中指定范围内满足条件的记录的数值型

字段求算术平均值,并将结果存入指定的内存变量或数组中。

【例 3-12】分别求成绩表 XSCJ 中全班高等数学、 英语、计算机基础以及马哲课程的平均成绩。 USE XSCJ

AVERAGE 高等数学 ,英语 , 计算机基础 ,马哲

Page 66: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.6.4 计算命令命令格式:CALCULATE < 表达式表

> [<范围>] [FOR < 条件

1>] [WHILE < 条件2>]

[TO <内存变量表 >| TO ARRAY< 数组 >]功能:分别统计当前表中 表达式表的值。

函数名 说明 函数名 说明

1 、 CNT( )

统计记录个数

5 、 MIN( ) 求最小值

2 、 AVG( )

求平均 6 、 VAR( ) 求均方差

3 、 SUM( )

求和 7 、 STD( ) 求标准差

4 、 MAX( )

求最大值 8 、 NPV( ) 求净现值

Page 67: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

说明:在表达式中,重点掌握cnt(),sum(),avg(),max(),min() 等函数的使用。【例 3-13】分别计算学生档案表 XSDA 中 男同学的人数和平均年龄。 USE XSDA

CALCULATE cnt(),avg(year(date())- ; year(出生日期 )) FOR 性别 =" 男 " TO boy,nl

?“男生人数” ,“平均年龄” ? boy,nl

Page 68: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.6.5 分类汇总命令 分类汇总是将数据表中的记录按某个字段进行排序

分类,再对其它需要汇总的字段进行汇总统计。 命令格式: TOTAL TO < 文件名 > ON < 关键字 > [FIELDS

< 字段名表 >] [< 范围 >] [FOR< 条件 1>] [WHILE< 条件 2>]

功能:对当前表进行分类汇总,汇总的结果存入一个新表。汇总时把 < 关键字 > 值相同的一组记录汇总成一个记录,其中指定的数值型字段值取该字段的汇总值,其它字段取该组记录中的第一条记录。在新表中,记录按 < 关键字 > 的取值进行排列。

Page 69: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

【例 3-14】先给成绩表 XSCJ.dbf增加一个“性别”字段,然后按性别分类统计男女

学生的“总分”字段之和。 CLOSE ALL

USE XSCJ

INDEX ON 性别 TAG XB

TOTAL ON 性别 TO XSDAZF FIELDS 总分

USE XSCJZF

LIST

Page 70: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.7 多工作区操作

3.7.1 工作区3.7.2 多表之间的关系3.7.3 永久关系3.7.4 临时关系

Page 71: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.7.1 工作区 1. 工作区的概念 Visual FoxPro 最多同时打开 32767

个数据表,每个打开的表都在内存中开辟一个存储区域,这个存储区域就叫做工作区。 Visual FoxPro规定在每个工作区上只能打开一个表,所以就有 32767 个工作区可使用,编号为 1 ~ 32767 。

当前工作区 :系统任何时候只能选择一个工作区进行操作,当前正在操作的工作区称为当前工作区。

当前表:在当前工作区打开的数据表称为当前表

Page 72: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

说明: 在某一时刻每一个工作区中最多只有

一个表处于“工作”状态,可以对该表进行各种操作。在一个工作区中已打开了一个表,若再打开另一个表,则原先被打开的表将自动关闭。反之,一个表只能在一个工作区打开,若在其未关闭时若试图在其他工作区中打开它, Visual FoxPro 6.0会显示出错信息“文件正在使用”。

Page 73: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

2. 工作区号和别名 在 VFP 中,系统提供了 32767 个

工作区,每个工作区都有一个编号,称为工作区号,编号从 1 到 32767 。系统默认编号为 1 的工作区为当前工作区,即启动 VFP 系统,打开一个数据表文件时,该表文件自动被调入1号工作区。

Page 74: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

别名是指给工作区取的一个除工作区编号以外的名字。在 VFP 中,对前 10 个工作区除使用 1~10 为编号外,其别名还可以依次用 A~J10 个字母来表示。可以在一个工作区中打开一个数据表文件的同时给这个工作区定义一个别名。

命令格式: USE < 数据表文件名 > ALIAS <别名

>

功能 : 打开指定的数据表文件,并给该 文件指定一个别名。

Page 75: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3. 工作区的选择 可以先选择工作区,然后再打开表,也可以在

打开表的同时选择工作区。( 1 )选择工作区的命令 格式 :SELECT < 工作区号 >|<别名 > 功能 : 通过工作区编号或别名选定某个工作区 作为当前工作区。 说明 : ① 用 SELECT 命令选定的工作区称为当前工

作区, Visual FoxPro 6.0默认 1号工作区为当前工作区。可用函数 SELECT ()返回当前工作区号。

② 命令 SELECT 0 表示选定当前未使用的最小号工作区,该命令使用户不必记工作区号。

Page 76: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

( 2 )打开表的同时指定工作区的命令 格式: USE < 表名 > IN < 工作区 > [ ALIAS <别名 >] 功能 : 在指定的工作区打开表,但不改变当前工作区,

改变当前工作区还需使用 SELECT 命令。 【例 3-15 】 用 USE 命令在不同工作区打开表示例。 CLOSE ALL OPEN DATABASE JXGL ?SELECT() && 当前工作区为 1 号工作区 USE XSDA && 在当前工作区(即 1 号工作区)打开表

XSDA USE XSCJ IN 2 && 在 2 号工作区打开表 XSCJ ,注意:此时

2号 工作区并不是当前工作区 ?SELECT () && 显示当前工作区,本例的结果为 1 LIST && 本例显示的是当前工作区中打开的表 XSDA 的全部记

录 SELECT XSCJ && 将打开的表 XSCJ 所在的工作区变为当前

工作区 ?SELECT () && 显示当前工作区,本例结果为 2 LIST && 本例显示的是当前工作区中打开的表 XSCJ 的全部记

Page 77: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.7.2 多表之间的关系 一个数据库中的多个表既相互独立,又存在联系。

对数据库的一个重要操作就是建立表之间的关系,即以其中一个表中的字段与另一个表中的同名字段建立关系。

多表之间的关系存在以下几种类型 : ( 1 )一对一关系。表 A 的一个记录在表 B 中只

能对应一个记录,并且表 B 中的一个记录在表 A 中也只能有一个记录与之对应。

( 2 )一对多关系。表 A 的一个记录在表 B 中对应多个记录,但表 B 的每一个记录在表 A 中只有一个记录与之对应。

( 3 )多对多关系。在多对多关系中,表 A 的一个记录在表 B 中可以对应多个记录,反过来,表 B 的一个记录在表 A 中也可以对应多个记录。

Page 78: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.7.3 永久关系 永久关系是存储在数据库中的数据库表之间的关

系,永久关系存储在数据库文件中,只要不作删除或变更就一直保留,因此不需要每次使用时都重建。在数据库设计器中,永久关系显示为联系数据库表索引的线。

在数据库设计器中建立永久关系,步骤如下 :

( 1 )打开数据库文件,进入“数据库设计器”窗口。

( 2 )建立索引 ( 3 )建立表间关系

Page 79: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.7.4 临时关系 1. 关联的概念 临时关系也称为关联,就是使不同工作区的记

录指针建立一种联动关系,当一个表的记录指针移动时,与它相关联的表的记录指针也随之移动。

2. 建立关联的条件 建立关联的两个表中用来建立关联的表称为父

表,被关联的表称为子表。父表记录指针的移动,会使子表记录指针自动移到满足关联条件的记录上。关联条件通常要求比较不同表的两个字段关键字是否相等,所以除要在关联命令中指明这两个字段关键字外,还必须为子表的字段关键字建立索引,并设置为当前索引。

Page 80: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

( 3 )建立临时关系的命令 格式: SET RELATION TO < 索引关键字 > INTO <别名 > [ ADDITIVE] 功能:以当前表为父表与一个子表建立关系。 【例 3-16 】 建立关联示例。 CLOSE ALL OPEN DATABASE JXGL USE XSDA IN 1 && 在 1号工作区打开父表 USE XSCJ IN 2 ORDER 学号 && 在 2号工作区打开子表,并设置当前索引 SET RELATION TO 学号 INTO XSCJ && 按学号建立表 XSDA 和表 XSCJ 的临时关

系 BROWSE FIELDS 学号 , 姓名 , XSCJ.总分

Page 81: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.8 数据字典3.8.1 字段属性的设置

3.8.2 设置记录规则 3.8.3 主索引3.8.4 数据完整性

Page 82: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.8.1 字段属性的设置 设置数据库表的字段属性,可以在如下

图所示的表设计器的“字段”选项卡中,单击要设置的字段,然后即可对该字段进行如下的一些属性设置。

Page 83: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

1 .格式 使用格式属性可以指定字段在浏览窗口、表单或报表等界面中的数据显示样式。即指定字段的输出格式。 有关格式中所用的代码,请见下表所示。

符号 含义

A 允许文字字符,禁止数字、空格及标点符号D 使用系统当前设置的日期格式L 用 0 代替数值前面的空格T 禁止输出字段的首部空格字符及尾部空格字符Z 当输出为 0 时,以空字符显示! 把输入的小写字母转换成大写字母$ 将设定的货币符号显示在输出数值前面

Page 84: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

2 .输入掩码 使用输入掩码属性可以指定字段的输入格式,即指定字段中的值必须遵守的标点、空格和其它格式要求,限制输入数据的范围,控制输入数据的正确性。 有关“输入掩码”格式中所用的代码,见下表所示。 符

号 含义

X 允许输入任何字符9 允许输入数字和正负号( + 、 - )# 允许输入数字、空格及正负号( + 、 - )$ 显示货币符号* 在指定宽度中,在值左侧显示星号. 指出小数点位置, 设定数字整数部分的 3 位划分

Page 85: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3 .标题 使用标题属性可以指定字段名在浏览窗口、

表单或报表中显示时的标题文字。如果没有为字段设置标题,就显示相应的字段名。在实际应用中,为了操作的方便和输入快速,人们喜欢使用英文或汉语拼音作为字段名称(列标题),通过设置标题来实现在浏览窗口中用汉字显列标题。

4 .字段注释 使用字段注释属性可以给字段加一些说明

性的文字,用来说明该字段的用途、特性、使用方式等内容。

Page 86: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

5. 字段有效规则 设置字段有效性规则,可以控制输入到字

段中的数据,以便检验输入的数据是否正确,检验结果不正确时,系统将显示默认或设置的出错提示信息,用户必须进行修改,直到正确时光标才能离开此字段。

• 在“规则”文本框中输入对字段数据有效性进行检验的规则,即条件表达式。

• 在“信息”文本框中输入检验有错时要提示的信息。

• 在“默认值” 文本框中输入在创建新记录时系统自动为该字段填入的默认值。

Page 87: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

【例 3-17 】规定成绩表 XSCJ.dbf 中的“高等数学”字段值的输入格式:整数由 1 到 3 位数字组成,小数部分为 1 位数字;设置该字段的标题为“高等数学课的成绩”并且对此字段加以注释;此外,设置该字段有效性规则在 0 至 100 之间,当输入的成绩不在此范围时给出出错信息,学生的默认成绩是 60 分。

Page 88: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

3.8.2 设置记录规则 设置记录有效性规则,可以控制输入到一

条记录中几个字段的数据或字段运算结果,以便检验输入的记录是否正确,若检验不正确,系统将显示默认或设置的出错提示信息,用户必须进行修改,直到正确时光标才离开此记录。

在数据库表设计器的表选项卡中,含有设置记录验证规则、有效性出错信息等功能,还可在其中指定记录插入、更新、删除的规则等。

Page 89: Visual FoxPro6.0 数据库及其操作

铜陵学院数学与计算机系

【例 3-18 】设置学生档案表 XSDA.dbf 的记录有效性规则: 如果该生的周岁超过 28 ,那么该生就不可能是团员当 XSDA.dbf 表输入的记录不符合该规则时给出出错信息 “输入的记录无效 !” 。

① 打开学生档案表 XSDA 的表设计器,选择“表”选项卡,如右图所示。

② 在右图中的“记录有效性”组框 —“规则”文本框中输入:

INT (( DATE()-出生日期) /365 ) <=28 AND  是否团员 OR NOT 是否团员。

③ 在右图中的“记录有效性”组框 —“信息”文本框中输入:

“输入的记录无效!”。