1 / 42

第 2 章 VFP 表的基本操作

第 2 章 VFP 表的基本操作. 2.1 VFP 表的建立 的建立、修改与运行 2.1.1 分析和设计表的结构 表是由行和列组成的二维表格,它是处理数据和建立关系数据库及其应用程序的基本单元。 表分为自由表和数据库表。自由表是独立于数据库而存在的一种表,而数据库表是包含在数据库中的表。 表主要由结构和记录两部分组成。结构可以理解为表的框架,记录即表中的数据。. 关系名. 记录 ( 行 ). 属性 ( 列 ). 1. 表结构的分析. 字段名. Teacher 表. 值. 2.1.2 表结构的建立. 菜单方式 命令方式 项目方式. 字段的基本属性.

liora
Télécharger la présentation

第 2 章 VFP 表的基本操作

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第2章 VFP表的基本操作 2.1 VFP表的建立的建立、修改与运行 2.1.1 分析和设计表的结构 • 表是由行和列组成的二维表格,它是处理数据和建立关系数据库及其应用程序的基本单元。 • 表分为自由表和数据库表。自由表是独立于数据库而存在的一种表,而数据库表是包含在数据库中的表。 • 表主要由结构和记录两部分组成。结构可以理解为表的框架,记录即表中的数据。

  2. 关系名 记录(行) 属性(列) 1.表结构的分析 字段名 Teacher表 值

  3. 2.1.2表结构的建立 • 菜单方式 • 命令方式 • 项目方式

  4. 字段的基本属性 • 字段名(Field Name),每一个字段必须取一个名字,称为“字段名”,用以在表中标志该字段。以字母或汉字开头,可包括字母、汉字、数字和下划线,长度不超过10。 • 字段的数据类型(Type),表中每个字段都有特定的数据类型。 • 字段宽度(Width),指该字段所能容纳数据的最大的字节数,字段的宽度必须能足够容纳可能的最长的数据信息。除字符型、数值型、浮动型字段由用户根据需要设定字段宽度外,其它类型均由系统规定宽度。

  5. 字段的基本属性 • 小数位数(Decimal),对于数值型、浮点型和双精度型的字段,还可以指定其小数的位数。小数位和正负号都须在字段宽度中占一位。 • 空值(NULL)支持,空值是用来指示记录中的一个字段“没有值”的标志。空值表示没有任何值或没有确定值,空值不同于数值0、空字符串或逻辑“假”。

  6. 2.1.3 表数据的录入 表数据的输入要点: • 逻辑型字段只能接受.T.,.Y.,.F.,.N.四个字母之一; • 日期型数据必须与日期格式相符,默认按美国格式mm/dd/yy; • 对于备注型和通用型字段,输入时将光标定位在memo或gen区,双击鼠标,打开相应的编辑窗口,输入完后,按ctrl+w存盘退出,按esc或ctrl+Q输入作废。

  7. 2.2 表的打开与关闭 2.2.1 打开表 【命令】USE [<文件名>] 【功能】打开表文件,当USE后不加文件名时,为关闭已打开的表。

  8. 2.3 表的显示 • 浏览窗口的打开: 方法一:打开表 选定“显示”菜单的“浏览”命令 方法二:USE<表名> BROWSE • 一窗两区:将窗口分割器向右拖动

  9. BROWSE命令 【命令格式】BROWSE [<范围>][FIELDS<字段名表>][FOR<条件表达式>][LAST] 【功能】在“浏览”窗口中显示或修改数据。 【说明】使用FIELDS子句,对指定的字段进行操作。使用FOR子句,对满足条件的记录进行操作。LAST子句选用最后一次的显示配置(浏览方式或编辑方式)。

  10. BROWSE命令例题 【例2.8】 使用BROWSE命令浏览表teacher.dbf中的记录。 USE teacher EXCLUSIVE BROWSE 【例2.9】使用BROWSE命令浏览表teacher.dbf中职称是“讲师”的记录。 USE teacher EXCLUSIVE BROWSE FOR 职称="讲师" 【例2.10】使用BROWSE命令浏览表teacher.dbf中记录的“姓名”、“性别”、“出生年月”三个字段的内容。 USE teacher EXCLUSIVE BROWSE FIELDS 姓名,性别,出生年月

  11. LIST/DISPLAY命令 【命令格式】LIST/DISPLAY [<范围>] [FIELDS<字段名表>] [FOR <条件表达式>] [OFF] [TO PRINT][TO FILE <文件名>] 【功能】在工作区窗口显示当前表中符合条件的记录。 【说明】 • LIST命令的范围默认值为ALL,DISPLAY命令的默认值为当前记录。如省略范围,使用[FOR<条件>]子句,默认范围为ALL。 • 若省略FIELDS子句,默认所有字段。 • 若省略OFF子句,显示记录号,否则不显示记录号。 • 若使用TO PRINT子句,输出记录到打印机。默认输出到屏幕。 • 若使用TO FILE <文件名>子句,将输出内容写入指定表文件。

  12. LIST/DISPLAY命令例题 【例2.11】在工作区窗口显示表teacher.dbf中记录。 USE teacher EXCLUSIVE LIST 【例2.12】在工作区窗口显示表teacher.dbf中计算机教研室老师的记录。 USE teacher EXCLUSIVE LIST FOR 教研室="计算机"

  13. LIST/DISPLAY命令例题 【例2.13】在工作区窗口显示表teacher.dbf中70年以前出生的老师记录。 USE teacher EXCLUSIVE LIST FOR 出生年月<{^1970/1/1} 【例2.14】在工作区窗口显示表teacher.dbf中月收入在1000元以上的老师的姓名、月收入。 USE teacher EXCLUSIVE LIST FOR 月收入>1000 FIELDS 姓名,月收入

  14. LIST/DISPLAY命令例题 【例2.15】在工作区窗口显示表teacher.dbf中已婚老师记录。 USE teacher LIST FOR 婚否 OFF

  15. 2.3.2表结构的显示 【命令格式】LIST/DISPLAY STRUCTURE 【功能】在工作区窗口显示当前表的结构。 【例2.16】显示表teacher.dbf的结构。 USE teacher LIST STRUCTURE

  16. 2.4 目录操作

  17. 2.5文件的复制和删除2.5.1表文件的复制 【命令格式】COPY TO <新表名>[<范围>][FIELDS<字段名表>][FOR<条件>] 【功能】将当前表的结构和记录全部或部分复制到新表中。 【说明】 若没有任何子句,则将复制一个与当前表结构和内容完全相同的新表。新表的结构由FIELDS子句的<字段名表>决定,新表的记录个数由FOR子句的<条件>决定。

  18. 表文件的复制 【例2.18】复制完全相同的表teacher.dbf到teacher2.dbf和teacher2.fpt. USE teacher COPY TO teacher2 USE teacher2 LIST 【例2.19】从表teacher.dbf复制到teacher3.dbf,新表中含有女教师的“姓名”、“性别”、“教研室”3个字段。 USE teacher COPY TO teacher3 FOR 性别="女" FIELDS 姓名,性别,教研室 USE teacher3 LIST

  19. 2.5.2表结构的复制 【命令格式】COPY STRUCTURE TO <新表名> [FIELDS<字段名表>] 【功能】将当前表的结构全部或部分复制到新表中。 【说明】产生的新表是一个只有表结构而没有记录的空表。若使用FIELDS子句,则新表只包含FIELDS子句指定的字段。

  20. 2.5.3任意类型文件的复制 【命令格式】COPY FILE <源文件名> TO <目标文件名> 【功能】将源文件内容拷贝到目标文件中去。 【说明】 • 该命令可复制任何类型的文件。 • 源文件和目标文件若有扩展名,必须写上。 • 源文件和目标文件不能使用通配符 “*”、“?”。 • 使用该命令前,源文件必须是关闭的。 • 若源文件是一个带有备注型字段的数据表文件,则需要另外复制.FPT文件。

  21. 2.5.4文件的删除 【命令格式】ERASE/DELETE FIEL <文件名>/? 【功能】删除磁盘文件。 【说明】 • 要删除的文件中若有扩展名,必须写上。 • 要删除的文件中可以使用通配符 “*”、“?”。 • 文件名前可带盘符和路径,若省略盘符和路径,则指当前盘当前路径。 • 使用该命令前,被删除的文件必须是关闭的。 • 若要删除的文件是带有备注型字段的数据表文件,则需要另外删除.FPT文件。

  22. 2.6记录指针的定位 • 表中的每个记录都有一个编号,称为记录号。对于打开的表,会被分配一个记录指针。记录指针指向的记录称为当前记录。 • 定位记录就是移动记录指针,使指针指向符合条件的记录过程。使用RECNO()函数可以获得当前记录的记录号。 • 表文件有两个特殊的位置:文件头(表起始标记)和文件尾(表结束标记)。文件头在表的第1个记录之前,当记录指针指向文件头时,BOF()函数的值为.T.;文件尾在表的最后1个记录之后,当记录指针指向文件尾时,EOF()函数的值为.T.,

  23. 表的结构

  24. 2.6.1 绝对定位 将记录指针直接定位到某条记录,称记录的绝对定位。 【命令格式】GO / GOTO [TOP / BOTTOM]/ <n>] 【功能】将记录指针指向定位记录 【例2.21】GO 命令定位示例。 USE teacher ?RECNO() && 刚打开的表,指针指向第 1个记录 GO BOTTOM && 定位到末记录 ?RECNO() ?EOF() GO 3 ?RECNO() GO TOP && 定位到首记录 ?RECNO()

  25. 2.6.2相对定位 【命令格式】SKIP[+/-] [<数值表达式>] 【功能】从当前记录开始向前或向后移动记录指针。 【说明】 • SKIP 向表尾方向移动1个记录。 • SKIP +n 向表尾方向移动n个记录。 • SKIP -n 向表头方向移动n个记录。

  26. 2.7记录的追加与插入2.7.1记录的追加 【命令格式】APPEND [BLANK] 【功能】在已打开的当前表的尾部追加一个或多个记录。 【说明】当命令使用BLANK子句时,在表的尾部追加一个空白记录,并且不进入编辑窗口。

  27. 2.7.2记录的插入 【格式】INSERT [BEFORE][BLANK] 【功能】在当前表中某个记录的之前或之后插入记录。 【说明】 • INSERT 表示在当前记录的之后插入一条记录。 • INSERT BEFORE表示在当前记录的之前插入一条记录。 • INSERT BLANK 或INSERT BEFORE BLANK表示在当前记录之后或之前插入一条空记录。 • 插入空记录后,其后所有记录的记录号加1,空记录只有记录号而无内容。

  28. 2.8记录的删除和恢复2.8.1记录的逻辑删除 【命令格式】DELETE [<范围>] [FOR <条件> ] 【功能】逻辑删除指定范围内符合条件的记录。删除标记用“*”表示。 【例2.25】逻辑删除表teacher.dbf中的第3个和第5个记录。 USE teacher EXCLUSIVE GO 3 DELETE GO 5 DELETE LIST

  29. 2.8.2记录的恢复 【命令格式】RECALL [<范围>] [FOR <条件表达式> ] 【功能】恢复指定范围内符合条件的被逻辑删除的记录为正常记录。 【说明】 • RECALL 仅恢复当前记录指针指向的带有删除标记一个记录。 • RECALL ALL恢复所有带删除标记的记录。 • 若使用FOR <条件表达式>子句,则恢复指定范围内所有符合条件的带有删除标记的记录。

  30. 2.8.3记录的物理删除 【命令格式】PACK 【功能】物理删除所有带删除标记的记录。 【说明】PACK命令不受SET DELETE ON/OFF状态的影响。 【例2.27】物理删除表teacher.dbf中的第3个记录。 USE teacher EXCLUSIVE RECALL ALL GO 3 DELETE PACK BROWSE

  31. 2.8.4记录的清空 【命令格式】ZAP 【功能】物理删除表中的全部记录,删除后,表中只保留结构,没有记录。

  32. 2.9 VFP表的修改2.9.1表结构的修改 【命令格式】MODIFY STRUCTURE 【功能】打开“表设计器”对话框,修改当前表的结构。 【例2.28】用命令修改表teacher.dbf的结构。 USE teacher EXCLUSIVE MODIFY STRUCTURE

  33. 2.9.2表记录的修改 1.在“浏览”窗口中修改记录 2.EDIT/CHANG命令 3.REPLACE命令 【命令格式】REPLACE [<范围>][<字段名1> WITH <表达式1>], [<字段名2> WITH <表达式2>]…[<字段名n> WITH <表达式n>] [FOR <条件表达式>] 【功能】用表达式的值替换指定字段的值,即用表达式1的值替换字段名1原来的值;用表达式2的值替换字段名2原来的值;……。

  34. 【例2.30】将表teacher.dbf中所有教师的工资增加500元。【例2.30】将表teacher.dbf中所有教师的工资增加500元。 USE teacher EXCLUSIVE REPLACE ALL 月收入 WITH 月收入+500 BROWSE 【例2.31】将表teacher.dbf教师景秀丽的职称由“讲师”改为“副教授”。 USE teacher EXCLUSIVE REPLACE 职称 WITH "副教授" FOR 姓名="景秀丽" BROWSE

  35. 【例2.32】给表teacher.dbf增加一个记录,各个字段的值依次是:“石磊”、“男”、“10/30/63”、“已婚”、“计算机”、“教授”、“1800元”。【例2.32】给表teacher.dbf增加一个记录,各个字段的值依次是:“石磊”、“男”、“10/30/63”、“已婚”、“计算机”、“教授”、“1800元”。 USE teacher EXCLUSIVE APPEND BLANK REPLACE 姓名 WITH "石磊",性别 WITH "男",出生年月 WITH {^1963/10/30},婚否 WITH .t. ; 教研室 WITH "计算机",职称 WITH "教授",月收入 WITH 1800 BROWSE LAST

  36. 2.9.3记录与数组间的数据传送1.将当前记录复制到数组或内存变量中2.9.3记录与数组间的数据传送1.将当前记录复制到数组或内存变量中 【命令格式】SCATTER [FIELDS<字段名表>][MEMO] [BLANK]TO [<数组名>]│[MEMVAR] 【功能】将当前记录的字段值按<字段名表>顺序依次送入数组元素中,或一组内存变量中。 【说明】 • 若使用FIELDS子句,则只传送字段名表中的字段,否则将传送所有字段(备注型字段除外)。若传送备注型字段,还需使用MEMO选项。 • 使用TO <数组名>子句能将数据复制到<数组名>所示的数组元素中。 • 使用MEMVAR可将数据复制到一组变量名与字段名相同的内存变量中。 • 如果使用BLANK,则将创建一组与各字段相同数据类型的空内存变量。

  37. 【例2.33】SCATTER命令使用示例。 USE teacher EXCLUSIVE SCATTER BLANK TO A GO 4 SCATTER TO B GO 5 SCATTER TO MEMVAR DISPLAY MEMORY

  38. 2.数组或内存变量中的数据复制到当前记录 【命令格式】GATHER FROM <数组名>│MEMVAR [FIELDS<字段名表>][MEMO] 【功能】将数组或内存变量中的数据依次复制到当前记录,以替换相应的字段值。 【说明】 • 修改记录前需确定记录指针的位置。 • 若使用FIELDS子句,则只有<字段名表>中的字段才会被数组元素值替代,若传送备注型字段,还需使用MEMO选项。 • 内存变量将传送给与它同名的内存变量,若某字段无同名的内存变量,则不对该字段进行数据替换。 • 若数组元素多于字段数,则多出的数组元素不传送;若数组元素少与于字段数,则多出的字段值不会改变。

  39. 【例2.34】SCATTER命令使用示例。 USE teacher EXCLUSIVE COPY STRUCTURE TO teacher5 USE teacher5 APPEND BLANK GATHER FROM A APPEND BLANK GATHER FROM B APPEND BLANK GATHER FROM MEMVAR BROWSE

  40. 2.10 表的筛选 在实际应用中,表的记录较多或字段数目较大,处理数据就显得不大方便。Visual FoxPro提供了表的筛选功能,可以只对满足条件的部分记录或部分字段进行操作。挑选出满足条件记录的操作称记录的筛选,挑选出部分字段的操作称字段的筛选。

  41. 2.10.1 记录的筛选 • 命令中使用FOR短语 例如: LIST FOR LEFT(姓名,2)="张" • 工作区属性窗口中使用数据筛选功能

  42. 一定不要忘记 2.10.2 字段的筛选 • 命令中使用FIELDS短语 例如:LIST FIELDS 姓名,教研室 FOR 性别 • 工作区属性窗口中使用字段筛选功能

More Related