VFP3

合集下载

vfp1~3章命令总结09用

vfp1~3章命令总结09用
命令总结 数据库的建立、打开、修改、关闭
◆ CREATE database [<数据库文件名>|?]
功能:建立一个新的扩展名为.DBC的数据库文件并处于打开
◆ OPEN DATABASE [<数据库文件名>| ?]
[NOUPDATE] [EXCLUSIVE|SHARED]
功能:打开磁盘上一个扩展名为.DBC的数据库文件
【例2】一多关联:
SELECT 1
USE cj && cj.dbf 为被动表(子表)
INDEX ON 学号 TAG xh ADDITIVE
SELECT 2
USE xs
&& xs.dbf 为主动表(父表)
SET RELATION TO 学号 INTO cj ADDITIVE Set skip to a BROW FIEL 学号 ,姓名,cj.成绩
(四IELDS <字段名表>] [FOR <条件>] [FREEZE <字段名>] [LEDIT] [REDIT] [NOEDIT | NOMODIFY] [LOCK <数值表达式>] [NOAPPEND] [TITLE <字符表达式>]。
EDIT | CHANGE [FIELDS <字段名表> ] [<范围> ] [FOR <条件>] [WHILE <条件>] [NOEDIT | NOMODIFY] [NOAPPEND] [NODELETE]
SET FILTER TO [<条件>]
2、预设字段表
SET FIELDS TO [<字段名表> | ALL] SET FIELDS ON | OFF CLEAR FIELDS| SET FIELDS TO 关闭所设字段

VF第3章

VF第3章

第三章:数据与数据运算
8)子串替换函数: STUFF(字符串1,起始位置,长度,字符串2) 用字符串2替换字符串1中有位置和长度指定的字符 串。 9) 字符替换函数: CHRTRAN(字符串1,字符串2,字符串3) 如果字符串1中有一个字符与字符串2中的一个字符 相匹配,则用字符串3中与字符串2相对应的那个字符 来替换字符串1中的字符。如果字符串3的个数小于字 符串2,则在字符串3中找不到相关字符时删除字符串 1中的字符。
第三章:数据与数据运算
4. 数据类型转换函数: 1)数值转换成字符串: STR(数字表达式,[长度],[小数位]) 将数字转换成字符串。长度指定返回的整个字符 串的长度,小数位指定返回的小数位。 如果长度大于数字表达式的长度,则前端补空格 如果长度大于整数部分但小于整个数据长度,则先满 足整数部分, 如果长度小于整数部分,则输出*字符串。
第三章:数据与数据运算
6. 逻辑常量:表示 真和假的两个常量,书写格式为: 逻辑真:.t. 、.T. 、.y. 、.Y. 逻辑假: .f. 、.F. 、 .n. 、. N. 三. 变量的表示: 在vfp中变量可以分为以下几种: 1) 内存变量 2)字段变量 3)数组 1. 内存变量的使用: 1)VFP中内存变量不需要经过特别的定义就可以 使用。当给内存变量赋值时系统自动创建该内存 变量并确定它的类型。 2)内存变量的赋值: 格式1: 变量=值 格式2:store 值 to 变量列表
第三章:数据与数据运算
4. 关系表达式:由关系运算符组成的表达式 1) 常用的关系运算符:
运算符 > > = <>、#、 !=
说明 大于 小于 等于 不等于
运算符 〉= 〈= == $
说明 大于等于 小于等于 精确比较 子串包含测试

VFP第三章

VFP第三章
Visual Visual Foxpro
程序设计教程
北京邮电大学出版社
第3章 Visual FoxPro的数据及其运算 FoxPro的数据及其运算
本章知识要点
了解并掌握基本数据类型以及Visua FoxPro的常 用函数、表达式的使用。 重点:Visual FoxPro的常用函数,内存变量的使 用。 难点:内存变量的使用。 计划课时:2课时。
7.Memo (备注型,用字母M表示) 备注型,用字母M表示) 备注型数据(又叫记忆型、注释型)用于存放较多 字符的数据。其长度系统定义为4位。它能接受一切字符 数据,当数据中定义一个备注字段时,系统自动生成一个 与表文件同名但扩展名为.FPT的备注文件。
通用型,用字母G表示) 8. General (通用型,用字母G表示) 通用型数据用来存放电子表格、图像、声音等OLE对 象的数据。其长度系统定义为4位。通用型数据内容与备 注型相同,也是存放在扩展名为FPT的备注文件中。
例:
a1 = 6 STORE 6 TO a1,a2,c
注意: 注意: 访问内存变量时,若它与字段变量同名时, 访问内存变量时,若它与字段变量同名时, 则应该用如下格式进行访问: 则应该用如下格式进行访问: M.内存变量名 内存变量名 或 M—>内存变量名 内存变量名
姓名= 王明” 例:M.姓名=“王明” 姓名 或 M—>姓名=“王明” 姓名= 王明” 姓名
( ) ; **或 ; * ; / ;
(括号) (乘方) (乘)
^
% ; + ; -
(除) (求余数) (加) (减)

例: y = x2-3x+9
2.字符型表达式 2.字符型表达式 字符型表达式 是用字符运算符将字符型数据连接起来的式子,其运 算结果是字符型数据。运算符有两种: (1). 连接运算 “+”:将两个字符串连接起来形成一个新的字符串。 “-”:是去掉前一字符串的尾空格,然后与后面字 符串连接起来,并把去掉的尾空格放到结果串的末尾。 (2). 包含运算 <字符串1> $ <字符串2> 包含运算的结果是逻辑值:若<字符串1>包含在<字符 串2>之中,其表达式值为.T.,否则为.F.。

vfp复习题3

vfp复习题3

vfp复习题3满分:49分姓名:________ 1、单项选择题(本题共计20分)1、如果要对自由表某一字段的数据值建立唯一性保护机制(即表中所有字段的值不重复),以下表述中正确的是________________。

( )A、对该字段创建主索引B、对该字段创建唯一索引C、对该字段创建候选索引D、对该字段创建普通索引2、建立两个表之间的临时关系时,必须设置_______。

( )A、主表的主索引B、主表的主控索引C、子表的主索引D、子表的主控索引3、对于VFP中的自由表来说,不可以创建的索引类型是________。

( )A、主索引B、候选索引C、唯一索弓D、普通索引4、若为xs.dbf表添加一个宽度为6的字符型字段mc,以下命令中正确的是_________。

( )A、ALTER TABLE xs ADD COLUMN mc C(6)B、ALTER xs.dbf ADD COLUMN mc C(6)C、ALTER xs.dbf ADD mc C(6)D、ALTER TABLE xs ADD FIELD mc C(6)5、表(table )是存储数据的容器.在下列有关VFP 表的叙述中,错误的是________ 。

( )A、系统默认的表文件扩展名为.dbfB、利用表设计器创建表结构时,系统默认的字符型字段宽度为10C、自由表的索引功能与数据库表有区别D、表文件名在命名时只要遵循操作系统的规定,VFP 本身无任何新的限定6、用表设计器创建一个自由表时,不能实现的操作是_______。

( )A、设置某字段可以接受NULL值B、设置表中某字段的类型为通用型C、设置表的索引D、设置表中某字段的默认值7、字段的默认值保存在_______ 。

( )A、表的索引文件中B、数据库文件中C、项目文件中D、表文件中8、学生表(XS.DBF)的表结构为:学号(XH,C,8),姓名(XM,C,8),性别(XB,C,2),班级(BJ,C,6),用Insert命令向XS表添加一条新记录,记录内容为:xh 10, xm李小平,xb男,bj 84461 .下列命令中正确的是___________。

3、VF程序设计

3、VF程序设计

如果在命令窗口输入并执行命令:“LIST名称”后在主窗口中显示: 精选考题 记录号 名称 1 电视机 2 计算机 3 电话线 4 电冰箱 5 电线 假定名称字段为字符型、宽度为6,那么下面程序段的输出结果是( )。 GO 2 SCAN NEXT 4 FOR LEFT (名称,2)=“电“ IF RIGHT (名称,2)=“线“ LOOP ENDIF ??名称 ENDSCAN A)电话线 选 C)电冰箱电线 B)电冰箱 C)电冰箱电线 D)电视机电冰箱
公共变量 内存变量
声明格式
public <内存变量名> 初始值为.F.
作用域
任何模块中
建立它的模块及其下属 各层模块
私有变量
局部变量
local <内存变量名> 初始值为.F.
只能在建立它的模块中
Private <内存变量名>
作用: 隐藏指定的在上层模块中可能已经存在的内存变量, 使得这些变量在当前模块程序中暂时无效. (隐藏了的变量的值不会改变上层变量的值)
精选考题
如下程序显示的结果是 _____ 。 s=1 i=0 do while i<8 s=s+i i=i+2 enddo ?s 结果是:13 执行过程: 1、i=0 s=1 2、i=2 s=3 3、i=4 s=7 4、i=6 s=13
i=8
11、以下程序运行后的显示结果是_____________。
选B 20 20
14、在以下程序中,main.prg为主程序,pro.prg为过程文件, 程序运行后的显示结果是_________。 *pro.prg 子程序 FUNCTION f1 *main.prg PRIVATE a SET TALK OFF PUBLIC a SET PROCEDURE TO pro a=2 PUBLIC a , b b=a+b a=1 DO pro2 b=2 RETURN DO f1 PROCEDURE pro2 ?a , b ?a, b RETURN A、1 2 B、2 4 C、1 2 D、2 4 1 2 1 4 1 4 1 2

VFP复习题第3章

VFP复习题第3章

第三章一、填空共73题(共计73分)创建一个教师表(JS.dbf),其中有字段gh(工号,字符型,长度为6)、xm(工号,字符型,长度为10) 、xb(性别,字符型,长度为2)、csrq(出生日期,日期型)、JL(教师简历,备注型,且允许为空值). CREATE TABLE JS(gh c(6),xm C(10),xb c(2),csrq D,jl M 【null】)在命令窗口或程序中,可以使用USE命令打开一个表.在该命令中,【alias】子句用于定义表的别名.(请写出拼写出完整的关键字)执行下列命令后:CLOSE TABLES ALLSELECT 0USE XS ALIAS STUUSE JS IN 0函数USED("JS")的值是.T.,函数SELECT()的值是【1】,函数ALIAS()的值是【STU】.VFP系统中,在同一个表上,可以打开多个索引,但其中只有一个索引对表起作用,这个索引称为【主控索引】.与自由表相比,数据库表可以设置许多字段属性和表属性.其中,表属性主要有表名 (即长表名)、表注释、记录有效性和【触发器】等.设有一个表CJDA,该表有一个字段名BY的字段.如果要将字段删除,可以使用命令ALRER TABLE CJDA 【DROP COLU by】.用户使用CREATE TABLE-SQL命令创建表的结构,字段类型必须用单个字母表示.对于货币型字段,字段类型用单个字母表示时为【Y】.利用UPDATE-SQL语句将学生表(student)中所有性别(sex)为 "男" 的学生的系别(depart)值改为 "数学系",其完整命令是【UPDATE student SET depart="数学系" WHERE sex="男"】.(请将命令完整拼写,不要缩写)如果一个表同时在多个工作区中打开且均未指定别名,则在第一次打开的工作区别名与表名相同,其他工作区中用字母【A】至【J】以及WII~W32747中的一个表示.下列程序段中的后三条命令,可用一条功能等价的命令来实现,这条命令是【USE cj IN 0】.SET TALK OFFSELECT 1USE xsSELECT 0USE cjSELECT xs在利用"参照完整性生成器"对话框设置参照完整性规则时,系统自动地生成完成该规则的程序代码.规则的代码被保存在数据库中,而规则中的实施由主表和子表的【触发器】完成.在VFP中,与表操作相关的系统函数有多个,例如EOF()、BOF()、USED()等.用于返回当前选定工作区中已打开表的字段数目的函数是【FCOUNT()】.去除当前工作区主控索引设定的命令是【SET ORDE to】,此时,表记录的顺序依据物理顺序排序.有一个表文件XSDA,含有一个学号字段(XH,C,8).利用ALTER TABLE xsda 【ALTER】COLUMN xh C(10)命令,可以将学号字段的宽度修改为10.向数据库中添加表是指把自由表添加到数据库中,使之成为数据库表.这一操作的本质是建立了库与表之间的【双向链接】.选择当前未使用的最小号工作区,可以使用命令【SELE 0】.在BROWSE 命令中,【FREE】子句用于指定可以修改的字段,而其他字段的数据不可以修改.一张表结构如下Teacher(teacid c(3), teacname c(8), sex c(2), born d )用SQL语句给该表添加一个字段,字段名是note, 类型是备注型,其命令是【ALTE TABL teacher ADD note M】, 为该表创建一个索引,要求先依据姓名排序,姓名相同时以出生日期排序,则索引表达式为【teacname+DTOC(born,1)】.(请将命令完整拼写,不要缩写)对当前教师表(js)按如下要求更改基本工资(jbgz):如果工龄(gl)在20年以上(含20年),则基本工资加50.实现上述更改的REPLACE命令是【REPLACE jbgz WITH jbgz + 50 FOR gl>=20】.(请将命令完整拼写,不要缩写)如果要彻底删除当前工作区中打开的表的所有记录,可以使用【ZAP】命令.DELETE()函数用来检测当前记录是否带有删除标记,其返回值数据类型为【逻辑】.使用SET【Delete】 ON|OFF命令,可以指定visual FoxPro系统是否处理已做了删除标记的表记录.已知某数据库中有学生表和成绩表,且两张表之间已经建立了参照完整性(学生表为主表,成绩表为子表).如果将学生表中的某位学生的记录删除,要求该学生在成绩表中的所有成绩记录将自动全部删除,则两表之间的参照完整性设置是【删除级联】 .如果意外地删除了某个数据库文件,由于该数据库中包含的数据库表仍然保留对该数据库引用的后链,因此这些数据库表也不能被添加到其他的数据库中.这时需要利用【FREE TABL】命令删除存储在数据库表中的后链,使之成为自由表.在Visual FoxPro中,参照完整性规则中的更新规则有【级联】、【限制】、忽略三种设置.返回当前打开的数据库的完整文件名的函数是【DBC()】.一个表可以有一个或多个索引,在需要使用某个索引时必须显式地指定,即将某个索引设置为"主控索引".在USE命令中使用【order】子句,可以在打开表的同时设置主控索引.指定Visual FoxPro系统是否处理标有删除的记录,以及其他命令是否可以操作它们,常使用下列命令: SET 【DELE】ON.在VFP中,【存储过程】是保存在数据库中的过程代码,它由一系列用户自定义函数(过程)或在创建表之间参照完整性规则时系统创建的函数(过程)组成.利用UPDATE-SQL命令可以批量地修改记录的字段值.例如,某档案表(表名为DA)中有一个数值型字段(字段名为NL),则使用命令UPDATE da 【SET】 nl=nl+1WHERE nl<100可以将所有NL字段值小于100的记录的NL字段值增加1.在VisualFoxPro中,每个表最多可以有【255】个字段.若当前打开的数据库中有一张名为xsb的数据库表,且表以设置了记录的有效规则,则将该表的记录有效性规则删除,可以使用命令:ALTER TABLE xsb 【DROP CHECK】.关闭当前工作区中打开的表的命令是【USE】.Visual FoxPro系统支持3种不同的索引文件,即【结构复合】索引文件、非结构复合索引文件和独立索引文件.使用USE命令可以打开或关闭表.如果XS表已在第1号工作区中打开,则要在第10号工作区中再次打开XS表,可使用命令 USE xs 【again】 IN 10 .执行以下程序,3个SELECT()函数的输出值分别是【1】,【2】,【2】【程序清单】CLoSE TABLES ALLSELECT3USEjsSELECT xh,xm,csrq FROM XS INTO CURSOR t3SELECT("XS")SELECT("t3")SELECT(0)若当前打开的数据库中有一张名为xsb的数据库表,且表中有一个名为by的字段,则将该字段的标题属性设置为"备用",可以使用命令:DBSETPROP('XSB.BY', '【field】','【caption】','备用').用SQL创建一张表,表名为aaa,包含字段a1,a2,a3分别为长度为6的字符型,日期型和逻辑型, 其正确书写格式为【CREATE TABLE aaa(a1 C(6),a2 D,a3 L)】.数据库中包含数据库表、视图、连接、【存储过程】.一张学生表包含学号、姓名、性别等字段,在执行dele all 命令之后,现想恢复所有带删除标志的且性别(xb)为"男"的所有同学,其VFP内部命令是【RECA ALL FOR xb="男"】.(请将命令完整拼写,不要缩写)表中字段类型为通用型时,其长度为【4】个字节.利用DBSETPROP()函数,可以设置当前数据库的属性,或设置当前数据库中表的字段或视图的有关属性.例如,要设置当前数据库中JS表的gh字段的标题属性,可以使用函数:DBSETRPOP("【JS.gh】","FIELD","Caption","工号")在REPLACE命令中,保留字【ADDITIVE】仅对备注型字段有效,使用时表示替换的内容追加到原备注中,否则替换原备注内容.利用seek()查找某条记录时,如果没有该记录,则当前指针指向该表的最后一条记录;如果查找到,则指针指向该记录,并且函数【FOUND()】返回 .T..利用COPY TO命令可以将当前工作区中表的全部或部分数据复制到其他表文或其他类型的文件中.例如,使用COPY TO temp FOR RECNO()<11 【XLS】命令,可以将当前工作区中表的前10条记录数据复制到TEMP文件中,且TEMP文件为Microsoft Excel格式文件.在 Visual FoxPro中,每个表最多可以有【255】个字段.某数据库中有下列所述结构的两个表(BRDA病人档案和MXB明细表),并且已创建了一对多关系. BRDA(病历号,姓名,性别,年龄,联系地址)MXB(病历号,药品编号,单价,数量,日期)下列的查询语句用于查询病人用药总金额大于1000的病人信息(病历号、姓名、总金额),请完善该语句:SELECT 病历号,姓名,SUM(单价*数量)AS 总金额;FROM brda,mxb;WHERE 【brda.病历号=mxb.病历号】;GROUP BY 1;HAVING【总金额>1000】假设当前工作区为1,则选择第99工作区为当前工作区的命令是【SELE 99】.银行存款表(ck,dbf)的表结构字段组成如下表:帐号(zh,C,15,NULL)存入日期(crrq,T,8)存期(cq,N,2,0)金额(je,Y,8)要求写出创建ck表的SQL语句【CREATE TABLE ck(zh C(15) NULL,crrq T,cq N(2),je Y)】,增加一条空记录的命令是【APPEND BLANK】.(请将命令完整拼写,不要缩写)执行下列命令后:SET EXCLUSIVE OFFUSE JSUSE XS EXCLUSIVE IN 0JS表的打开方式是【共享】,XS表的打开方式是【独占】.设在1号工作区中打开XS表,若要求在2号工作区中再次打开XS表且将其别名设置为xuesheng, 则可使用命令:USE xs 【ALIA】 xuesheng IN 2 AGAIN.在两个数据库表创建永久性关系后,就可以创建它们之间的参照完整性规则.在VFP中,参照完整性规则分为更新规则、【删除】规则和插入规则."参照完整性"是用来控制数据的完整性,尤其是控制数据库中相关表之间的主关键字和【外部关键字】之间数据一致性的规则.用INSERT-SQL命令在xS(学生)表中添加如下表格所示的记录,可使用命令:INSERT INTO xs(xh,jl,csrq) 【Values】 ("E9999","获得三好学生称号",{^1988/07/14})利用DBGETPROP0'函数,可以获取当前数据库的属性设置信息,或当前数据库中的表、表字段或视图的属性设置信息.例如,要获取当前数据库SJK中XS表的xb字段的默认值,可以使用函数DBGETPROP("Xs.xb","Field","【defaultvalue】").如果依次执行下列命令,则XS表在两个工作区中同时打开,其别名分别为【XS】和【W20】. CLOSE TABLES ALLUSE XSSELE 20USE XS AGAIN希望使某数据库表的某字符型字段仅能接受6个"0"~"9"之间的十个字符应在该数据库表的字段的【输入掩码(INPUTMASK)】属性中设定其值为"" (注:写中文,英文都可以).某表含有两个字段:XX(字符型)和YY(日期型).若要创建一个索引,要求先根据XX字段排序,xx字段相同时再根据YY字段排序,则索引表达式可以设置为xx+【DTOC(yy,1)】一个远程数据源通常是一个远程数据库服务器或文件,并且已为它在本地安装了ODBC驱动程序并设置了ODBC数据源名称.在VFP中,建立远程数据连接的主要目的是创建【远程视图】 .创建一个名为db01数据库的命令是【CREATE DATABASE db01】.利用DBGETPROP()函数可以返回当前数据库的属性,或者返回当前数据库中表、表的字段或视图属性,例如,函数DBGETPROP("xs.xh","【Field】","DefaultValue")可以返回xs表xh字段的默认值属性.某公司实现人性化管理,在每个员工生日的当日会赠送礼物.若其人事档案表中包含一个出生日期字段(字段名为 csrq ,类型为日期型),则根据"月日"(不包含"年份")创建索引时,其索引表达式可以为【right】(DTOC( csrq,1),4).如果有一张数据库表teacher,包含四个字段(gh c(6), name c(8), born d, workdate d),分别为工号、姓名、出生日期和工作日期.很显然,工作日期应大于出生日期,则应设定【记录有效性】规则.如果用户移动了数据库文件或与数据库关联的表文件,则这些文件的相对路径改变,从而可能会破坏用于关联数据库和表的双向链接.使用命令OPEN DATABASE 【VALI】打开数据库JXGL时, 系统将检查数据库的有效性.完善下面的命令,实现向 xs 表中追加一条新的记录.INSERT INTO xs (xh,xm,xb,ximing) 【VALUES】 ('' ,' 李林','')在设置表之间的参照完整性规则时,系统给定的更新和删除规则有3个,即级联,限制和忽略,而插入规则只有两个,即【限制和忽略】 .数据库表的触发器(Trigger)是在对表的记录进行操作时被触发的检验规则.在VFP中,触发器分为3种类型,即更新触发器、删除触发器和【插入】触发器.利用COPY命令可以将当前工作区中的表复制成Microsoft Excel 文件.若当前工作区中已打开XS表,则用命令COPY TO xyz 【xls】 ,可以将XS表复制成Excel 文件 xyz.xls.在 VFP 中创建一个新的数据库后,系统会生成3个文件,其文件扩展名分别为【.dbc】(数据库户文件), .dct (数据库备注文件)和 .dcx (数据库索引文件).希望所有表在打开时为共享方式,其SET 命令为【SET EXCL off】.利用DBGETPROP()函数,可以返回当前数据库的属性,也可以返回当前数据库中表,表的子段或视图的有关属性.例如,要得到JS表的记录级有效性规则表达式,可以使用函数:DBGETPROP("js","【TABLE】","RuleExpression")使用SET FILTER TO 命令所设置的过滤器, 对DELETE-SQL命令、UPDATE-SQL命令及【SELECT-SQL】命令不起作用.设在1号工作区中打开xS表,若要求在2号工作区中再次打开xs表且别名设置为XUESHENG, 则可使用命令:USE XS【Alias】xuesheng IN 2 AGAIN二、单项选择共45题(共计45分)数据库表的字段格式用于指定字段显示时的格式,包括在浏览窗口、表单或报表中显示时的大小写和样式,在说明格式时,格式可以使用一些字母(或字母的组合)来表示下列有关字段格式的格式字符的叙述中,不正确的是(C).A:格式字符A表示只允许字母和汉字,不允许使用空格和标点符号B:格式字符D用于控制日期和显示格式C:格式字符T用于控制时间的显示格式D:格式字符!将字母转换为大写字母若要将当前工作区中打开的表文件 GZB.DBF复制到 GZB1.DBF 文件,则可以使用命令 ( D ).A:COPY GZB.DBF GZB1.DBF B:COPY TO GZB1 RESTC:COPY TO GZB1 STRU D:COPY TO GZB1数据库不包含以下那一个对象(B).A:数据库表 B:查询 C:视图 D:存储过程用表设计器创建一个自由表时,不能实现的操作是(D).A:设置某字段可以接受NULL值 B:设置表中某字段的类型为通用型C:设置表的索引 D:设置表中某字段的默认值设有一个教师js,含有一个字符型字段xb(表示教师的性别).下列命令中语法正确的是(A). A:DELETE FROM js WHERE xb='男' B:DELETE TABLE js WHERE xb='男'C:DELETE FROM js FOR xb='男' D:DELETE TABLE js FOR xb='男'有如下一段程序:CLOSE TABLES ALLUSE XSSELE 3USE JSUSE KC IN 0BROW上述程序执行后,浏览窗口中显示的表及当前工作区号分别是( C ).A:KC 、 2 B:KC 、 3 C:JS 、 3 D:JS 、 2VFP创建一个数据库之后在缺省目录中生成三个文件为(D).A:dbc,dbx,dct B:dbf,fpt,cdxC:dbc,dbf,dcx D:dbc,dcx,dctXS(学生)表中有XM(姓名,字符型)和XB(性别,字符型)等字段.如果要将所有男生记录的姓名字段值清空,则可以使用命令( B ).A:UPDATE xs SET xm="" WHERE "xb"=男B:UPDATE xs SET xm=SPACE(0) WHERE xb="男"C:UPDATE xs SET xm=SPACE(0) FOR xb="男"D:UPDATE xs SET xm="" FOR xb="男"在创建表索引时,索引表达式可以包含表的一个或多个字段.在下列字段类型中.不能直接选作索引表达式的是(D ).A:货币型 B:日期时间型 C:逻辑型 D:备注型在下列关于数据库表和临时表(Cursor)的叙述中,正确的是( C ).A:数据库表随着其所在的数据库的打开而打开,也随着其所在的数据库的关闭而关闭B:基于数据库表创建的临时表随着数据库的打开而打开,也随着数据库的关闭而关闭C:用BROWSE命令可浏览数据库表,也可浏览临时表D:临时表被关闭后,可使用USE命令再次将其打开在Visual FoxPro系统中,数据库表的字段默认值保存在( B ).A:项目文件中 B:数据库文件中 C:数据库表文件中 D:数据库表的备注文件中设某数据库中的学生表(XS.DBF)已在2号工作区中打开,且当前工作区为1号工作区,则下列命令中不能将该XS表关闭的是( D ).A:CLOSE TABLE B:USE IN 2 C:CLOSE DATABASE ALL D:USE打开一个无记录的空表,若未作任何与记录指针移动相关的操作,则执行命令"?RECNO(),BOF(),EOF()"后屏幕上应显示( C ).A:0、.T.和.T. B:0、.T.和.R C:1、.T.和.T. D:1、.T.和.R希望在命令窗口中修改一张已存在的表,则(A).A:先将表打开,再使用modi stru命令 B:先将表打开,再使用alter table命令C:可以不打开表,使用modi stru命令 D:以上方法都可以触发器上绑定在表上的表达式,当表中的记录被指定的操作命令修改时,触发器被激活 Visual FoxPro提供的触发器不包括(B).A:删除触发器 B:级联触发器 C:更新触发器 D:插入触发器数据库表的主索引(及候选索引)的设置可以实现( B ).A:域完整性 B:实体完整性 C:参照完整性 D:用户自定义完整性函数SELECT(1)的返回值是( D ).A:当前工作区号 B:当前工作区的下一个工作区号C:当前未被使用的最小工作区号 D:当前未被使用的最大工作区号对于自由表来说,不可以创建的索引类型是( A ).A:主索引 B:候选索引 C:唯一索引 D:普通索引若为xs.dbf表添加一个宽度为6的字符型字段mc,以下命令中正确的是(A).A:alter table xs add mc c(6)B:alter xs.dbf add column mc c(6)C:alter xs.dbf add mc c(6)D:alter table xs add field mc c(6)在创建索引时,索引表达式可以包含一个或多个表字段.在下列数据类型的字段中,不能作为索引索引表达式的字段为(A).A:日期型 B:字符型 C:备注型 D:数值型在VFP中,如果指定两个表的参照完整性的删除规则为"级联",则当删除父表中的记录时,( C )A:系统自动备份父表中被删除记录到一个新表中B:若子表中有相关记录,则禁止删除父表中记录C:自动删除子表中所有相关记录D:不作参照完整性检查,删除父表记录与子表无关依次执行下列命令后,浏览窗口中显示的表的别名及当前工作区号分别是(A).CLOSE TABLES ALLUSE jsSELECT 5USE js AGAINSELECT OUSE js AGAINBROWSEA:B、2 B:TS、2 C:B、5 D:E、2表(table)是存储数据的容器.在下列有关VFP表的叙述中,错误的是( D ).A:每个表最多只能包含200多个字段 B:新建一个表后,一般会生成1~3个文件C:自由表与数据库表在数据存储功能上是相同的,但在数据管理与控制功能上有差别D:自由表添加到数据库中变成数据库表,而数据库表移出数据库则变成自由表数据库( database )是许多相关的数据库表及其关系等对象的集合.在下列有关VFP 数据库的叙述中,错误的是( B ).A:可用命令新建数据库B:从项目管理器中可以看出,数据库包含表、视图、查询、连接和存储过程C:创建数据库表之间的永久性关系,一般是在数据库设计器中进行D:数据库表之间创建"一对多"永久性关系时,主表必须用主索引或候选索引用户创建一个数据库并保存在软盘上,则在该软盘上会生成(C)个相应的文件.A:1 B:2 C:3 D:4在下列有关数据库及表的叙述中,错误的是( B ).A:一个项目中可以包含多个数据库文件,且一个数据库文件也可以包含在多个项目中B:一个表可以属于两个或两个以上的数据库C:创建一个数据库后,通常在外部存储器中生成三个文件D:表与表之间的永久性关系只能基于索引来创建在VFP中,对于数据库表来说,如果将其移出数据库(变成自由表),则该表原设置或创建的(A )仍然有效.A:候选索引 B:长表名 C:记录有效性规则 D:触发器若为js.dbf表删除一个年龄字段(nl n(3)),以下命令中正确的是(D).A:ALTER TABLE js ADD nl n(3) B:ALTER TABLE js DROP nl n(3)C:ALTER TABLE js DELETE nl D:ALTER TABLE js DROP nlvisual foxpro系统中,对数据库表设置参照完整性过程时,"更新规则"选择了"限制"选项后,则(B).A:在更新父表的关键字的值时,新的关键字值更新子表中的所有相关记录B:在更新父表的关键字的值时,若子表中有相关记录则禁止更新C:在更新父表的关键字的值时,若子表中有相关记录则允许更新D:允许更新父表的任何字段,不论字表中是否有相关记录下列关于数据库、表和视图操作的叙述中,错误的是(C).A:关闭一个数据库,将自动关闭其所有已打开的数据库表B:打开一个数据库表,将自动打开其所有对应的数据库C:关闭一个视图所对应的基表,将自动关闭该视图D:关闭一个视图,不会自动关闭其所对应的基表表( table )是存储数据的容器.在下列有关 VFP 表的叙述中,错误的是( C ) .A:系统默认的表文件扩展名为.dbfB:利用表设计器创建表结构时,系统默认的字符型字段宽度为 10C:自由表的索引功能与数据库表有区别D:表文件名在命名时只要遵循操作系统的规定 ,VFP 本身无任何新的限定设有一个表rsda,该表有一个名为zc的字段,如果要将字段名zc改为zhicheng,可以使用下列命令(A).A:ALTER TABLE rsda RENAME COLUMN zc TO zhichengB:ALTER TABLE rsda RENAME FIELD zc TO zhichengC:ALTER TABLE rsda COLUMN RENAME zc TO zhichengD:ALTER TABLE rsda FIELD zc RENAME TO zhicheng函数SELECT(0)的返回值为(A).A:当前工作区 B:当前未被使用的最小工作区号C:当前未被使用的最大工作区号 D:当前已被使用的最小工作区号下列命令中,(A)可以将XS表的XH字段的标题属性设置为"学号".A:DBSETPROP("XS.XH","FIELD","caption","学号")B:DBSETPROP("XS.XH","FIELD","caption"="学号")C:DBSETPROP("XS.XH","caption","学号")D:DBSETPROP("XS.XH","TABLE","caption"="学号")在Visual FoxPro系统中,下列关于数据库和数据库表的叙述错误的是( D).A:数据库是一个容器,它是许多相关的数据库表及其关系的集合B:数据库表与数据库之间的相关性是通过数据库表文件与数据库文件之间的双向链接实现的C:数据库表随着其所在的数据库的关闭而关闭,但不随着其所在的数据库的打开而打开D:一个数据库表可以属于多个数据库学生表(XS.DBF)的表结构为:学号(XH,C,8),姓名(XM,C,8),性别(XB,C,2),班级(BJ,C,6),用INSERT命令向XS表添加一条新记录,记录内容为:XH XM XB BJ10 王青男下列命令中正确的是(A).A:INSERT INTO XS VALUES("10","王青","男","")B:INSERT TO XS VALUES("10","王青","男","")C:INSERT INTO XS(XH,XM,XB,BJ) VALUES(10,王青,男,)D:INSERT TO XS(XH,XM,XB,BJ) VALUES("10","王青","男","")如果要创建一个仅包含一个字段的表RB,其字段名为RB,字段类型为字符型,字段宽度为20,则可以用下列命令(B)创建.A:CREATE TABLE rb rb C(20) B:CREATE TABLE rb (rb C(20))C:CREATE TABLE rb FIELD rb C(20) D:CREATE TABLE rb FIELD (rb C(20))在下列有关 VFP 表索引的叙述中,错误的( C ).A:通过创建表的索引,不仅可以对记录数据进行排序,而且可以实现记录的筛选B:对于数据库表来说,可以创建 VFP 系统支持的所有类型的索引C:在表打开时,系统会自动地将默认的第一个索引作为主控索引D:表的唯一索引并不能控制字段数据输入时的重复数据库表可以设置字段有效性规则,字段有效性规则属于( D ).A:实体完整性范畴 B:参照完整性范畴 C:数据一致性范畴 D:域完整性范畴首先执行CLOSE TABLES ALL命令,然后执行( B )命令,可逻辑删除JS(教师)中年龄超过60岁的所有记录(注:csrq为日期型字段,含义为出生日期).A:DELETE FOR YEAR(DATA()-YEAR(csrq))> 60B:DELETE FROM js WHERE YEAR(DATA())-YEAR(csrq)> 60C:DELETE FROM js FOR YEAR(DATA()-YEAR(csrq))> 60D:DELETE FROM js WHILE YEAR(DATA()-YEAR(csrq))> 60数据库表移出数据后,变成自由表,该表的(D)仍然有效.A:字段的有效性规则 B:字段的默认值C:表的长表名 D:结构复合索引文件中的侯选索引在下列有关数据库及表的叙述中,错误的是( A ).A:在打开数据库表时,相关的数据库不会自动地被打开、也不需要被打开B:使用CLOSE DATABASE ALL命令关闭数据库时,将关闭所有的已打开的表C:一个表可以在多个工作区中被打开D:利用项目管理器中的"移去"操作删除数据库时,数据库中的所有表均转换成自由表设有一个名为test的表中有两个日期型字段:参加工作日期(字段名为cjgzrq)和出生日期(字段名为csrq) .现要创建一个索引,要求先根据参加工作日期排序,参加工作日期相同时根据出生日期排序,则索引表达式应为(C).A:cjgzrq+csrq B:DTOC(cjgzrq)+DTOC(csrq)C:DTOC(cjgzrq,1)+DTOC(csrq,1) D:cjgzrq-csrqJS(教师)表中有XG(性格,备注型)等字段,使用( )命令可以直接浏览/输出所有记录的XG字段的具体内容(即备注中的信息).A:USE jsLIST OFF xgB:SELECT xg FROM jsC:USE jsBROWSE FIELD xgD:USE jsxg。

vfp第三章历年等级考试题目(笔试)

2009年秋季:1.对于自由表来说, 不可以创建的索引类型是( )A.主索引B.候选索引C.唯一索引D.普通索引2. 在下列有关数据库及表的叙述中,错误的是( )A.一个项目中可以包含多个数据库文件,且一个数据库文件也可以包含在多个项目中B.一个表可以属于两个或两个以上的数据库C.创建一个数据库后,通常在外部存储器中生成三个文件D.表与表之间的永久性关系只能基于索引来创建3. 在VFP中,除了自由表的字段名、表的索引标识名至多只能有个字符外,其余名称的长度可以是1-128个字符。

(提示:课本41页)4. VFP支持空值(用NULL或.NULL.表示),从而简化了对未知数据的处理。

在表的浏览窗口中,若要以交互方式给某字段输入空值,可以按组合键。

(提示:课本63页)5. 一个远程数据源通常是一个远程数据库服务器或文件,并且已为它在本地安装了0DBC驱动程序并设置了ODBC数据源名称。

在VFP中,建立远程数据连接的主要目的是创建(提示:课本72页)6. 如果用户移动了数据库文件或与数据库关联的表文件,则这些文件的相对路径改变,从而可能会破坏用于关联数据库和表的双向链接。

使用命令OPEN DATABASE打开数据库JXGL时,系统将检查数据库的有效性。

(提示:课本74页)7. 与自由表相比,数据库表可以设置许多字段属性和表属性。

其中,表属性主要有表名(即长表名)、表注释、记录有效性和等。

8. 如果一个表同时在多个工作区中打开且均未指定别名,则在第一次打开的工作区别名与表名相同,其他工作区中用以及WII~W32747中的一个表示。

(提示:课本85页)9. 利用UPDATE-SQL命令可以批量地修改记录的字段值。

例如,某档案表(表名为DA)中有一个数值型字段(字段名为NL),则使用命令UPDATE DA NL=NL+1 WHERE NL<100可以将所有NL字段值小于100的记录的NL字段值增加1。

10. 利用COPY TO命令可以将当前工作区中表的全部或部分数据复制到其他表文件或者其他类型的文件中。

vfp第3章(理论)数据库·表


二、数据表
⑹显示表记录 LIST|DISPLAY [<范围>] [[FIELDS]<字段名表>][FOR <条件>][OFF] <范围>:ALL、NEXT <n>、RECORD <n>、REST OFF:不显示记录号。 注意:省略范围和条件,LIST默认ALL,DISPLAY默 认当前记录。

二、数据表
⑾复制表结构 COPY STRUCTURE TO <数据表文件名> [FIELDS <字段名表>] ⑿复制表记录 COPY TO <数据表文件名> [FIELDS <字段名表>] [<范围>] [FOR <条件>] 注意:省略范围和条件,默认ALL。

二、数据表
⑸记录指针定位
首标记 首记录
当前记录 尾记录 尾标记
一个表被打开时,记录指针自动指向首记录。 ①直接定位 GO|GOTO <记录号>|TOP|BOTTOM ②相对定位 SKIP [<数值表达式>] 注意:SKIP 等价于 SKIP 1

二、数据表
⒁将表的当前记录复制到数组 SCATTER [FIELDS<字段名表>] TO <数组名> ⒂将数组中的数据复制到表的当前记录 GATHER FROM < ⒃向数据库中添加自由表 ADD TABLE <表名> ⒄从数据库中移去或删除表 REMOVE TABLE <表名> [DELETE]

二、数据表
⒀删除表记录 ①逻辑删除(添加删除标记) DELETE [范围] [FOR <条件>] 注意:省略范围和条件,默认当前记录。 ②恢复逻辑删除(去掉删除标记) RECALL [<范围>][FOR <条件>] 注意:省略范围和条件,默认当前记录。 ③彻底删除添加删除标记的记录 PACK ④彻底删除所有记录 ZAP

VFP第三章表的创建和使用3.4-3.5 索引与常用函数

1. 索引(Index)索引是根据索引关键字(即索引表达式)的值进行逻辑排序的一组指针。

索引提供对数据的快速访问,可以对表的各行强制实现唯一性。

索引文件由索引序号和对应于索引序号的表的记录号(亦称为指针)组成。

2. 索引关键字(Index Key)索引关键字是用来作为建立索引的依据。

它通常是一个字段或字段表达式。

例如,学生表(XS.DBF)中有8个记录,输入时的物理顺序如下:记录号XH XM XB ZYDH XIMING1 950101 李林男102001 信息管理系2 950106 高山男102001 信息管理系3 950105 陆海涛男102001 信息管理系4 950104 柳宝女102001 信息管理系5 950102 李枫女102001 信息管理系6 950103 蓝军男102001 信息管理系7 960201 林一风男109003 计算机科学系8 960203 高平男109003 计算机科学系现以XH字段作为索引关键字,按升序建立索引,索引文件的情况如下:P83Index # Table Record # XH1 1 9501012 5 9501023 6 9501034 4 9501045 3 9501056 2 9501067 7 9602018 8 960203第一列是索引号,第二列是对应于表中的记录号。

当该索引起作用时,浏览学生表时,记录按学号的顺序排列。

索引表达式的构成2-1索引表达式的构成与一般表达式的构成一样,只是索引表达式一般与表的字段有关。

索引表达式可以由单个字段构成,也可以是多个字段的组合。

需要注意的是,不能基于备注型字段和通用型字段建立索引。

索引表达式的构成2-2对于基于多个字段的索引表达式,可以按多个字段的值进行排序。

用多个字段建立索引表达式时,要注意以下几点。

⒈字符型表达式⒉算术表达式⒊不同类型字段构成一个表达式⒈字符型表达式⒈表达式中字段的前后顺序将影响索引的结果。

VFP3)

29、使用TOTAL命令生成的分类汇总表文件的扩展名是
A、DBT B、DBF C、BAS D、BAK
30、设有表文件MS.DBF中有以下记录: Record# 姓名 性别 籍贯 团员 1 冯小平 男 湖北 .T. 2 张玉清 女 江西 .T. 3 莫小宏 男 南京 .F. 4 王大荃 男 河南 .T. 5 蒋红刚 男 新疆 .T. 若该库已被打开,当先后执行以下两条命令后: G0 2 LOCATE NEXT 3 FOR 性别='男'.AND.团员其结果是()
17、一表中有6条记录,执行go 3和insert before命令后插入了一条新记录,则原来的第3条记录变为
A、第2条记录 B、第3条记录 C、记录号不变 D、第4条记录
18、不论索引是否生效,定位到相同记录上的命令是
A、GO TOP B、GO BOTTOM C、GO 6 D、SKIP
27、表文件中有数学,英语,计算机和总分四个数值型字段,要将当前记录的三科成绩汇总后存入总分字段中,应使用命令
A、TOTAL 数学+英语+计算机 TO 总分 B、REPLACE 总分 WITH 数学+英语+计算机 C、SUM 数学,英语,计算机 TO 总分 D、REPLACE ALL 数学+英语+计算机 WITH 总分
39、有下列语句序列: store 80 to cj @ 10,20 say cj 执行以上语句序列后,最后一条命令的显示结果是
A、10 B、cj C、80 D、20
40、使用wait命令能够输入()数据。
A、字符型 B、数值型 C、货币型 D、日期型
A、find 1000-350 B、seek 1000-350 C、find 350 D、seek 350
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

13Βιβλιοθήκη 第 三 章 排 序 与 索 引
(2) 记录以部门升序排列,部门相同时则按价格升序 排列,索引标识为普通索引型。 index on 部门+str(价格,9,2) tag bmjg list (3) 记录以部门升序排列,部门相同时则按价格降 序排列,索引标识为候选索引型。 index on val(部门)-价格/1000000 tag bmjg1 candidate list 上述两例未涉及主索引,原因是这种索引只能在 数据库表中建立,后叙。 上述例子建立的索引可打开表设计器来查看:选 定显示菜单的表设计器命令,然后选定索引选项 卡,即出现了如书中图3.1所示的对话框,其中显 示了已建的3个索引。
第 三 章 排 序 与 索 引
索引文件: (如DX.DBF按费用升序索引) 关键字值(升序或降序排列): 记录位置(原文件中) 2763.5 1 2850.0 4 3520.0 2 6204.4 3 (2) 索引的种类 ①按扩展名来分类可分为复合索引(.CDX)与单索引 (IDX) • 复合索引文件: 包含多个索引,每个索引都有一个索引标识,代表 一种记录的逻辑顺序。这种索引文件总以压缩方 式存储,以便少占存储空间。 6
该命令默认建立普通索引型索引文件;UNIQUE表 示建立唯一索引型索引文件(例3-2(2)); CANDIDATE 表示索引文件是候选索引型,但需 与TAG 子句同时使用。 • COMPACT 选项用来指定单索引文件为压缩的 • OF 选项的<复合索引文件名>用于指定非结构复合 索引文件的名字,缺省该选项表示建立结构复合索 引。 • 记录逻辑顺序默认为升序,也可用ASCENDING 选 项表示升序。DESCENDING选项表示 • ADDITIVE 表示建立本索引文件时并不关闭先前打 开的索引文件。 12 ④ 举例:
7
第 三 章 排 序 与 索 引
由于非结构复合索引文件不常使用,以下仅讨论结 构复合索引文件和单索引文件。 ②按功能来分类 索引除了具有建立记录逻辑顺序的作用外,还能 控制是否允许相同的索引关键字值在不同记录中 重复出现,或允许在永久关系中建立参照完整性, 下表列出了4种索引功能类型。
8
表3.1 索引功能分类表
20
第 三 章 排 序 与 索 引
• <单索引文件名>指定该单索引文件为主控索引文 件。 • <索引标识>指定该索引标识为主控索引。 • SET ORDER TO 或 SET ORDER TO 0 命令取 消主控索引文件及主控索引,表中记录将按物理顺 序输出。 ③ 举例: [例3-4]根据例3-2、例3-3建立的索引改变主控索引。 USE sb INDEX mcidx,jgidx LIST &&记录按名称升序排列 SET ORDER TO TAG jg LIST &&记录按价格降序排列
17
第 三 章 排 序 与 索 引
(1) 打开和关闭索引文件 ① 若当前仅有一个索引文件被打开,它就是主控索 引文件。索引刚建立时,索引文件呈打开状态且成 为主控索引文件。若当前打开了多个索引文件,可 通过SET order to 命令来确定主控索引文件。 ② 除结构复合索引文件能随着表的打开而打开以外, 其它索引文件必须用命令显式打开。 ③ 表关闭时索引文件就随之关闭。 ④ 命令格式: SET INDEX TO [<索引文件表>][ADDITIVE] 功能:打开当前表的一个或多个索引文件并确定主 18 控索引文件。
第 三 章 排 序 与 索 引
(2) 确定主控索引 复合索引文件中当前建立的索引标识自动成为主控 索引,表重新打开时尽管索引文件自动打开,但还须 确定主控索引。下面的命令用来确定主控索引,也 能确定主控索引文件。 ① 命令格式: SET ORDER TO [<数值表达式> |<单索引文件名> | [TAG] <索引标识>[ASCENDING|DESCENDIN]] ②说明: • <数值表达式>表示已打开索引的序号,该序号用来指 定主控索引文件或主控索引。系统先为单索引文件 编号,故结构复合索引文件的序号比单索引文件大。
索引分 类 关键字重复值 说 明 创建修改命令 索引 个数
第 三 章 排 序 与 索 引
普通 索引
允许
允许,但输出 无重复值
可作为一多永久 关系中的“多方”
唯一 索引 候选 索引
为以前版本兼容 而设置
可用作主关键字,可 用于在永久关系中 建立参照完整性
INDEX
INDEX CREATE TABLE ALTER TABLE
第 三 章 排 序 与 索 引
说明: • <索引文件表>中第一个索引文件为主控索引文件。 该命令常用于打开单索引文件,例如, USE sb SET INDEX TO jgidx,mcidx • 若缺省所有项,即仅用SET INDEX TO,将关闭当前工 作区中除结构复合索引文件外的所有索引文件,同 时取消主控索引。 • 若缺省ADDITIVE 选项,则在用本命令打开索引文件 时,除结构复合索引文件外的索引文件均被关闭 • 命令“ USE <文件名> INDEX <索引文件表> ”也可 在打开表的同时打开索引文件,并确定<索引文件表 19 >中的第一个索引文件为主控索引文件。
主索引
不允许, 输入重 复值将 禁止存 盘
允 许 多 个
仅 可 一 个 9
仅适应数据库表,可用于 CREATE 在永久关系中建立参照 TABLE ALTER TABLE 完整性
第 三 章 排 序 与 索 引
说明: (1) 主关键字是能唯一标识记录的索引关键字,它 应能排除关键字重复值.例如将姓名字段作为索引 关键字,若出现同名同姓人员,也即出现了关键字 重复值,这样的关键字就不是主关键字。 (2) 唯一索引型索引文件,对于关键字值相同的记 录,索引中只列入其中的第一个记录。 表中提到的数据库表、永久关系、参照完性概念 将在以后章节介绍。 1. 索引的建立 可利用表设计器建立,现先从命令着手介绍 (1) 命令方式:
第 三 章 排 序 与 索 引
3.1.2 索引 1.索引的概念 (1)记录的物理顺序与逻辑顺序 文件中的记录一般按其磁盘存储顺序输出,这种顺 序称为物理顺序.执行排序后,在文件中形成了新 的物理顺序。 记录按关键字值升序或降序排列,每个值对应原文 件的一个记录号这样便确定了记录的逻辑顺序。 文件索引后就确定了记录的逻辑顺序。 虽然排序与索引都以增加一个文件为代价,但索引 文件只包括关键字和记录号两个字段,比排序文件 要小得多,且索引起作用后,增删或修改表的记录 5 时索引文件会自动更新,故索引比排序应用更广。
3
第 三 章 排 序 与 索 引
(2)可在ON子句中使用多个字段名实现多重排序, 即先按主排序字段<字段名1>排序,对于字段值 相同的记录再按第二排序字段<字段名2>排序,以 此类推。 例如:SOTR TO MCJG ON 名称,价格 (3)缺省<范围>、FOR<条件1>和WHILE<条件2>等 子句表示对所有记录排序。 (4) FIELDS 子句指定新表应包含的字段,默认包含 原表所有字段。 [例3-1] 对SB.DBF分别按以下要求排序: (1)将非主要设备按启用日期降序排列,并要求新表 只包含编号、名称、启用日期等3 个字段。 (2) 将主要设备按部门降序排序,当部门相同时则 按价格升序排序。P70 4
10
第 三 章 排 序 与 索 引
① 命令格式: INDEX ON<索引关键字>TO<单索引文件名> | TAG<索引标识名>[OF<复合索引文件名>] [FOR<条件>][COMPACT][ASCE | DESC] [UNIQUE | CANDIDATE][ADDITIVE] 唯一 候选索引
(但需与TAG子句同时使用)
第 三 章 排 序 与 索 引
复合索引文件又有结构的和非结构的两种,若定义 复合索引文件时用户为它取了名字,则其为非结构 的,否则为结构的。 打开非结构复合索引文件需使用SET INDEX 或 USE命令中的INDEX子句。 结构复合索引文件的主名与表的主名相同,它随表 的打开而打开,在添加、更改或删除记录时还会自 动维护,在各类索引文件中,选用它最为省事。 • 单索引文件: 只包含一个索引,这种类型是为了与FoxBASE+开 发的应用程序兼容而保留的。但若将它定义为压 缩的,将不能被FoxBASE+使用。
16
第 三 章 排 序 与 索 引
3. 索引的使用 要利用索引查询,必须同时打开表与索引文件。 一个表可以打开多个索引文件, 同一个复合索引 文件中也可能包含多个索引标识,但任何时候只有 一个索引文件能起作用,在复合索引文件中也只有 一个索引标识能起作用。当前起作用的索引文件 称为主控索引文件,当前起作用的索引标识称为主 控索引。也就是说,实现查询必须满足以下的条件, 即:打开表;打开索引文件;确定主控索引文件;对于 复合索引文件还必须确定主控索引。
15
第 三 章 排 序 与 索 引
索引选项卡修改索引的方法:单击索引名所在行 →单击表达式右侧的对话按扭,即出现表达式生 成器对话框(参阅图3.2) →在字段列表框中双击所 需字段,在数学组合框中选定运算符号,表达式列 表框中就显示出所需的表达式→选定“确定”按 扭,表达式修改结束。具体例子如书图3.2所示。 用户也可在表达式列表框中或索引选项卡表达式 列的文本框中直接键入表达式。
14
第 三 章 排 序 与 索 引
(2) 用表设计器建立或修改索引: 有两种方法。 ① 在字段选项卡索引列的组合框中选定向上箭头为 升序索引,向下箭头为降序索引,该行字段为索引 关键字。 ② 使用索引选项卡。该选项卡中可键入关键字表达 式,还可选择索引类型,字段选项卡中建立的索 引也能在此选项卡显示出来。索引选项卡中索引 名列下部的空白框用来直接键入新索引;插入按 扭用来在当前行前插入一个空行,以供键入新索 引;删除按扭则用于删除选定的索引。
相关文档
最新文档