40
1 茂茂茂茂茂茂茂茂 授授 -2 授授授授授(一) 2.1 茂茂茂茂茂茂(一) 2.2 茂茂茂茂茂茂茂茂 授授授授授授授授授授授授授授授授 授授授 授授授 一。, 授授授授授授授授授 授授授授授授 授授授授授授授授授授授授授授授 、,。

授课 -2 自由表操作(一)

  • Upload
    fola

  • View
    137

  • Download
    11

Embed Size (px)

DESCRIPTION

授课 -2 自由表操作(一). 自由表的管理操作是本门课的重点之一。这里,我们首先学习自由表的显示、修改等操作,然后介绍表结构的有关操作方法。. 2.1 表的基本操作(一) 2.2 表结构的有关操作. 【 任务(高新考试第 2.2 题) 】 将 C : \2006vfp\Unit2 文件夹 Y2-02 复制到考生文件夹中,重命名为 “ X2-02 ” ,然后新建项目管理器,并命名为 “ 项目 2-2 ” ,保存在文件夹 X2-02 中完成下列操作: 1. 复制自由表结构 : - PowerPoint PPT Presentation

Citation preview

Page 1: 授课 -2    自由表操作(一)

1茂名职业技术学院

授课 -2 自由表操作(一)

2.1 表的基本操作(一)

2.2 表结构的有关操作

自由表的管理操作是本门课的重点之一。这里,我们首先学习自由表的显示、修改等操作,然后介绍表结构的有关操作方法。

Page 2: 授课 -2    自由表操作(一)

2茂名职业技术学院

【任务(高新考试第 2.2 题) 】 将 C: \2006vfp\Unit2 文件夹 Y2-02 复制到考生文件夹中,重命名为“ X2-02”,然后新建项目管理器,并命名为“项目 2-2”,保存在文件夹 X2-02 中完成下列操作:1.复制自由表结构: 将 Y2_02A.dbf 中的表结构复制为 X2_02A.dbf 中,并将 X2_02A.dbf添加至“项目 2-2”的“自由表”中; 在表中输入一条记录,结果如样文 2-02A 所示。

2. 修改自由表记录及替换字段,打开 Y2_02A.dbf ,完成以下操作 按样文 2-02B 所示,修改 Y2_02A.dbf 中“报名序号”为“ 30968”和“ 30839”二条记录的“专业代号 1”、“专业代号 2”字段的内容; 为“报名序号”为“ 30968”和“ 30839”二条记录作删除标记; 为表添加一字段“序号”,数据类型为“数值型”,宽度为 4; 将每条记录的记录号的值放到字段“序号”中,结果如样文 2-02C所示

样文 2-02A

Page 3: 授课 -2    自由表操作(一)

3茂名职业技术学院

样文 2-02B

样文 2-02C

Page 4: 授课 -2    自由表操作(一)

4茂名职业技术学院

3. 在自由表中追加记录: 将表 Y2_02B.dbf 的记录追加到 Y2_02A.dbf 之中。4. 清除记录中的删除标记,物理删除记录 清除 Y2_02B.dbf 中“报名序号”字段值为“ 11265”的记录的删除

标记; 物理删除 Y2_02B.dbf 中“报名序号”字段值为“ 11238”的记录。5.记录的排序 将 Y2_02B.dbf 中所有记录按“姓名”字段降序、“院校代号”字段

降序排序,生成新文件 X2_02B.dbf ,保存至考生文件夹 X2-02 ,并将X2_02B.dbf 添加至“项目 2-2”的“自由表”中。

主要操作: BROW 、 REPL 、 DELE 、 RECA 、 PACK 、 SORT 的使用, COPY STRU 和 APPE … FROM 的使用。

Page 5: 授课 -2    自由表操作(一)

5茂名职业技术学院

2.1 表的基本操作(一)

【学习目标】 使用命令完成表的显示、修改等操作

【关键概念】 命令的格式 BROW 、 REPL 命令的用法

Page 6: 授课 -2    自由表操作(一)

6茂名职业技术学院

【表文件的打开与关闭】1. 打开表 一般来说 , 在进行各种表操作之前先要打开表。刚创建的表则

自动处于打开状态,在其它情况下可用如下方法打开表。

用菜单: 使用【文件】菜单中的【打开】命令。

若要对表进行编辑修改操作,则必须选定【独占】复选框

Page 7: 授课 -2    自由表操作(一)

7茂名职业技术学院

用命令: 格式: USE [ 表名 / ? ][IN 工作区号 ] ; [INDEX 索引文件名表 ][ALIAS 别名 ] ; [EXCLUSIVE/SHARED] 在当前工作区中打开表。打开时,若该表有备注型或通用型字段,则自动打开同名的 .FPT 文件。

例如 : USE rsb && 以独占方式打开 rsb.dbf

Page 8: 授课 -2    自由表操作(一)

8茂名职业技术学院

参数说明:( 1 ) [IN 工作区号 ] :规定在指定工作区中打开数据库表或自由表。

注: VFP6.0 的工作区号从 1-32767 ,前 10个工作区号也可用字母 A-J 表示。

( 2 ) [INDEX 索引文件名表 ] :打开指定的索引文件。

( 3 ) [ALIAS 别名 ] :指定该工作区的别名,若不指定别名,则默认为表文件名。

( 4 )用 EXCLUSIVE 选项,则以独占方式打开表。用 SHARED 选项,则以共享方式打开表,此时表结构和表数据只读,不能编辑修改。

Page 9: 授课 -2    自由表操作(一)

9茂名职业技术学院

2. 关闭表 • 格式一: USE • 格式二: CLOSE DATABASE 功能:关闭当前数据库和其中的表,若无打开的数据

库,则关闭所有自由表,并选择工作区 1 。 • 格式三: CLEAR ALL 功能:关闭所有的表,并选择工作区 1 ,释放所有内

存变量、用户定义的菜单和窗口。 除以上命令之外,还可通过退出 Visual FoxPro 来关

闭已打开的表。选定【文件】菜单中的【退出】命令,或在【命令】窗口键入命令 QUIT 。

Page 10: 授课 -2    自由表操作(一)

10茂名职业技术学院

Visual FoxPro 命令的格式与特点 (1) 命令格式 Visual FoxPro 的命令是由命令字开头,后随操作对象和若干命令子句。命令字指明具体操作,而子句说明操作结果的呈现形式与操作条件等。以下给出几个简单的命令示例。

USE rsb && 打开名称为 rsb 的表文件 BROW FOR ALLT(职称 )=“副教授” && 浏览职称为副教授的教师记录信息 USE && 关闭已打开的当前表

【相关知识】

Page 11: 授课 -2    自由表操作(一)

11茂名职业技术学院

(2)(2) 命令子句命令子句 ① [范围 ]子句: ALL , RECO n , NEXT n , REST 。 ② [FIEL 字段 ]子句 字段之间用 “,”分隔。 ③ [FOR/WHIL 条件 ]子句 功能有一些小差别。 FOR—对满足条件的所有记录进行操作。 WHIL— 当有满足条件的记录便开始操作, 当出现不满足条件的记录便停止。

Page 12: 授课 -2    自由表操作(一)

12茂名职业技术学院

(3)(3) 命令特点命令特点 Visual FoxPro 的命令具有下列特点: ( 1 )命令的各部分简洁规范,通俗易懂。 ( 2 )命令子句的数量不限,顺序不拘。 ( 3 )命令中只规定对操作的要求,不描述具体的操作过程,所以称为“非过程化”语言。

Visual FoxPro 的命令既可逐条用交互的方式执行,又可编写成程序,以“程序文件”的方式执行。

命令中的词汇可使用简写,即只写出它们的前 4 个字母。

例如: REPLACE 可简写作 REPL 即可。

Page 13: 授课 -2    自由表操作(一)

13茂名职业技术学院

(3)(3) 命令分类命令分类 Visual FoxPro拥有近 500 条命令,可分为以下 7 类:

建立和维护数据库的命令。 数据查询命令。 程序设计命令:包括程序控制、输入 / 输出、打印设计、运行环境设置等命令。

界面设计命令:包括菜单设计、窗口设计、表单设计等命令。

文件和程序的管理命令。 面向对象的设计命令。 其他命令。

Page 14: 授课 -2    自由表操作(一)

14茂名职业技术学院

2.1.1 浏览显示记录 打开表后,通过“浏览” 可直接浏览修改表记录。

1.BROW 命令 格式: BROWSE [ 参数项 ] 功能:数据输入、编辑、浏览和修改等功能。

Page 15: 授课 -2    自由表操作(一)

15茂名职业技术学院

参数说明: NOAPPEND :不允许浏览窗口中显示的记录进行追加操作。 NOEDIT :不允许对浏览窗口中显示的记录进行修改。 NODELETE :不允许对浏览窗口中显示的记录进行修改。 TITLE ”标题文字”:用于指定浏览窗口的文字标题。 FIELDS 字段名表:显示指定的字段。 FOR 表达式:显示满足条件的记录。 VALID 条件表达式 [ERROR “错误提示信息” ]:用于

在浏览窗口中对某一字段进行编辑,修改和输入时,对数据的合法性进行检查。

WIDTH 字段宽度:指定字段在浏览窗口中显示的宽度。 COLOR SCHEME 颜色方案:用于设定浏览窗口的显示颜色。

Page 16: 授课 -2    自由表操作(一)

16茂名职业技术学院

(1) 重新安排列 若要在“浏览”窗口中重新安排列,则将列标头拖到新的位置,或从“表”菜单中选择“移动字段”,然后用上下箭头键移动列,最后按回车键。

(2)拆分“浏览”窗口 若要拆分“浏览”窗口,则将鼠标指针指向窗口左下角的拆分条,向右方拖动拆分条,将“浏览”窗口分成两个窗格。

(3) 改变显示时的列宽 在列标头中,将鼠标指针指向两个字段之间的结合处,拖

动鼠标可以调整列的宽度尺寸。(4) 打开或关闭网格线 选择“显示”菜单——“网格线”。

Page 17: 授课 -2    自由表操作(一)

17茂名职业技术学院

任务(高新考试第 8.8 题的第 1点)打开、浏览表( USE 、 BROWSE 命令)● 以独占方式打开表 Y8_08.dbf ;● 浏览表、并要求显示在浏览窗口中的字段如样文8-08A 所示。USE Y8_08 EXCLBROW FIEL 序号 ,姓名 , 性别 , 出生年月 ,中学代码USE

Page 18: 授课 -2    自由表操作(一)

18茂名职业技术学院

2.EDIT 命令 格式: EDIT [范围 ][FOR 条件 ][FIEL 字段名表 ]…

功能:用编辑方式 ( 字段名在左侧 )顺序修改当前表中指定范围内符合条件记录的指定字段。

Page 19: 授课 -2    自由表操作(一)

19茂名职业技术学院

【相关知识 : 记录的定位】 存取数据先要进行记录定位,记录定位就是将记录

指针指向某个记录,使之成为当前记录。表刚打开时,记录指针指向第一个记录。

(1) 在“浏览”窗口中移动 使用滚动条或菜单,如用下面方法: • 从“表”菜单中选择“追加记录”; • 在子菜单中选择“第一个”、“最后一个”、“下一

个”、“前一个”或“记录号”; • 如果选择了“记录号”,在“转达到记录”对话框中输

入待查看记录的编号,然后选择“确定”按钮。

Page 20: 授课 -2    自由表操作(一)

20茂名职业技术学院

( 2 )使用移动指针命令 绝对定位命令 格式: GO TOP|BOTTOM 功能:将记录指针定位在表的第一个记录或最后一个记录。

格式: GO < 数值表达式 > 功能:将记录指针定位在 < 数值表达式 > 指出的记录。 例如: USE rsb GO 4 && 指针移动到 4 号记录 ? RECNO() && 显示当前记录号 4

Page 21: 授课 -2    自由表操作(一)

21茂名职业技术学院

相对定位命令 格式: SKIP [< 数值表达式 >] 功能:从当前记录开始相对移动记录指针, < 数值表达式 > 表示移动记录的个数。

当 < 数值表达式 > 为负值时,指针向文件头移动,当 < 数值表达式 > 为正值时,指针向文件尾移动。 <数值表达式 >缺省时默认为 1 。

例如: USE rsb && 打开 rsb ,当前记录为首 (第 1 个)记录 GO 3 && 当前记录为第 3 个记录 SKIP && 指针向文件尾移动 1 ? RECN() && 显示 4 SKIP -2 && 指针向文件头移动 2 ? RECN() && 显示 2

Page 22: 授课 -2    自由表操作(一)

22茂名职业技术学院

( 3 )条件查找定位命令 格式: LOCATE [范围 ][FOR 条件 ] 功能:将记录指针定位在满足条件的第一个记录。 格式: CONT 功能:继续查找,将指针定位在满足条件的下一个记录。

例如: USE rsb LOCA FOR 性别 =‘女’ && 指针移动到… ? RECN() && 显示当前记录号 CONT && 继续查找… ? RECN() && 显示当前记录号

Page 23: 授课 -2    自由表操作(一)

23茂名职业技术学院

3.LIST 命令 格式: LIST [范围 ] [FOR/WHILE 条件 ] ; [FIEL 字段名表 ] [OFF] ; [TO PRINT/FILE 文件名 ] 功能:按指定范围和条件筛选出记录并显示出来,或送到

指定的目的地。 参数说明: OFF :为了让用户了解显示内容所在的记录,命令自动显示

记录号,若不需要显示记录号,则在命令中使用 OFF 选项。 TO PRINT :将输出内容打印出来。 TO FILE :将输出结果送到指定文件中。

Page 24: 授课 -2    自由表操作(一)

24茂名职业技术学院

(1) FIELDS子句 FIEL子句指定要显示的字段,相当于关系运算的“投影”操作。

保留字 FIEL 可以省略 [ 字段名表 ] 用来列出需要显示的内容,表达式之间用

“,”号分隔。[ 例如 ] 显示 rsb 中职工的编号 , 姓名 ,性别和年龄。 可在命令窗口键入如下命令: USE rsb LIST 编号 , 姓名 ,性别 ,YEAR(DATE())-YEAR(出生日期 )

Page 25: 授课 -2    自由表操作(一)

25茂名职业技术学院

(2) 范围子句 用来确定该命令涉及的记录,范围有 4 种限定方法: • ALL :所有记录; • NEXT n :从当前记录开始的 n 个记录; • RECORD n :第 n 个记录; • REST :从当前记录开始到最后一个记录的所有记录。 例如: USE rsb && 打开 rsb ,记录指针指向第 1 条记录 LIST 编号 , 姓名 ,性别 ,出生日期 NEXT 4 && 显示从第 1 条到第 4 条记录的编号、姓名、性别、出生日期

Page 26: 授课 -2    自由表操作(一)

26茂名职业技术学院

(3) FOR子句 FOR子句的 [ 条件 ] 为逻辑表达式,它指定记录选择

的条件,相当于关系运算的“选择”操作,在指定的范围内筛选出符合条件的记录。

例如: USE rsb LIST 姓名 FOR 婚否 =.T. REST LIST 姓名 ,出生日期 ,婚否 FOR YEAR(出生日期 )

<1975

Page 27: 授课 -2    自由表操作(一)

27茂名职业技术学院

4.DISP 命令 格式: DISPLAY [范围 ] [FOR/WHILE 条件 ] ; [FIELDS 字段名表 ] [OFF] ; [TO PRINT/FILE 文件名 ]; [NOCONSOLE][NOOPTIMIZE] 功能:分屏显示当前表中指定范围内符合条件的记录的指

定字段。 注意:命令动词为 LIST 时,范围子句缺省时默认为 ALL 。而当命令动词为 DISP 时,范围子句缺省时默认为当前记录。

Page 28: 授课 -2    自由表操作(一)

28茂名职业技术学院

2.1.2 修改记录 1. BROW,EDIT 命令 : 直接对某一记录值进行修改。 2. REPL 命令 格式: REPLACE [ 范围 ][FOR/WHILE 表达式 ] 字段名 1; WITH 表达式 1 [,字段名 2 WITH 表达式 2] …

… 功能:在当前打开表的指定记录中,将有关字段的值用相应的表达式值来替换。若 [ 范围 ]与 [条件 ]等选项都缺省,只对当前记录的有关字段进行替换。该命令对 [范围 ]内符合 [条件 ]的记录用 [表达式 I]的值来替换 [字段 I]。

[例如 ] USE rsb GO 6 REPL 职称 WITH " 副教授 ",部门代码 WITH "A01" 范围子句、 FOR子句等的使用与显示命令中相同。

Page 29: 授课 -2    自由表操作(一)

29茂名职业技术学院

P101例 2.1: 将 CJB.DBF中所有“大学英语”课程的学分都改为4。 REPL ALL 学分 WITH 4 FOR 课程名 =“大学英语”例2.2: 若班级成绩表BJCJB.DBF中有姓名、英语、政治、计算机基础和总分字段,要求根据英语+政治 +计算机基础作为总分字段的值。 REPL ALL 总分 WITH 英语+政治 +计算机基础例2.3: 若职工.dbf中有姓名、职称、基本工资等字段,现要对职称为教授或副教授的职工的基本工资增加工资的30%。 REPL ALL FOR 职称=“教授”.or.职称=“副教授” ; 基本工资 WITH 基本工资*1.3

【相关例题】

Page 30: 授课 -2    自由表操作(一)

30茂名职业技术学院

任务: 高新考试第 2.2 题的第 2点,利用命令在自由表中完成修改操作,具体是: 按样文 2-02B 所示,修改 Y2_02A.dbf 中“报名序号”为“ 30968” 和“ 30839” 二条记录的“专业代号 1” 、“专业代号 2” 字段的内容。 将每条记录的记录号的值放到字段“序号”中。 操作: repl 专业代号 1 with “03”, 专业代号 2 with “08” for 报名序号 = “30968” repl 专业代号 1 with “06”, 专业代号 2 with “04” for 报名序号 = “30839” repl all 序号 with recno ()

Page 31: 授课 -2    自由表操作(一)

31茂名职业技术学院

2.2 表结构的有关操作【学习目标】 掌握表结构的显示、复制、修改等操作

【关键概念】 表结构的复制命令格式 结构描述表

Page 32: 授课 -2    自由表操作(一)

32茂名职业技术学院

2.2.1 表结构的操作 1. 显示表结构格式 1: LISP STRU [TO PRINT/TO FILE 文件名 ]格式 2: DISP STRU [TO PRINT/TO FILE 文件名 ]功能: 显示当前已经打开表的结构。 LISP 为连续显示; DISP 为分屏显示。[ 例如 ] 显示“人事表”的结构。 在【命令】窗口依次键入如下两条命令: USE rsb && 在当前工作区打开表 rsb LIST STRU && 显示表 rsb 的结构

Page 33: 授课 -2    自由表操作(一)

33茂名职业技术学院

比各字段宽度和多一个字节 , 存删除标记

Page 34: 授课 -2    自由表操作(一)

34茂名职业技术学院

2. 使用命令直接建立表结构 格式: CREATE TABLE <新表文件名 >(<字段名 1> <类型 >;

< 长度 >[,<字段名 2> <类型 > < 长度 >,…]) [例 4.9]建立一个包含学号、姓名、出生日期、班级编号和入学成绩的表结构。

CREA TABL STUDENT(学号 C(6),姓名 C(6),;出生日期 D, 班级编号 C(4),入学成绩 N(6,2))

Page 35: 授课 -2    自由表操作(一)

35茂名职业技术学院

3. 使用命令复制表结构格式: COPY STRUCTURE TO 表文件名 [FIELDS 字段名表 ][WITH CDX]

功能:仅复制当前表的结构,不复制其中的数据。参数说明:如果使用 WITH CDX 选项,则复制表结构的同时

也复制表索引;若使用 FIELDS 选项,则新表的结构只包含其指明的字段,同时也决定了这些字段在新表中的排列次序。

[例:高新 2.2 第 1点 ] 将 Y2_02A.dbf 中的表结构复制为 X2_02A.dbf。

USE E:\2006VFPLX\X2-02\Y2_02A &&源表要先打开

COPY STRU TO X2_02A

Page 36: 授课 -2    自由表操作(一)

36茂名职业技术学院

4. 使用结构描述表建立表结构

格式: CREATE <新表文件名 > FROM <结构表文件名 >

而结构表可以用命令建立 格式: COPY STRU EXTE TO <结构表文件名 > [FIEL 字段名表 ]

结构表的表结构是固定的,由字段名、类型、宽度、小数位数、空值、索引等 11 个字段组成,见 P106 表 4-4

Page 37: 授课 -2    自由表操作(一)

37茂名职业技术学院

【示例】建立人事表 RSB 结构的电子表格 USE RSB COPY STRU EXTE TO RSBJG USE RSBJG COPY TO RSBJG.XLS TYPE XL5

field_name field_type field_len field_dec field_null field_nocp

编号 C 4 0 FALSE

姓名 C 8 0 FALSE

性别 C 2 0 FALSE

出生日期 D 8 0 FALSE

工作日期 D 8 0 FALSE

代码 C 3 0 FALSE

职称 C 10 0 TRUE

婚否 L 1 0 FALSE

简历 M 4 0 FALSE

相片 G 4 0 FALSE

Page 38: 授课 -2    自由表操作(一)

38茂名职业技术学院

5. 用命令进入表设计器修改表结构 格式: MODI STRU6. 表文件部分内容复制 格式: COPY TO <目的表文件名 > [FIEL 字段名清单 ]; [ 范围 ] [FOR/WHILE 条件 ] 功能:将当前表中选定的部分记录和部分字段复制成一个

新表或其它类型文件。

[例 4.10]在 RSB.DBF 中将男教授的记录复制到表 ZG1.DBF 中。 USE RSB COPY TO ZG1 FOR 职称 =“教授” AND 性别 =

“男”

Page 39: 授课 -2    自由表操作(一)

39茂名职业技术学院

常用对自由表进行操作的命令一览√ BROW

√ LIST 与 DISP

√ REPL

APPE 与 APPE FROM

INSE 与 INSE INTO

DELE

RECA

PACK

SCAT TO

GATH FROM

COUN TO

√ COPY TO

SORT TO

TOTA TO

SUM TO

CALC TO

SET FILT TO

阅读 P97—P107

Page 40: 授课 -2    自由表操作(一)

40茂名职业技术学院

【本课小结】 使用命令完成各技能点的操作:1 )复制表: COPY FILE … TO …

2 )显示表记录: BROW

3 )修改表记录: REPL…WITH

4 )复制表结构: COPY STRU

5 )用结构表创建表: CREA … FROM …

【作业】

上机 2 (计算机高新考试第 2.2 题)返回本课目录