《VFP练习题及复习资料.pdf》由会员分享,可在线阅读,更多相关《VFP练习题及复习资料.pdf(66页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章数据表及其操作一、判断题(T 表示正确,F 表示错误)1.在同一表文件中,所有记录的长度均相等。(T)2.作为表文件改名后,其同名的备注文件、结构索引文件必须改名。(T)3.如 SET DELE OFF后,进 行“COPY T O 新表名”,已作逻辑删除标记的记录也一起被拷贝到新表中。(T)4.关闭表文件时,对应的索引文件将自动关闭。(T)5.删除索引文件前,必须先关闭表。(F)6.结构复合索引文件随着表的打开而打开。(T)7.数据库中,所有记录的同一个字段具有相同的数据类型。(T)8.建立表结构的时候,表的字段名一定不能多于10个字符。(F)9.FIN D 和 SEEK命令均可用于查找
2、字符型,数值型和日期型数据。(F)10.在 VFP中,最多允许在不同的工作区同时打开32767个表。(T)补充:11.ZAP命令把整个表结构全部彻底删除。(F)二、填空题1 .执行下列Visual FoxPro命令后,请填空SET DELETED OFFUSE studentCOUNTTO X?X20GO TOPDELETE NEXT 4?RECCOUNT()&显 示 彳 f _20SET DELETED ONCOUNTTO AB?AB&显示值 16?RECCOUNT()&J 显 示 彳 j|20*2.为了颁发合格证书,各考点要计算考生成绩.要求把表文件STUDENT.DBF中笔试成绩和上机成
3、绩均及格(大于等于6 0 分)记录的合格否字段修改为逻辑真,然后显示并打印合格考生的名单,请对以下操作填空:USE STUDENTREPLACE A LL合格否 WITH.T.FOR 笔试成绩=60 上机成绩=60LIST FOR 合格否 TO PRINTERUSE3.有以下命令序列:USE STUDENTLIST(结果为:)记录号#姓名性别年龄1王玲女232李中明男213凌光女244成为民男235吴胜男256许光明男23INDEX ON 年龄 TO AGESEEK 23?姓名,年龄王玲 23SKIP 2?姓名,年龄 执行此条?命令的显示内容为.许光明 23SKIP 2?姓名,年龄 执行此条?
4、命令的显示内容为一吴胜一254.USE STUDENTSKIP 5?recno()执行此条?命令的显示内容为 6 _go topDISP NEXT 5?recno()执行此条?命令的显示内容为 55.有 销 售 表“xiaoshou.DBF”文件,结构如下:“货号”字段:hh;“交货日期”字段:jhrq;“数量”字段:si;“交货否”字写出下列命令组执行的结果,仅需回答最后命令操作的记录号或执行结果。(1)USE xiaoshouINDE ON si TO SLGO BOTTOMDISPLAY段:jhf;单价”字段:dj;“金额”字段:je;记录号#hhjhrqsi并djje(C)(D)(N)
5、(L)(N)(N)110312/10/9430T120210202/03/9520T450310110/12/9440T300410310/11/9515T120510109/01/9660F300610205/01/9750F450710108/01/9625F300810204/03/9710F450对 于“jhf”字段,假定其值为.工,则表示已经交货;反之,则尚未交货。记录号#hhjhrqsijhfdjje510109/01/9660F300(2)USE xiaoshouGO 5SKIP-2LIST NEXT 4?RECNO()6记录号#hhjhrqsijhfdjje310110/12/
6、9440T300410310/11/9515T120510109/01/9660F300610205/01/9750F450(3)USE xiaoshouSET DELE ONDELE FOR jhrqA 12/31/94COUNTTO N?N6(4)USE xiaoshouRECALL ALLDISPLAY FOR hh=102 WHILE sl 八 19950501 and jhf(3)按货号分类求和。index on hh to xshhltotal on hh to xshh(4)多字段排序,即按单价的升序排序,在单价相同时,再数量的降序排序。sort on dj,rl/d to px
7、(5)建立单项索引文件,按货号和交货日期的逻辑排序排列。index on hh+dloc(ihrq)to hhjhrq(6)建立独立复合索引文件的索引标识,按货号和单价的升序索引。index on hh tag hh of hhsyindex 0n dj lag dj of hhsy三、选择题1.要求一个表文件的数值型字段具有5 位小数,那么该字段的宽度最少应当定 义 成(B)。A)5 位 B)6 位 C)7 位 D)8 位2.当输入到备注字段时,如果需要输入其内容,可 按(A)键打开备注字段编辑窗口。A)CTRL+HOME B)SHIFT+PAGEUP C)F2 D)ESC3.VFP中,若需
8、要修改表中的数据,必须先执行(C)命令。A)CREATE B)MODIFY C)EDIT D)USE4.设当前已打开表文件X.D B F,执行命令COPY STRUC TO 丫的作用是(D)。A)仅将当前一条记录拷贝到Y.DBF中B)将 X.DBF的全部记录拷贝到Y.DBF中C)将 X.DBF和 Y.DBF的内容连接后再存入Y.DBF中D)仅将表文件X.DBF的结构复制到新建立的Y.DBF文件中5.下 面(B)命令组等效于LIST FOR XB=女。A)LIST(回车)B)SET FILTER TO XB=女 (回车)SET FILTER(回车)LIST(回车)C)SET FILTER TO(
9、回车)D)LIST(回车)LIST(回车)SET FILTER TO XB=女 (回车)6.表文件中有20条记录,当前记录号为8,执行命令LIST Next 3(回车)所显示的记录的序号为(C)。A)8-11 B)9-1 0 C)8-1 0 D)9117.设当前记录号是1 0,执行命令SKIP 2 后,当前记录号变为(C)。A)7 B)9 C)8 D)48.在表的通用字段中不可以输入的内容有(D)。A)图像 B)波形声音 C)视频剪辑 D)文字9.当 RECALL命令不带任何范围和条件时,表 示(C)。A)恢复所有带删除标记的记录B)恢复从当前记录以后所有带删除标记的记录C)当前记录D)从当前
10、记录开始第一条带删除标记的记录10.在已打开表文件的第4 条记录前插入一条记录,可 使 用(D)命令。(A)GO 4(B)GO 3INSERT INSERT BEFORE(C)GO 4(D)GO 4INSERT BLANK INSERT BEFORE11.Visual FoxPro表文件由两部分组成,即:(B)(A).DBF文件和.FPT文件(B)表结构和记录数据(C),DBF文件和.BAK文件(D)PRG文件和.FXP文件12.XS.DBF是一个具有一个备注字段和一个通用字段的表文件,使用COPY TOPX S命令进行复制操作,其结果为:(B)(A)得到一个新表文件(B)得到一个新的表文件和
11、一个新的表备注文件(C)得到一个新的表文件和一个新的表备注文件,以及一个新的表通用文件(D)得到一个新的表文件和两个新的表备注文件1 3.在 Visual FoxPro的表文件中,每条记录总长度比定义的所有字段宽度之和多一个字节,该字节用于:(D)(A)存放索引关键字(C)存放记录宽度14.在定义表结构时,下 面(DA)字符型、货币型、数值型C)数值型、货币型、整型(B)存放记录号(D)存放删除标记15.已建立一个“学生”表 STD.DBF,字段的宽度都是固定的。B)字符型、备注型、二进制备注型D)整型、日期型、日期时间型并 输 入 19名学生的记录,学号字段值分)别 为 1-20,缺少学号为
12、15的记录用APPEND命令追加学号为15的记录。这个新加的记录记录号是:(A)(A)20(B)21(C)16(D)151 6.表文件的表结构中有语文、物理、化学、计算机和总分字段,且都是数值型。要将所有学生的各门成绩汇总后存入总分字段中,使用命令:(A)(A)REPLACE总分W ITH语文+物理+化学+计算机(B)REPLACE总分W ITH语文,物理,化学,计算机(C)REPLACE总分W ITH语文+物理+化学+计算机FOR REST(D)REPLACE ALL总分W ITH语文+物理+化学+计算机要删除当前表文件中“奖学金”字段的全部值,应当使用命令:(D)(A)REPLACE(B)
13、ZAP(B)ERASE(D)MODIFY STRUCTURE1 7.表学生.DBF中共有120个记录,顺序执行下面命令:(C)SET DELETED OFFU SE 学生DELETECOUNT TO AAPACKCOUNT TO A AZAPCOUNT TO AAUSE3 次 COUNT得到的AA结果分别为:(A)119,119,1(B)119,119,0(C)120,119,0(D)120,119,11918.分屏显示 XS.DBF”中从第5 条后的4 条记录中,性别为男(T),是 1970/07/30后出生的学生。(B)(A)USEXSGO 5DISPLAY NEXT 5 FOR XB.A
14、ND.CSNY07/30/70(B)USE XSGO 5DISPLAY NEXT 4 FOR XB.AND.CSNY A07/30/70(C)USE XSGO 5LIST NEXT 5 FOR XB.AND.CSNY 八 07/30/70(D)USE XSGO 5LIST NEXT 4 FOR XB.AND.CSNYA07/30/70)19.建立索引时,下 列(C)字段不能作为索引字段。A)字符型 B)数值型 C)备注型 D)日期型20.建立索引文件的目的是(B)A)改变表记录的物理位置 B)提高记录的查询速度C)对记录进行降序排序 D)对记录进行分类统计补充:21.为了使表中带删除标记的记录
15、不参与以后的操作,可以实现的方法有(D)A)SET FILTER TO B)命令中加上FOR条件,C)SET DELETED OFF D)SET DELETED ON22.必须对数据库中索引或排序后才能使用的命令是(A)。A)TOTAL B)LOCATE C)REPLACE D)COUNT23.SEEK命令与FIND命令使用前都必须要进行的操作为:(A)(A)索引排序(B)设置默认路径(C)GO TOP(D)GO BOTTOM24.一个Visual FoxPro表文件中有四个备注型字段和一个通用性字段,这些字段的内容放在:(A)(A)同一个.FPT文件中(B)4 个.DBF文件中(C)同一个.
16、DBF文件中 川个 丁文件中25.若要给当前表增加一个字段,应使用命令:(D)(A)APPEND(B)EDIT(C)BROWSE(D)MODIFY STRUCTURE26.在命令窗口中,已打开职工表,要将记录指针定位在第一个工资大于1000元的记录上,用命令:(B)(A)FIND FOR 工资 1000(C)SEEK FOR 工资 1000(B)LOCATAE FOR 工资 1000(D)LIST FOR 工资 1000*四、简答题1 .答:在 VFP中,记录删除有两种删除方式:逻辑删除和物理删除;逻辑删除只对记录删除做标记,记录仍保存于表中并可以恢复;物理删除则是从表中删除作过逻辑删除的记录
17、,或直接从表中将记录删除,删除后的记录不能再恢复。2.答:索引和排序都是重新建立记录顺序的方法。索引是在不改变表文件物理顺序与不增加表文件数量的情况下,创建索引表,用户通过使用索引表使记录按一定次序升序排列;排序是表文件中记录按照某个关键字值的升序或降序重新物理排列,生成新的表文件。3.答:V FP系统的中提供了 4 种索引类型:主索引,候选索引,普通索引和惟一索引。4.答:建立数据库表之间关联的条件是:一是要保证建立关联的表具有相同的字段;二是父表和子表都要以该字段建立索引。第一讲 数据库操作学习要求与目标本章应掌握的内容包括1 .数据库系统及概述掌握数据库和D B M S的概念;掌握关系模
18、型及其性质2 .数据库的创建和使用掌握数据库的概念和组成,数据库与表之间的关系,表之间的关系掌握字段和记录的有效性规则,表触发器,库表之间的参照完整性掌握永久关系,临时关系的概念,创建,删除及两者的区别掌握库表字段的扩展属性3 .表的创建和使用掌握表的概念,组成和分类,字段的基本属性,创建表的方法及相关S Q L命令掌握工作区概念,索引概念及类型掌握表之间的关系及其种类,表的关联及其建立和解除的方法基本操作要求4.数据库的创建,5.打开和关闭;6 .在数据库中创建、添加、移去库表;7 .设置库表字段的扩展属性(标8.题、输入掩码、格式、默认值、注释)9 .设置字段和记录的有效性规则;1 0 .
19、设置库表的扩展属性及库表的触发器1 1 .库表之间永久关系的创建和解除,12.设置参照完整性;1 3 .临时关系的建立和解除1 4 .创建,15.修改表结构1 6.表记录的追加、修改、浏览、定位、筛选、删除和恢复1 7.删除1 0.创建表的结构复合索引,设置主控索引学习要点数据库,数据库系统和数据库管理系统三者的区别和联系答:数据库是指以一定的组织形式存放在计算机存储介质上的相互关联的数据的集合。数据库管理系统(D B M S)是对数据库进行管理的系统软件,是用户与数据库之间的接口。D B M S主要由查询管理器,存储管理器和事务管理器三部分组成。数据库系统是实现有组织地,动态地存储大量关联数
20、据,方便用户访问的计算机软硬件资源组成的具有管理数据库功能的计算机系统。它由数据库,数据库管理系统,操作系统,计算机硬件资源等组成。数据库,数据库管理系统和数据库系统是最基本的概念。三者之间既有联系又有区别。用户通过数据库管理系统可以建立和使用数据库。使用数据库是目的,而数据库管理系统是实现目的的手段和工具。数据库和数据库管理系统又都是数据库系统的组成部分。二维表的超关键字,候选关键字,主关键字和外关键字答:二维表中能唯一确定记录的一个列或几个列的组被称为超关键字。显然,二维表的全体字段必然构成它的一个超关键字。超关键字虽然能唯一确定记录,但是它所包含的字段可能是多余的。如果一个超关键字,去掉
21、其中任何一个字段后不再能唯一确定记录,则称它为候选关键字。候选关键字既能唯一确定记录,它包含的字段又是最精练的。二维表中可能有多个候选关键字。二维表的候选关键字中,选出一个可作为主关键字。对于表中的每个记录,主关键字必须包含一个不同于其他记录的唯一的值,所以主关键字的值不能为空值(N U L L)o当一 个 表(A表)的主关键字被包含到另一个表(B表)中时,它就称为B表的外关键字。关系模型,关系以及关系的性质答:关系模型是用二维表格的结构形式来表示实体模型及其实体间的联系。二维表中的每一列为一个属性,称为字段或域;每一行叫做一个记录,与一特定的实体项对应。一个二维表就叫做一个关系。关系模型的性
22、质有:(1)二维表的记录数随数据的增删而改变,但它的字段数却是相对固定的。因此,字段的个数,名称,类型,长度等要素决定了二维表的结构。(2)二维表中的每一列均有唯一的字段名,且是同性质的。(3)二维表中不允许出现完全相同的两行。二维表中行的顺序,列的顺序均可任意交换。表的类型和组成类型:自由表和数据库表 两者同:扩展名为D B F 异:表设计器不同,数据库表与它所属的数据库之间有逻辑关系。组成:字段和记录 字段:基 本 属 性(字段名,数据类型,宽度,小数位数,空值支持)扩展属性(格式,掩码,标题,注释,字段有效性规则)工作区及当前工作区工作区:用以表示一张打开的表的区域,每个工作区有一个编号
23、,称为工作区号。范 围 为1 3 2 7 4 7,前1 0个也可用A J表示,所以通常表名不要取简单的英文字母,避免和工作区号混淆。当前工作区:V F P正在使用的工作区(默认的工作区),启 动V F P后,默 认 为1工作区号为0时,系统自动选择当前未被使用的最小编号的工作区。表的别名这是对工作区中打开的表的一个临时的标识,利用它可以引用在工作区中打开的表,如未用A L L A S子句指定别名,则别名同表名,但如果一张表在多个工作区中打开且未指定别名,则除第一次打开的工作区中别名同表名,其它均用A J及W i lW 3 2 747表示。U SE 表名名 A GA I N 表的打开方式独占和共
24、享 I N工作区|表的别 A L L A S 表的别名 N O U P DA T E如果一张表同时被多次打开时,以第一次的打开形式为准。表的关闭方法U SE 关闭最近打开的表CL O SECL O SEDA T A B A SEST A B L ES关闭数据库及其中的表关闭所有打开的表表的索引记录顺序:物理顺序,逻辑顺序索引关键字:由一个字段或多个字段组成的表达式当有多个字段时,字符型直接用,如果类型不同,则通过函数变化,转换成相同类型,通常化成字符型 例:有一 J S 表,其中有字段 GH(C),X M(C),J B GZ(N),CSRQ(D)字符型:按GH和X M排序 GH+X M字符型和
25、数值型:按GH和J B GZ排序 GH+ST R(J B GZ)字符型和日期型:按GH和CSRQ排序 GH+DT O C(CSRQ,1)索引标识:为了区分一张表的不同索弓L每一个索引都有一个索引名,即索引标识。索引类型:主索引(数据库表特有),候选索引,普通索引,唯一索引前两种索引用于约束表中记录的唯一性,唯一索引用于控制索引结果的唯一性,它不允许两个具有相同索引值的记录包含在同一个唯一索引中,但它并不要求表中的记录具有唯一性。索引文件种类:(1)结构复合索引文件(.CDX):文件名同表名,自动与表同步打开,关闭,更新。(2)非结构复合索引文件(.CDX):文件名不同于表名,不会自动打开。(3
26、)独立索引文件(.I DX):文件名用户定,不会自动打开。主索引与主控索引(1)索引是索引的种类型。(2)主控索引是在某一时刻对表的显示或访问顺序起作用的索引,可以把复合索引中的住索引或其它类型的索引或独立索引设置为主控索引。与莪引相关的一些命令(1)创建:I N DEX O N 索引表达式T O T A G 索引名 FO R 条件表示式 A SCEN DI N G|DESCEN DI N G U N I Q U E,CA N DI DA T E 例:I N DEX O N X H T A G X H 1(2)删除:DEL ET E T A G 索 引 名1 ,索引名2 或 DEL ET E
27、T A G A L L(3)设置主控索引:打开表的同时设置 U SE X S O RDER X H打开表后再设置SET O RDER T O 索引名 I N 区号|别名 A SCEN DI N G|DESCEN DI N G 例:在工作区3中设置学生表中的学号为主控索引并将序排列U SE X SSET O RDER T O X H I N 3 DESCEN DIN G(4)索引快速定位记录的命令SEEK 表达式 O RDER 索 引 名 A SCEN DI N G|DESCEN DI N G 只能在具有索引的表中使用,且只能基于索引关键字进行搜索。10.记录处理(1)记录指针:用于指示当前处理
28、的记录位置。打开表时,指向第一条记录。(2)当前记录:记录指针所指向的记录(3)记录号:当用户向表中输入数据时,V FP 按顺序为每条记录指定一个记录号。第一条记录记录号为1,以此类推。(4)儿个函数:RECN O O :测试记录指针的值,也可从状态栏观察记录条数及当前的记录号;B O FO :测试记录指针是否指向记录的开始标志;E O F O:测试记录指针是否指向记录的结束标志;注:从第一条记录向上移动一个记录,BO F()为T,R E CN O()值为1,如果继续S K I P -1 出错。从最后一条记录向下移动一条记录,则E O F O 为 T,R E CN O()的值为记录总条数加1,
29、继续S K I P 则出错。s e l e c t (0;11别名):测试工作区号0:当前工作区号;1:当前未被使用最大工作区号别名:表别名所在的工作区号,别名必加引号。us e d (区号|别名):测试指定表或工作区是否打开al ias (区号):测试指定工作区中的表别名f ie l d (字段顺序号,区号 别名):返回已打开表的指定序号的字段名。f c o unt (区号|别名):返回已打开表的字段数d e l e t e ():测试表的当前记录是否带删除标记(5)记录的输入:使 用 I N S E R T-S Q L 命令I N S E R T I N T O 表名(字段1,字段 2)V
30、 AL U E S (表 达 式 表 达 式 2)使用AP P E N D和AP P E N D F R O M 命令追加记录AP P E N D BL AN K I N 区号|别名AP P E N D F R O M 表 名 DE L I M T E D|XS L(6)记录的定位:绝对定位 G O T O|G O N (直接将记录指针指向第N条记录)相对定位 S K I P N 或 S K I P -N (指相对于当前记录向下+或向上-移动N 条记录)条件定位 L O CAT E 范围 F O R或 S E E K,S E E K O范围:AL L 表示表中所有记录;N E XT 从当前记录
31、开始的N 条记录R E CO R D 指定的记录R E S T 当前记录后的所有记录命令 G O T O P (直接跳到第一条记录)G O BO T T O M (直接跳到最后一条记录)(7)记录的修改:使用R E P L ACE 命令R E P L ACE 字段1 WI T H 表达式1 ,字段2 WI T H 表达式2 范围 F O R条件使用U P DAT E-S Q L 命令U P DAT E 表名 S E T 字段1=表达式1 ,字段2=表达式 2 WH E R E 条件表达式(8)记录的删除删除记录的命令 DE L E T E 范围 F O R 条件表达式 I N 工作区|别名或
32、S Q L 命令 DE L E T E F R O M 表 名 WH E R E 筛选条件恢复带删除标记的记录命令 R E CAL L 范围 F O R 条件表达式R E CAL L 恢复当前记录R E CAL L AL L 恢复当前所有记录 例:恢复当前所有记录中学号的前两位为“02”的记录R E CAL L AL L F O R L E F T(XH,2)=02”彻底删除记录的命令P ACK 彻底删除当前工作区中打开的表中有删除标记的记录Z AP 彻底删除当前工作区中打开的表中所有记录对带有删除标记记录的访问S E T DE L E T E D O NI O F F O N 忽略,O F
33、F 访问 注:除非是彻底删除,否则在统计记录的条数时,带删除标记的记录仍包含在内。(9)记录的筛选命令 S E T F I L T E R T O 条件表达式 例:S E T F I L E T E R T O XB=女恢复 S E T F I L T E R T O 注:与字段的筛选区分 S E T F I E L DS T O 字段名(10)字段的筛选命令 s e t f ie l d t o 字段列表(11)记录的浏览命令BR O WS E F I E L DS 字段列表 F O R 条件 R R E E Z E 字段名 N O AP P E N D N O DE L E T E N O
34、 M O DI F Y T I T L E 表达式(12)数据的复制命令c o p y t o 文 件 名 f ie l d s 字段列表 范围 f o r 条件 t yp e s d f|xs l|d e l im t e d wit h d e l im it e r|wit h b l ankwit h t ab|wit h c h arac t e r d e l im t e r 例:us e xsc o p yc o p yc o p yt o xs O lt o xs O lt o xs O lf o r x b=女f ie l d s xh,xm s d fxl s(13)数据
35、的统计命令c o unt 范围 f o r 条件 t o 变量名s um 表达式 范围 f o r 条件 t o 变量名Ave rg e 表达式 范围 f o r 条件 t o 变量名1 1.数据库与表之间的联系数据库是比表高一级别的数据组织形式。表之间的关系主要有三种:一对一,一对多,多对多。理 解 好“表之间的关系主要要掌握好主关键字和外部关键字”,如果两张表都具有相同的主关键字,则认为它们 具 有“一对一”关系,如果一张表的主关键字存在于另一张表中称为“外部关键字”,则认为它们具有“一对多”关系。数据库表属于数据库,但不是说表记录保存在库文件中,库表仍以.DBF 文件存放。即两者之间物理
36、上是独立的,两者间的从属关系只是一种逻辑关系,这种关系通过双向链接实现(前链与后链)。虽然库表文件是独立存在的,但库表的表属性,字段的扩展属性是保存在数据库中的。如果数据库被删除,则库表的这些信息将丢失,此时需 用 FR EE T A B L E名令把表转换成自由表才可用。1 2.数据完整性(1)字段有效性规则:控制输入到字段中的数据的取值范围,(2)该规则是一个逻辑表达式,(3)且当前字段包含在该表达式中。如果结果为.F.,则拒绝所输入的字段值,并显示提示信息.注:该规则只对当前字段有效.如果有判断空的逻辑表达式,例XH为空,则不能用XH=,而需要用函数EM P T Y(XH),IS N U
37、 L L O等来判断.(4)记录有效性规则:可以校验多个字段之间的关系是否满足某种规则,该规则也是一个逻辑表达式.(5)触发器:绑定在表上的逻辑表达式,(6)是在插入、更新、删除记录时进行的检验规则。返回值为.T.时,允许执行相应操作,.F.时 不(7)允许执行相应操作.例L j s表中有字段g l (工龄),要 求”值不能大于5 0”在g l的字段有效性规则中输入g l =1 0 0.a nd.j b g z =4 注:如果不去掉空格,则系统会根据字段宽度添加空格。5.j s表中有字段x i m i ng(系名),要求除了“信息管理系”的老师记录,其它记录都不能进行修改在j s表的更新触发器
38、中输入j s.x i m i ng=信息管理系”6.j s表若有g l小于等于0,则允许删除在j s表的删除触发器中输入 g l E N D C A S E 循 环 语 句:F O R循环语句:语句格式为F O R 循环变量=初值TO 终值S T E P 步长)循环体E N D F O R (或 N E X T)该语句一般用于循环次数已知的情况,其中循环中自带了循环变量增加的语句:(循环变量=循环变量+步长)D O循环语句:语句格式为D O W H I L E 条件(语句序列1L O O P 语句序列2)E X I T(语句序列3)E N D D O该语句一般用于循环次数不知的情况,用 条件满
39、足与否来控制循环次数。条 件 满 足(即表达式为“真”)执行循环,条件不满足(即表达式为“假”)退出循环。S C A N循环语句:语句格式为S C A N F O R(条件 1 W H I L E 条件 2 循环体)E N D S C A N该语句一般用于数据表,执行该语句时,记录指针自动、依次的在当前表的指定范围内满足条件的记录上移动,对每一条记录执行循环体内的命令。其中循环中自带了指针移动的语句:(S K I P)(4)V F P系统函数调用语句V F P的函数是一种预先编制好的程序代码,可供用户或程序调用。调用V F P系统函数的格式如下:函 数 名(参 数1,参 数2,参 数1,参 数
40、2,是函数接收的-个或多个参数,而最终返回一个值,因此函数调用可以出现在表达式或赋值语句中。函 数 和 子 程 序(过程)调用语句除在程序中使用V F P系统提供的函数外,用户还可以把程序中多次使用的、完成某一特定功能的一些语句单独定义成函数或子程序。定义子程序的格式是:P R O C E D U R E 子程序名 P A R A M E T E R S 形参变量 1,形参变量 2,命令序列 R E T U R N (表达式E N D P R O C定义函数的格式是:F U N C T I O N 函数名)P A R A M E T E R S 形参变量1,形参变量2,命令序列 R E T U
41、 R N (表达式E N D F U N C注意:函数和子程序除定义格式、调用方法不同外,没有本质区别。调用用户定义的函数的方法与调用系统函数相同,调用用户定义的子程序的格式有两种:格 式1:使 用D O命令D O 子程序名W I T H 实 参D ,实 参2 格 式2:在名字后加一对小括号 子 程 序 名)(实 参D ,实 参2)如果希望函数和子程序能够接受不同的值而返回不同的结果,在函数和子程序定义中用P A R A M E T E R S语句规定一些参数。在函数和子程序定义中规定的参数称为形式参数,形式参数可以是变量或数组元素。在调用语句中用的参数称为实在参数,实在参数将与形式参数一一对
42、应,实现主程序向子程序传递参数的功能。传递参数有两种方法:按值传递和按地址(也称引用)传递。按值传递:将参数的值传递给子程序,即使在用户定义的函数或子程序中修改了参数的值,主程序中的参数原值仍保持不变。引用传递:将参数的地址传递给子程序,因此如果在用户定义的函数或子程序中修改了参数的值,主程序中该参数的值也跟着改变。两者区别:按值传递将实际参数的值代入形式参数,而按引用传递则将实际参数的变量代入形式参数注意:在系统默认情况下,将按值传递参数给函数,将按地址传递参数给子程序 在调用自定义函数或子程序之前,可以通过命令:S E T U D F P A R M S T O R E F E R R E
43、 N C E设置按地址传递参数方式S E T U D F P A R M S T O V A L U E设置按值传递参数方式 在调用语句中,如用括号括起一个变量,则按值传递参数,而如果在变量前加符号,则按地址传递参数二、系统常用函数 说明:n表达式:表示数值表达式;c表达式:表示字符表达式;1表达式:表示逻辑表达式,等依次类推。1,数值函数(1)A B S(n表达式):求一数值的绝对值(2)M A X (n表达式1,(3)n表达式2):求最大值(4)M I N(n表达式1,(5)n表达式2):求最小值(6)INT(n表达式):求一数值的整数部分(7)S Q R T(n表达式):求一数值的平方根
44、(8)MO D (n表达式1,(9)n表达式2):求数值表达式1除以住址表达 式2的余数 注:MO D()函数值的正负号由第二个参数的正负号决定,值的小数位数由第一个参数的小数位数决定。(7)R O U ND(n 表达式1,n 表达式2):求 n表达式1 四舍五入的结果,其四舍五入的位置由n 表达式2决定。注:2 3 4.8 5 6 9 n 表达式2的值就是要四舍五入的位置。(8)R A ND():求一个01 之间的随机数。注:其中的参数可以省略,可以为正数、负数和零。2 .字符函数(1)A L L T R IM(c 表达式):删除字符串表达式开头和结尾的空格。(2)T R IM(c 表达式)
45、:删除字符串表达式结尾的空格。(3)L E N(c 表达式):求字符表达式的长度。(4)A T(c 表达式1,(5)c 表达式2,(6)n):求字符表达式1 在字符表达式2 第 n次出现的位置,(7)如 n 省略则表示第一次 注:A T ()区分大小写;A T C()不区分大小写(8)S U B S T R(c 表达式,(9)n ,(1 0)m ):将字符表达式进行截取,(1 1)n 表示开始截取的位置,(1 2)m 表示截取的个数,(1 3)如m省略,(1 4)则截取从n开始的所有字符。(1 5)L E FT(c 表达式,n):将字符表达式从最左边开始截取n 个字符。(1 6)R IGHT
46、S 表达式,(1 7)n):将字符表达式从最右边开始截取 n 个字符。(1 8)S P A C E(n):返回指(1 9)定个数的空格字符串,(2 0)若S P A C E (0):则表示空字符串。3 .日期/时间函数D A T E()、D A T E T IME(),T IME()D O W()、D A Y()、MO NT H(),Y E A R()注:其结果为数值型数据A 物加生开f J 华检函物A S C(c 表达式):返回单个字符或字符串的首字符的A S C II码值。C HR(n 表达式):返回某数值在A S C II码表中对应的字符。V A L(c 表达式):将字符串转换成数值。首
47、字符必须是+、-、0-9 数字,否则返回结果为0;并且只能转换数字,除字符“E”和”之外的所有字符均不能转换;字 符“E”是科学计数法。例:V A L(“1 2 3-2 3”)=1 2 3 V A L(“1 2 3 a a a a 2 3 )=1 2 3 VA L 1(“1.2 3 e+2”)=1 2 3S T R(n 表 达 式 ,n ,m ):将数值转换成字符串。n 是返回的字符串的宽度,省略为1 0 个字节,m是保留小数的位数。例:S T R (1 2 3 4 5 6 7 8 9 0 1 2)=1.2 3 4 E+1 1 总宽度为 1 0 位,字符数为9,在最前面预留了符号位1 位D T
48、 0 C(d 表 达 式 ,1 ):将日期转换成字符串。参数1 指返回结果形式唯一:y y y y m m d d,否则返回结果形式由系统当前的日期格式决定。例:系统当前日期格式:m m/d d/y y D T 0 C(d a te()=0 5/2 6/9 8”D T 0 C(d a te(),1)=1 9 9 8 0 5 2 6”C T 0 D(c 表达式):将字符串转换成日期。T T 0 C(t 表 达 式 ,1|2 ):将日期时间转换成字符串。参数1 与D T 0 C()相同,参数2 指只返回时间部分。C T 0 T(c 表达式):将字符串转换成日期时间。5.其他函数B E T W E
49、E N(表达式1,下界,上界)、INK E Y (秒数)T Y P E(c 表达式):返回表达式的类型。注:其参数必须加引号 例:T Y P E (“1 2 3”)=N T Y P E(.T.”)=L T Y P E(4A B C)=U 注:U:表示不确定的,由于A B C 此变量没创建,所以不知道其数据类型。IIF(条件表达式,结果1,结果2):当条件表达式为.T.,函数返回结果1,当条件表达式为.F.,函数返回结果2。ME S S A GE B O X(显示文本,对话框类型,标题):弹出消息框三、数据类型:1 .字符型(C)2 .数值型(N)3 .货币型(Y)4 .日期型(D)5 .日期时
50、间型(T)6 .逻辑型(L)7 .浮点型(F)8 .双精度型(B)9 .整 型(I)1 0 .备注型(M)1 1 .通用型(G)四、运算符1.数值运算符:()、*或 *、/、%+、-2.字符运算符:+、-、$3 .日期和日期时间运算符:+、-4 .关系运算符:、=、或#或!=、=、=5 .逻辑运算符:()、N O T 或!、A N D、O R(注意:除关系运算符之外每组优先级分别由高到低依次排列)6 .运算符的优先级:()*或 一 *、/%+、-$关系运算符一N O T 或!A N D 0R第三讲 关系数据库语言标准S Q L学习要求与目标本章应掌握的内容包括:S Q L的基本概念。(S T