




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第第3章章 表基本操作表基本操作主要内容:自由表的建立、编辑修改主要内容:自由表的建立、编辑修改, 通过通过界面交互操作和命令两种方式来实现。然界面交互操作和命令两种方式来实现。然后介绍数据的排序、索引操作。后介绍数据的排序、索引操作。23.1 表的建立表的建立表的建立包括表结构的设计、定义和表记录添加等操作表的建立包括表结构的设计、定义和表记录添加等操作 3.1.1 表结构设计表结构设计在人事工资管理中,会遇到如下所示的二维表。在人事工资管理中,会遇到如下所示的二维表。每行均为1条记录此行为表结构行字段3表文件包含有以下三个要素:表文件包含有以下三个要素:l表文件名。表文件名。l表结构,表
2、中各字段的字段名、字段类型和字段表结构,表中各字段的字段名、字段类型和字段宽度。宽度。l表记录。表记录。1. 表文件名表文件名 Visual FoxPro系统规定表文件的扩展名系统规定表文件的扩展名为为.DBF(.dbf),表文件的命名规则与操作系统中),表文件的命名规则与操作系统中的文件命名规则相同。在实际使用时,表名应该简的文件命名规则相同。在实际使用时,表名应该简明且容易记忆,常常使用汉语拼音声母组合明且容易记忆,常常使用汉语拼音声母组合 。例如:上述的二维表就可以取名为例如:上述的二维表就可以取名为:rsb.dbf。3.1 表的建立表的建立42. 表结构表结构 表的结构描述就是对表中各
3、个字段的属性定义,字段的表的结构描述就是对表中各个字段的属性定义,字段的属性包括属性包括字段名称字段名称、字段类型字段类型和和字段宽度字段宽度,对于数值型字段,对于数值型字段还包括小数位数。还包括小数位数。(1)字段名字段名 字段名是用来标识字段的,它的命名规则以字母(汉字)字段名是用来标识字段的,它的命名规则以字母(汉字)或下划线开头,由字母(汉字)、数字和下划线组成,自由或下划线开头,由字母(汉字)、数字和下划线组成,自由表的字段名最多表的字段名最多10个字符,数据库表的字段名最多可包含个字符,数据库表的字段名最多可包含 128 个字符。个字符。注意,同一个表中的字段名不能相同。注意,同一
4、个表中的字段名不能相同。3.1 表的建立表的建立5(1)字段类型字段类型 Visual FoxPro Visual FoxPro中常用的中常用的1111种字段类型,见下种字段类型,见下表所示。表所示。3.1 表的建立表的建立2021-10-206(1)字段类型字段类型7(2)字段宽度字段宽度表明准许字段存储的最大字节数。表明准许字段存储的最大字节数。 只有字符型、数值型和浮动数值型等三种类型的字段只有字符型、数值型和浮动数值型等三种类型的字段宽度可以改变宽度可以改变, ,其它类型字段有唯一确定的宽度,不能改变。其它类型字段有唯一确定的宽度,不能改变。 在建立表结构时,应根据要存储数据的实际需要
5、设定在建立表结构时,应根据要存储数据的实际需要设定合适的宽度。合适的宽度。 字符型字段宽度定义时应考虑所存放字符串的最大长度字符型字段宽度定义时应考虑所存放字符串的最大长度. . 例如,描述人的姓名字段,考虑到中国人的姓名绝大例如,描述人的姓名字段,考虑到中国人的姓名绝大多数为三个汉字,再顾及到少数人的四个汉字,可以取姓多数为三个汉字,再顾及到少数人的四个汉字,可以取姓名字段的宽度为名字段的宽度为8 8(一个汉字占两个字符位置)(一个汉字占两个字符位置) 。 在定义数值型和浮动数值型字段宽度时,应考虑到正负在定义数值型和浮动数值型字段宽度时,应考虑到正负号和小数点,带小数的数值型字段宽度计算如
6、下:号和小数点,带小数的数值型字段宽度计算如下: 字段宽度字段宽度=1=1(正负号)(正负号)+ +整数位数整数位数+1+1(小数点)(小数点)+ +小数小数位数位数 例如,数值型字段宽度为例如,数值型字段宽度为7 7,小数位数为,小数位数为2 2位,则能存位,则能存放的最大数值为放的最大数值为9999.999999.99,最小数值为,最小数值为-999.99-999.99。8根据上述规定,为人事表设计出表结构如下:根据上述规定,为人事表设计出表结构如下:91. 建立表结构建立表结构 V F提供有提供有3种方法建立表结构:利用表设计器、种方法建立表结构:利用表设计器、表向导和表向导和SQL数据
7、表定义命令来建立表结构。这里数据表定义命令来建立表结构。这里主要介绍利用表设计器建立表结构。主要介绍利用表设计器建立表结构。 启动表设计器的常用有启动表设计器的常用有3种方法种方法 :l方法方法1:菜单操作方式。:菜单操作方式。l方法方法2:项目管理器方式。:项目管理器方式。l方法方法3:使用:使用CREATE命令。命令。3.1.2 表结构的建立表结构的建立2021-10-2010 “表设计器表设计器”窗口介绍窗口介绍上下移动按钮 文本框中输入字段名 选择字段类型 设置宽度索引的升降序设置设置字段值是否允许取NULL值3个选项卡4个命令按钮11例例3-1 建立建立rsb表的结构。表的结构。 开
8、始建表。开始建表。选定选定“文件文件”|“新建新建”命令命令出现右出现右图所示的图所示的“新建新建”对话框,选择对话框,选择“表表”选项按钮,单击选项按钮,单击“新建文件新建文件”按钮,按钮,出现出现 “创建创建”对话框。对话框。先选择“表”选项再单击“新建文件”按钮12 打开表设计器打开表设计器 在在“创建创建”对话框对话框中的中的“输入表名:输入表名:”文文本框输入表名本框输入表名rsb,单,单击击“保存保存”按钮,出现按钮,出现rsb.dbf表设计器。表设计器。13 设定完第一字段,再依次设定其它字段。设定完第一字段,再依次设定其它字段。 例如:在例如:在“字段名字段名”下方的文本框输入
9、下方的文本框输入“编号编号”,在,在“类型类型”列表框选定列表框选定“字符型字符型”,在,在“宽度宽度”文本框输文本框输入入4(或用标有上下箭头的微调按钮将数值调整至(或用标有上下箭头的微调按钮将数值调整至4)。)。定义表结构。按下图设定各字段的属性值。定义表结构。按下图设定各字段的属性值。14保存:保存:字段的属性值设定完成后,按字段的属性值设定完成后,按“确定确定”按按钮,当询问钮,当询问“现在输入数据记录吗?现在输入数据记录吗?”。 若按若按“否否”按钮则关闭表设计器窗口,建立表结按钮则关闭表设计器窗口,建立表结构结束。若按构结束。若按“是是”按钮,则出现按钮,则出现rsb.dbfrsb
10、.dbf记录编记录编辑窗口,供用户输入记录数据。辑窗口,供用户输入记录数据。 153.1.3 表记录数据输入表记录数据输入 利用交互方式建立表结构后,若在出现输入记录询问利用交互方式建立表结构后,若在出现输入记录询问对话框时按对话框时按“是是”按钮,则出现记录编辑窗口,供用户输入按钮,则出现记录编辑窗口,供用户输入数据记录。以数据记录。以rsb.dbfrsb.dbf为例,则记录编辑窗口如图所示。为例,则记录编辑窗口如图所示。 在数据输入窗口中,光标在数据输入窗口中,光标首先停留在第一个记录的第一首先停留在第一个记录的第一个字段上,输入相应的数据后,个字段上,输入相应的数据后,移动光标到其它字段
11、并输入数移动光标到其它字段并输入数据,依此方法完成一条记录的据,依此方法完成一条记录的数据输入。重复上述操作,依数据输入。重复上述操作,依次输入其它数据记录。次输入其它数据记录。16具体操作时应注意以下问题:(1)表的数据通过记录编辑窗口按记录逐个字段输入。一)表的数据通过记录编辑窗口按记录逐个字段输入。一旦在最后一个记录的任何一个字段输入数据,旦在最后一个记录的任何一个字段输入数据,Visual FoxPro将自动提供下一记录的输入位置。将自动提供下一记录的输入位置。(2)若输入的数据充满整个字段,则光标自动移到下一字)若输入的数据充满整个字段,则光标自动移到下一字段,否则,需要按回车键才能
12、将光标移到下一字段。段,否则,需要按回车键才能将光标移到下一字段。(3)逻辑型字段只能接收)逻辑型字段只能接收T,t,Y,y(表示(表示“真真”),F,f,N,n(表示(表示“假假”)中的任何一个字符。)中的任何一个字符。17具体操作时应注意以下问题:(4)日期型字段应注意日期格式和日期的有效性,默认按)日期型字段应注意日期格式和日期的有效性,默认按美国日期格式美国日期格式mm/dd/yy输入。若按中国日期格式输入。若按中国日期格式yy.mm.dd输入,则须在命令窗口键入如下命令:输入,则须在命令窗口键入如下命令: SET DATE ANSI 可实际观察键入命令:可实际观察键入命令: SET
13、DATE USA 和和 SET DATE AMERICA 后,日期输入或显示格式的变化。后,日期输入或显示格式的变化。 若要显示年份的前两位(世纪标志),则可键入如下若要显示年份的前两位(世纪标志),则可键入如下命令:命令: SET CENTURY ON 若取消世纪标志,则可使用命令若取消世纪标志,则可使用命令: SET CENTURY OFF。18 (5)对备注型字段的输入,当光标位于该字段时,双击鼠)对备注型字段的输入,当光标位于该字段时,双击鼠标左键或按下标左键或按下Ctrl+PgDn键进入编辑器,输入完字符型数据键进入编辑器,输入完字符型数据后关闭编辑器,此时后关闭编辑器,此时memo
14、变为变为Memo(表示该字段非空)。(表示该字段非空)。 (6)对通用型字段的输入,当光标位于该字段时,双击鼠)对通用型字段的输入,当光标位于该字段时,双击鼠标左键或按下标左键或按下Ctrl+PgDn键进入编辑器,此时可选定键进入编辑器,此时可选定“编辑编辑”菜单的菜单的“插入对象插入对象”命令,插入图形、电子表格或声音等多命令,插入图形、电子表格或声音等多媒体数据文件,或使用媒体数据文件,或使用“复制复制”、“粘贴粘贴”操作将图片等对操作将图片等对象添加进来,然后关闭编辑器,此时象添加进来,然后关闭编辑器,此时gen变为变为Gen(表示该(表示该字段非空)。字段非空)。具体操作时应注意以下问
15、题:19 (7)在输入数据的过程中,可将编辑窗口转换为浏览窗)在输入数据的过程中,可将编辑窗口转换为浏览窗口,方法为选定口,方法为选定“显示显示”菜单的菜单的“浏览浏览”命令。命令。 (8)记录数据输入结束,按)记录数据输入结束,按Ctrl+W保存退出,若放弃已保存退出,若放弃已经输入的数据按经输入的数据按Ctrl+Q。 (9)在退出记录编辑窗口后,如果需要再次进入记录编)在退出记录编辑窗口后,如果需要再次进入记录编辑窗口,再次输入记录,可以通过改变辑窗口,再次输入记录,可以通过改变“显示显示”菜单中菜单中“追追加方式加方式”使表处于追加记录状态,继续其余记录的输入。使表处于追加记录状态,继续
16、其余记录的输入。具体操作时应注意以下问题:20课堂提问课堂提问数据表建立的步骤是什么?数据表建立的步骤是什么?1、设计数据表的结构、设计数据表的结构 根据实际问题概括出所表达实际领域根据实际问题概括出所表达实际领域的字段列表,确定字段名、类型、宽度、的字段列表,确定字段名、类型、宽度、小数位等信息。小数位等信息。2、确定相关实体记录的内容、确定相关实体记录的内容3、将设计好的数据表结构和记录信息通过一、将设计好的数据表结构和记录信息通过一个数据库管理系统软件建立成计算机的物个数据库管理系统软件建立成计算机的物理文件。理文件。213.2 表的编辑修改表的编辑修改3.2.1 表文件打表文件打开与关
17、闭开与关闭 一般来说一般来说, , 在进在进行各种表操作之前先行各种表操作之前先要打开表。刚创建的要打开表。刚创建的表则自动处于打开状表则自动处于打开状态,在其它情况下可态,在其它情况下可用如下方法打开表。用如下方法打开表。1.1.用菜单打开表用菜单打开表 使用使用“文件文件”菜菜单中的单中的“打开打开”命令,命令,出现如图所示的出现如图所示的“打打开开”对话框。对话框。 若要对表进行编若要对表进行编辑修改操作,则必须辑修改操作,则必须选定选定“独占独占”复选框复选框 222. 用用USE命令打开和关闭表命令打开和关闭表命令格式:命令格式: USE USE EXCLUSIVE | SHARED
18、 EXCLUSIVE | SHARED功能:功能:在当前工作区中打开或关闭表。在当前工作区中打开或关闭表。说明:说明:表打开时,若该表有备注型或通用型字段,则自动打开同名表打开时,若该表有备注型或通用型字段,则自动打开同名的的.FPT.FPT文件。文件。 缺省缺省 表示关闭当前工作区中已经打开的表。表示关闭当前工作区中已经打开的表。例如:例如: USE rsb &USE rsb &打开打开rsb.dbfrsb.dbf USE & USE &关闭该表关闭该表(1)用)用EXCLUSIVE选项,则以独占方式打开表。用选项,则以独占方式打开表。用SHARED选项,则选项,则以共享方式打开表,此时表结
19、构和表数据只读,不能编辑修改。以共享方式打开表,此时表结构和表数据只读,不能编辑修改。(2)打开一个表时,该工作区中原来打开的表自动关闭。)打开一个表时,该工作区中原来打开的表自动关闭。(3)已打开的一个表有一个)已打开的一个表有一个指针指针与其对应,指针所指的记录称为与其对应,指针所指的记录称为当前记当前记录录。表刚打开时,记录指针指向第一个记录。表刚打开时,记录指针指向第一个记录。(4)表操作结束后应及时关闭,以便将内存中的数据保存到外存的表文)表操作结束后应及时关闭,以便将内存中的数据保存到外存的表文件中。件中。2021-10-20233.关闭表的其它方法关闭表的其它方法:CLEAR A
20、LL:关闭所有的表,并选择工作区:关闭所有的表,并选择工作区1,释放所有内存变量、,释放所有内存变量、用户定义的菜单和窗口。用户定义的菜单和窗口。CLOSE ALL:关闭所有打开的数据库和表,并选择工作区:关闭所有打开的数据库和表,并选择工作区1,关闭各,关闭各种设计器和项目管理器。种设计器和项目管理器。CLOSE DATABASE ALL:关闭当前数据库和其中的表,若无关闭当前数据库和其中的表,若无打开的数据库,则关闭所有自由表,并选择工作区打开的数据库,则关闭所有自由表,并选择工作区1。带。带ALL则关闭所有则关闭所有数据库和其中的表,以及所有已经打开的自由表。数据库和其中的表,以及所有已
21、经打开的自由表。CLOSE TABLES ALL:关闭当前数据库中所有的表,但不关闭关闭当前数据库中所有的表,但不关闭数据库。若无打开的数据库,则关闭所有自由表。带数据库。若无打开的数据库,则关闭所有自由表。带ALL则关闭所有数则关闭所有数据库中所有的表和所有自由表,但不关闭数据库。据库中所有的表和所有自由表,但不关闭数据库。 除以上命令之外,还可通过退出除以上命令之外,还可通过退出Visual FoxPro来关闭来关闭已打开的表。选定已打开的表。选定“文件文件”菜单中的菜单中的“退出退出”命令,或在命令,或在“命令命令”窗口键入命令窗口键入命令QUIT。243.2.2 表结构显示与修改表结构
22、显示与修改1. 1. 表结构显示表结构显示 LIST | DISPLAY STRUCTURE TO PRINTER PROMPT LIST | DISPLAY STRUCTURE TO PRINTER PROMPT | TO FILE | TO FILE 显示当前已经打开表的结构。选项显示当前已经打开表的结构。选项TO PRINTERTO PRINTER和和TO TO FILE FILE 含义与在变量显示命令中的含义相同。含义与在变量显示命令中的含义相同。 例例3-3 3-3 显示显示rsbrsb表的结构。表的结构。在在“命令命令”窗口依次键入如下两条命令:窗口依次键入如下两条命令:USE r
23、sb & USE rsb & 在当前工作区打开表在当前工作区打开表rsbrsbLIST STRUCTURE & LIST STRUCTURE & 显示表显示表rsbrsb的结构的结构25比各字段宽度和多一比各字段宽度和多一个字节个字节, ,存删除标记存删除标记表结构表结构: D:VISUAL FOXPRO EXERCISERSB.DBF数据记录数数据记录数: 10最近更新的时间最近更新的时间: 07/18/08备注文件块大小备注文件块大小: 64代码页代码页: 936 字段字段 字段名字段名 类型类型 宽度宽度 小数位小数位 索引索引 排序排序 Nulls 1 编号编号 字符型字符型 4 否否
24、 2 姓名姓名 字符型字符型 8 否否 3 性别性别 字符型字符型 2 否否 4 出生日期出生日期 日期型日期型 8 否否 5 工作日期工作日期 日期型日期型 8 否否 6 部门代码部门代码 字符型字符型 3 否否 7 职称职称 字符型字符型 10 否否 8 婚否婚否 逻辑型逻辑型 1 否否 9 基本工资基本工资 数值型数值型 8 2 否否 10 简历简历 备注型备注型 4 否否 11 相片相片 通用型通用型 4 * 总计总计 * 61262. 表结构修改表结构修改 在表已经打开的情况下,可以采用如下两种方法之一打在表已经打开的情况下,可以采用如下两种方法之一打开开“表设计器表设计器”窗口。窗
25、口。(1) 选定选定“显示显示”菜单的菜单的“表设计器表设计器”命令。命令。(2)在)在“命令命令”窗口键入命令窗口键入命令MODIFY STRUCTURE。 “表设计器表设计器”窗口出现后,可以按照需要修改字段属性,窗口出现后,可以按照需要修改字段属性,也可以利用也可以利用“插入插入”按钮在任何位置增加字段;或利用按钮在任何位置增加字段;或利用“删删除除”按钮删除字段;按钮删除字段;利用最左边的上下移动按钮列,改变字利用最左边的上下移动按钮列,改变字段在表结构中的次序。段在表结构中的次序。 表结构修改完成后,可选择窗口的表结构修改完成后,可选择窗口的“确定确定”按钮或按钮或“取消取消”按钮对
26、所做出的修改进行确认或取消。按钮对所做出的修改进行确认或取消。 (1 1)【确定确定】按钮与按钮与Ctrl+WCtrl+W键作用相同。键作用相同。 (2 2)【取消取消】按钮与按钮与Ctrl+QCtrl+Q键作用相同。键作用相同。273.2.3 记录显示与修改记录显示与修改1. LIST/DISPLAY命令显示记录命令显示记录命令格式:命令格式: LIST | DISPLAY FIELDS FOR WHILE OFF TO PRINTER PROMPT | TO FILE 功能:按指定范围和条件筛选出记录并显示出来,或送到指定的功能:按指定范围和条件筛选出记录并显示出来,或送到指定的目的地。目
27、的地。说明:说明:LIST和和DISPLAY命令的功能有所不同,命令的功能有所不同,LIST以连续滚动以连续滚动方式输出,方式输出,DISPLAY为分屏显示。为分屏显示。LIST缺省范围时将显示缺省范围时将显示所有记录,所有记录,DISPLAY缺省范围时只显示当前记录。缺省范围时只显示当前记录。 为了让用户了解显示内容所在的记录,命令自动显示为了让用户了解显示内容所在的记录,命令自动显示记录号,若不需要显示记录号,则在命令中使用记录号,若不需要显示记录号,则在命令中使用OFF选项。选项。 选项选项TO PRINTER和和TO FILE 含义与在变量含义与在变量显示命令中的含义相同显示命令中的含
28、义相同28(1)FIELDS(1)FIELDS子句子句FIELDS子句指定要显示的字段,该子句的保留字子句指定要显示的字段,该子句的保留字FIELDS可以省略。可以省略。用来列出需要显示的内容,表达式中包含有用来列出需要显示的内容,表达式中包含有字段变量,表达式之间用字段变量,表达式之间用“,”号分隔。号分隔。例例3-4 显示显示rsb中职工的编号中职工的编号,姓名姓名,性别和年龄。性别和年龄。可在命令窗口键入如下命令:可在命令窗口键入如下命令:USE rsbLIST 编号编号,姓名姓名,性别性别,YEAR(DATE()-YEAR(出生日期出生日期) 29(2 2)范围子句)范围子句范围子句用
29、来确定该命令涉及的记录,范围有范围子句用来确定该命令涉及的记录,范围有4种限定方种限定方法:法:ALL:所有记录;:所有记录;NEXT(n):从当前记录开始的:从当前记录开始的n个记录;个记录;RECORD(n):第:第n个记录;个记录;REST:从当前记录开始到最后一个记录的所有记录。:从当前记录开始到最后一个记录的所有记录。例如,显示第例如,显示第1记录至第记录至第4记录的指定字段,可在命令窗口记录的指定字段,可在命令窗口键入如下命令:键入如下命令:USE rsb & 打开打开rsb,记录指针指向第,记录指针指向第1记录记录LIST 编号编号,姓名姓名,性别性别,出生日期出生日期 NEXT
30、(4)命令动词为命令动词为LIST时,范围子句缺省时默认为时,范围子句缺省时默认为ALL。而当命。而当命令动词为令动词为DISPLAY时,范围子句缺省时默认为当前记录。时,范围子句缺省时默认为当前记录。30(3 3)FOR子句子句 FOR子句的子句的为逻辑表达式,它指定记录选择的为逻辑表达式,它指定记录选择的条件,相当于条件,相当于关系运算的关系运算的“选择选择”操作操作,在指定的范围内筛,在指定的范围内筛选出符合条件的记录。选出符合条件的记录。例如:例如:USE rsb LIST 姓名姓名 FOR 婚否婚否=.T. REST (4 4)WHILEWHILE子句子句 WHILE子句也用于指明操
31、作条件,但仅在当前记录符合子句也用于指明操作条件,但仅在当前记录符合时才开始依次筛选记录,一旦遇到不满足时才开始依次筛选记录,一旦遇到不满足的记的记录就停止操作。例如:录就停止操作。例如: USE rsb LIST 姓名姓名,出生日期出生日期,婚否婚否 WHILE YEAR(出生日期出生日期)1975 31(5 5)命令和子句的书写规则)命令和子句的书写规则 命令动词与子句、子句与子句、子句内的各部分(例如:命令动词与子句、子句与子句、子句内的各部分(例如:FOR与与)之间必须用空格隔开,各子句的次序可)之间必须用空格隔开,各子句的次序可以任意排列。例如:以任意排列。例如: LIST FOR
32、婚否婚否=.F. WHILE YEAR(出生日期出生日期)1975 姓名姓名,出生日期出生日期,婚否婚否 所有命令动词、各子句和内部函数中的保留字都可只写前所有命令动词、各子句和内部函数中的保留字都可只写前4个字母(在命令窗口输入时也一样),而且英文字母大个字母(在命令窗口输入时也一样),而且英文字母大小写等效。例如:小写等效。例如: MODIFY STRUCTURE 可简写为可简写为MODI STRU或或modi stru 一条命令的长度可达一条命令的长度可达8192个字符,若一行写不完,可在个字符,若一行写不完,可在适当位置插入续行标志适当位置插入续行标志“;”并回车,在下一行继续输入该并
33、回车,在下一行继续输入该命令的其余部分。命令的其余部分。 命令动词、子句和函数中的保留字(英文字母),以及命命令动词、子句和函数中的保留字(英文字母),以及命令中的分隔符号(例如令中的分隔符号(例如“,”号)和数字均要用半角符号,号)和数字均要用半角符号,不能用全角符号。不能用全角符号。4. REPLACE命令命令命令格式:命令格式:REPLACE WITH ADDITIVE , WITH ADDITIVE . FOR WHILE 功能:在当前打开表的指定记录中,将有关字段的值用相应功能:在当前打开表的指定记录中,将有关字段的值用相应的表达式值来替换。该命令对的表达式值来替换。该命令对内符合内
34、符合的记的记录用录用的值来替换的值来替换。说明:说明:若若与与等选项都缺省,只对当前记录的有关字段进等选项都缺省,只对当前记录的有关字段进行替换。行替换。ADDITIVE用于备注型字段,表示将表达式值添加到字段的用于备注型字段,表示将表达式值添加到字段的原有内容之后,而不是取代。原有内容之后,而不是取代。 例如:例如: USE rsb REPLACE 简历简历 WITH 2003年年9月评为省劳动模范。月评为省劳动模范。 ADDITIVE32335. 记录定位记录定位Visual FoxPro为每一个表都设置了一个指针,称为为每一个表都设置了一个指针,称为记录指记录指针针。Visual Fox
35、Pro通过记录指针来标识操作的记录对象,记录通过记录指针来标识操作的记录对象,记录指针所指向的记录称为指针所指向的记录称为当前记录当前记录,记录定位就是将记录指针指,记录定位就是将记录指针指向某个记录,使其成为当前记录。记录定位命令有绝对定位命向某个记录,使其成为当前记录。记录定位命令有绝对定位命令和相对定位命令令和相对定位命令2种。表刚打开时,记录指针指向第一个记录。种。表刚打开时,记录指针指向第一个记录。(1) 绝对定位命令绝对定位命令命令格式命令格式1: GOTO TOP|BOTTOM功能:将记录指针定位在表的第一个记录或最后一个记录。功能:将记录指针定位在表的第一个记录或最后一个记录。
36、命令格式命令格式2: GOTO 功能:将记录指针定位在功能:将记录指针定位在指出的记录。指出的记录。34例如:例如:USE rsb & 打开打开rsb,当前记录为第一个记录,当前记录为第一个记录? RECNO() & 显示记录号显示记录号1GO BOTTOM & 指针移动到最后一个记录指针移动到最后一个记录? RECNO() & 显示最后一个记录的记录号显示最后一个记录的记录号GOTO 4 & 指针移动到指针移动到4号记录号记录? RECNO() & 显示当前记录号显示当前记录号42 & 指针移动到指针移动到2号记录号记录? RECNO() & 显示当前记录号显示当前记录号2注:注:例中函数例
37、中函数RECNO()返回当前记录的记录号。返回当前记录的记录号。35(2)相对定位命令相对定位命令命令格式:命令格式:SKIP 功能:从当前记录开始相对移动记录指针。功能:从当前记录开始相对移动记录指针。说明:当说明:当为负值时,指针向文件头移动,当为负值时,指针向文件头移动,当为正值时,指针向文件尾移动。为正值时,指针向文件尾移动。缺省时默认为缺省时默认为1。 例如:例如:USE rsb & 打开打开rsb,当前记录为第一个记录,当前记录为第一个记录? RECNO() & 显示显示1SKIP 3 & 指针向文件尾移动指针向文件尾移动3? RECNO() & 显示显示4GO BOTTOM &
38、当前记录为最后一个记录当前记录为最后一个记录? RECNO() & 显示最后一个记录的记录号显示最后一个记录的记录号SKIP -5 & 指针向文件头移动指针向文件头移动5条记录条记录? RECNO() 363.2.5 记录删除与恢复记录删除与恢复 删除记录一般需要两步删除记录一般需要两步: (1) 加删除标记加删除标记;(2) 将带有删除将带有删除标记的记录从表中删除。标记的记录从表中删除。 在物理删除前可以恢复。在物理删除前可以恢复。1. 逻辑删除逻辑删除 在在“浏览浏览”窗口单击该记录行最左的删除标记列,就会窗口单击该记录行最左的删除标记列,就会出现删除标记出现删除标记“” 。 使用下面的
39、命令作删除标记。使用下面的命令作删除标记。 DELETE FOR WHILE 功能:对当前表在指定功能:对当前表在指定内满足内满足和和的记录做删除标记。若可选项都缺省,只指当前记录。的记录做删除标记。若可选项都缺省,只指当前记录。 372.物理删除物理删除命令格式:命令格式:PACK功能:从表中将带有删除标记的记录物理删除。功能:从表中将带有删除标记的记录物理删除。说明:说明:DELETE给记录作删除标记,给记录作删除标记,PACK将作了删除标记将作了删除标记的记录彻底删除。的记录彻底删除。例例3-6 物理删除部门代码为物理删除部门代码为“B02”的职工记录。的职工记录。代码如下:代码如下:
40、USE rsb DELETE FOR RIGHT(部门代码部门代码,3)=B02 & 部门代码为部门代码为“B02”记录作删除标记记录作删除标记 LIST PACK & 物理删除作了删除标记的职工记录物理删除作了删除标记的职工记录 LIST383. 记录恢复记录恢复 在在“浏览浏览”窗口单击记录的删除标记列,删除标记窗口单击记录的删除标记列,删除标记“”消失即可。消失即可。或使用下面的命令去掉删除标记。或使用下面的命令去掉删除标记。 RECALL FOR WHILE 功能:对当前表在指定功能:对当前表在指定内满足条件的记录去掉删除标记。内满足条件的记录去掉删除标记。说明:当所有可选项都缺省时只
41、恢复当前记录。说明:当所有可选项都缺省时只恢复当前记录。例例3-7 逻辑删除部门代码为逻辑删除部门代码为“A01”记录,恢复所有职称为副教授的职记录,恢复所有职称为副教授的职工记录。工记录。 USE rsb DELETE FOR RIGHT(部门代码部门代码,3)=“A01 RECALL FOR ALLTRIM(职称职称)=副教授副教授 LIST394. 清除全部记录清除全部记录 要物理删除当前表中的所有记录,则可以使用要物理删除当前表中的所有记录,则可以使用如下命令如下命令命令格式:命令格式: ZAP功能:删除当前表中的所有记录,只保留表结构部功能:删除当前表中的所有记录,只保留表结构部分。
42、分。说明:说明:执行执行ZAPZAP相当于执行相当于执行DELETE ALLDELETE ALL和和PACKPACK两条两条命令,命令,ZAPZAP将删除当前表中的所有记录,慎用。将删除当前表中的所有记录,慎用。40课堂提问课堂提问1、如何修改数据表的结构?、如何修改数据表的结构?2、如何修改记录的内容?、如何修改记录的内容?3、REPLACE命令的功能是什么?命令的功能是什么?4、记录定位有哪、记录定位有哪2种命令?种命令?5、记录删除的命令有哪些?、记录删除的命令有哪些?3.4 排序与索引排序与索引3.4.1 排序排序 排序就是按表中的字段重新排列记录顺序。排序后生成一个排序就是按表中的字
43、段重新排列记录顺序。排序后生成一个新表,新表的记录按新的物理顺序排列。新表,新表的记录按新的物理顺序排列。命令格式:命令格式:SORT TO ON /A|/D /C, /A|/D /C . ASCENDING | DESCENDING FOR WHILE FIELDS | FIELDS LIKE 通配字段名通配字段名| FIELDS EXCEPT通配字段名通配字段名功能:将当前数据表按指定的一个或多个字段进行排序,并将排功能:将当前数据表按指定的一个或多个字段进行排序,并将排序的结果保存到一个新的数据表中。序的结果保存到一个新的数据表中。41例例3-11 对对rsb.dbf分别按以下要求排序:
44、分别按以下要求排序:(1)按工作日期先后顺序排列,结果仅包含编号,姓名,性)按工作日期先后顺序排列,结果仅包含编号,姓名,性别,工作日期,职称这别,工作日期,职称这5个字段,并存入表个字段,并存入表px1.dbf中。中。(2)将已婚的职工按性别的降序排序,当性别相同时按姓名)将已婚的职工按性别的降序排序,当性别相同时按姓名的升序排序,结果仅包含编号,姓名,性别,工作日期,职称的升序排序,结果仅包含编号,姓名,性别,工作日期,职称,婚否这,婚否这6个字段,并存入表个字段,并存入表px2.dbf中。中。(1)代码如下:)代码如下:USE rsbSORT TO px1 ON 工作日期工作日期 FIE
45、LDS 编号编号,姓名姓名,性别性别,工作日工作日期期,职称职称USE px1LIST4243例例3-11 对对rsb.dbf分别按以下要求排序:分别按以下要求排序:(2)将已婚的职工按性别的降序排序,当性别相同时按姓名)将已婚的职工按性别的降序排序,当性别相同时按姓名的升序排序,结果仅包含编号,姓名,性别,工作日期,职的升序排序,结果仅包含编号,姓名,性别,工作日期,职称,婚否这称,婚否这6个字段,并存入表个字段,并存入表px2.dbf中。中。代码如下:代码如下:USE rsbSORT TO px2 ON 性别性别/D,姓名姓名/A FOR 婚否婚否 FIELDS 编号编号,姓名姓名,性别性
46、别,工作日期工作日期,职称职称,婚否婚否USE px2LIST443.4.2 索引索引1.索引的概念索引的概念 索引是按索引表达式使数据表中的记录有序地进行索引是按索引表达式使数据表中的记录有序地进行逻辑排列的技术。索引不改变当前数据表记录的物理顺逻辑排列的技术。索引不改变当前数据表记录的物理顺序,而是建立一个与数据表相对应的索引文件。序,而是建立一个与数据表相对应的索引文件。 2.索引的类型索引的类型按文件扩展名分为按文件扩展名分为2类:类:单索引文件(单索引文件(*.IDX)和复合索引文件()和复合索引文件(*.CDX) 按索引功能分为按索引功能分为4类:类:主索引、候选索引、普通索引和唯
47、一索引。主索引、候选索引、普通索引和唯一索引。 45索引类型索引类型建立命令建立命令关键字值重复关键字值重复索引个数索引个数说明说明主索引主索引CREATE TABLEALTER TABLE不允许不允许仅可一个仅可一个用于数据库表,可用于用于数据库表,可用于在永久关系中建立参照在永久关系中建立参照完整性完整性候选索引候选索引INDEXCREATE TABLEALTER TABLE可以多个可以多个可用作主关键字,用于可用作主关键字,用于在永久关系中建立参照在永久关系中建立参照完整性完整性普通索引普通索引INDEX允许允许可作为一对多永久关系可作为一对多永久关系中的中的“多方多方”唯一索引唯一索引
48、允许,但输出无允许,但输出无重复值重复值主要用于兼容旧版本,主要用于兼容旧版本,对于关键字值相同的记对于关键字值相同的记录,索引中只列出其中录,索引中只列出其中的第一个记录的第一个记录索引功能分类表索引功能分类表 463.索引的建立索引的建立(1)使用索引命令建立索引。)使用索引命令建立索引。命令格式:命令格式:INDEX ON TO | TAG OF FOR COMPACT ASCENDING | DESCENDING UNIQUE | CANDIDATE ADDITIVE功能:建立索引文件或建立索引标识。功能:建立索引文件或建立索引标识。 TO 子句用于建立单索引文件 TAG子句用于建立复
49、合索引标识或复合索引文件 用于指定非结构复合索引文件的名字用来指定单索引文件为压缩的 分别用于指定升序或降序 表示建立唯一索引 表示建立候选索引 47例例3-12 为数据表为数据表gzb.dbf按基本工资从小到大建立单索引文按基本工资从小到大建立单索引文件件jbgz.idx,按实发工资从高到低建立单索引文件,按实发工资从高到低建立单索引文件sfgz.idx。代码如下:代码如下:USE gzbINDEX ON 基本工资基本工资 TO jbgz&单索引文件总是按索引关键字单索引文件总是按索引关键字 升序排列升序排列LIST&记录已按基本工资升序排列记录已按基本工资升序排列INDEX ON 实发工资
50、实发工资 TO sfgz &给实发工资取负号后使索引关给实发工资取负号后使索引关 键字表达式按升序排列,以求键字表达式按升序排列,以求 实发工资按降序排列实发工资按降序排列LIST&记录已按实发工资降序排列记录已按实发工资降序排列48例例3-13 为为rsb.dbf按下列要求建立结构复合索引文件。按下列要求建立结构复合索引文件。 记录以姓名降序排列,索引标识记录以姓名降序排列,索引标识xm,索引类型为普通索引。,索引类型为普通索引。 记录以出生日期升序排列,索引标识记录以出生日期升序排列,索引标识csrq,索引类型为唯一索,索引类型为唯一索引。引。 记录以职称降序排列,职称相同的按出生日期降序
51、排列,索引记录以职称降序排列,职称相同的按出生日期降序排列,索引标识标识zccsrq,索引类型为候选索引。,索引类型为候选索引。代码如下:代码如下:USE rsbINDEX ON 姓名姓名 TAG xm DESCENDINGLISTINDEX ON 出生日期出生日期 TAG csrq UNIQUELISTINDEX ON 职称职称+DTOS(出生日期出生日期) TAG zccsrq DESCENDING CANDIDATELIST49(2)利用表设计器来建立索引利用表设计器来建立索引 在“索引名”文本框中输入索引标识名 在“类型”列表框中,选定索引类型在“表达式”文本框中,输入索引关键字表达式
52、 向上箭头为升序索引,向下箭头为降序索引如果需要,可输入筛选条件表达式 504.索引的使用索引的使用(1) 打开和关闭单索引文件打开和关闭单索引文件 同时打开数据表和单索引文件的命令同时打开数据表和单索引文件的命令命令格式:命令格式:USE INDEX 单索引文件名表单索引文件名表功能:在打开数据表的同时打开一个或多个索引文件。如果索引文功能:在打开数据表的同时打开一个或多个索引文件。如果索引文件有多个,文件之间用逗号分隔,并确定第一个索引文件为主控索件有多个,文件之间用逗号分隔,并确定第一个索引文件为主控索引文件。引文件。 先打开数据表,然后才打开单索引文件的命令先打开数据表,然后才打开单索
53、引文件的命令命令格式:命令格式:SET INDEX TO 单索引文件名表单索引文件名表ADDITIVE功能:打开当前表的一个或多个单索引文件并确定第一个单索引文功能:打开当前表的一个或多个单索引文件并确定第一个单索引文件为主控索引文件。件为主控索引文件。 51 单索引文件的关闭命令单索引文件的关闭命令命令格式:命令格式:CLOSE INDEXES或或SET INDEX TO功能:关闭当前工作区所有打开的索引文件(结构复合索引除外)。功能:关闭当前工作区所有打开的索引文件(结构复合索引除外)。说明:关闭数据表则打开的索引文件也随之关闭。说明:关闭数据表则打开的索引文件也随之关闭。例例3-14 使
54、用索引举例。使用索引举例。代码如下:代码如下:USE gzb INDEX jbgz,sfgzLISTCLOSE INDEXES请对比下面的命令:请对比下面的命令:USE gzbSET INDEX TO jbgz,sfgzLISTSET INDEX TO52(2)复合索引文件的打开和主控索引的确定。)复合索引文件的打开和主控索引的确定。 同时打开数据表和指定主控索引。同时打开数据表和指定主控索引。命令格式:命令格式:USE ORDER | TAG OF ASCENDING | DESCENDING功能:在打开数据表的同时指定主控索引。结构复合索引不用指定索引功能:在打开数据表的同时指定主控索引。结构复合索引不用指定索引文件名。文件名。 先打开数据表再指定主控索引。先打开数据表再指定主控索引
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度个人经营性小额贷款反担保及逾期债务催收执行合同
- 2025年度高端GPS导航与车辆远程故障诊断服务采购合同
- 2025年员工委派环保项目合作合同范本(含环境保护责任)
- 2025年度绿色环保车库物业服务标准合同
- 2025年度金融机构信用评级与风险管理咨询合同
- 2025年航空航天领域高性能钣金加工及技术创新研发合同
- 2025年智能电网UPS电源设备维保及能效提升服务合同
- 2025年度城市防汛排水系统升级改造工程合同
- 消防月培训课件
- 电工培训上课课件
- DB61∕T 1576-2022 矩形钢管混凝土组合桁梁桥技术规范
- 2025-2026学年人教版(2024)初中生物八年级上册(全册)教学设计(附目录)
- 2025-2030中国汽车工程服务外包(ESO)行业现状调查与前景趋势研究报告
- 职业中学数学课件学习方法
- 2025年中国药用菌行业投资前景及策略咨询研究报告
- 软陶教学课件
- 2025年黑吉辽蒙高考化学试卷真题解读及答案详解(精校打印)
- 美术教育学新编
- TCDSA 201.22-2024 呼吸气体质量分析仪
- 特种设备重大事故隐患判定准则试题及答案
- 二年级语文(统编版)二年级上册学习导引课课件
评论
0/150
提交评论