版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章第五章 排序、查询和多表操作排序、查询和多表操作5.1 5.1 物物 理理 排排 序序 物理排序:根据表的某些字段重排记录。排序后将产生物理排序:根据表的某些字段重排记录。排序后将产生一个新一个新 表,其记录按新的顺序排列,但原文件不变表,其记录按新的顺序排列,但原文件不变命令命令:SORT TO :SORT TO ON ON /A /D /C ,1 /A /D /C , /A /D /C /A /D /C FOR FOR 1 FIEL FIEL 例例5-15-1:对表文件:对表文件stud.dbfstud.dbf按入校总分降序排列,生成新表按入校总分降序排列,生成新表zf.dbfzf.
2、dbf,且新表中只包含学号、姓名、入校总分,且新表中只包含学号、姓名、入校总分3 3个字段个字段 use stud use stud brow brow sort to zf on sort to zf on 入校总分入校总分/d fields /d fields 学号学号, ,姓名姓名, ,入校总入校总分分 use zf use zf brow brow 阐明:阐明:1 1ONON子句的字段名表示排序字段,记录可子句的字段名表示排序字段,记录可以随字段以随字段 值的增大值的增大(升序升序)或减小或减小(降序降序)来排序。选项来排序。选项/A和和/D分别用来指定分别用来指定升序或降序,默认按升
3、序排序。选项升序或降序,默认按升序排序。选项/C适用于适用于c型数据,表示不型数据,表示不区分字段值中字母大小写,即把同一字母的大写与小写看成一样区分字段值中字母大小写,即把同一字母的大写与小写看成一样 2如果在如果在ON子句中使用多个字段名表示多重排序,即先子句中使用多个字段名表示多重排序,即先按主排序字段字段名按主排序字段字段名1排序,对于字段值相同的记录再按第排序,对于字段值相同的记录再按第二排序字段字段名二排序字段字段名2排序,依此类推排序,依此类推 3缺省范围、缺省范围、FOR条件条件1和和WHILE条件条件2等等子句表示对所有记录排序子句表示对所有记录排序 4FIELDS子句的字段
4、名表指定新表应包含的字段,子句的字段名表指定新表应包含的字段,若缺省默认包含原表所有字段若缺省默认包含原表所有字段例例5-2:对表:对表stud按专业号降序排序,当专业号相同时则按性别降序按专业号降序排序,当专业号相同时则按性别降序排序,生成新表排序,生成新表zy.dbfuse studsort to zy on 专业号专业号/d,性别性别/duse zybrow5.2 5.2 索索 引引索引的概念索引的概念 索引与排序的区别索引与排序的区别 表中的记录在磁盘中按实际排列顺序存储,这种表中的记录在磁盘中按实际排列顺序存储,这种顺序称为物理顺序。执行排序后,在新表中形成了新的物理顺顺序称为物理顺
5、序。执行排序后,在新表中形成了新的物理顺序。按照某个关键字与记录号之间建立的一种逻辑上的顺序,序。按照某个关键字与记录号之间建立的一种逻辑上的顺序,称为逻辑顺序。索引就是按索引关键字建立记录的逻辑顺序,称为逻辑顺序。索引就是按索引关键字建立记录的逻辑顺序,并生成一个索引文件。在索引文件中只包含索引关键字和记录并生成一个索引文件。在索引文件中只包含索引关键字和记录号两个字段,每个关键字值对应表文件的一个记录号,因此索号两个字段,每个关键字值对应表文件的一个记录号,因此索引能确定记录的逻辑顺序。引能确定记录的逻辑顺序。排序生成的新文件排序生成的新文件索引文件索引文件l索引文件的分类索引文件的分类l
6、 (1)单索引文件单索引文件l 它是包含一个索引项的索引文件。单索引文件扩它是包含一个索引项的索引文件。单索引文件扩展名为展名为.IDX,这种类型是为了与,这种类型是为了与FOXBASE开发的应用程开发的应用程序兼容而设置的序兼容而设置的l (2)复合索引文件复合索引文件l 它是包含多个索引项的索引文件。每个索引项它是包含多个索引项的索引文件。每个索引项都有一个索引标识,代表一种记录逻辑顺序。复合索引文都有一个索引标识,代表一种记录逻辑顺序。复合索引文件又可分为结构的和非结构的两种,若定义复合索引文件件又可分为结构的和非结构的两种,若定义复合索引文件时为它显式取了名字,则其为非结构的,否则为结
7、构的。时为它显式取了名字,则其为非结构的,否则为结构的。结构复合索引文件与表主名相同,随表打开而打开,推荐结构复合索引文件与表主名相同,随表打开而打开,推荐使用结构复合索引文件。复合索引文件的扩展名为使用结构复合索引文件。复合索引文件的扩展名为.CDX索引的建立索引的建立 INDEX ON索引关键字索引关键字 TO 单索引文件名单索引文件名 | TAG 索引标识索引标识OF复合索引文件名复合索引文件名 FOR条条件件 COMPACT ASCENDING |DESCENDING UNIQUE| CANDIDATE ADDITIVE功能:建立索引文件或增加索引标识功能:建立索引文件或增加索引标识阐
8、明:阐明:(1)TO子句适用于建立单索引文件子句适用于建立单索引文件(扩展名为扩展名为.IDX),其,其主主 名由单索引文件名指出。名由单索引文件名指出。 例例5-3:对:对stud按入校总分建立单索引文件按入校总分建立单索引文件 use stud index on 入校总分入校总分 to zf list index on -入校总分入校总分 to zfj list index on 性别性别 to xb unique list (2)UNIQUE表示对于关键字值相同的记录,索引中只列入其中第表示对于关键字值相同的记录,索引中只列入其中第一个记录;一个记录; CANDIDATE只能与只能与TA
9、G联合使用联合使用 (3)TAG子句适用于建立复合索引文件子句适用于建立复合索引文件(扩展名为扩展名为.CDX)及索引标识。及索引标识。OF选项的复合选项的复合 索引文件名用于指定非结构复合索引文件的索引文件名用于指定非结构复合索引文件的名字,缺省该选项表示建立结构复合索引文件,其文件名同表名,名字,缺省该选项表示建立结构复合索引文件,其文件名同表名,随表打开而打开随表打开而打开 (4)索引关键字可用表达式表示。记录逻辑顺序默认为升序,也可索引关键字可用表达式表示。记录逻辑顺序默认为升序,也可用用ASCENDING选项表示升序选项表示升序,DESCENDING选项表示降序选项表示降序 (5)A
10、DDITIVE表示建立本索引文件时并不关闭先前打开的索引文表示建立本索引文件时并不关闭先前打开的索引文件件索引类型索引类型关键字是否允许重复关键字是否允许重复索引个数索引个数普通索引普通索引允许允许允许多个允许多个唯一索引唯一索引建立允许,但输出无重复值建立允许,但输出无重复值候选索引候选索引建立和输出都不允许,输入建立和输出都不允许,输入重复值将禁止存盘重复值将禁止存盘主索引主索引仅可仅可1个个索引功能分类表索引功能分类表索引表达式索引表达式 | 索引关键字索引关键字:索引后,各记录将按索引表达式值排序,数值型数据按数值大小索引后,各记录将按索引表达式值排序,数值型数据按数值大小排序,字符型
11、数据按其排序,字符型数据按其ASCII码值大小排序,日期型数据按日码值大小排序,日期型数据按日期先后排序期先后排序当表达式中含有多个字段时,表达式各项的数据类型必须一致,当表达式中含有多个字段时,表达式各项的数据类型必须一致,若各字段数据类型不一致,一般通过转换函数若各字段数据类型不一致,一般通过转换函数 STR( ) 和和 DTOC( ) 转换成字符型,组合成字符型索引表达式,字符型表转换成字符型,组合成字符型索引表达式,字符型表达式按从左到右的顺序依次排序达式按从左到右的顺序依次排序 例例:索引表达式,索引表达式,STR(入校总分入校总分,3)+ 姓名姓名 +DTOC(出生日期出生日期,1
12、),已转已转换为字符型表达式,排序时先排换为字符型表达式,排序时先排“入校总分入校总分”,入校总分相同,入校总分相同排排“姓名姓名”,姓名再相同排,姓名再相同排“出生日期出生日期” 例例5-4:为表:为表stud建立一个结构复合索引文件,其中包括三个索建立一个结构复合索引文件,其中包括三个索引:引: (1) 以姓名降序排列,为普通索引以姓名降序排列,为普通索引 (2) 以性别升序排列,性别相同时则按入校总分升序排列,以性别升序排列,性别相同时则按入校总分升序排列,为普通索引为普通索引 (3) 以性别升序排列,性别相同时则按出生日期降序排列,以性别升序排列,性别相同时则按出生日期降序排列,为候选
13、索引为候选索引 use stud index on 姓名 tag xm desc listindex on 性别性别+str(入校总分入校总分,3) tag xbzfalistindex on 性别性别+str(date()-出生日期出生日期) tag xbcsd candidatelist索引的使用和删除索引的使用和删除 使用索引必须按以下步骤进行使用索引必须按以下步骤进行 打开表打开表 打开索引文件打开索引文件 确定主控索引文件确定主控索引文件 对于复合索引文件还须确定主控索引对于复合索引文件还须确定主控索引打开索引文件打开索引文件 要进行索引查询,必须打开表与索引文件。一个表要进行索引查
14、询,必须打开表与索引文件。一个表可以打开多个索引文件,但任何时候只有一个索引文件能起可以打开多个索引文件,但任何时候只有一个索引文件能起作用,当前起作用的索引文件称为主控索引文件作用,当前起作用的索引文件称为主控索引文件打开索引文件的三种方法:打开索引文件的三种方法: 建立索引文件的同时,就打开了索引文件建立索引文件的同时,就打开了索引文件 打开表后再打开索引文件打开表后再打开索引文件 命令格式:命令格式: set index to additive 功能:打开当前表中的一个或多个索引文件并确定主控索引功能:打开当前表中的一个或多个索引文件并确定主控索引 文件文件 阐明:阐明: (1)索引文件
15、表可包含多个索引文件,索引文件名之间索引文件表可包含多个索引文件,索引文件名之间以逗号分隔,表中第一个索引文件为主控索引文件,例如:以逗号分隔,表中第一个索引文件为主控索引文件,例如: use stud set index to zf,zfj list (2)若缺省若缺省ADDITIVE选项,则在用本命令打开索引文件时,选项,则在用本命令打开索引文件时,除结构复合索引文件以外的索引文件均被关闭除结构复合索引文件以外的索引文件均被关闭 打开表文件的同时打开索引文件打开表文件的同时打开索引文件 命令:命令:use index | order 单索单索 引文件名引文件名| tag标识名标识名 of复
16、合索引文件名复合索引文件名阐明:阐明: index 包括单索引或复合索引文件包括单索引或复合索引文件 order 单索引文件名单索引文件名,指定单索引文件名为主控索引文件指定单索引文件名为主控索引文件 order tag 标识名标识名 of复合索引文件名复合索引文件名,指定复合索引,指定复合索引的标识名的标识名 为主控索引;省略为主控索引;省略of复合索引文件名复合索引文件名,则打开则打开结构复合索引文件结构复合索引文件例例5-6: use stud index stud order tag xbzfa brow close all use stud order tag xm brow确定主控
17、索引确定主控索引 如果打开了多个索引文件,但任何时候只有一如果打开了多个索引文件,但任何时候只有一个索引文件能起作用。一个复合索引文件中可能包含多个个索引文件能起作用。一个复合索引文件中可能包含多个索引标识,但任何时候只有一个索引标识能起作用,因此索引标识,但任何时候只有一个索引标识能起作用,因此还须确定主控索引还须确定主控索引 命令格式:命令格式: SET ORDER TO|TAG OFASCENDING | DESCENDING阐明:阐明: (1) TO子句的数值表达式表示已打开索引的序号,子句的数值表达式表示已打开索引的序号,该序号用来指定主控索引。系统先为各单索引文件编号,该序号用来指
18、定主控索引。系统先为各单索引文件编号,故结构复合索引文件的序号比单索引文件大故结构复合索引文件的序号比单索引文件大 (2) TAG子句的索引标识指定该索引标识为主控子句的索引标识指定该索引标识为主控索引索引 (3) SET ORDER TO或或SET ORDER TO 0命令取消命令取消主控索引文件及主控索引,表中记录将按物理顺序输出主控索引文件及主控索引,表中记录将按物理顺序输出 例例5-7:为:为stud.cdx 设置主控索引设置主控索引 use stud list &按物理顺序显示按物理顺序显示 modi stru set index to zf set order to 2 l
19、ist set order to 1 list set order to tag xbcsd list更新索引更新索引 命令:命令:reindex 功能:重新建立打开的索引文件功能:重新建立打开的索引文件 注:在更新索引之前,应打开表文件和相应的索引文件注:在更新索引之前,应打开表文件和相应的索引文件例例5-8:use stud append brow use stud index stud order tag xbzfa brow use stud set index to zf brow reindex brow关闭索引文件关闭索引文件 关闭索引文件,就是取消索引文件对表文件的控制作用关闭
20、索引文件,就是取消索引文件对表文件的控制作用 set index to:关闭当前索引文件:关闭当前索引文件 close index:关闭所有索引文件:关闭所有索引文件 use:关闭表文件的同时关闭索引文件:关闭表文件的同时关闭索引文件l删除索引删除索引l (1)删除索引文件删除索引文件l 若用删除文件命令来删除索引文件,须遵循先关若用删除文件命令来删除索引文件,须遵循先关闭后删除的原则,这与删除表文件类似闭后删除的原则,这与删除表文件类似l (2)删除索引标识删除索引标识l 命令格式:命令格式:l delete tag all |索引标识索引标识1,索引标识,索引标识2l 功能:删除打开的复合
21、索引文件的索引标识功能:删除打开的复合索引文件的索引标识l 例:删除上例建立的复合索引文件中的索引标识例:删除上例建立的复合索引文件中的索引标识l use studl delete tag xml delete tag alll 阐明:阐明:ALL子句用于删除复合索引文件的所有索引标识。子句用于删除复合索引文件的所有索引标识。如果某索引文件的所有索引标识都被删除,则该索引文件如果某索引文件的所有索引标识都被删除,则该索引文件也就被删除了也就被删除了5.3 查查 询询 所谓查询,即按照某些条件在表中查找所需的记录。两种所谓查询,即按照某些条件在表中查找所需的记录。两种传统的查询方法:顺序查询和索
22、引查询传统的查询方法:顺序查询和索引查询顺序查询:按照表记录的物理顺序依次逐个查询顺序查询:按照表记录的物理顺序依次逐个查询 其命令包括其命令包括locate和和continue两条命令两条命令 命令格式:命令格式: LOCATE 范围范围 FOR条件条件 WHILE条件条件 功能:搜索指定范围内满足条件的第一个记录。若找到,功能:搜索指定范围内满足条件的第一个记录。若找到,记录指针就指向该记录记录指针就指向该记录,并停止查找;若表中无此记录,状态条并停止查找;若表中无此记录,状态条中将显示中将显示“已到定位范围末尾已到定位范围末尾”,此时记录指针指向文件结束,此时记录指针指向文件结束处处例例
23、5-9:在:在stud中查找姓名为刘雨的记录中查找姓名为刘雨的记录 use stud locate for 姓名姓名= 刘雨刘雨 disp例例5-10:在:在stud.dbf中查找是团员的记录中查找是团员的记录 use stud locate for 团员团员=.t. disp continue disp continue 阐明:阐明: (1)缺省范围为缺省范围为ALL (2)查到记录后,要继续往下查找满足条件的记录查到记录后,要继续往下查找满足条件的记录必须用必须用 CONTINUE命令命令l索引查询索引查询l 按表记录的逻辑顺序查询,因此,须事先对表建立索按表记录的逻辑顺序查询,因此,须事
24、先对表建立索引并打开索引引并打开索引lfind 命令命令l 命令格式:命令格式: find |l 功能:在已确定主控索引的表中按索引关键字搜索与功能:在已确定主控索引的表中按索引关键字搜索与 或或相匹配的第一个记录。若找到,记相匹配的第一个记录。若找到,记录指针就指向该记录;找不到该记录则在状态条中显示录指针就指向该记录;找不到该记录则在状态条中显示“没有没有找到找到”l 例例5-11:在:在stud中查找姓名为杨海的记录中查找姓名为杨海的记录l use studl set order to tag xml find 杨海杨海l disp 阐明:阐明: find 命令只查找符合条件的第一个记录
25、,与命令只查找符合条件的第一个记录,与skip命令配套命令配套使用可以实现继续查找使用可以实现继续查找 命令中的字符型常量可以不加定界符命令中的字符型常量可以不加定界符seek 命令命令 命令格式:命令格式: seek 表达式表达式 功能:在已确定主控索引的表中按索引关键字搜索满足表功能:在已确定主控索引的表中按索引关键字搜索满足表 达式值的第一个记录。若找到,记录指针就指向该达式值的第一个记录。若找到,记录指针就指向该 记录;找不到该记录则在状态条中显示记录;找不到该记录则在状态条中显示 “没有找到没有找到”例例5-14:在:在stud中查找姓名为刘雨的记录,再查找年龄为中查找姓名为刘雨的记
26、录,再查找年龄为22岁的记岁的记录和专业号为录和专业号为03的记录的记录 use stud index on 姓名姓名 tag xm seek “刘雨刘雨” index on int(date( )-出生日期出生日期)/365) tag nj seek 22 ?recno( ), found( ) index on 专业号专业号 tag zyh desc seek “03” ?recno( ), found( ) skip disp 注:注: seek命令只查找符合条件的第一个记录,与命令只查找符合条件的第一个记录,与skip命令配套命令配套使用可以实现继续查找使用可以实现继续查找 seek命
27、令可以查找命令可以查找c型、型、 n型、型、 d型、型、 l型数据。如果查找型数据。如果查找c型常量,必须用定界符将型常量,必须用定界符将c型常量括起来型常量括起来 对于字符串表达式,系统允许模糊查找,即只要字符串表达式值对于字符串表达式,系统允许模糊查找,即只要字符串表达式值与索引关键字值左子串相同,就认为找到。命令与索引关键字值左子串相同,就认为找到。命令“SET EXACT ON | OFF用于设置匹配,用于设置匹配,ON表示完全匹配,用于精确查找;表示完全匹配,用于精确查找;OFF表示模糊匹配,系统默认表示模糊匹配,系统默认OFF 例:模糊查找与精确查找例:模糊查找与精确查找 use
28、zymc index on 专业名称专业名称 tag mc seek 电子电子 ?recno( ),found( ) set exact on seek 电子电子 ? found( ) set exact off5.4 统统 计计计数命令计数命令 命令格式:命令格式: COUNT 范围范围FOR条件条件1WHILE条件条件2TO 内存变量内存变量功能:计算当前表中指定范围内满足条件的记录数功能:计算当前表中指定范围内满足条件的记录数阐明:阐明: (1)通常记录数显示在主窗口的状态条中,使用通常记录数显示在主窗口的状态条中,使用TO子句还能将记录子句还能将记录数保存到内存变量中,便于以后引用此变
29、量数保存到内存变量中,便于以后引用此变量 (2)缺省范围是表的所有记录缺省范围是表的所有记录例:试统计例:试统计stud.dbf中学生总人数和女生总人数中学生总人数和女生总人数 use stud count to xsr count to nsr for 性别性别=女女 求和命令求和命令 命令格式:命令格式: SUM FORWHILE 条件条件2 TO内存变量表内存变量表|ARRAY数组数组 功能:在打开的表中,对指定范围内满足条件的功能:在打开的表中,对指定范围内满足条件的N型字段纵向型字段纵向 求和求和 阐明:阐明: (1) 中各个表达式的值的和数可依次存中各个表达式的值的和数可依次存入内
30、存变量表或数组。如果缺省该表,则对当前表所有的入内存变量表或数组。如果缺省该表,则对当前表所有的 数值表达式求和数值表达式求和 (2)缺省范围指表中所有记录缺省范围指表中所有记录?学生总人数:学生总人数:+str(xsr,3)+space(8)+女生人数:女生人数:+str(nsr,3)例例5-18:对:对stud.dbf求学生入校总分的平均分求学生入校总分的平均分 求平均值命令求平均值命令 命令格式:命令格式: AVERAGE 范围范围FOR条件条件1 WHILE条件条件2 TO内存变量表内存变量表|ARRAY数组数组 功能:在打开的表中,对指定范围内满足条件的功能:在打开的表中,对指定范围
31、内满足条件的N型字段纵向型字段纵向 求平均值求平均值例例5-19:求:求stud.dbf学生入校总分的平均分学生入校总分的平均分use studsum 入校总分入校总分 to zf?zf/reccount( ) use stud aver 入校总分入校总分 to nl 计算命令计算命令 命令格式:命令格式: CALCULATE 表达式表表达式表范围范围FOR条件条件1 WHILE条件条件2 TO内存变量表内存变量表|ARRAY数组数组 功能:功能: 在打开的表中,分别计算表达式表的值在打开的表中,分别计算表达式表的值 留意:表达式中由以下函数之一构成。其中常用的函数有留意:表达式中由以下函数之
32、一构成。其中常用的函数有AVG(数值表达式数值表达式)、CNT( )、MAX(表达式表达式)、MIN(表达式表达式)、SUM(数值表达式数值表达式)等等5个个例例5-20:求:求stud.dbf中的入校总分最高分和最低分;求中的入校总分最高分和最低分;求cj.dbf中大学中大学英语和计算机基础的平均分英语和计算机基础的平均分 use stud calculate max(入校总分入校总分),min(入校总分入校总分) to array zf ?zf(1),zf(2) select 0 use cj calculate avg(大学英语大学英语),avg(计算机基础计算机基础) to array
33、 pjf ?pjf(1),pjf(2)汇总命令汇总命令 命令格式:命令格式: total to 文件名文件名 on 关键字段名关键字段名 fields数值型字段表数值型字段表 范围范围for条件条件lwhile条件条件2 功能:在当前表中,分别对关键字段名值相同的记录的数功能:在当前表中,分别对关键字段名值相同的记录的数值型字段值求和,并将结果存入一个新表值型字段值求和,并将结果存入一个新表阐明:阐明: (1)关键字段名指排序字段或索引关键字,即当前表必须是有关键字段名指排序字段或索引关键字,即当前表必须是有序的,否则不能汇总序的,否则不能汇总 (2)FIELDS子句的数值型字段表指出要分类求
34、和的字段。如子句的数值型字段表指出要分类求和的字段。如果缺省,则对表中所有数值型字段分类求和果缺省,则对表中所有数值型字段分类求和 (3)汇总的数值型字段,该字段值求和后存入汇总文件中;对于非汇总的数值型字段,该字段值求和后存入汇总文件中;对于非数值型字段,只把与关键字值相同的第一个记录的字段值放入汇数值型字段,只把与关键字值相同的第一个记录的字段值放入汇总文件中总文件中例例5-21:对:对js.dbf按职称汇总工资按职称汇总工资 use js index on 职称职称 tag zc total on 职称职称 to zcgz fields 工资工资 use zcgz brow5.5 多工作
35、区的操作多工作区的操作一一 工作区与数据工作期工作区与数据工作期多工作区多工作区工作区号工作区号 表打开后才能进行操作。实际上,打开表就是把它从磁盘表打开后才能进行操作。实际上,打开表就是把它从磁盘调入内存的某一个工作区。调入内存的某一个工作区。VFP提供了提供了32767个工作区,编号个工作区,编号从从1到到32767每个工作区只允许打开一个表,若在已有表的工作每个工作区只允许打开一个表,若在已有表的工作区打开新的表,以前打开的表就会自动关闭区打开新的表,以前打开的表就会自动关闭别名别名 前前10个工作区除编号外,还可依次用个工作区除编号外,还可依次用AJ十个字母代表工十个字母代表工作区号,
36、这称为工作区别名。还有一种代表表文件名的别名叫作区号,这称为工作区别名。还有一种代表表文件名的别名叫表别名,用命令表别名,用命令“usealias”指定,例如命令指定,例如命令“use stud alias xs指定指定xs为为stud的别名。如果未用的别名。如果未用alias子句子句对表指定别名,对表指定别名, VFP默认表主名为别名。例如命令默认表主名为别名。例如命令“use stud表示表示stud.dbf的别名也是的别名也是stud。注:在当前工作区调用其他工作区中的表文件字段时,要使用以下注:在当前工作区调用其他工作区中的表文件字段时,要使用以下别名调用格式:别名调用格式:(1)工作
37、区别名工作区别名.字段名字段名 或或 工作区别名工作区别名字段名字段名 (2) 表别名表别名.字段名字段名 或或 表别名表别名字段名字段名选择工作区选择工作区 SELECT 工作区号工作区号 | 别名别名 功能:选定某个工作区为当前工作区功能:选定某个工作区为当前工作区阐明:阐明: (1)用用SELECT命令选定的工作区称为当前工作区,命令选定的工作区称为当前工作区,VFP默认默认1号工作区为当前工作区。函数号工作区为当前工作区。函数SELECT( )可以返回当前工作可以返回当前工作区的区号。区的区号。例:例:close all select 1 use stud select 2 use j
38、s disp a.姓名姓名,a.性别性别,姓名姓名sele adisp 姓名姓名, 性别性别,b.姓名姓名?select()sele jsgo 2disp a.姓名姓名,a.性别性别,姓名姓名(2)命令命令“SELECT 0表示选定当前未使用的最小工作区号表示选定当前未使用的最小工作区号 例:通过多表操作查出肖君老师所授课程的课程号例:通过多表操作查出肖君老师所授课程的课程号,并显示相应的并显示相应的教师号,姓名,课程号教师号,姓名,课程号 close all cleal select 1 use js locate for 姓名姓名=肖君肖君 select 2 use sk locate f
39、or 教师号教师号= display fields 教师号,姓名,课程号教师号,姓名,课程号 close alljs.教师号教师号 (3) 命令命令“USE文件名文件名IN工作区号工作区号”相当于:相当于: SELECT工作区号工作区号 USE文件名文件名二二 表的关联表的关联关联的概念关联的概念 所谓关联,就是令不同工作区的记录指针建立一种临时的所谓关联,就是令不同工作区的记录指针建立一种临时的联动关系,若一个表的记录指针移动会使另一个表的记录指针联动关系,若一个表的记录指针移动会使另一个表的记录指针能随之移动。能随之移动。多一关系多一关系 按照不同表的两个字段表达式值相等来关联的原则,若出
40、按照不同表的两个字段表达式值相等来关联的原则,若出现父表多条记录对应子表中一条记录的情况,这种关联称为多现父表多条记录对应子表中一条记录的情况,这种关联称为多一关系一关系一多关系一多关系 按照不同表的两个字段表达式值相等来关联的原则,若出按照不同表的两个字段表达式值相等来关联的原则,若出现父表一条记录对应子表中多条记录的情况,这种关联称为一现父表一条记录对应子表中多条记录的情况,这种关联称为一多关系多关系 多一关系父表父表子表子表索引字段索引字段 一多关系父表父表子表子表索引字段索引字段zymc.dbfstud.dbf用命令方式建立关联用命令方式建立关联建立关联命令建立关联命令 命令格式:命令
41、格式: set relation to 表达式表达式l into 别名别名1 , 表达式表达式N into 别名别名 Nadditive 功能:以当前表为父表与其他一个或多个子表建立关联功能:以当前表为父表与其他一个或多个子表建立关联阐明:阐明:(1)表达式用来指定父表的字段表达式,其值将与表达式用来指定父表的字段表达式,其值将与子子 表索引关键字对照,看二者是否相同。别名表索引关键字对照,看二者是否相同。别名 表表示示 子表别名或其所在的工作区别名子表别名或其所在的工作区别名 (2)ADDITIVE保证在建立关联时不取消以前建立的关保证在建立关联时不取消以前建立的关联联 (3)命令命令“se
42、t relation to ”解除关联解除关联例例5-24:列出所有学生的姓名、性别、专业号、专业名称、计算机:列出所有学生的姓名、性别、专业号、专业名称、计算机基础的成绩,试写出命令序列。基础的成绩,试写出命令序列。close allselect 1use cjindex on 学号学号 tag xhselect 2use zymcindex on 专业号专业号 tag zyhselect 3use studset relation to 学号学号 into a,专业号专业号 into b list all fields 姓名姓名,性别性别,专业号专业号,b.专业名称专业名称,a.计算机基础
43、计算机基础set relation to 学号学号 into aset relation to 专业号专业号 into b additive例例5-24:利用:利用stud.dbf、xk.dbf、kc.dbf显示学生选课的课程名称与显示学生选课的课程名称与课程的成绩情况课程的成绩情况go 2disp 姓名姓名, b.专业名称专业名称, a.计算机基础计算机基础sele 2go 3disp c.姓名姓名, 专业名称专业名称, a.计算机基础计算机基础说明一多关系的命令说明一多关系的命令 set skip to别名别名1,别名,别名2 功能:用在功能:用在set relation命令之后,说明关联
44、性命令之后,说明关联性质为质为 一多关系一多关系阐明:阐明: (1)别名表示在一多关系中位于多方的子表别名表示在一多关系中位于多方的子表别名或其所在的工作区别名别名或其所在的工作区别名 (2)不带可选项的命令不带可选项的命令“set skip to用于取消用于取消一多关系一多关系利用数据工作期窗口建立关联利用数据工作期窗口建立关联例例5-25:利用表:利用表stud和和zymc显示学生的姓名显示学生的姓名, 性别和选课的专业号性别和选课的专业号,专业名称专业名称 close tables allselect 1use studindex on 专业号专业号 tag zyhselect 2use zymcset relation to 专业号专业号 into aset skip to alist all fields a.姓名姓名,a.性别性别,a.专业号专业号,专业名称专业名称省略命令省略命令 set s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物业区域变电所管理制度培训
- 2025《答司马谏议书》反问语气表达课件
- 2026年电工(中级)考试新版复审模拟考试试题及答案
- 高炉看水工安全技术规程培训
- 2026年江苏省金陵中学高三一模高考政治模拟试卷(答案详解)
- 2026年岳阳职业技术学院单招职业技能考试题库附答案详解ab卷
- 餐饮服务食品安全信用等级评审管理规定培训
- 2026年广东省外语艺术职业学院单招职业倾向性考试题库含答案详解(完整版)
- 2026年崇左幼儿师范高等专科学校单招职业倾向性测试题库含答案详解(满分必刷)
- 2026年广州工程技术职业学院单招职业技能考试题库含答案详解(精练)
- 改善工作绩效的措施
- 2025年湖南省湘能农电联合招聘笔试参考题库含答案解析
- ARVR眼镜设计与制造方案
- 餐饮区域经理培训教程
- 出血性中风(脑出血后遗症)中医临床路径及入院标准2020版
- 中小学反诈宣传课件
- 学校水污染事故责任追究制度
- 现代家政导论-课件 3.1.1认识家庭生命周期(上课)
- 第52讲、立体几何中的轨迹问题(教师版)
- 数字贸易学 课件 第1-3章 导论、数字贸易的产生与发展;消费互联网、产业互联网与工业互联网
- 工业数据采集技术及应用 - 规划生产数据采集方案
评论
0/150
提交评论