数据表的建立与操作.
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.小数位数 只有数值型与浮点型及双精度型字段才有小数位数。小数位数至少应比 该字段的宽度值小2。若字段值是整数,则应定义小数位数为0。
根据上述规定,可为表10—1所示表设计出如表10—2所示的表结构。假 定此表取名为xs1。
字段名 XH(学号) XM(姓名) NL(年龄) XB(性别) BJ(班级) XP(相片) 类型 字符型 字符型 数值型 字符型 字符型 通用型 宽度 6 6 2 2 6 4 0 小数位
表10-1 xs1表
一个二维表以文件的形式存入计算机中就是一个数据表文件,由表结构 和记录数据两部分组成。 1.记录与字段 每列称为一个字段或属性,每列数据项名称为字段名 每行称为一个记录或元组,是字段值的集合。记录中的每个字段的取值为 字段值 2.关键字 在数据表中字段或字段组合的值能唯一的确定一个记录,则该字段或字段
ColumnCount:指定表格的列数。默认值为-1,表格中将列出表的所有字段。
RecordSource:指定表格数据源,即指定要在表格中显示的记录源。 RecordSourceType:指定表格数据源的数据类型。 AllowAddNew:该属性的值为.T.时允许用户向表格中的表添加记录。将光 标移到最后一条记录,按向下的光标键,表格中就会产生新记录行。该 属性为.F.时,只能用APPEND BLANK或INSERT命令来添加新记录。 ChildOrder:用于指定在建立一对多关系时,子表所要用到的索引。
Βιβλιοθήκη Baidu
②将表中第3~5条记录中的婚否字段值都改为.t.
③将表中75年后出生的女性的工资上涨10% ⑸菜单方式
10.3.4 向表中添加新记录
1.追加记录
【格式】 APPEND [BLANK] 【功能】在当前表的末尾追加一条或多条记录。
2.从其他数据表中追加记录
【格式】 APPEND FROM <表文件名>[FOR <条件>][FIELDS<字段名表>] 【功能】将指定的表中满足条件的记录追加到当前打开的表。
框内输入筛选表达式
⑵使用命令 【格式】 SET FILTER TO <逻辑表达式>
【功能】限定只能访问表中满足条件的记录 例:set filter to not. student.性别 set filter to
2、设置字段表 在对表进行操作时,若想只对某些字段起作用,可以设置字段表来限 制对某些字段的访问 ⑴通过界面设置 从【表】菜单中选择【属性】在【工作区属性】/【允许访问】/【字 段筛选指定的字段】然后单击【字段筛选】,打开【字段选择器】在“字 段选择器”中,将所需字段移入右边“选定字段”栏,然后选择“确定” ⑵使用命令 【格式】 SET FIELDS TO {ALL|<字段名表>}
表10-2 xs1表的结构
10.1.3 建立数据表结构
在确定了数据表的结构之后,就可以建立数据表文件了。
1.使用表设计器创建数据表结构 见P221页- P223页 2.使用命令创建数据表结构
用户不仅可以通过菜单、工具栏建立新表,也可以通过命令窗口输入
命令来实现建立新表的操作。 【格式1】 CREATE <新表文件名> 【格式】打开“表设计器”,创建新的表文件结构。 例如:用以下命令建立student.dbf: CREATE STUDENT
【功能】只允许访问指定的字段
例:use student set fields to 学号,姓名,班级编号 ①all 选项将取消所有的限制,显示所有的字段
②相关命令:SET FIELDS ON|OFF CLEAR FIELDS
3、使用表格控件 表格(Grid)控件是一个容器对象,按行和列的形式操作和显示数据。 一个表格对象包含若干个列(Column)对象,每个列对象又包含一个表头 (Hearder)对象和若干个列控件对象。 (1)创建表格控件 ①从数据环境创建 ②利用表格生成器创建 (2)常用属性 常用的表格属性:
命令时生效一次。一旦为一个表设置过滤条件与字段表后,随后对该表执 行任何操作都将有效,直到取消设置为止。
1、设置过滤器
如果只想对满足某种条件的记录进行若干操作,这时可以通过设置过滤 器将不满足条件的记录“过滤”掉
⑴通过界面设置
首先【打开表】然后选【显示】/【浏览】,浏览要筛选的表 从【表】中选择【属性】在“工作区属性”对话框中的“数据过滤器”
组合为侯选关键字,可选定其中一个为主关键字
侯选关键字必须具有一个唯一的值,即不能为空值。 在数据库中,表与表之间是通过关键字来相互关联的 3.数据表和自由表 一个VFP数据表能够以以下两种状态之一存在:数据库表(与数据库相 关联的表)和自由表(与数据库无关联的表)
10.1.2 表结构的设计
数据表的结构由字段组成,每个字段由字段名、字段类型、字段宽度、
⑵WITH <表达式1> :指定用来进行替换的表达式或值。
⑶WITH后面的表达式的类型必须与WITH前面的字段类型一致。值的 宽度不能超出字段的宽度,否则,数据无效。
⑷[范围][条件]省略,则只对当前记录起作用。
【例10-3】假设有一个RSDA.DBF表,包含姓名、性别、出生日期、工资、
婚否等字段,有若干条记录。 ①将表中所有记录的工资都上涨50元
【功能】显示指定<范围>内满足条件的记录中指定字段或表达式的值
【说明】⑴list:显示表中全部记录
display:显示当前记录 ⑵FIELDS<字段名表>:指明操作的字段名,缺省则显示除备注型和
通用型以外的所有字段的值.
⑶<范围>选项参数只能是下面四种之一: ALL:对全部记录进行操作 NEXT n:对包含当前记录在内的往后连续n个记录操作 RECORD n:对第n条记录操作 REST:对当前记录起到文件尾的所有记录操作 List all: 滚屏显示表中所有记录 Display all:分屏显示所有记录
第10章 数据表的建立与操作
本章要点: 1.数据表的建立 2.数据表结构的显示和修改 3.表记录的基本操作 4.数据表的排序与索引(建立与应用) 5.数据表的查询 6.数据表的统计
7.工作区的基本概念
10.1 数据表的建立
10.1.1 数据表
VFP数据表是一组相关联的数据按行和列排列的二维表格.如下所示
10.2 表结构的显示和修改
10.2.1 表结构的显示 格式:
【说明】 LIST
LIST│DISPLAY
STRUCTURE
STRUCTURE: 滚屏显示表结构信息
DISPLAY STRUCTURE: 分屏显示
10.2.2 表结构的修改
修改表结构之前,必须以独占方式打开该表。
1.使用表设计器
a.[文件][打开][选定要打开的表][显示][表设计器][进行修改] b.在命令窗口使用命令: MODIFY STRUCTURE
【格式】 CREATE TABLE <新表文件名>(<字段名1> <类型>(<长度>)[,<字 段名2> <类型>(<长度>)…] 【功能】不进入“表设计器”,直接创建一个<新表文件名>所指的数据 表的结构。 3.使用表向导创建数据表结构
10.1.4 表数据的输入
建立表结构后,可进行数据的输入。
小数位数这四个参数确定。要在VFP中创建一个数据表,首先要确定数据
表包含多少个字段以及每个字段的四个参数。 1.字段名
字段名用来标识字段,它是以字母或汉字开头,后接字母、汉字和数字
的字符序列,最多10个字符且中间可嵌有下划线,但不可插入空格。 2.字段类型
表中的每一个字段都有特定的数据类型。可根据需要确定数据表各字段
式>]
3.批替换修改
【格式】 REPLACE <字段名1> WITH <表达式1> [,<字段名2> WITH <表达式2>…][<范围>] [FOR <条件>] [WHILE <条件>]
【功能】不进入全屏幕编辑方式,根据命令中指定的条件和范围用表达式
的值去更新指定字段的内容。
【说明】 ⑴<字段名1>: 指定要替换值的字段。
【说明】①<表文件名>:为源文件
②[FIELDS<字段名表>]:用于指定从源表中添加到当前表中的字段 ③执行命令时源文件不需打开,目标文件需要打开。
④追加时若同名字段的宽度不相同将要做不同的处理。
10.3.5 设置过滤器和字段表
在命令中使用FOR或WHILE和FIELDS选择表中的记录和字段只能在执行该
2、以编程方式修改表结构
可以使用ALTER TABLE 命令直接修改数据表的结构。不用进入表设计器。
10.3 表记录的基本操作
10.3.1 记录指针的定位
要对表中的某个记录进行操作,需要先把记录指针指向该记录,使所
需记录成为当前记录,即先进行记录定位。
1.在“浏览”窗口中移动 可用↑↓和鼠标来移动,也可以用菜单的方式进行指针的定位。 2.使用移动指针命令 在命令窗口中或程序中可使用命令来移动记录指针。 ⑴绝对定位
1.数据输入窗口 2.备注型字段的输入
3.通用型字段的输入
10.1.5 数据表的打开和关闭
1.打开数据表 对已经建立的数据表进行操作前必须打开数据表。 (1)菜单方式 (2)命令方式 【格式】 USE <文件名> 【功能】在当前工作区中打开指定的数据表
不管用哪种方式打开表,若该表有备注型或通用型字段,则自动打开同 名的.FPT文件。打开一个表时,该工作区中原来打开的表自动关闭。
⑷FOR<条件>:对<范围>内所有满足条件的记录执行命令
WHILE<条件>:对<范围>内第一条记录开始搜索满足<条件>的记录, 遇到第一条不满足条件的记录就停止操作。
⑸OFF:若选用则不显示记录号。 【例10-2】以使用list为例对xs1表操作: ①查看表中第3~5条记录 ②查看表中20岁的学生的姓名和班级 ③显示表中最后5条记录 2.菜单方式
【格式】 GO
TOP│BOTTOM│<记录号>
功能:移动当前表的指针到指定的记录。
说明: GO TOP:将记录指针定位在表的第一个记录上。 GO BOTTOM:将记录指针定位在表的最后一个记录上。 GO <记录号>:记录指针移至记录号所指记录上。
⑵相对定位
【格式】 SKIP [n]
【功能】当前表的指针相对当前记录移动n条记录。 【说明】①n为正, 则向记录号增加的方向移动 n为负, 则向记录号减小的方向移动 skip:则向记录号增加的方向移动1个记录的位置 ②如果记录指针已经指向末记录而执行SKIP,则RECNO()函数返回的值 等于文件中的记录总数加 1,EOF()函数返回逻辑真(.T.)值。如果 记录指针已经指向首记录而执行SKIP-1,则RECNO()函数返回1,EOF ()函数返回.F.
【例10-1】设计一个可以按记录浏览、编辑“学生情况表”(xs1.dbf)的 表单。 设计步骤如下: ①创建数据环境。 ②建立程序界面与设置对象属性。 ③编写事件代码
10.3.2 表记录的显示
1.命令方式
【格式】 LIST│DISPLAY [范围] [FIELDS<字段名表>] [FOR<条件>][WHILE<条件>][off]
的类型。
3.字段宽度 字段宽度用以表明该字段允许存放的最大字节数或数值位数。
C、N、F型字段的宽度,用户在建立数据表结构时根据要存放的数据的 具体情况设定。
日期型、日期时间型、货币型、双精度型字段的宽度均由系统统一规定, 均为8字节,逻辑型字段宽度为1字节,整型、备注型和通用型字段宽度 均为4字节。
在数据表中,系统给每个记录提供一个顺序号,这个顺序号称为记录号。 数据表刚打开时,记录指针指向第一条记录。
2.关闭数据表 对数据表操作完毕后,应及时关闭,以保证更新后的内容能写入相应的 数据表中。可以用以下方法之一来关闭表。 (1)使用数据工作期窗口来关闭表 (2)使用下列命令之一来关闭表 USE:关闭当前工作区中打开的数据表。 CLOSE ALL:关闭所有工作区中打开的数据库、表和索引,并选择1号工 作区。 CLOSE DATABASE[ALL]:关闭当前数据库及其中的表。 (3)通过退出VFP来关闭。
10.3.3 表记录的修改
1.浏览修改 C、N、D、L、DATETIME等字段中信息,可选定直接修改 (1)命令方式 【格式】 BROWSE [FIELDS <字段名表>][FOR<条件表达式>] 【功能】在浏览窗口中显示当前表中命令选项指定的编辑修改的记录改。 (2)菜单方式 2.编辑修改
EDIT/CHANGE [<范围>][FIELDS <字段名表>] [FOR<条件表达