《表的基本操作》PPT课件.ppt

上传人:w****2 文档编号:14731816 上传时间:2020-07-29 格式:PPT 页数:72 大小:290.50KB
收藏 版权申诉 举报 下载
《表的基本操作》PPT课件.ppt_第1页
第1页 / 共72页
《表的基本操作》PPT课件.ppt_第2页
第2页 / 共72页
《表的基本操作》PPT课件.ppt_第3页
第3页 / 共72页
资源描述:

《《表的基本操作》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《表的基本操作》PPT课件.ppt(72页珍藏版)》请在装配图网上搜索。

1、Visual FoxPro,1,第四章,表的基本操作,Visual FoxPro,2,自由表的建立和打开 表记录的修改、添加、和删除 指针和相关函数 索引及其建立方式,Visual FoxPro,3,自由表格:一种基于关系模型上的数据结构,Visual FoxPro,4,分两步走: 表结构的建立:指定表的字段信息、索引和约束 记录的录入:录入实体记录 第一步:结构的生成(菜单方式命令方式),指定以下内容: 字段名、类型、长度、小数点位数 CREATE 文件名 MODIFY STRUCTURE,自由表的建立,Visual FoxPro,5,第二步:录入记录,建立结构以后,可以马上录入记录,也可以

2、在以后逐步的录入。 EDIT CHANGE BROWSE APPEND 说明:一个表格,我们称之为表TABLE文件,扩展名为DBF,若存在备注型字段和通用型字段,则还存在一个FPT文件,保存相关的字符和图象信息。 SB.DBF SB.FPT,Visual FoxPro,6,表的打开将表文件和相关辅助文件从磁盘调入指定内存区域的操作 格式1: USE IN 工作区号 ALIAS EXCLUSIVE SHARED NOUPDATE 排它性打开 共享性打开 不能被修改 其他子句: INDEX 索引文件表 ORDER 数字表达式,表的打开和关闭,Visual FoxPro,7,表的打开和关闭,表的关闭

3、把内存中的表格数据写回到磁盘中,并清除的操作 格式2: USE CLOSE ALL CLOSE DATABASE CLEAR ALL 注意:若是数据库中的表,数据库打开后,包含的表不能直接打开,还必须通过USE命令实现),Visual FoxPro,8,表的基本操作,记录的添加: 在表的尾部用键盘添加单个记录 APPEND BLANK 在表的中间用键盘添加单个记录 INSERT BLANK BEFORE 将给定表的记录成批添加到当前表中 APPEND FROM FORFIELDS 字段表 将文本文件的内容添加到当前表中 APPEND FROM SDF,Visual FoxPro,9,表的基本操

4、作,记录的删除 逻辑删除 DELETE FOR 恢复删除 RECALL FOR 物理删除 PACK ZAP 删除设置 SET DELETED ON|OFF,Visual FoxPro,10,记录定位及函数,指针的概念 记录号:系统根据记录输入的物理顺序而赋予的整数编号(1到10亿) 指针:记录定位的标记,系统赋予每个表一个可以移动的内部指针,指针所指向的记录称为当前记录,打开一个表时,指针指向第一个记录,就可认为当前记录为第一个记录,指针移动的过程就是记录从新定位的过程,Visual FoxPro,11,记录定位命令 SKIP GO/GOTO TOP BOTTOM 数字表达式 LOCATE 范

5、围 FOR 逻辑表达式 COUTIUNE,记录定位及函数,Visual FoxPro,12,指针测试函数,记录定位及函数,Visual FoxPro,13,记录定位及函数,EOF()文件尾测试 BOF()文件头测试 RECCOUNT()记录个数 RECNO()当前记录测试,Visual FoxPro,14,USE SB DISPLAY LIST DISP ALL BROWSE ?EOF() ?BOF() ?RECNO() GO TOP SKIP 1 (再输出以上三个函数的值) GO BOTTOM SKIP (再输出以上三个函数的值),记录定位及函数,Visual FoxPro,15,假设xs表

6、有13条记录,先后执行以下命令 bof() eof() recno() use xs f f 1 (打开) skip -1 t f 1 skip -1 出错 go bott f f 13 skip f t 14 skip 出错,Visual FoxPro,16,表的高级操作,表的显示 表的排序与索引 表的统计与计算 多个表的操作,Visual FoxPro,17,表的显示 1表结构的显示 命令格式: LIST STRUCTURE DISPLAY STRUCTURE LIST STRUCTURE TO PRINTER DISPLAY STRUCTURE TO FILE AA,Visual Fox

7、Pro,18,2.表记录的显示 命令格式: LIST|DISPLAY FIELDS FOR WHILE TO PRINTER PROMPT|TO FILE OFF 注意: (1):表示记录的执行范围,可以是下面几项其中之一(P33) ALL: 表示全部记录,缺省范围子句时通常默认为ALL,但也有例外,如 DISPLAY命令; NEXT: 表示从当前记录开始的以下n条记录; RECORD: 表示第n号记录; REST: 表示从当前记录到最后一条记录。,Visual FoxPro,19,(2)FIELDS 用于指定操作的字段,多个字段时用逗号分隔。 (3)FOR 对满足条件的记录进行操作。 (4)

8、WHILE 当遇到第一个不满足条件的记录时,停止命令执行。 说明: “For”、“While”虽然都表示操作条件,但也有区别P62 For 对满足表达式条件的所有记录进行操作; While 则从表中的当前记录开始向下顺序判断,只要出现不满足表达式条件的记录就终止,而不管其后是否还有满足条件的记录。 (5)选用OFF时,表示只显示记录内容而不显示记录号。若省略该项则同时显示记录号和记录内容。,Visual FoxPro,20,例 就学生表,写出进行如下操作的命令: (1)显示前5条记录。 (2)显示记录号为奇数的记录。 (3)显示汉族男学生的记录。 (4)显示湖北或湖南学生的姓名、性别、年龄以及

9、简历。 操作命令如下: USE 学生 LIST NEXT 5 LIST FOR MOD(RECNO(),2)=1 LIST FOR !少数民族否 AND 性别=男 LIST 姓名,性别,YEAR(DATE()-YEAR(出生日期),简历 FOR 湖$籍贯 USE,Visual FoxPro,21,在DISP命令中缺省及FORWHILE,则显示_。(A)ALL (B)RECORD 1 (C)8 (D)当前记录,命令动词和函数名都可以缩写为前4个字母。 ( ) 一条命令中各短语之间至少要用一个空格分开。 ( ) 命令中各短语没有固定顺序。 ( ) 命令中“范围”和“条件”是选择记录的,“字段名表”

10、是选择字段的。 ( ),Visual FoxPro,22,记录数据的替换记录数据的批量修改 REPLACE WITH FOR ADDITIVE,Visual FoxPro,23,例 写出对学生表进行如下操作的命令: (1)将少数民族学生的入学成绩增加20分。 (2)将6号记录的出生日期修改为1983年9月7日; 操作命令如下: USE 学生 REPLACE 入学成绩 WITH 入学成绩+20 FOR 少数民族否 GO 6 fields 编号,名称,启用日期 for NOT 主要设备 (2)sort to bmx on 部门/D,价格 for 主要设备,Visual FoxPro,42,记录的顺

11、序 物理顺序:记录的存储顺序(顺序找,速度慢) 逻辑顺序:记录的处理顺序(快速) 排序与索引 索引的优点: (1)速度快; (2)容量小; (3)多角度,索引及索引文件的建立,Visual FoxPro,43,索引的基本概念 对数据记录按要求重新排序的过程就叫索引,为实现这个目标而建立的辅助文件称为索引文件,当一个表打开的时候,若索引文件被打开了,那表记录的顺序就会发生变化,这种排序,称为逻辑排序,并没有影响表记录的物理排序,一般说来,索引文件的建立方式有两种: 在表结构中建立 用命令建立,Visual FoxPro,44,索引及索引文件的建立,索引的类型: 1)普通索引:允许关键字重复,一个

12、表可建立多个索引,可以是永久关系的多方 2)唯一索引:与普通索引同,但输出数据时,不输出重复值的记录 3)侯选索引:不允许关键字有重复值,一个表中也允许多个,侯选索引可用于数据库表和自由表 4)主索引:不允许关键字有重复值,一个表中只允许一个,自由表不能建立主索引,Visual FoxPro,45,索引及索引文件的建立,命令方式建立索引 use student index on 学号 tag xh (在student.cdx文件建立一个索引标记xh,该标记使得记录能以学号进行升序排列) index on 学号 tag xhd desc (降序排列) set order to xh 表设计器建立

13、索引: 在建立结构时候,建立相关索引,在自由表中,只能建立:普通索引、侯选索引、惟一索引,Visual FoxPro,46,例 用建立索引文件的方法对学生表按入学成绩升序排序 USE 学生 INDEX ON 入学成绩 TO sy 例 用建立索引文件的方法对学生表按入学成绩降序排序 USE 学生 INDEX ON -入学成绩 TO sy 例 就学生表建立结构复合索引文件,其中包含2个索引: (1)按学号的升序排列,不允许有编号相同的记录。 (2)先按性别升序,性别相同再按入学成绩升序排列。 USE 学生 INDEX ON 学号 TAG sy1 UNIQUE INDEX ON 性别+STR(入学成

14、绩,5,1) TAG sy2,Visual FoxPro,47,例:建立单索引文件,对设备表按名称升序排列,按价格降序排列 USE SB INDEX ON 名称 TO mcidx INDEX ON -价格 TO JGIDX,例:为SB.dbf建立一个结构复合索引文件,其中包括3个索引: (1)记录以价格降序排列,索引标识为普通索引型 (2)记录以部门升序排列,部门相同时则按价格升序排列,索引标识为普通索引型 USE SB INDEX ON 价格 TAG jg DESCENDING &建立SB.CDX INDEX ON 部门+str(价格,9,2) TAG bmjg,Visual FoxPro,

15、48,另外:使用索引文件后,各记录的物理顺序并未改变。但记录的逻辑顺序是按索引关键表达式值排序的。 使用索引文件时,还要特别注意以下几点: (1)在使用GO命令时,GO 使记录指针指向具体的物理记录号,而与索引无关,而GO TOP|BOTTOM将使记录指针指向逻辑首或逻辑尾记录,这时GO TOP不再等同于GO 1。 (2)SKIP命令按逻辑顺序移动记录指针。 (3)表被打开后,记录指针位于TOP位置,而不一定指向1号记录。(自看书P61),Visual FoxPro,49,例 根据前面的例子建立的索引改变主控索引。 USE sb INDEX mcidx, jgidx LIST &记录按名称升序

16、排列 SET ORDER TO TAG jg LIST &记录按价格降序排列 SET ORDER TO 1 LIST &记录按名称升序排列 SET ORDER TO LIST &记录按物理顺序排列 SET ORDER TO 3 LIST &记录按价格降序排列,&指定SB.CDX的索引标识JG为主控 索引,JG索引序号为3,&指定MCIDX.IDX为主控索引,&取消主控索引文件及主控索引,&指定SB.CDX的索引标识JG为主控索引,Visual FoxPro,50,例 当有索引文件时,分析记录指针的移动规律。 USE 学生 INDEX ON 入学成绩 TO sy3 GO 6 ? RECNO(),

17、姓名 &显示6 李勤奋 SKIP ? RECNO(),姓名 &显示5 欧阳天地,1.设有数据库文件为:XSCJ.DBF,执行下列操作: USE XSCJ INDEX ON XM TAG AB 问索引的文件名为:( ) A、XM B、AB C、XSCJ D、TAG 2.建立以货号为索引关键字的索引文件HH.IDX,Visual FoxPro,51,3.宏替换函数必须是用于_变量名前,其结果是用该变量的值替代其名称。 4.数据库文件中,字段名最多可使用 个英文字符;_ 个汉字。 5.测试当前工作区上当前数据库文件中当前记录是否为文件尾的函数是_。,Visual FoxPro,52,关闭索引文件 命

18、令格式:CLOSE INDEX SET INDEX TO 功能:关闭当前工作区内所有打开的索引文件。但结构复合索引文件不能关闭,它随表的关闭而自动关闭。此外,使用USE命令,也可关闭与之表相关的索引文件。 删除索引 命令格式是:DELETE FILE DELETE TAG ALL| 第一种格式的命令用于删除一个单索引文件。第二种格式的命令用于删除打开的复合索引文件的所有索引标志或指定的索引标志。如果一个复合索引文件的所有索引标志都被删除,则该复合索引文件也就自动被删除,Visual FoxPro,53,索引查询定位 索引查询定位是在当前表中,按已确定的主索引文件关键字来查询与指定表达式值相匹配

19、的第一条记录,找到后将记录指针定位于该记录。 命令格式:SEEK 命令中的可以是数值型、字符型、日期型或逻辑型表达式,但必须与索引表达式一致。对于字符串表达式,有精确查询和不精确查询之分,精确查询要求表达式的值与索引关键字值完全相同,才认为找到,不精确查询只要表达式的值与索引关键字值左边若干字符相同,就认为找到。查询方式由SET EXACT ON|OFF设置。 该命令只能使记录指针定位于符合条件的第一条记录,可用SKIP命令使指针指向下一个符合条件的记录。,Visual FoxPro,54,除SEEK命令外,FIND命令也可用于索引查询 格式为:FIND | 注意:FIND后面是字符常量或数值

20、常量,不能是表达式,所以SEEK命令更具一般性。 例 就学生表,查询1983年9月7日出生的学生的记录。 USE 学生 INDEX ON 出生日期 TAG sy4 D=1983-09-07 SEEK D DISP,Visual FoxPro,55,例: USE sb INDEX ON 编号 TAG bh seek “038-1” &不可写为SEEK 编号=“038-1” ?recno() INDEX ON 启用日期 TAG qyrq SEEK 3/5/90 ?FOUND() INDEX ON 价格 TAG jg SEEK 1000.00 ?RECNO(),FOUND(),Visual FoxP

21、ro,56,统计记录个数 命令格式:COUNT FOR WHILE TO 功能:统计当前表中,在指定范围内满足指定条件的记录个数。 例 对学生表,分别统计男女生的人数。 USE 学生 COUNT FOR 性别=”女” TO x1 COUNT FOR 性别=”男” TO x2 ? x1,x2,表的统计与计算,Visual FoxPro,57,求数值表达式之和与平均值 命令格式:SUM|AVERAGE FOR WHILETO |ARRAY 功能:在当前表中,求指定表达式之和或平均值。 例 对学生表,求全体学生的平均年龄。 操作命令如下: USE 学生 AVER YEAR(DATE()-YEAR(出

22、生日期) TO y ? y,Visual FoxPro,58,财务统计 命令格式:CALCULATE FOR WHILETO |ARRAY 功能:在当前表中,对指定表达式进行财务统计函数计算。 其中表达式表中的表达式至少可选一种财务统计函数(P78) AVE():求数值表达式的平均值。 CNT():统计表中指定范围内满足条件的记录个数 MAX():求表达式的最大值 MIN():求表达式的最小值 SUM():求表达式之和,Visual FoxPro,59,例 对学生表,进行如下操作: (1)求入学成绩的平均值。 (2)求最年轻学生的出生日期。 操作命令如下: USE 学生 CALC AVE(入学

23、成绩) TO x1 CALC MAX(出生日期) TO x2 ? x1,x2,Visual FoxPro,60,分 类 汇 总 命令格式:TOTAL ON TO FIELDS FOR 功能:当前表的某些数值型字段,按进行分类统计,并把统计结果存放在指定的表中。 注意:分类汇总是把所有具有相同关键字表达式值的记录合并成一条记录,对数值字段进行求和,对其他字段则取每一类中第一条记录的值。因此,为了进行分类汇总,必须对当前表按进行排序或建立索引文件。,Visual FoxPro,61,例 对学生表,按籍贯对入学成绩进行汇总。 操作命令如下: USE 学生 INDEX ON 籍贯 TAG sy5 TO

24、TAL ON 籍贯 TO hz FIELDS 入学成绩 USE hz LIST 籍贯,入学成绩,当前数据库中有基本工资、奖金、津贴和工资总额字段,都是N型。要将职工的所有收入汇总后写入工资总额字段中,应当使用命令( ) (A)REPLACE ALL 工资总额 WITH 基本工资+奖金+津贴 (B)TOTAL ON 工资总额 FIELDS 基本工资,奖金,津贴 (C)REPLACE 工资总额 WITH 基本工资+奖金+津贴 (D)SUM 基本工资+奖金+津贴 TO工资总额,Visual FoxPro,62,工 作 区 1 工作区的概念 工作区是用来保存表及其相关信息的一片内存空间。平时讲打开表实

25、际上就是将它从磁盘调入到内存的某一个工作区。在每个工作区中只能打开一个表文件,但可以同时打开与表相关的其他文件,如索引文件、查询文件等。若在一个工作区中打开一个新的表,则该工作区中原来的表将被关闭。 有了工作区的概念,我们就可以同时打开多个表,但在任何一个时刻用户只能选中一个工作区进行操作。当前正在操作的工作区称为当前工作区。,多个表的操作,Visual FoxPro,63,2 工作区号与别名 不同工作区可以用其编号或别名来加以区分。 Visual FoxPro提供了255个工作区,系统以1255作为各工作区的编号。 工作区的别名有两种,一种是系统定义的别名:110号工作区的别名分别为字母AJ

26、;另一种是用户定义的别名,用命令“USE ALIAS ”指定。由于一个工作区只能打开一个表,因此可以把表的别名作为工作区的别名。若未用ALIAS子句对表指定别名,则以表的主名作为别名。 3 工作区的选择 命令格式:SELECT |0 功能:选择一个工作区为当前工作区,以便打开一个表或把该工作区中已打开的表作为当前表进行操作。,Visual FoxPro,64,注意: (1)工作区的切换不影响各工作区记录指针的位置。每个工作区上打开的表有各自独立的记录指针。通常,当前表记录指针的变化不会影响别的工作区中表记录指针的变化。 (2)SELECT 0表示选择当前没有被使用的最小号工作区为当前工作区。用

27、本命令开辟新的工作区,不用考虑工作区号已用到了多少,使用最为方便。 (3)也可在USE命令中增加IN子句来选择工作区并打开表。例如,在1号工作区打开学生表,并给它取一个别名: USE 学生 ALIAS zg IN 1 或USE 学生 ALIAS zg IN A 或SELECT 1 USE 学生 ALIAS zg 或SELECT A USE 学生 ALIAS zg,Visual FoxPro,65,4 工作区的互访 在当前工作区中可以访问其他工作区中的表的数据,但要在非当前表的字段名前加上别名和连接符 引用格式为:别名.字段名或别名-字段名。,Visual FoxPro,66,表 的 关 联 所

28、谓关联,就是当前表记录指针的移动,能引起别的表按某种条件相应地移动记录指针。建立关联后,我们称当前表为主文件,与主文件建立关联的表为子文件。 1 一对一的关联(多对一) 命令格式: SET RELATION TO INTO |, INTO | ADDITIVE 功能:使当前表与INTO子句所指定的工作区上的表按表达式建立关联。 注意:(1)若选择ADDITIVE,则在建立新的关联的同时保持原先的关联,否则会去掉原先的关联。 (2)省略所有选项时,SET RELATION TO命令将取消与当前表的所有关联。,Visual FoxPro,67,例: select 2 use 学生 index on

29、 学号 TAG xh additive select 1 use 选课 set relation to 学号 into A additive,学生.DBF(子表) 选课.DBF(父表 参P90),Visual FoxPro,68,2 一对多的关联 前面介绍了一对一的关联,这种关联只允许访问子文件满足关联条件的第一条记录。如果子文件有多条记录和主文件的某条记录相匹配,当需要访问子文件的多条匹配记录时,就需要建立一对多的关联。 命令格式: SET SKIP TO , 命令功能:使当前表和它的子表建立一对多的关联 建立一对多的关联应分两步完成: 使用命令SET RELATION建立一对一的关联(使用

30、索引方式建立关联)。 使用命令SET SKIP建立一对多的关联。 如果缺省所有选项,则取消主文件建立的所有一对多关联。,Visual FoxPro,69,例 若学生表作为父表,选课表作为子表,则为一多关系 select 2 use 选课 index on 学号 TAG xh select 1 use 学生 set relation to 学号 into 选课 set skip to 选课,Visual FoxPro,70,表 的 联 接 命令格式:JOIN WITH | TO FOR FIELDS 功能:将当前表与指定工作区的表按指定的条件进行联接,联接产生一个新的表。 注意:(1)|指明被联

31、接的表。指定联接后的新库文件名。 (2)FOR给出了联接的依据。联接时,首先两个工作区的记录指针分别指向联接和被联接表中的第一条记录,然后顺序检索被联接表中的每条记录,看是否满足条件。如果条件满足则在新表中生成一条新记录,当被联接表所有记录扫描完以后,则联接表的记录指针即下移一条记录。重复上述过程依次处理,直至联接表中所有记录均处理完毕。,Visual FoxPro,71,FoxPro中的SET RELATION关联操作是一种( ) (A)逻辑连接 (B)物理连接 (C)逻辑排序 (D)物理排序 在Foxpro中,一个数据库文件最多同时在_个工作区中打开。,Visual FoxPro,72,作 业,P69 一三,

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!