四表的创建和基本操作4.1表的创建4.2表的打开和关闭4.3表结构的修改4.4表的记录定位和显示4.5表结构和数据的复制4.6表数据的修改4.7表的过滤4.8数组和表之间的数据交换现实中的数据的存放学生情况统计表股票行情表单位的设备清单商店的货物清单4.1表的创建学生情况表学号姓名性别出生年月入校总分三好生特长照片s0201101王小平男10/23/1984590Fs0201102张强男08/12/1984568Ts0201103刘雨女01/02/1985565Fs0201104江冰男07/24/1984570Fs0201105吴红梅女05/12/1984595Fs0201106杜海男12/12/1983578Fs0201107金阳女11/07/1983550Ts0201108张敏女09/30/1984586Fs0201109杨然男02/15/1985569Fs0201110郭晨光男03/18/1983592F表的结构记录表设计解决的几个问题1.需要一个表名2.字段(列)的命名问题3.字段(列)的类型问题学生情况表(学号Char(8),姓名Char(8),性别Char(2),出生年月Date,入校总分Number(3),三好生Log,特长Memo,照片General)表的建立1)命令1——进入表设计器CREATE[表名]建立表名可省略表名。CREATE[盘符:][路径][表名]建立某盘某路径下的表名默认路径的建立SETDEFAULTTO[盘符:][路径]设置默认路径某盘某路径作用:设置保存文件的默认位置。如:SETDEFATOd:\table表的建立(掌握)2)命令2——直接建立(无需进入表设计器)Createtable新表名(字段名1类型(长度)[,……])建立表表名(字段1类型(宽度)[,……])createtable学生情况表(学号C(8),姓名C(8),性别C(2),出生年月D,;入校总分N(3),三好生L,特长M,照片G)1)立即输入建立结构完成,退出时,将出现询问:“现在输入数据记录吗?”选择“是”,则进入记录编辑窗口,开始输入记录数据。2)追加输入在表打开的情况下,使用命令:APPEND追加新纪录(到表尾)上述两种,都进入记录编辑窗口,开始编辑记录。3)非交互式追加——不进入编辑窗口APPENDBLANK追加空记录到表尾追加空(记录)二表数据的输入备注数据输入要点:逻辑型字段只能接受T、Y、F、N这4个字母之一(大小写皆可)。日期型字段的两个“/”间隔符已在相应的位置标出,默认按美国日期格式mm/dd/yy输入日期即可。备注型与通用型字段中已分别显示memo与gen标志,当光标停留在备注型字段的memo区时,如果不想输入数据,则可按回车键跳过该字段;如果要输入数据,则按Ctrl+Pgdn键或用鼠标双击memo都可打开备注型字段编辑窗口,即可输入或修改备注信息。备注型字段实际上是一个可变长的字段(最大可以到64K),其中的文本可以利用编辑菜单进行剪切、复制、粘贴,还可利用格式菜单的字体选项设置字体、字体样式、字的大小等。通用型字段显示gen,可以存放如图形、图象、声音等多媒体数据,有些操作与备注型字段类似。1、表的打开(数据输入完毕,表都是打开的。)命令:use[盘符:路径]表文件名使用[某盘某路径下]表文件名命令选项:use表文件名shared|exclusive共享|独占打开use?将出现打开文件对话框。菜单:“文件”菜单=》“打开”=》选盘符、路径,选择文件类型为“表”=》双击文件或单击文件再“确定”按钮一个表打开时,自动定位到第一条记录。三表的打开和关闭1.命令方式【命令1】USE【功能】关闭当前工作区已打开的表文件。【命令2】CLOSEALL【功能】关闭所有工作区中的所有各类型文件,但不释放内存变量。【命令3】CLOSE文件类型【功能】关闭由文件类型指定的相应类型的文件。例如,CLOSETABLES[ALL]:关闭所有的表文件。【命令4】CLEARALL【功能】关闭所有工作区中的所有表及各类型文件,并且释放内存变量。关闭表2.菜单方式【菜单】“文件”菜单→“退出”命令,或单击程序窗口的关闭按钮。修改表结构指当已经退出表设计器后,修改结构。1)菜单方式“显示”菜单=》“表设计器”2)命令方式格式:MODIFYSTRUCTURE修改结构进入表设计器进行重新修改。四表结构的修改1、定位记录记录指针的概念:对二维表的操作,当前正操作的记录称为当前记录,VFP用整型的记录指针来定位当前记录。1)命令方式绝对移动格式:GOn或GOTOn含义:到n号记录GOTOP或GOTOTOP含义:到顶(首记录)GOBOTTOM或GOTOBOTTOM含义:到底(末记录)五表的记录定位和显示相对移动格式:SKIP[n]跳过n个记录【说明】负值表示向文件头移位;正值表示向文件尾移位;数值表达式缺省等同于数值表达式的值为1。1、命令:LIST/DISPLAY[范围][FIELDS〈字段名表〉][FOR〈条件〉]|[WHILE〈条件〉][OFF][TOPRINT]列出/显示[指定范围内][字段字段列表][满足条件]|[只要条件][不要记录号][到打印机]二.记录的显示2.浏览窗口显示记录BROWSE[FIELDS〈字段表][FOR〈条件〉][NOAPPEND][NOMODIFY]浏览[字段字段表][对满足条件的][不准追加][不准修改]六表数据的修改一.记录的插入和追加1.插入新记录INSERT插入(记录)当前记录后交互式插入INSERTBLANK插入空(记录)当前记录后直接插入一条空记录INSERTBEFORE插入(到当前记录)前当前记录前交互式插入INSERTBLANKBEFORE插入空(记录)(到当前记录)前2.记录的追加1)菜单方式当打开表,并打开浏览窗口时:“显示”菜单=》“追加”方式,此时,将光标移动到末记录,并回车,即自动追加新纪录。“表”菜单=》“追加新纪录”2)命令方式格式:APPEND追加交互式追加一条记录APPENDBLANK追加空(记录)(非交互式追加一条空记录)(2)INSERT-SQL命令INSERTINTO表名(字段名1[,字段名2,…])VALUES(表达式1[,表达式2,…])【说明】①表不必事先打开,字段与表达式的类型必须相同。②若字段名全部缺省,就须按表结构字段顺序填写VALUES子句的所有表达式。例子:INSERTINTO学生(学号,姓名,出生年月)VALUES(“s001”,”张飞”,{^2000-2-1})(3)APPENDFROM命令格式:APPENDFROM源表名[FIELDS字段表][FOR条件]追加(记录)来自表字段字段表对满足条件的记录例子:usexsdaappendfrom学生fields学号,姓名,性别;for性别=“男”二.记录的删除和恢复1.记录逻辑删除命令【命令】DELETE[范围][FOR条件][WHILE条件]【菜单】“打开”对话框→打开表→选“显示”菜单→选“浏览”命令→选“表”菜单→选“删除记录”。【说明】①若可选项都缺省,只指当前记录。②为了防止误删除操作,删除记录通常要分两步:先给记录作删除标记,然后再从磁盘上将具有删除标记的记录进行物理删除。2.记录物理删除命令【命令】PACK【菜单】“打开”对话框→打开表→选“显示”菜单→选“浏览”命令→选“表”菜单→选“彻底删除”。【说明】使用该命令将真正删除带有删除标记的记录,不可恢复。3.记录恢复命令【命令】RECALL[范围][FOR条件][WHILE条件]【菜单】“打开”对话框→打开表→选“显示”菜单→选“浏览”命令→选“表”菜单→选“恢复删除”。【说明】记录的恢复是指去掉删除标记,但已被物理删除的记录是不可恢复的。4.记录清除命令【命令】ZAP【功能】从物理上删除当前表中的所有记录。【说明】执行ZAP相当于执行DELETEALL和PACK两条命令,只保留表结构。1.页式编辑修改【命令】CHANGE\EDIT[范围][字段名表][FOR条件][WHILE条件]【菜单】“打开”对话框→打开表→选“显示”菜单→选“编辑”命令。【说明】①若命令写成EDIT〈记录号〉,则是对〈记录号〉指定的记录进行修改。如:EDIT3②可连续修改多个记录,修改完成后,按CTRL+W键存盘并结束修改,若要宣布对某记录的修改无效,可按CTRL+Q或ESC退出。三.记录的修改2.成批修改记录数据【命令】REPLACE[范围][FOR条件][WHILE条件]字段名1WITH表达式1][,字段名2WITH表达式2]【菜单】“打开”对话框→打开表→选“显示”菜单→选“浏览”命令→选“表”菜单→选“替换字段”→进入“替换字段”对话框。【功能】在当前表的指定记录中,直接将字段值用指定的表达式值来替换。4.5表结构和数据的复制一.复制任何类型的文件【命令】COPYFILE文件名1TO文件名2【注意】(1)若对表进行复制,该表必须处于关闭状态。(2)文件名l与文件名2可使用通配符﹡号和?号。二.复制表文件格式:COPYTO〈新文件名〉[FIELDS字段表][FOR/WHILE条件]复制到新文件字段字段表对满足/当满足条件(的记录)usexsdacopytoxsfields学号,姓名,性别,入学成绩copytoxs1typexlscopytoxs2delimitedwith'#'三.复制表的结构【命令】COPYSTRUCTURETO文件名[FIELDS〈字段名表〉]【说明】①仅复制当前表的结构,不复制其中的数据。②若使用FIELDS选项,则新表的结构只包含其指明的字段,同时也决定了这些字段在新表中的排列次序。4.7表的过滤过滤器分为两种:记录过滤器和字段过滤器。记录过滤器可以将符合条件的记录留下来,将不符合条件的记录过滤掉当操作完毕时,只要取消过滤器便可恢复被过滤掉的那些记录。字段过滤器则可将指定的字段留下来,将其他字段过滤掉,在以后的命令中可以不再指定字段名,只对留下来的字段进行操作。(注意,过滤和删除是两个完全不同的概念,过滤只是提供用户一个用户视图进行操作,不满足条件的记录仍然存在,只是当时不参与操作而已)。一.记录过滤【命令】SETFILTERTO[条件]【菜单】打开表→选“显示”菜单→选“浏览”命令→在“表”菜单中选择“属性”→打开“工作区属性”对话框。【说明】缺省条件时表示取消所设置的过滤器。如:设置记录过滤,保留男生记录use学生Setfilterto性别=“男”二.字段过滤【命令】SETFIELDSTO[字段名表|ALL](过滤后,保留指定的字段)【菜单】打开表→选“显示”菜单→选“浏览”命令→在“表”菜单中选择“属性”→打开“工作区属性”对话框→选“字段筛选指定的字段”→选“字段筛选”→打开“字段选择器”对话框。字段过滤有效性设置:SETFIELDSON|OFF4.8数组和表之间的数据交换一.单记录和数组之间的数据交换1.将表中记录传送到数组或内存变量【命令】SCATTER[FIELDS字段名表][MEMO]TO数组名MEMVAR【功能】将当前记录的字段值按字段名表顺序依次送入数组元素中,或依次送入一组内存变量。Use学生Go1Scattertoxs&&将第一条记录复制到数组xs【说明】①若选择FIELDS子句,则只传送字段名表中的字段值;否则将传送所有字段值(备注型字段除外)。若要传送备注型字段值,还需使用MEMO选项。②使用TO数组名子句能将数据复制到数组名所示的数组元素中(VFP会自动建立或扩大数组)。③使用MEMVAR为将数据复制到一组内存变量中,由于这组内存变量名分别与相应的字段名相同,因此在使用时应在其前加上M。2.将数组或内存变量的数据传送