第4章表的创建与操作.ppt_第1页
第4章表的创建与操作.ppt_第2页
第4章表的创建与操作.ppt_第3页
第4章表的创建与操作.ppt_第4页
第4章表的创建与操作.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、,第4章 表的建立与操作,引言 4.1 表的建立 4.2 表的显示与维护 4.3 表的复制 4.4 表的排序与索引 4.5 表的查询 4.6 表的统计与计算 4.7 多个表的操作,引言,在Visual FoxPro中,表(Table)是组织数据、建立关系数据库的基本元素。 Visual FoxPro中的表有两种类型,一类是自由表,它不属于任何数据库而独立存在;另一类是数据库表,它是数据库的一部分。 处理自由表和数据库表的方法基本相同。本章暂不涉及数据库的操作,主要介绍自由表的基本操作。,4.1 表的建立,在关系模型中,用二维表来表示数据之间的联系。一个二维表由表的框架和表中的数据两部分组成,而

2、一个表文件则由表结构和记录数据两部分组成。,表结构的建立,利用表设计器创建表,菜单操作方式,利用表设计器创建表,命令操作方式 可以在命令窗口中使用CREATE命令来建立表的结构。其命令格式是: CREATE 表文件名? 在命令中使用?或省略该参数时,将打开“创建”对话框,提示输入表名并选择保存表的位置。 执行CREATE命令后,屏幕上弹出表设计器窗口,以后的操作方法与菜单操作相同。,向表中输入记录,在把刚建立好的表结构存盘以后,若要立即输入记录,此时,屏幕显示记录输入窗口,用户可通过它输入记录。 输入完成之后按住Ctrl+W组合键将数据存入相应的表文件之中 。,4.2 表的显示与维护,表的打开

3、 : 菜单方式:文件菜单打开选项 命令方式: USENOUPDATEEXCLUSIVE|SHARED NOUPDATE指定以只读方式打开表 EXCLUSIVE指定以独占方式打开表, SHARED指定以共享方式打开表。 表的关闭: USE 命令,后不接任何语句,表的显示,表结构的显示 : LIST|DISPLAY STRUCTURETO PRINTER PROMPTTO FILE LIST命令是连续显示,当显示的内容超过一屏时,自动向上滚动,直到显示完成为止;DISPLAY命令是分屏显示,显示满屏时暂停,待用户按任意键后继续显示后面的内容。,表的显示,表记录的显示 : LIST|DISPLAY

4、FIELDS范围 FORWHILETO PRINTER PROMPTTO FILE OFF FIELDS 表达式表指定要显示的表达式 若选定FOR子句,则显示满足所给条件的所有记录。若选定WHILE子句,显示直到条件不成立时为止,这时后面即使还有满足条件的记录也不再显示。 范围、FOR子句和WHILE子句用于决定对哪些记录进行操作。 选用OFF时,表示只显示记录内容而不显示记录号。,例4.1 针对学生表,写出进行如下操作的命令。,显示前5条记录: Use 学生表 List next 5 显示第5号记录:list record 5 显示记录号为奇数的记录:list for mod(recno()

5、,2)=1 显示汉族男学生的记录: LIST FOR ! 少数民族否 AND 性别=男 显示湖北或湖南籍学生的姓名、性别、年龄以及简历。 LIST 姓名,性别,YEAR(DATE()-YEAR(出生日期),简历 FOR 湖$籍贯,表的修改,表结构的修改 :MODIFY STRUCTURE 表中记录的修改: 浏览窗口的操作 :打开表后,在“显示”菜单中选择“浏览”命令,则打开浏览窗口,表的内容将出现在浏览窗口中。也可以在打开表后,输入BROWSE命令打开浏览窗口。 数据的两种显示方式:浏览窗口中的数据有浏览和编辑两种显示方式。 浏览窗口的分割与同步:浏览窗口左下角有一黑色小方块,可用于窗口的分割

6、。,表的修改,成批替换修改 : REPLACEWITHADDITIVE ,字段2 WITH 表达式2 ADDITIVE ,范围 FOR 条件 WHILE 条件 若不选择范围和FOR子句或WHILE子句,则默认为当前记录。如果选择了FOR子句,则范围默认为ALL,选择了WHILE子句,则范围默认为REST ADDITIVE只能在替换备注型字段时使用。,表记录指针的定位 :,在表中,系统给每个记录提供一个记录号。对打开的表都自动设置一个指针,用以指示当前被操作的记录,即当前记录。刚打开表时,记录指针自动指向第一个记录。 绝对定位 :GO TO|TOP|BOTTOM 相对定位:SKIP 记录数 注意

7、:如果记录数的值为正数,则记录指针往表尾方向移动,若为负数,则往表头方向移动。,表记录的增加,插入记录 :INSERT BLANK BEFORE 若给出BLANK选项,则插入一个空记录; 若给出BEFORE选项,则在当前记录的前面插入一新记录 追加记录 :APPEND BLANK 该命令在当前表的末 尾追加一个新记录。若选用BLANK选项,则追加一个空记录到表的末尾。 这两个命令区别在于: APPEND命令是在当前表的末尾增加新记录,而INSERT命令可以在指定位置上增加新记录。,表记录的删除,Visual FoxPro对部分记录的删除分两步进行:逻辑删除与物理删除。 (1) 给记录加删除标志

8、: DELETE FORWHILE (2) 取消删除标记: RECALL FORWHILE (3) 真正删除记录: PACK 该命令清除所有带删除标志的记录。 (4) 删除全部记录:ZAP 该命令删除当前表的全部记录,只留下表结构。,4.3 表的复制,复制表的结构 : COPY STRUCTURE TO FIELDS 该命令将当前表的结构复制到指定的表中。它仅复制当前表的结构,不复制其记录数据。 表结构和记录同时复制 : COPY TOFIELDS FORWHILETYPESDFDELIMITEDXLSWITHBLANK,从其他文件向表中添加数据,APPEND FROM 文件名 FIELDS

9、字段名表FOR 条件 WHILE 条件 TYPE 文件类型,表与数组间的数据传送,将表中的记录数据传送到数组 SCATTERFIELDS TO MEMO 将数组数据传送到表中的记录 GATHER FROM FIELDSMEMO 把表的一批记录同时复制到数组 (必须是二维数组) COPY TO ARRAYFIELDS FORWHILE条件 从数组向表中添加记录 APPEND FROM ARRAYFOR FIELDS ,4.4 表的排序与索引,在一般情况下,表中的记录是按其输入的先后顺序存放的,在对数据记录进行操作时,就按照这种顺序进行处理。但有时希望按别的顺序将数据记录重新组织,例如,对学生表,

10、希望数据记录按入学成绩由高到低排列,按出生日期的先后顺序排列等。要完成这种操作有两种方法:排序和索引。排序是生成一个新的表,而索引是建立一种对应关系,两者都能达到重新组织数据记录的目的。,表的排序,排序是根据不同的字段对当前表的记录做出不同的排列,产生一个新的表。新表与旧表内容完全一样,只是它们的记录排列顺序不同而已。 SORT TOON/A/D/CFIELDSFORWHILE 思考:排序有什么缺点? 造成数据的重复,排序一次就生成一个新表。 不能及时更新,改动数据就要重新排序。,索引概述,索引并不是重新排列表中记录的物理顺序,而是另外形成一个索引关键表达式值与记录号之间的对照表,这个对照表就

11、是索引文件。 Visual FoxPro提供了两种不同类型的索引文件:单索引文件和复合索引文件。 (1) 单索引文件是指一个索引文件中只能保存一个索引,其扩展名为.idx。 (2) 复合索引文件可以存储多个索引,其扩展名为.cdx。当索引名与表文件名相同时,称为结构化复合索引,索引的类型,主索引:是不允许在指定字段或表达式中出现重复值的索引,每一个表只能建立一个主索引,只有数据库表才能建立主索引。 候选索引:也是一个不允许在指定字段和表达式中出现重复值的索引。数据库表和自由表都可以建立候选索引,一个表可以建立多个候选索引。 惟一索引:系统只在索引文件中保留第一次出现的索引关键字值。 普通索引:

12、这是一个最简单的索引,数据库表和自由表都可以建立普通索引。,索引文件的建立,命令格式: 单索引文件:INDEX ONTO FOR COMPACTASCENDINGDESCENDING UNIQUE ADDITIVE 复合索引文件:INDEX ONTAG OF FOR COMPACTASCENDINGDESCENDING UNIQUE ADDITIVE,在表设计器中建立索引,注意:在表设计器中建立的都是结构化复合索引,索引文件的使用,索引文件必须先打开才能使用 : 同时打开表和索引文件: USE 表文件名 INDEX 索引文件名表 (2) 打开表后再打开索引文件: SET INDEX TO AD

13、DITIVE 确定主控索引 : SET ORDER TOTAG OF,索引文件的使用,关闭索引文件: CLOSE INDEX SET INDEX TO 删除索引 : DELETE FILE 索引文件名 DELETE TAG ALL索引标志名表 更新索引 :索引文件依赖于表而存在,当表中的数据发生变化时,打开的索引文件也应相应地被更新。,4.5 表的查询,顺序查询 : LOCATE FOR |WHILE 按表中记录的物理顺序逐个查询符合条件的记录,找到后,记录指针指向该记录,当查找到第一个满足条件的记录后,如果执行CONTINUE命令,则继续寻找满足条件的记录,直到范围结束为止。,顺序查询使用示

14、例:,例4.18在学生表中查询汉族男生的姓名、入学成绩和年龄。 USE 学生 LOCATE FOR ! 少数民族否AND 性别=男 DISP 姓名,入学成绩, YEAR(DATE()-YEAR(出生日期) CONTINUE ? RECNO(),姓名,入学成绩, YEAR(DATE()-YEAR(出生日期),索引查询,SEEK 表达式 在当前表中,按已确定的主索引文件关键字来查询与指定表达式值相匹配的第一条记录,找到后将记录指针定位于该记录。该命令只能使记录指针定位于符合条件的第一条记录,可用SKIP命令使指针指向下一个符合条件的记录。 注意: 索引查询只能查询建立了索引的关键字那一字段,索引查

15、询使用示例:,例4.19查询学生表中1983年9月7日出生的学生的记录。 USE 学生 INDEX ON 出生日期 TAG sy4 D=19830907 SEEK D DISP,4.6 表的统计与计算,统计记录个数 : COUNT FOR WHILE TO 求和与求平均值 : SUMAVERAGEFORWHILETOARRAY ,统计函数的计算,CALCULATEFOR WHILETO|ARRAY 表达式表中的表达式至少应包含一种统计函数。 AVG(数值表达式):求数值表达式的平均值。 CNT():统计表中指定范围内满足条件的记录个数。 MAX(表达式):求表达式的最大值。 MIN(表达式):

16、求表达式的最小值。 SUM(数值表达式):求表达式之和。 NPV(数值表达式1,数值表达式2,数值表达式3):求数值表达式的净现值。 STD(数值表达式):求数值表达式的标准偏差。 VAR(数值表达式):求数值表达式的均方差。,分类汇总,TOTAL ONTO FIELDS FOR WHILE 条件 该命令对当前表的某些数值型字段按关键字表达式进行分类统计,并把统计结果存放在文件名指定的表中。 为了进行分类汇总,必须对当前表按关键字表达式进行排序或建立索引文件。,4.7 多个表的操作,工作区 :工作区是用来保存表及其相关信息的一片内存空间。在每个工作区中只能打开一个表文件。 工作区号与别名:不同工作区可以用其编号或别

温馨提示

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

评论

0/150

提交评论