VFP练习题及复习资料_第1页
VFP练习题及复习资料_第2页
VFP练习题及复习资料_第3页
VFP练习题及复习资料_第4页
VFP练习题及复习资料_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章数据表及其操作

一、判断题(T表示正确,F表示错误)

1.在同一表文件中,所有记录的长度均相等。(T)

2.作为表文件改名后,其同名的备注文件、结构索引文件必须改名。(T)

3.如SETDELEOFF后,进行“COPYTO新表名”,已作逻辑删除标记的

记录也一起被拷贝到新表中。(T)

4.关闭表文件时,对应的索引文件将自动关闭。(T)

5.删除索引文件前,必须先关闭表。(F)

6.结构复合索引文件随着表的打开而打开。(T)

7.数据库中,所有记录的同一个字段具有相同的数据类型。(T)

8.建立表结构的时候,表的字段名一定不能多于10个字符。(F)

9.FIND和SEEK命令均可用于查找字符型,数值型和日期型数据。(F)

10.在VFP中,最多允许在不同的工作区同时打开32767个表。(T)

补充:

11.ZAP命令把整个表结构全部彻底删除。(F)

二、填空题

1..执行下列VisualFoxPro命令后,请填空

SETDELETEDOFF

USEstudent

COUNTTOX

?X

20

GOTOP

DELETENEXT4

?RECCOUNT()&&显示彳f_20

SETDELETEDON

COUNTTOAB

?AB&&显示值16

?RECCOUNT()&&J显示彳j|[20

*2.为了颁发合格证书,各考点要计算考生成绩.要求把表文件STUDENT.DBF中

笔试成绩和上机成绩均及格(大于等于60分)记录的合格否字段修改为逻辑真,然后

显示并打印合格考生

的名单,请对以下操作填空:

USESTUDENT

REPLACEALL合格否WITH.T.FOR笔试成绩>=60@@上机成

绩>=60

LISTFOR合格否TOPRINTER

USE

3.有以下命令序列:

USESTUDENT

LIST

(结果为:)

记录号#姓名性别年龄

1王玲女23

2李中明男21

3凌光女24

4成为民男23

5吴胜男25

6许光明男23

INDEXON年龄TOAGE

SEEK23

?姓名,年龄

王玲23

SKIP2

?姓名,年龄执行此条?命令的显示内容为.许光明23

SKIP2

??姓名,年龄执行此条??命令的显示内容为一吴胜一25

4.USESTUDENT

SKIP5

?recno()执行此条?命令的显示内容为6_

gotop

DISPNEXT5

?recno()执行此条?命令的显示内容为5

5.有销售表“xiaoshou.DBF”文件,结构如下:

“货号”字段:hh;“交货日期”字段:jhrq;“数量”字段:si;“交货否”字

段:jhf;"单价”字段:dj;“金额”字段:je;

记录号#hhjhrqsi并djje

(C)(D)(N)(L)(N)(N)

110312/10/9430T120

210202/03/9520T450

310110/12/9440T300

410310/11/9515T120

510109/01/9660F300

610205/01/9750F450

710108/01/9625F300

810204/03/9710F450

对于“jhf”字段,假定其值为.工,则表示已经交货;反之,则尚未交货。

写出下列命令组执行的结果,仅需回答最后命令操作的记录号或执行结果。

(1)USExiaoshou

INDEONsiTOSL

GOBOTTOM

DISPLAY

记录号#hhjhrqsijhfdjje

510109/01/9660F300

(2)USExiaoshou

GO5

SKIP-2

LISTNEXT4

?RECNO()

记录号#hhjhrqsijhfdjje

310110/12/9440T300

410310/11/9515T120

510109/01/9660F300

610205/01/9750F450

6

(3)USExiaoshou

SETDELEON

DELEFORjhrq<{A12/31/94}

COUNTTON

?N

6

(4)USExiaoshou

RECALLALL

DISPLAYFORhh="102"WHILEsl<20

没有输出

*6.对上.题xiaoshou.DBF表,写出完成下列工作的命令:

(1)计算各商品的金额。

replalljewithdi*sl

(2)统计交货日期大于1995年05月01日且已交货的记录数。

counltoihjlfoejhrq>[八1995・05・01}andjhf

(3)按货号分类求和。

indexonhhtoxshhl

totalonhhtoxshh

(4)多字段排序,即按单价的升序排序,在单价相同时,再数量的降序排序。

sortondj,rl/dtopx

(5)建立单项索引文件,按货号和交货日期的逻辑排序排列。

indexonhh+dloc(ihrq)tohhjhrq

(6)建立独立复合索引文件的索引标识,按货号和单价的升序索引。

indexonhhtaghhofhhsy

index0ndjlagdjofhhsy

三、选择题

1.要求一个表文件的数值型字段具有5位小数,那么该字段的宽度最少应当

定义成(B)。

A)5位B)6位C)7位D)8位

2.当输入到备注字段时,如果需要输入其内容,可按(A)键打开备注字段编

辑窗口。

A)CTRL+HOMEB)SHIFT+PAGEUPC)F2D)ESC

3.VFP中,若需要修改表中的数据,必须先执行(C)命令。

A)CREATEB)MODIFYC)EDITD)USE

4.设当前已打开表文件X.DBF,执行命令COPYSTRUCTO丫的作用

是(D)。

A)仅将当前一条记录拷贝到Y.DBF中

B)将X.DBF的全部记录拷贝到Y.DBF中

C)将X.DBF和Y.DBF的内容连接后再存入Y.DBF中

D)仅将表文件X.DBF的结构复制到新建立的Y.DBF文件中

5.下面(B)命令组等效于LISTFORXB="女"。

A)LIST(回车)B)SETFILTERTOXB="女"(回车)

SETFILTER(回车)LIST(回车)

C)SETFILTERTO(回车)D)LIST(回车)

LIST(回车)SETFILTERTOXB="女"(回车)

6.表文件中有20条记录,当前记录号为8,执行命令LISTNext3(回车)

所显示的记录的序号为(C)。

A)8-11B)9-10C)8-10D)9—11

7.设当前记录号是10,执行命令SKIP—2后,当前记录号变为(C)。

A)7B)9C)8D)4

8.在表的通用字段中不可以输入的内容有(D)。

A)图像B)波形声音C)视频剪辑D)文字

9.当RECALL命令不带任何范围和条件时,表示(C)。

A)恢复所有带删除标记的记录

B)恢复从当前记录以后所有带删除标记的记录

C)当前记录

D)从当前记录开始第一条带删除标记的记录

10.在已打开表文件的第4条记录前插入一条记录,可使用(D)命令。

(A)GO4(B)GO3

INSERTINSERTBEFORE

(C)GO4(D)GO4

INSERTBLANKINSERTBEFORE

11.VisualFoxPro表文件由两部分组成,即:(B)

(A).DBF文件和.FPT文件(B)表结构和记录数据

(C),DBF文件和.BAK文件(D)PRG文件和.FXP文件

12.XS.DBF是一个具有一个备注字段和一个通用字段的表文件,使用COPYTO

PXS命令进行复制操作,其结果为:(B)

(A)得到一个新表文件

(B)得到一个新的表文件和一个新的表备注文件

(C)得到一个新的表文件和一个新的表备注文件,以及一个新的表通用

文件

(D)得到一个新的表文件和两个新的表备注文件

13.在VisualFoxPro的表文件中,每条记录总长度比定义的所有字段宽度之和

多一个字节,该字节用于:(D)

(A)存放索引关键字(B)存放记录号

(C)存放记录宽度(D)存放删除标记

14.在定义表结构时,下面(D)字段的宽度都是固定的。

A)字符型、货币型、数值型B)字符型、备注型、二进制备注型

C)数值型、货币型、整型D)整型、日期型、日期时间型

15.已建立一个“学生”表STD.DBF,并输入19名学生的记录,学号字段值分

别为1-20,缺少学号为15的记录用APPEND命令追加学号为15的记录。

这个新加的记录记录号是:(A)

(A)20(B)21(C)16(D)15

16.表文件的表结构中有语文、物理、化学、计算机和总分字段,且都是数值

型。要将所有学生的各门成绩汇总后存入总分字段中,使用命令:(A)

(A)REPLACE总分WITH语文+物理+化学+计算机

(B)REPLACE总分WITH语文,物理,化学,计算机

(C)REPLACE总分WITH语文+物理+化学+计算机FORREST

(D)REPLACEALL总分WITH语文+物理+化学+计算机

要删除当前表文件中“奖学金”字段的全部值,应当使用命令:(D)

(A)REPLACE(B)ZAP

(B)ERASE(D)MODIFYSTRUCTURE

17.表学生.DBF中共有120个记录,顺序执行下面命令:(C)

SETDELETEDOFF

USE学生

DELETE

COUNTTOAA

PACK

COUNTTOAA

ZAP

COUNTTOAA

USE

3次COUNT得到的AA结果分别为:

(A)119,119,1(B)119,119,0

(C)120,119,0(D)120,119,119

18.分屏显示'XS.DBF”中从第5条后的4条记录中,性别为男(T),是1970/07/30

后出生的学生。(B)

(A)USEXS

GO5

DISPLAYNEXT5FORXB.AND.CSNY>'07/30/70}

(B)USEXS

GO5

DISPLAYNEXT4FORXB.AND.CSNY>{A07/30/70}

(C)USEXS

GO5

LISTNEXT5FORXB.AND.CSNY>{八07/30/70}

(D)USEXS

GO5

LISTNEXT4FORXB.AND.CSNY>{A07/30/70)

19.建立索引时,下列(C)字段不能作为索引字段。

A)字符型B)数值型C)备注型D)日期型

20.建立索引文件的目的是(B)

A)改变表记录的物理位置B)提高记录的查询速度

C)对记录进行降序排序D)对记录进行分类统计

补充:

21.为了使表中带删除标记的记录不参与以后的操作,可以实现的方法有(D)

A)SETFILTERTOB)命令中加上FOR<条件,

C)SETDELETEDOFFD)SETDELETEDON

22.必须对数据库中索引或排序后才能使用的命令是(A)。

A)TOTALB)LOCATEC)REPLACED)COUNT

23.SEEK命令与FIND命令使用前都必须要进行的操作为:(A)

(A)索引排序(B)设置默认路径

(C)GOTOP(D)GOBOTTOM

24.一个VisualFoxPro表文件中有四个备注型字段和一个通用性字段,这些字

段的内容放在:(A)

(A)同一个.FPT文件中(B)4个.DBF文件中

(C)同一个.DBF文件中①川个^^丁文件中

25.若要给当前表增加一个字段,应使用命令:(D)

(A)APPEND(B)EDIT

(C)BROWSE(D)MODIFYSTRUCTURE

26.在命令窗口中,已打开职工表,要将记录指针定位在第一个工资大于

1000元的记录上,用命令:(B)

(A)FINDFOR工资>1000(B)LOCATAEFOR工资>1000

(C)SEEKFOR工资>1000(D)LISTFOR工资>1000

*四、简答题

1.答:在VFP中,记录删除有两种删除方式:逻辑删除和物理删除;逻辑删

除只对记录删除做标记,记录仍保存于表中并可以恢复;物理删除则是从表中

删除作过逻辑删除的记录,或直接从表中将记录删除,删除后的记录不能再恢

复。

2.答:索引和排序都是重新建立记录顺序的方法。索引是在不改变表文件物

理顺序与不增加表文件数量的情况下,创建索引表,用户通过使用索引表使记

录按一定次序升序排列;排序是表文件中记录按照某个关键字值的升序或降序

重新物理排列,生成新的表文件。

3.答:VFP系统的中提供了4种索引类型:主索引,候选索引,普通索引和

惟一索引。

4.答:建立数据库表之间关联的条件是:一是要保证建立关联的表具有相同

的字段;二是父表和子表都要以该字段建立索引。

第一讲数据库操作

学习要求与目标

本章应掌握的内容包括

1.数据库系统及概述

掌握数据库和DBMS的概念;掌握关系模型及其性质

2.数据库的创建和使用

掌握数据库的概念和组成,数据库与表之间的关系,表之间的关系

掌握字段和记录的有效性规则,表触发器,库表之间的参照完整性

掌握永久关系,临时关系的概念,创建,删除及两者的区别

掌握库表字段的扩展属性

3.表的创建和使用

掌握表的概念,组成和分类,字段的基本属性,创建表的方法及相关

SQL命令

掌握工作区概念,索引概念及类型

掌握表之间的关系及其种类,表的关联及其建立和解除的方法

基本操作要求

4.数据库的创建,5.打开和关闭;

6.在数据库中创建、添加、移去库表;

7.设置库表字段的扩展属性(标8.题、输入掩码、格式、默认

值、注释)

9.设置字段和记录的有效性规则;

10.设置库表的扩展属性及库表的触发器

11.库表之间永久关系的创建和解除,12.设置参照完整性;

13.临时关系的建立和解除

14.创建,15.修改表结构

16.表记录的追加、修改、浏览、定位、筛选、删除和恢复17.删

10.创建表的结构复合索引,设置主控索引

学习要点

数据库,数据库系统和数据库管理系统三者的区别和联系

答:数据库是指以一定的组织形式存放在计算机存储介质上的相互

关联的数据的集合。数据库管理系统(DBMS)是对数据库进行管理的

系统软件,是用户与数据库之间的接口。DBMS主要由查询管理器,

存储管理器和事务管理器三部分组成。数据库系统是实现有组织地,

动态地存储大量关联数据,方便用户访问的计算机软硬件资源组成的

具有管理数据库功能的计算机系统。它由数据库,数据库管理系统,

操作系统,计算机硬件资源等组成。数据库,数据库管理系统和数据

库系统是最基本的概念。三者之间既有联系又有区别。用户通过数据

库管理系统可以建立和使用数据库。使用数据库是目的,而数据库管

理系统是实现目的的手段和工具。数据库和数据库管理系统又都是数

据库系统的组成部分。

二维表的超关键字,候选关键字,主关键字和外关键字

答:二维表中能唯一确定记录的一个列或几个列的组被称为超关键

字。显然,二维表的全体字段必然构成它的一个超关键字。超关键字

虽然能唯一确定记录,但是它所包含的字段可能是多余的。如果一个

超关键字,去掉其中任何一个字段后不再能唯一确定记录,则称它为

候选关键字。候选关键字既能唯一确定记录,它包含的字段又是最精

练的。二维表中可能有多个候选关键字。二维表的候选关键字中,选

出一个可作为主关键字。对于表中的每个记录,主关键字必须包含

一个不同于其他记录的唯一的值,所以主关键字的值不能为空值

(NULL)o当一个表(A表)的主关键字被包含到另一个表(B表)

中时,它就称为B表的外关键字。

关系模型,关系以及关系的性质

答:关系模型是用二维表格的结构形式来表示实体模型及其实体间

的联系。二维表中的每一列为一个属性,称为字段或域;每一行叫做

一个记录,与一特定的实体项对应。

一个二维表就叫做一个关系。

关系模型的性质有:(1)二维表的记录数随数据的增删而改变,但

它的字段数却是相对固定的。因此,字段的个数,名称,类型,长度

等要素决定了二维表的结构。(2)二维表中的每一列均有唯一的字

段名,且是同性质的。(3)二维表中不允许出现完全相同的两行。

二维表中行的顺序,列的顺序均可任意交换。

表的类型和组成

类型:自由表和数据库表两者同:扩展名为DBF异:

表设计器不同,数据库表与它所属的数据库之间有逻辑关系。

组成:字段和记录字段:基本属性(字段名,数据类

型,宽度,小数位数,空值支持)扩展属性(格式,掩码,标

题,注释,字段有效性规则)

工作区及当前工作区

工作区:用以表示一张打开的表的区域,每个工作区有一个编号,称

为工作区号。范围为1—32747,前10个也可用A—J表示,所以通

常表名不要取简单的英文字母,避免和工作区号混淆。

当前工作区:VFP正在使用的工作区(默认的工作区),启动VFP后,

默认为1

工作区号为0时,系统自动选择当前未被使用的最小编号的工作区。

表的别名

这是对工作区中打开的表的一个临时的标识,利用它可以引用在工作

区中打开的表,如未用ALLAS子句指定别名,则别名同表名,但如果

一张表在多个工作区中打开且未指定别名,则除第一次打开的工作区

中别名同表名,其它均用A—J及Wil—W32747表示。

USE表名[IN工作区|表的别

名][AGAIN][ALLAS表的别名][NOUPDATE]

表的打开方式

独占和共享如果一张表同时被多次打开时,以第一次

的打开形式为准。

表的关闭方法

USE关闭最近打开的表

CLOSEDATABASES关闭数据库及其中的表

CLOSETABLES关闭所有打开的表

表的索引

记录顺序:物理顺序,逻辑顺序

索引关键字:由一个字段或多个字段组成的表达式当有多个字段时,

字符型直接用,如果类型不同,则通过函数变化,转换成相同类型,

通常化成字符型

[例]:有一JS表,其中有字段GH(C),XM(C),JBGZ(N),CSRQ(D)

字符型:按GH和XM排序GH+XM

字符型和数值型:按GH和JBGZ排序GH+STR(JBGZ)

字符型和日期型:按GH和CSRQ排

序GH+DTOC(CSRQ,1)

索引标识:为了区分一张表的不同索弓L每一个索引都有一个索引名,

即索引标识。

索引类型:主索引(数据库表特有),候选索引,普通索引,唯一索

前两种索引用于约束表中记录的唯一性,唯一索引用于控制索引结果

的唯一性,它不允许两个具有相同索引值的记录包含在同一个唯一索

引中,但它并不要求表中的记录具有唯一性。

索引文件种类:(1)结构复合索引文件(.CDX):文件名同

表名,自动与表同步打开,关闭,更新。

(2)非结构复合索引文件(.CDX):文件名不同于表名,

不会自动打开。

(3)独立索引文件(.IDX):文件名用户定,不会自动打

开。

主索引与主控索引

(1)索引是索引的•种类型。

(2)主控索引是在某一时刻对表的显示或访问顺序起作用的索引,

可以把复合索引中的住索引或其它类型的索引或独立索引设置为主

控索引。

与莪引相关的一些命令

(1)创建:INDEXON索引表达式TOTAG索

引名[[FOR条件表示式]

[ASCENDING|DESCENDING][UNIQUE,CANDIDATE]]

[例]:INDEXONXHTAGXH1

(2)删除:DELETETAG索引名1[,索引名2]

或DELETETAGALL

(3)设置主控索引:打开表的同时设

置USEXSORDERXH

打开表后再设置

SETORDERTO[索引名][IN区号|别名][ASCENDING|

DESCENDING]

[例]:在工作区3中设置学生表中的学号为主控索引并

将序排列

USEXS

SETORDERTOXHIN3DESCENDI

NG

(4)索引快速定位记录的命令

SEEK表达式[ORDER索引名[ASCENDING|DESCENDING]]

只能在具有索引的表中使用,且只能基于索引关键字进行搜索。

10.记录处理

(1)记录指针:用于指示当前处理的记录位置。打开表时,指向第

一条记录。

(2)当前记录:记录指针所指向的记录

(3)记录号:当用户向表中输入数据时,VFP按顺序为每条记录指

定一个记录号。第一条记录记录号为1,以此类推。

(4)儿个函数:

RECNOO:测试记录指针的值,也可从状态栏观察记录条数及当前的

记录号;

BOFO:测试记录指针是否指向记录的开始标志;

EOFO:测试记录指针是否指向记录的结束标志;

[注]:从第一条记录向上移动一个记录,BOF()为T,RECNO()值为1,

如果继续SKIP-1出错。从最后一条记录向下移动一条记录,则

EOFO为T,RECNO()的值为记录总条数加1,继续SKIP则出错。

select([0;11别名]):测试工作区号

0:当前工作区号;1:当前未被使用最大工作区号

别名:表别名所在的工作区号,别名必加引号。

used([区号|别名]):测试指定表或工作区是否打开

alias([区号]):测试指定工作区中的表别名

field(字段顺序号[,区号[别名]):返回已打开表的指定序号的字

段名。

fcount([区号|别名]):返回已打开表的字段数

delete():测试表的当前记录是否带删除标记

(5)记录的输入:

使用INSERT-SQL命令

INSERTINTO表名[(字段1[,字

段2…])]VALUES(表达式表达式2…])

使用APPEND和APPENDFROM命令追加记录

APPEND[BLANK][IN区号|别名]

APPENDFROM表名[DELIMTED|XSL]

(6)记录的定位:

绝对定位GOTO|GON(直接将记录指针指

向第N条记录)

相对定位SKIPN或SKIP-N(指相

对于当前记录向下+或向上-移动N条记录)

条件定位LOCATE[范围]FOR

或SEEK,SEEKO

范围:ALL表示表中所有记录;

NEXT从当前记录开始的N条记录

RECORD指定的记录

REST当前记录后的所有记录

命令GOTOP(直接跳到第一条记

录)GOBOTTOM(直接跳到最后一条记录)

(7)记录的修改:

使用REPLACE命令

REPLACE字段1WITH表达式1[,字段2WITH表达式2]…[范围][FOR

条件]

使用UPDATE-SQL命令

UPDATE表名SET字段1=表达式1[,字段2=表达

式2…][WHERE条件表达式]

(8)记录的删除

删除记录的命令DELETE[范围][FOR条件表达式]

[IN工作区|别名]

或SQL命令DELETEFROM表名[WHERE筛选条

件]

恢复带删除标记的记录命令RECALL[范

围][FOR条件表达式]

RECALL恢复当前记录

RECALLALL恢复当前所有记录

[例]:恢复当前所有记录中学号的前两位为“02”的记录

RECALLALLFORLEFT(XH,2)="02”

彻底删除记录的命令

PACK彻底删除当前工作区中打开的表中有删除标记的记录

ZAP彻底删除当前工作区中打开的表中所有记录

对带有删除标记记录的访问SETDELETEDON

IOFFON忽略,OFF访问

[注]:除非是彻底删除,否则在统计记录的条数时,带删

除标记的记录仍包含在内。

(9)记录的筛选命令SETFILTERTO条件表

达式

[例]:SETFILETERTOXB="女"

恢复SETFILTERTO

[注]:与字段的筛选区

分SETFIELDSTO字段名

(10)字段的筛选命令setfieldto字段

列表

(11)记录的浏览命令

BROWSE[FIELDS字段列表][FOR条件][RREEZE字段名][NOAPPEND]

[NODELETE][NOMODIFY][TITLE表达式]

(12)数据的复制命令

copyto文件名[fields字段列表][范围][for条件]

[[type]sdf|xsl|delimted[withdelimiter|withblank

withtab|withcharacterdelimter]]

[例]:usexs

copytoxsOlforxb='女'

copytoxsOlfieldsxh,xmsdf

copytoxsOlxls

(13)数据的统计命令

count[范围][for条件][to变量名]

sum[表达式][范围][for条件][to变量名]

Averge[表达式][范围][for条件][to变量名]

11.数据库与表之间的联系

数据库是比表高一级别的数据组织形式。表之间的关系主要有三种:

一对一,一对多,多对多。理解好“表之间的关系主要要掌握好主关

键字和外部关键字”,如果两张表都具有相同的主关键字,则认为它

们具有“一对一”关系,如果一张表的主关键字存在于另一张表中称

为“外部关键字”,则认为它们具有“一对多”关系。

数据库表属于数据库,但不是说表记录保存在库文件中,库表仍

以.DBF文件存放。即两者之间物理上是独立的,两者间的从属关系

只是一种逻辑关系,这种关系通过双向链接实现(前链与后链)。虽

然库表文件是独立存在的,但库表的表属性,字段的扩展属性是保存

在数据库中的。如果数据库被删除,则库表的这些信息将丢失,此时

需用FREETABLE名令把表转换成自由表才可用。

12.数据完整性

(1)字段有效性规则:控制输入到字段中的数据的取值范围,(2)

该规则是一个逻辑表达式,(3)且当前字段包含在该表达式中。如

果结果为.F.,则拒绝所输入的字段值,并显示提示信息.

[注]:该规则只对当前字段有效.如果有判断空的逻辑表达式,例XH

为空,则不能用XH="",而需要用函数EMPTY(XH),ISNULLO等来判

断.

(4)记录有效性规则:可以校验多个字段之间的关系是否满足某种

规则,该规则也是一个逻辑表达式.

(5)触发器:绑定在表上的逻辑表达式,(6)是在插入、更新、

删除记录时进行的检验规则。返回值为.T.时,允许执行相应操作,.F.

时不(7)允许执行相应操作.

[例]Ljs表中有字段gl(工龄),要求”值不能大于50”

在gl的字段有效性规则中输入gl<=50

2.js表中有字段jbgz(基本工资),要求jbgz在"100—1000"之间

在jbgz的字段有效性规则中输入jbgz>=100.and.jbgz<=1000

3.js表中有字段xb(性别),要求xb必须是“男”或“女”

在xb的字段有效性规则中输入xb="男”.or.xb="女"

4.js表中有字段xm(姓名),要求xm至少含有两个汉字

在xm的字段有效性规则中输入len(alltrim(xm))>=4

[注]:如果不去掉空格,则系统会根据字段宽度添加空格。

5.js表中有字段ximing(系名),要求除了“信息管理系”的老师记

录,其它记录都不能进行修改

在js表的更新触发器中输入js.ximing="信息管理系”

6.js表若有gl小于等于0,则允许删除

在js表的删除触发器中输入gl<=0

[注]:在做题过程中,必须用英文状态的标点符号.

第二讲程序设计基础

本章学习要求与目标:

程序的基本结构

程序中的数据如何使用

程序中怎样调用系统提供的函数

程序中怎样使用命令和语句

如何编制和调用自定义函数、子程序,如何在主程序和子程序之间传

递参数

一.程序的慨念

程序是能够完成一定任务的命令和语句的有序集合。这组命令和语句

被存放在称为程序文件或命令文件的文本文件中。

程序文件的建立与修改

1.菜单命令

建立:文件一一新建——(或常用工具栏的“新建”按钮)

修改:文件打开选一个文件

项目管理器

建立:代码选项卡程序新建按钮进入编辑窗口

修改:代码选项卡一一选一个程序——修改按钮一一进入编辑窗口

在命令窗口中利用命令

MODIFYCOMMAND[文件名|?]

进入编辑窗口,建立新文件或修改已存在的文件

进入数据库的存储过程中

项目管理器一一数据选项卡一一存储过程一一添加(或修改)按钮

程序文件的运行

建立的程序可以形成一个独立的文件,也可以把多个程序放在

一个称为过程文件的文件中,要运行放在过程文件中的程序,事先要

执行命令:

SETPROCEDURETO(过程文件名〉

运行程序文件有以下方法:

在命令窗口使用命令:

DO〈程序文件名〉

2.在项目管理器中

代码选项卡一一选一个程序——运行按钮

工具栏的!按钮

程序的组成

一个程序由两部分组成:

1.说明部分:

编制的程序中通常要用到好多不同的数据:数值的、字符的、日期

的…。这些数据有的在程序运行中始终不变,有的在程序运行中随时

在变。在程序运行中始终不变的量称为常量,随时变化的量称为变量。

VFP程序中可以直接使用各种量,不用说明。说明部分主要用来说明

程序中使用的一些特殊变量,如全局变量,数组等。

说明语句有以下儿个:

PUBLIC说明的变量在整个应用程序都可以使用

LOCAL说明的变量只可以在本程序中使用

DECLEAR或DIMENSION说明的变量可以在本程序和它的子程序

中使用

数组在使用之前必须说明,说明的格式是:

PUBLIC|LOCAL|DECLEAR|DIMENSION〈数组名〉(行数[,列数])

2.语句部分:

语句部分也称程序体,由以下儿种语句组成:

⑴顺序语句:包括赋值语句和VFP的一些命令

⑵分支语句:

•条件分支语句:语句格式为

IF〈条件〉

(语句序列0

[ELSE

(语句序列2〉]

ENDIF

•情况分支语句:语句格式为

DOCASE

CASE〈条件1〉

〈语句序列D

CASE〈条件2〉

〈语句序列2)

CASE〈条件n〉

〈语句序列n)

[OTHERWISH

〈语句序列n>]

ENDCASE

⑶循环语句:

•FOR循环语句:语句格式为

FOR〈循环变量〉=〈初值〉TO〈终值〉[STEP〈步长)]

〈循环体〉

ENDFOR(或NEXT)

该语句一般用于循环次数已知的情况,其中循环中自带了循环变量增

加的语句:

(循环变量=循环变量+步长)

•DO循环语句:语句格式为

DOWHILE〈条件〉

(语句序列1〉

[LOOP]

〈语句序列2)

[EXIT]

(语句序列3)

ENDDO

该语句一般用于循环次数不知的情况,用

〈条件〉满足与否来控制循环次数。条件满足(即表达式为“真”)

执行循环,条件不满足(即表达式为“假”)退出循环。

•SCAN循环语句:语句格式为

SCAN[FOR(条件1〉][WHILE〈条件2〉]

〈循环体)

ENDSCAN

该语句一般用于数据表,执行该语句时,记录指针自

动、依次的在当前表的指定范围内满足条件的记录上移动,对每一条

记录执行循环体内的命令。其中循环中自带了指针移动的语句:

(SKIP)

(4)VFP系统函数调用语句

VFP的函数是一种预先编制好的程序代码,可供用户或程序调用。调

用VFP系统函数的格式如下:

函数名([参数1[,参数2,

参数1[,参数2,…]是函数接收的-个或多个参数,而最终返回一

个值,因此函数调用可以出现在表达式或赋值语句中。

⑸函数和子程序(过程)调用语句

除在程序中使用VFP系统提供的函数外,用户还可以把程

序中多次使用的、完成某一特定功能的一些语句单独定义成函数或子

程序。定义子程序的格式是:

PROCEDURE〈子程序名〉

[PARAMETERS〈形参变量1〉[,〈形参变量2>,••­]]]

〈命令序列》

[RETURN(表达式〉]

ENDPROC

定义函数的格式是:

FUNCTION〈函数名)

[PARAMETERS〈形参变量1〉[,〈形参变量2〉,…]〉]

〈命令序列》

[RETURN(表达式〉]

ENDFUNC

注意:

•函数和子程序除定义格式、调用方法不同外,没有本质区别。

•调用用户定义的函数的方法与调用系统函数相同,调用用户定义的

子程序的格式有两种:

格式1:使用DO命令

DO〈子程序名〉WITH〈实参D[,〈实参2〉…]

格式2:在名字后加一对小括号

〈子程序名)(〈实参D[,〈实参2)…])

如果希望函数和子程序能够接受不同的值而返回不同的结果,在函数

和子程序定义中用PARAMETERS语句规定一些参数。在函数和子程序

定义中规定的参数称为形式参数,形式参数可以是变量或数组元素。

在调用语句中用的参数称为实在参数,实在参数将与形式参数一一对

应,实现主程序向子程序传递参数的功能。传递参数有两种方法:按

值传递和按地址(也称引用)传递。

按值传递:将参数的值传递给子程序,即使在用户定义的函数

或子程序中修改了参数的值,主程序中的参数原值仍保持不变。

引用传递:将参数的地址传递给子程序,因此如果在用户定义

的函数或子程序中修改了参数的值,主程序中该参数的值也跟着改

变。

两者区别:按值传递将实际参数的值代入形式参数,而按引用传递则

将实际参数的变量代入形式参数

注意:

•在系统默认情况下,将按值传递参数给函数,将按地址传

递参数给子程序

•在调用自定义函数或子程序之前,可以通过命令:

SETUDFPARMSTOREFERRENCE

设置按地址传递参数方式

SETUDFPARMSTOVALUE

设置按值传递参数方式

•在调用语句中,如用括号括起一个变量,则按值传递参数,

而如果在变量前加@符号,则按地址传递参数

二、系统常用函数

[说明]:

n表达式:表示数值表达式;c表达式:表示字符表达式;1表达式:

表示逻辑表达式,等依次类推。

1,数值函数

(1)ABS(n表达式):求一数值的绝对值

(2)MAX(n表达式1,(3)n表达式2…):求最大值

(4)MIN(n表达式1,(5)n表达式2…):求最小值

(6)INT(n表达式):求一数值的整数部分

(7)SQRT(n表达式):求一数值的平方根

(8)MOD(n表达式1,(9)n表达式2):求数值表达式1除以住址表

达式2的余数

[注]:MOD()函数值的正负号由第二个参数的正负号决定,值的小数

位数由第一个参数的小数位数决定。

(7)ROUND(n表达式1,n表达式2):求n表达式1四舍五入的结果,

其四舍五入的位置由n表达式2决定。

[注]:234.8569n表达式2的值就是要四舍五

入的位置。

(8)RAND():求一个0〜1之间的随机数。

[注]:其中的参数可以省略,可以为正数、负数和零。

2.字符函数

(1)ALLTRIM(c表达式):删除字符串表达式开头和结尾的空格。

(2)TRIM(c表达式):删除字符串表达式结尾的空格。

(3)LEN(c表达式):求字符表达式的长度。

(4)AT(c表达式1,(5)c表达式2,(6)n):求字符表达式

1在字符表达式2第n次出现的位置,(7)如n省略则表示第一次

[注]:AT()区分大小写;ATC()不区分大小写

(8)SUBSTR(c表达式,(9)n[,(10)m]):将字符表达式进

行截取,(11)n表示开始截取的位置,(12)m表示截取的个数,

(13)如m省略,(14)则截取从n开始的所有字符。

(15)LEFT(c表达式,n):将字符表达式从最左边开始截取n个字

符。

(16)RIGHTS表达式,(17)n):将字符表达式从最右边开始截

取n个字符。

(18)SPACE(n):返回指(19)定个数的空格字符串,(20)若

SPACE(0):则表示空字符串。

3.日期/时间函数

DATE()、DATETIME(),TIME()

DOW()、DAY()、MONTH(),YEAR()[注]:其结果为数值型

数据

A物加生开fJ华检函物

ASC(c表达式):返回单个字符或字符串的首字符的ASCII码值。

CHR(n表达式):返回某数值在ASCII码表中对应的字符。

VAL(c表达式):将字符串转换成数值。首字符必须是+、-、0-9数字,

否则返回结果为0;并且只能转换数字,除字符“E”和”之外的

所有字符均不能转换;字符“E”是科学计数法。

[例]:VAL

(“123-23”)=123VAL(“123aaaa23")=123V

AL1(“1.23e+2”)=123

STR(n表达式[,n[,m]]):将数值转换成字符串。n是返回的字符

串的宽度,省略为10个字节,m是保留小数的位数。

[例]:STR(123456789012)='1.234E+11'总宽度为10位,

字符数为9,在最前面预留了符号位1位

DT0C(d表达式[,1]):将日期转换成字符串。参数1指返回结果形

式唯一:yyyymmdd,否则返回结果形式由系统当前的日期格式决定。

[例]:系统当前日期格式:

mm/dd/yyDT0C(date())="05/26/98”DT0C(date(

),1)="19980526”

CT0D(c表达式):将字符串转换成日期。

TT0C(t表达式[,1|2]):将日期时间转换成字符串。参数1与DT0C()

相同,参数2指只返回时间部分。

CT0T(c表达式):将字符串转换成日期时间。

5.其他函数

BETWEEN(表达式1,下界,上界)、INKEY(秒数)

TYPE(c表达式):返回表达式的类型。[注]:其参数必须加引号

[例]:TYPE(“123”)

='N'TYPE(".T.”)='L'TYPE(4ABC

')='U'

[注]:U:表示不确定的,由于ABC此变量没创建,所以不知道其数

据类型。

IIF(条件表达式,结果1,结果2):当条件表达式为.T.,函数返回

结果1,当条件表达式为.F.,函数返回结果2。

MESSAGEBOX('显示文本',对话框类型,'标题’):弹出消息框

三、数据类型:

1.字符型(C)

2.数值型(N)

3.货币型(Y)

4.日期型(D)

5.日期时间型(T)

6.逻辑型(L)

7.浮点型(F)

8.双精度型(B)

9.整型(I)

10.备注型(M)

11.通用型(G)四、运算符

1.数值运算符:()、**或\*、/、%>+、-

2.字符运算符:+、-、$

3.日期和日期时间运算符:+、-

4.关系运算符:<、>^=、◊或#或!=、<=^>=、==

5.逻辑运算符:()、NOT或!、AND、OR

(注意:除关系运算符之外每组优先级分别由高到低依次排列)

6.运算符的优先级:

()—〉**或一>*、/—〉%—>+、〉$—>关系运算符一>

NOT或!—>AND—>0R

第三讲关系数据库语言标准SQL

学习要求与目标

本章应掌握的内容包括:

SQL的基本概念。(STRUCTUREQUERYLANGUAGE结构化查询语言)

SQL的查询功能:SQL查询语句的各种使用方法,以及各个短语、关

键词的作用等。

SQL的操作功能:包括插入、更新和删除功能

SQL的定义功能:包括表的定义、表结构的修改和视图的定义等。

学习要点

1SQL的基本概念

loSQL语言主要特点

(])SQL是—种一体化的语言。

它提供了一系列完整的数据定2、数据查询、数据操纵和数据控制等

功能。

(2)SQL是一种高度非过程化的语言。

SQL语言不需要告诉计算机“如何”做,只需要描述清楚用户要“做

什么”,系统就自动完成全部工作。

(3)SQL语言非常简洁。

虽然SQL语言功能强,但仅有为数不多的几条命令,语法也非常简单。

(4)SQL以统一的语法结构对待不同(5)的工作方式。

SQL语言可以直接在VFP命令窗口中以人机交互方式使用,也可以嵌

入到程序设计语言中执行

2OSQL语言的执行

SQL语句可以在命令窗口中执行,也可以作为查询或视图(的内容)

被使用,还可以在程序文件中被执行。

1SQL的查询功能

SQL的核心是查询功能,SQL的查询命令也称作SELECT命令,它的常

用语法格式如下:

SELECT[ALL|DISTINCT][TOP(表达式)]〈目标列表达

式》说明要查询的数据

FROM[数据库名!]<表名>说明数据来源

[[INNER!LEFT[OUTER]!RIGHT[OUTER]|FULL[OUTER]]

说明与其他表联接方式

JOIN数据库名!表名ON〈联接条件》]

WHERE〈条件表达式》说明查询的条件

[GROUPBY〈分组依据〉]对查询结果进行分组

[HAVING〈条件表达式〉]限定分组满足的条件

[ORDERBY〈排序依据>]对查询结果进行排序

[UNION[ALL]...]对多个查询结果进行合

以上语句是必须要掌握的SQLSELECT命令,此外,还有一些VFP特

有的语法也要学习,

下面分别举例介绍各种用法。以下例子基于如下的数据库表:

L学生表XS.DBF结构:

字段名类型宽度小数位数字段含义

xhC8学号

xmC6姓名

xbC2性别

zydhC6专业代号

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论