数据记录的维护操作.docx

上传人:b****5 文档编号:6514575 上传时间:2023-01-07 格式:DOCX 页数:37 大小:26.41KB
下载 相关 举报
数据记录的维护操作.docx_第1页
第1页 / 共37页
数据记录的维护操作.docx_第2页
第2页 / 共37页
数据记录的维护操作.docx_第3页
第3页 / 共37页
数据记录的维护操作.docx_第4页
第4页 / 共37页
数据记录的维护操作.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

数据记录的维护操作.docx

《数据记录的维护操作.docx》由会员分享,可在线阅读,更多相关《数据记录的维护操作.docx(37页珍藏版)》请在冰豆网上搜索。

数据记录的维护操作.docx

数据记录的维护操作

章节

第三章数据记录的维护操作

 

教学

目的

要求

通过对第三章的学习,使学生对工作区的概念有个全面的理解,并会使用工作区来打开表,会使用多个工作区;使学生对表中的数据记录能够进行添加、修改、删除、替换、定位等操作,同时能够使用命令完成这些操作。

 

教学

重点

难点

教学重点:

1.工作区的用法。

2.多工作区的使用。

3.掌握表结构、数据记录的显示命令。

4.掌握数据记录的添加、定位、删除、替换命令。

教学难点:

1.多工作区的使用。

2.数据记录的添加、定位、删除、替换命令的使用。

 

拟留

作业

实训

作业:

1.工作区的使用

2.显示表结构

3.显示表数据记录

4.数据记录的定位,包括绝对定位和相对定位

5.数据记录的添加

6.数据记录的删除、替换

实训:

完成实训大纲中实训项目四

 

 

小结

通过本章学习:

1、掌握工作区以及多工作区的使用方法;

2、掌握表菜单下的命令操作;

3、掌握表菜单下的命令操作对应的命令。

教学主要内容

教学方法

时间分配

【学习目标】

知识点:

1.熟悉工作区的概念。

2.掌握工作区的使用方法。

3.掌握多工作区的使用。

4.掌握在当前工作区操作其他工作表的方法。

●技能点:

1.会选择工作使用表。

2.会切换工作区使用表。

3.在当前工作能够对其他工作区表进行操作。

第一节、工作区的的使用

一、工作区的概念与多表的使用

在以前版本中一直沿用了多工作区的概念,在每个工作区中可以打开一个表,即在一个工作区中不能同时打开多个表。

如果在同一时刻需要打开多个表,则只需要在不同的工作区中打开不同的表就可以了。

VisualFoxPro最多可以同时打开32767个数据表,每个打开的表都要在存储器中开辟一个存储区域,我们把这个存储区域叫做工作区。

所以可知VisualFoxPro为数据表提供了32767个工作区。

用USE命令打开表时,系统默认使用1号工作区。

而且每当使用USE命令打开表时,VisualFoxPro会先将此工作区原先已打开的表关闭。

由此可知,假如希望同时打开多个表,必须先选择工作区。

USE命令中的[INWorkArea]选项可以指定工作区,专门选择工作的命令是:

SELECTnWorkArea|cWorkArea|cTableAlias

在VisualFoxPro中规定工作区编号是1~32767,只有前10个工作区有固定的名称,分别是A~J。

工作区别名是指定工作区中打开的数据库表别名。

举例来说,假设有学生及成绩两个表,并且希望同时打开它们,则在命令窗口中执行下列命令:

CLOSEDATABASEALL

OPENDATABASE学生管理

SELECT1

USE学生

SELECT2

USE成绩

在USE命令中加入选项同样可以同时打开表学生及成绩。

执行命令如下:

CLOSEDATABASESALL

OPENDATABASE学生管理

USE学生IN1

USE成绩IN2

由上面的练习发现,IN参数能使在不离开当前所在工作区的情况下,在别的工作区打开表。

前面我们曾经提到过,未加入任何参数的USE命令,能够关闭当前所在工作区中已打开的表文件。

而搭配IN参数的使用,则能够让在不离开当前所在工作区的情况下,关闭别的工作区中已打开的表。

在前面的例子中,学生表在工作区1中,成绩表打开在工作区2中,而当前工作区仍然是1号工作区。

假设希望工作区2位于当前工作区,可以用SELECT命令实现。

看下面的命令:

SELECT2

SELECTB

注意:

我们通常称当前所在的工作区为当前工作区,而打开于当前工作区的表则称为当前表(或活动表)。

在某些时候,可以同时打开了好几个表,甚至搞不清楚哪些工作区已打开,而哪些尚未打开。

为了避免发生这种情况,建议每次都在被占用的最小号工作区中打开表。

什么是被占用的最小号工作区呢?

举例来说,假设已经在第1号与第3号工作区中打开表,而未被占用的最小号工作区就是2号工作区。

选择未被占用的最小号工作区可以使用下列两种方法:

1使用SELECT0命令

每次打开数据表前,先执行SELECT0命令。

系统便会选择未被占用的最小号工作区为当前工作区。

例如,

CLOSEDATABASEALL

OPENDATABASE学生管理

SELECT1

USE学生

SELECT3

USE成绩

SELECT0

USE课程

2使用IN选项

直接使用添加了IN0选项的USE命令打开表。

例如:

CLOSEDATABASESALL

OPENDATABASE学生管理

USE学生IN1

USE成绩IN3

USE课程IN0

二、表的别名

选用最小号工作区打开表,很可以使我们一时不知道该表占用的工作区编号或名称。

在这种情况下,我们该如何切换工作区呢?

其实在前面介绍的SELECT命令语法中,也可利用工作区中打开表的别名(Alisas)来选择工作区。

而表的别名可以在用USE命令打开表时指定,若不指定则默认为表原名就是别名。

例如,假设我们分别在工作区1与工作区2中打开表学生与成绩,如下所示:

CLOSEDATABASESALL

OPENDATABASE学生管理

SELECT0

USE学生

SELECT0

USE成绩

若想切换回第1号工作区,只要执行命令:

SELECT学生

而若想再切换回第2号工作区,只要执行命令:

SELECT成绩

可在USE命令中使用ALIASAliasName参数来指定表的别名,例如:

CLOSEDATABASESALL

OPENDATABASE学生管理

SELECT0

USE学生ALIASSTUDENT

SELECT0

USE成绩ALIASSCORE

必须注意的是,一旦指定了别名,则必须利用别名切换工作区。

所以此时若想切换回第1号工作区中,必须执行命令:

SLECTSTUDENT

想再切换回第2号工作区中,必须执行命令:

SELECTSCORE

注意:

各个工作区中已打开的表的别名不可重名。

三、直接操作非当前工作区的字段

VisualFoxPro也允许在当前工作区,直接操作其他工作区中已打开表的字段。

但是请使用下面的引导格式。

别名.字段名称或别名->字段名

举例来说,假设我们在工作区1中打开了表学生,在工作区2中打开了表成绩.2号工作区是当前工作区,假如希望要浏览表学生中学号与姓名字段的内容,请键入如下命令:

CLOSEDATABASESALL

OPENDATABASE学生管理

SELECT0

USE学生

SELECT0

USE成绩

?

学生.学号,学生.姓名

CLOSEDATABASES

利用“别名.字段名称”的格式,可以让您清楚地指出,此字段是哪一个工作区中表的字段.如果在字段名称前不加别名引导,表示它为当前工作区的当前表字段。

四、重复打开同一个表

VisualFoxPro允许在不同的工作区中,同时打开同一个表文件,这种操作必须在USE命令中增加选项AGAIN。

假设我们希望同时在三个工作区中打开表学生,可使用下列方式。

CLOSEDATABASEALL

OPENDATABASE学生

SELECT0

USE学生

SELECT0

USE学生AGAIN

USE学生IN0AGAIN

在不同的工作区中重复打开同一个表时,假如我们没有指定别名的话,则第一次以表名作为别名,再次重复打开时则以工作区名作为别名。

如果前10个工作区中打开,那么别名则分别可能是A~J;如果在11~32767号工作区打开,则别名分别可能是W11~W32767。

让我们看看下面的实例。

CLOSEALL

OPENDATABASE学生管理

SELECT1

USE学生

?

ALIAS()

学生

SELECT2

USE学生AGAIN

?

ALIAS()

B

SELECT10

USE学生AGAIN

?

ALIAS()

J

SELECT0

USE学生AGAIN

?

ALIAS()

C

SELECT11

USE学生AGAIN

?

ALIAS()

W11

SELECT0

USE学生AGAIN

?

ALIAS()

B

SELECT30

USE学生AGAIN

?

ALIAS()

W30

SELECT32767

USE学生AGAIN

?

ALIAS()

W32767

CLOSEALL

 

 

30分钟

(详讲)

 

20分钟

(详讲)

 

30分钟

(详讲)

 

20分钟

(详讲)

 

教学主要内容

教学方法

时间分配

【学习目标】

知识点:

1.显示表的结构

2.显示表的记录

●技能点:

1.用命令显示表结构。

2.用命令显示数据记录。

第二节、数据表的显示

一、显示表结构

一、

可以使用命令来查阅当前表的结构。

命令如下:

LISTSTRUCTURE或DISPLAYSTRUCTURE

LIST命令以连续输出方式显示表结构,DISPLAY命令以分页的方式显示表结构。

比方说,想要列出表学生的结构,可以这样:

CLOSEDATABASESALL

OPENDATABASE学生管理

USE学生

LISTSTRUCTURE

如果在使用LISTSTRUCTURE命令前,还没有打开表,屏幕会出现一个“打开”对话框,提示先选择并打开一个表。

假如您希望将表的结构用打印机打印出来,只要在LISTSTRUCTURE命令中加入TOPRINTER关键字即可,例如:

CLOSEDATABASESALL

OPENDATABASE学生管理

USE学生

LISTSTRUCTURETOPRINTER

或许希望将表的结构存储到一个文本文件中,请在LISTSTRUCTURE命令中加入TO参数,例如:

CLOSEDATABASESALL

OPENDATABASE学生管理

USE学生

LISTSTRUCTURETO

该命令将表学生的结构复制到文本文件TEST.TXT中(.TXT为默认扩展名)。

二、显示表记录

二、

⏹LIST命令

语法:

LIST

[[FIELDS]FieldList]

[Scope][FOR][Expression1][WHILEExpression2]

[OFF]

[NOCONSOLE]

[NOOPTIMIZE]

[TOPRINTER[PROMPT]|TO]

⏹DISPLAY命令

LIST

[[FIELDS]FieldList]

[Scope][FOR][Expression1][WHILEExpression2]

[OFF]

[NOCONSOLE]

[NOOPTIMIZE]

[TOPRINTER[PROMPT]|TO]

LIST命令与DISPLAY命令都可用来显示表的数据记录,它们的语法也基本相同。

我们将详细介绍LIST命令的使用方法,然后再说明DISPLAY命令与LIST命令的差异。

但要注意的是,在使用LIST命令或DISPLAY命令之前必须先使用USE命令打开表文件。

假设我们想显示表学生的数据内容,在命令唇膏口中执行下列命令:

OPENDATABASE学生管理

USE成绩

LIST

结果屏幕上会出现表学生的所有记录。

我们发现没有参数的LIST命令,显示了当前表中的所有记录,而且在首行显示出各字段名称的序列。

如果不希望将字段名显示出来,请先执行状态控制命令SETHEADINGOFF。

例如,

SETHEADINGOFF

LIST

那么,屏幕上显示表学生的所有记录时,字段名将不被显示。

如果希望恢复字段名的显示,可在命令窗口中执行下列命令:

SETHEADINGON

(1)显示指定字段内容

如果只想显示部分字段的内容,请使用FIELDSFidldList(关键字FIELDS可省略),其中FidldList即为字段名称系列,而各个字段名称之间请使用逗号分隔。

假设我们只想显示表学生中“学号”“姓名”及“性别”三个字段的内容,请在命令窗口中输入下列命令:

OPENDATABASE学生管理

USE学生

LIST学号,姓名,性别

各个字段之间用逗号来分隔。

(2)指定记录显示范围

利用Scope参数可以限定显示记录的范围,此范围值如下:

RECOREnExpr:

表示指定仅显示第nExpr条记录。

NEXTnExpr:

表是指定仅显示从当前记录开始的nExpr条记录。

REST:

表示指定从当前记录开始到表结尾的全部记录。

ALL:

表示指定显示所有的数据记录。

例如,

显示学生表的第5条记录。

OPENDATABASE学生管理

USE成绩

CLEAR

LISTRECORD5

例如,

显示学生表中第1条至第3条数据记录。

OPENDATABASE学生管理

USE学生

CLEAR

LISTNEXT3

例如,

接着范例2,显示表学生中,从当前数据记录开始至表结尾的数据记录。

OPENDATABASE学生管理

USE学生

CLEAR

LISTREST

例如,

显示表学生中第5条记录的“姓名”及“院系”字段。

OPENDATABASE学生管理

USE学生

CLEAR

LIST姓名,院系RECORD5

(3)显示满足条件的全部记录

如果加入FORIexpression1的条件子句,则LIST命令会在指定范围内查找符合Iexpression1条件的记录,而且只有这些符合条件记录会被LIST命令显示出来。

例如,

将表学生中,学生姓名为“季节”的记录显示出来。

OPENDATABASE学生管理

USE学生

CLEAR

LISTFOR姓名=“季节”

例如,

将表学生中,显示院系中包含“中文”的记录显示出来。

OPENDATABASE学生管理

USE学生

CLEAR

LISTFOR“中文”$“院系”

例如,

将成绩表中,成绩介于70-80之间的记录显示出来。

OPENDATABASE学生管理

USE成绩

CLEAR

LISTFOR成绩>=70AND成绩<=80

例如,

将学生表中,出生日期大于01-01-1985的记录显示出来.

OPENDATABASE学生管理

USE学生

CLEAR

LISTFOR出生日期>{^1985-01-01}

例如,

将学生表中男学生的姓名字段值显示出来.

OPENDATABASE学生管理

USE学生

CLEAR

LISTFOR性别=“男”

(4)显示满足条件的连续记录

在LIST命令中,选项WHILE会从当前记录开始,逐一测试记录是否满足条件Iexpression2。

满足条件则显示该记录,一旦遇到不符合条件记录时,便立刻停止测试结束显示操作。

比较下面的两段程序的执行情况:

OPENDATABASE学生管理

USE学生

CLEAR

LISTFOR性别=“男”

OPENDATABASE学生管理

USE学生

CLEAR

LISTWHILE性别=“男”

(5)不显示记录号

如果在LIST命令中加入选项OFF,则记录号将不被显示。

例如,

OPENDATABASE学生管理

USE学生

CLEAR

LIST姓名,院系,性别OFF

(6)打印输出

如果在LIST命令中加入选项TOPRINTER,LIST命令将会在把记录输出到屏幕的同时,也送到打印机打印出来。

例如,

OPENDATABASE学生管理

USE学生

CLEAR

LIST姓名,院系,性别TOPRINTER

(7)建立一个文本文件

如果在LIST命令中加入选项,LIST命令的输出将会存储至指定的文本文件中,此文本文件默认扩展名为.TXT。

例如,

OPENDATABASE学生管理

USE学生

CLEAR

LISTFOR姓名,院系,性别TO

(8)DISPLAY命令的差异

LIST命令默认操作范围是所有数据记录(即ALL),而DISPLAY命令的默认操作范围是当前数据记录(即NEXT1)。

当表中的数据记录太多,无法用一屏幕显示完时,DISPLAYALL命令会以分页方式显示,并提示用户继续。

而LIST命令则会连续显示,直到最后一行记录在屏幕上显示出来为止。

(9)用浏览窗口显示记录

对比LIST和DISPLAY命令在屏幕编辑区显示记录的方式,相信有不少用户更加怀念易学易用的浏览窗口方式。

其实使用命令方式也可以启动浏览窗口,只需执行BROWSE命令即可。

例如,

OPENDATABASE学生管理

USE学生

BROWSE

同样地,也可在BROWSE命令中假如FIELDS选项,从而仅浏览特定的字段,或使用FOR参数指定符合特定条件的记录。

以下是BROWSE命令几个最常用的用法示范。

例如,

浏览学生表中,所有学生的“学号”、“姓名”、“院系”及“出生日期”。

OPENDATABASE学生管理

USE学生

BROWSEFIELDS学号,姓名,院系,出生日期

例如,

浏览学生表中,院系是中文系的学生数据。

OPENDATABASE学生管理

USE学生

BROWSEFOR“中文”$院系

例如,

浏览学生表中,中文系女生的姓名。

OPENDATABASE学生管理

USE学生

BROWSEFIELDS姓名FOR“中文”$院系AND性别=“女”

 

 

30分钟

(详讲)

 

10分钟

(详讲)

 

10分钟

(详讲)

 

10分钟

(详讲)

 

10分钟

(详讲)

 

5分钟

(略讲)

 

5分钟

(略讲)

 

10分钟

(详讲)

 

10分钟

(详讲)

教学主要内容

教学方法

时间分配

【学习目标】

知识点:

3.记录指针的操作

4.数据记录的搜索

●技能点:

3.用命令实现记录指针的操作。

4.用命令进行数据记录的搜索。

第三节、数据记录的查询

一、记录指针的操作

当我们输入表记录时,按照记录输入的先后次序,系统自动为每一条记录赋予了记录号。

表中也存在着一个与“记录号”对应的指针。

随着记录操作的变动,记录指针也随之变化。

任何时候,记录指针总是指向某一条记录,这条记录就叫做当前记录。

使用USE命令打开表以后,记录指针指向第一条记录。

对数据记录指针的操作可以使用“表”菜单中的“转到记录”命令,其中有“第一个”、“最后一个”、“上一个”、“下一个”命令,可以在表中移动记录指针。

在这里详细介绍如何使用命令来操作记录指针。

对记录的任何操作,只能对当前记录起作用。

很多命令(如LIST等)都可以自动控制记录指针,如果必要,也可以使用GO、GOTO及SKIP命令直接移动记录指针,从而选择当前操作的记录。

接下来是这些命令的详细使用说明。

⏹GO命令

命令语法:

GOnRecordNumber[INnWorkArea|INcTableAlias]

GOTOP|BOTTOM[INnWorkArea|INcTableAlias]

NRecordNumber参数是记录号,在命令窗口中执行GO命令,记录指针将移至给定记录号的记录上。

例如,

假设要将记录指针移至第4条记录,请键入下列命令:

OPENDATABASE学生管理

USE学生

GO4

DISPLAY

如果想将记录指针移至第一条记录上,请添加参数TOP;如果想将记录指针移至最一条记录上,请添加参数BOTTOM。

例如,

OPENDATABASE学生管理

USE学生

GOBOTTOM

DISPLAY

GOTOP

DISPLAY

利用INnWorkArea或INcTableAlias子句,也可以移动其他工作区中表的记录指针。

其中nWorkArea可以是工作区数字编号,cTableAlias则可以是工作区的别名或工作区名。

例如,

CLOSEDATABASESALL

USE学生IN0

USE成绩IN0

GO4

RECNO()

4

GO3IN2

RECNO

(2)

3

注意:

RECNO()函数会返回当前记录指针所指向记录的编号,其语法是;

RECNO([nWorkArea|cTableAlias])。

参数nWorkArea与cTableAlias可以指示RECNO()函数检查其他工作区。

GOTO命令与GO命令完全相同。

⏹SKIP命令

命令语法:

SKIP

[nRecords]

[INnWorkArea|INcTableAlias]

SKIP命令可以将记录指针相对与当前记录,往前或往后移动若干条记录。

没有任何参数SKIP命令相当于SKIP1命令,会将记录指针下移一条记录。

例如,

CLOSEDATABASES

OPENDATABASE学生管理

USE学生

RECNO()

1

SKIP

RECNO()

2

DISPLAY

如果选项nRecords为正数,则记录指针会从当前记录向下移动;如果选项nRecords为负数,则记录指针会从当前记录向上移动。

选项参数值是移动的记录条数。

例如,

CLOSEDATABASES

OPENDATABASE学生管理

USE学生

SKIP5

RECNO()

5

SKIP–3

RECNO()

3

利用INnWorkArea或INcTableAlias子句,SKIP命令也可以移动其他工作区的记录指针。

NWorkArea可以是工作区数字编号,cTableAlias则可以是工作区的别名,或工作区名。

例如,

CLOSEDATABASES

OPENDATABASE学生管理

USE学生

SKIP

RECNO()

2

SKIP4IN成绩

RECNO(“学生”)

5

⏹测试函数

在数据表第一条记录之前是表的起始位,而在最后一条记录之后则是表的结束位。

当记录指针已经指向第一条记录时,再用SKIP–1命令移动指针,将会使记录指针移至表的起始位。

但是利用RECNO()函数查看当前记录号,会发现记录号仍然是1。

若再次执行记录指针SKIP–1命令,系统将会提示出错信息。

为了防止出错,在程序中常会利用BO

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1