VFP第二章表的创建和使用.ppt

上传人:牧羊曲112 文档编号:6522890 上传时间:2023-11-08 格式:PPT 页数:70 大小:338.50KB
返回 下载 相关 举报
VFP第二章表的创建和使用.ppt_第1页
第1页 / 共70页
VFP第二章表的创建和使用.ppt_第2页
第2页 / 共70页
VFP第二章表的创建和使用.ppt_第3页
第3页 / 共70页
VFP第二章表的创建和使用.ppt_第4页
第4页 / 共70页
VFP第二章表的创建和使用.ppt_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《VFP第二章表的创建和使用.ppt》由会员分享,可在线阅读,更多相关《VFP第二章表的创建和使用.ppt(70页珍藏版)》请在三一办公上搜索。

1、1,表的创建和使用,第二章,2,【本章要点】,表的概念 表结构的创建和修改 表记录的添加、浏览、删除 记录指针的概念、定位 数据的修改、筛选 索引的概念、创建和使用,3,2.1 表,4,2.1.1 表的概念,表(Table):是指存放在磁盘文件中的一张二维表。一张表保存为一个表文件(.DBF)。字段(Field):表中的一列。字段规定了数据的特征。记录(Record):表的一行。记录是多个字段的集合。同一个表的每一个记录都有相同的字段。表结构:存储表的记录的一个公共的结构。,5,字段(fields),记录(records),6,2.1.2 字段的基本属性,字段名(Field Name)用以标识

2、一个字段的名字。字段的数据类型(Type)不同的数据类型的表示和运算的方法不一样。VFP提供了13种字段的数据类型。P.21(表2-1)。字段宽度(Width)指该字段所能容纳数据的最大字节数。,8,2.1.2 字段的基本属性,小数位数(Decimal)对于数值型、浮点型和双精度型的字段可以指定其小数的位数。字段宽度=整数部分宽度+小数点1位+小数位数如果小数位数不为0,则小数位数必须比整个字段宽度至少小2。空值支持(Null)空值是用来指示记录中的一个字段“有或没有”数据的标识。Null不是一种数据类型或一个值,确切地讲,它是用来指示数据存在或不存在的一种属性。,9,2.2 表结构的创建和修

3、改,10,2.2.1 表结构的创建,创建表结构的方式有两种:表设计器(Table Designer)方式SQL命令方式,11,一、用“表设计器”创建表结构,通过菜单或工具栏打开“表设计器”CREATE CREATE?CREARE 表文件名 在项目中新建表,12,二、用CREATE TABLE-SQL命 令创建表结构,格式是:CREATE TABLE|DBF 表文件名(字段名1 字段类型(字段宽度,小数位数),字段名2 字段类型(字段宽度,小数位数))例如:CREATE TABLE XS2(xh C(6),xm C(6),xb C(2),字段名,字段类型,字段宽度,13,2.2.2 表结构的修改

4、,修改表结构的方式有两种:表设计器方式ALTER TABLE 命令方式,14,一、用“表设计器”修改表结构,MODIFY STRUCTURE 命令 在项目中修改表结构,15,二、用 ALTER TABLE 命令修改表结构,添加字段:ADD COLUMN子句。例如,把“BJMC”(班级名称)字段添加到XS表中:ALTER TABLE XS ADD COLUMN BJMC C(12)重命名字段:RENAME COLUMN 子句。例如,重新命名XS表的“BJMC”字段为“BJ”:ALTER TABLE XS RENAME COLUMN BJMC TO BJ删除字段:DROPCOLUMN子句。例如,从

5、XS表中删掉“BJ”字段:ALTER TABLE XS DROP COLUMN BJ,16,2.3 表记录的处理,17,2.3.1 记录的追加,追加记录的方式主要有四种:一.立即输入记录二.在浏览状态下向表中追加记录三.使用INSERT SQL命令追加记录四.从其他表中追加记录,18,用 INSERT SQL命令追加记录,INSERTSQL命令的一般格式是:INSERT INTO 表名(字段1,字段2,);VALUES(表达式1,表达式2,)例如,向XS表中插入一个新记录:INSERT INTO XS(XH,XM,XB,XIMING);VALUE(”96010057”,”曹晓燕”,”女”,”文

6、”),19,从其他表中追加记录,从另一个DBF文件中追加记录到当前表中APPEND FROM 另一个表文件名从一个TXT文本文件中追加记录到当前表中APPEND FROM TXT文件名 SDF,20,2.3.2 记录的浏览,BROWSE命令浏览窗口定制浏览窗口筛选浏览的字段,21,2.3.3 记录的定位,记录指针的概念记录的定位方式记录定位的实现,22,一、记录指针的概念,文件头,(包含表结构等信息),第1号记录,第2号记录,第n号记录,记录指针,记录开始标志,记录结束标志,23,几个概念,三个控制标志:记录的开始标志、记录指针标志、记录的结束标志记录号当前记录,24,二、记录的定位方式,1、

7、指针的绝对移动:把指针移动到指定的位置。2、指针的相对移动:指从当前位置开始,相对于当前记录向前或向后移动若干个记录位置。3、有条件的记录指针移动:指让计算机按照一定的条件自动地在表的某个指定范围中查找符合该条件的记录,如果找到符合条件的记录,则把指针移动到该记录上,否则,指针将移动到整个表或表的指定范围的末尾。,25,三、记录定位的实现,1、在浏览状态下2、使用命令绝对定位命令:GO/GOTO/n相对定位命令:SKIP n条件定位命令:LOCATE(忽略)快速定位命令:SEEK,26,三、记录定位的实现,在“作用范围”的四个选项:“All”:表中的全部记录;“Next”:从当前记录开始的n个

8、记录,个数在其右边的文本框中输入;“Record”:指定的记录,记录号在其右边的文本框中输入;“Rest”:当前记录后的所有记录。,1.,文件头 首记录 记录 2:当前记录:RECORD n 记录 n:末记录 文件尾,ALL,NEXT n,REST,28,2.3.4 记录的修改,一、在浏览窗口中编辑修改记录二、批量记录的修改1、使用“表”菜单中的“替换字段”项2、使用命令批量修改记录,29,修改记录字段值的的命令有两个:,REPLACE命令(忽略)UPDATE-SQL命令语法:UPDATE 表名 SET 字段1=表达式1,字段2=表达式2.WHERE 条件表达式,30,2.3.5 记录的删除,

9、删除表中的记录要分两个步骤来实现:(1)标记要删除的记录;(2)彻底删除带删除标记的记录。,31,一、标记要删除的记录,1、界面方式的删除(1)在表的浏览窗口中删除个别记录(2)在表的某一范围内删除一组符合指定条件的记录,32,2、命令方式的删除(1)DELETE命令DELETE 范围 FOR 条件表达式范围:ALL(所有记录)REST(从当前记录开始到记录结束)RECORD n(第n号记录)NEXT n(从当前记录开始的n条记录)默认范围:当前记录FOR 条件表达式:删除符合条件的记录例如:use xsdeletedelete next 3delete all for xs.xb=男 del

10、ete all,33,2、命令方式的删除(2)DELETE-SQL命令DELETE FROM 表名 WHERE 过滤条件表达式 例如:DELETE FROM xs WHERE xs.xb=男DELETE FROM xs,34,二、对带删除标记记录的处理,1、测试删除标记DELETE()函数2、恢复删除3、彻底删除4、控制其他命令对带删除标记的记录的访问SET DELETED ON使命令忽略标有删除标记的记录SET DELETED OFF(默认值)命令可以访问标有删除标记的记录,35,2.3.6 筛选记录,是指从表中选出部分满足指定条件的记录来进行浏览或其他操作,不满足条件的记录则被“隐含”起来

11、。,36,一.通过界面操作筛选记录,在“工作区属性”对话框中,在“数据过滤器”文本框中输入筛选条件表达式。,37,二.使用命令筛选记录,SET FILTER TO 条件表达式例如,用以下命令筛选出所有男学生:SET FILTER TO XB=“男”去掉记录筛选条件的命令:SET FILTER TO另外在许多命令的用法中,可以包含FOR子句,使命令在执行时进行临时性筛选。,38,2.1.1筛选字段,筛选字段是选取表的部分列。,39,一.通过界面操作筛选字段,“工作区属性”对话框中打开“字段筛选器”,40,二、使用命令筛选字段,SET FIELDS ON指定只能访问出现在字段列表中的字段。SET

12、FIELDS OFF(默认值)指定可以访问当前表中的所有字段。SET FIELDS TO 字段1,字段2.指定当前表中可访问的字段的名称。SET FIELDS TO ALL允许访问当前表中的所有字段。,41,2.4 表的使用,表打开以后才能进行操作,实际上打开表就是把表从磁盘调入内存中某一个工作区。VFP提供了32767个工作区,编号从132767。,42,2.4.1工作区,一、工作区的概念工作区是指用以标识一个打开的表的区域。每个工作区有一个编号。每个工作区在某一时刻只能打开一个表。在同一个工作区打开另外一个表时,以前打开的表会自动关闭。,内存,1,2,3,43,二、工作区表的别名,表的别名

13、是对工作区中打开的表的一个临时标识。定义表的别名(1)在打开表时指定别名USE 表文件名 ALIAS 别名(2)在打开表时,如果没有自定义别名,则系统默认以表文件名作为别名。(3)前10个工作区除了使用110为编号外,还可以依次使用AJ 十个字母来表示,后者也是别名。,内存,1 xs,2 teacher,3,44,三、当前工作区,1、概念VFP正在使用的工作区称为当前工作区,即默认的工作区。2、当前工作区的区号和别名(1)用函数SELECT(0)测试当前工作区的区号.(2)用省略参数的ALIAS()函数取得当前工作区表的别名。(3)在主窗口的状态行中查看当前工作区中表的别名。,内存,1 xs,

14、2 teacher,3,45,三、当前工作区,3、设置当前工作区(1)在“数据工作期”窗口中设置(2)使用SELECT命令设置SELECT 工作区号|别名4、处理非当前工作区中的表方法有二:(1)把其他工作区设成当前工作区;(2)在命令中指定工作区。其一般格式为:命令 IN 工作区号|别名(P31例)5、SELECT 0 命令用来选定当前尚未使用的最小区号。,内存,1 xs,2 teacher,3,46,2.4.2表的打开和关闭,表只有在被打开时,表中的数据才能被访问。每个打开的表占用一个工作区。一个工作区只能打开一个表。但一个表可以同时被打开在多个工作区中。打开的表可以被关闭。,47,一.打

15、开表,1.通过界面操作使用“文件”菜单或工具条;在“数据工作期”窗口中打开(占用一未被使用的工作区);用USE?命令打开“使用”窗口,在该窗口中打开;2.使用命令USE 表文件名 IN 工作区号|别名3.多次打开一个表USE 表文件名 IN 工作区号|别名 AGAIN,48,二.关闭表,1.通过界面操作在“数据工作期”窗口中关闭;2.使用命令(1)关闭当前工作区中的表:USE(2)关闭非当前工作区中的表的命令:USE IN 工作区号|别名或者 SELECT 工作区号|别名USE(3)关闭所有工作区中的表的命令:CLOSE ALL或者 CLOSE DATABASES ALL或者 CLOSE TA

16、BLES ALL(4)在退出VFP系统时,所有的表都将被关闭。,49,2.4.3表的独占与共享使用,一个表同时被多个用户访问的情况,就是表的共享使用。反之当一个表只能被一个用户打开时,称为表的独占使用。,50,一.设置独占与共享的默认状态,1、使用“选项对话框”“数据”设置 2、使用SET EXCLUSIVE命令设置:设置“共享”为默认打开方式SET EXCLUSIVE OFF设置“独占”为默认打开方式SET EXCLUSIVE ON,51,二.强行以一种方式打开表,1、在“打开”窗口中设置 2、在用USE命令打开表时,加“SHARED”(共享)或“EXCLUSIVE”(独占)子句来指定打开方

17、式(1)以共享方式打开表USE 表文件名 SHARED(2)以独占方式打开表USE 表文件名 EXCLUSIVE,52,2.4.4缓冲访问表中的数据,一、数据缓冲数据缓冲是VFP在多用户环境下,用以保护对表记录所做的数据更新以及数据维护操作的一种技术。它为启用数据缓冲的表在内存中开辟一个缓冲区,对表的一个或多个记录的修改可以先保存在缓冲区中,用户可以决定是否将缓冲区中的数据更新表文件。在更新表文件时,缓冲区自动测试、锁定以及解锁记录或表。,53,1、缓冲的类型有两种:记录缓冲和表缓冲。(1)记录缓冲(也叫行缓冲)仅对表的一个记录开设缓冲区,当记录指针移动时或者关闭表时,缓冲区将自动更新表中相应

18、的记录。若一次只对一个记录进行访问、修改或写操作,应选择记录缓冲。(2)表缓冲对整个表实施缓冲,仅当发出更新表的命令或关闭表时更新表。若要对多个记录的更新使用缓冲,应选择表缓冲。,54,55,(1)保守式缓冲。在多用户环境中防止一个用户访问另一个用户正在修改的记录或表。(2)开放式缓冲。记录只在被写入时加锁。故有四种缓冲方式:(1)保守式行缓冲(2)开放式行缓冲(3)保守式表缓冲(4)开放式表缓冲,2、缓冲的两种锁定方式,56,(1)工作区属性对话框.(2)使用CURSORSETPROP()函数.格式:CURSORSETPROP(Buffering,缓冲类型值,工作区|别名)缓冲类型值有:1为

19、无缓冲 2为保守式行缓冲3为开放式行缓冲 4为保守式表缓冲 5为开放式表缓冲,3、设置表的数据缓冲,57,(1)CURVAL()函数和OLDVAL()函数(2)GETFLDSTATE()函数 5.执行和放弃对缓冲数据的更改(1)用TABLEUPDATE()函数执行对缓冲行、缓冲表或临时表的修改。(2)用TABLEREVERT()函数放弃对缓冲行、缓冲表或临时表的修改。,4、检测缓冲区中数据是否与数据源表一致,58,2.5 表的索引,59,2.5.1记录的顺序,一、物理顺序按记录输入的时间顺序存放,并用记录号予以标识,除非有记录的删除和插入,否则表中的物理顺序总是不变的。二、逻辑顺序对记录按某个

20、字段值或某些字段值排序。,60,2.5.2索引的几个概念,一、索引(Index)索引实际上是一种排序,但是它不改变数据表中的物理顺序,而是另外建立一个记录号列表。而表的索引指明由索引关键字的大小决定的记录排列的顺序(记录的逻辑顺序)。表一旦按索引表达式建立索引后,就产生了一个相应的索引文件,其文件名与表名相同,但扩展名不同。注意:虽然排序和索引都以增加一个文件为代价,但索引文件只包含关键字和记录号两个字段,比原来的表要小的多。索引起作用后,增加或修改表的记录时,索引文件会自动更新,所以索引的应用原比排序广泛。1、索引关键字 2、索引表达式的构成 3、索引标识(TAG),61,二.索引的类型,1

21、.主索引(Primary Indexes)组成主索引关键字的字段或表达式,在表的所有记录中不能有重复的值的索引。每张表只能创建一个主索引。自由表不能建立主索引。2.候选索引(Candidate Indexes)在指定的关键字段或表达式中不允许有重复值的索引。一张表中可以建立多个候选索引。候选索引可用于数据库表和自由表。,62,二.索引的类型,3.普通索引(Regular Indexes)允许关键字段或表达式的值出现重复。4.唯一索引(Unique Indexes)索引的关键字段或表达式在表中可以有重复值,但在索引对照表中,重复的值仅存储一次,而忽略其他的相同的值。,64,三.索引文件的种类,1

22、.索引文件保存索引信息的文件。2.索引文件的种类(1)结构复合索引文件(.cdx)结构复合索引文件与对应的表文件的主文件名相同。与表同步打开、更新和关闭。(2)非结构复合索引文件(.cdx)非结构复合索引文件名由用户给出。不随表的打开而自动打开。(3)独立索引文件(.idx)单索引文件只包含一个索引,这种类型是为了与FOXBASE+开发的应用程序相兼容而保留的。但若将它定义为压缩的,将不能被FOXBASE+使用。独立索引不会随表的打开而自动打开。,65,2.5.3结构复合索引文件的创建,一、用“表设计器”创建二、用INDEX命令创建INDEX ON 索引表达式 TAG 索引标识名FOR 条件表

23、达式 ASCENDING|DESCENDINGUNIQUE|CANDIDATE,66,2.5.4索引的修改和删除,一、索引的修改用“表设计器”用INDEX命令二、索引的删除1、删除结构复合索引文件中的索引标识(1)用“表设计器”(2)用DELETE TAG命令DELETE TAG 标识名1 OF CDX文件1 或者:DELETE TAG ALL OF CDX文件名,67,2.5.5索引的使用,一、主控索引的概念对表正在起作用的索引。可以是:(1)复合索引文件的一个索引标识(主控标识)(2)独立索引文件(主控索引文件),68,二.设置主控索引,1、打开表的同时指定主控索引(1)指定复合索引文件的

24、主控标识USE 表文件名 ORDER TAG 标识名 OF CDX文件名(2)指定独立索引文件为主控索引文件USE 表文件名 ORDER IDX文件名(3)按照索引编号指定主控索引USE 表文件名 ORDER 索引编号,69,二.设置主控索引,2、打开表后指定主控索引(1)在“数据工作期”窗口中设置(2)用SET ORDER TO命令设置SET ORDER TO 索引编号|IDX文件|TAG Tag名 OF CDX文件 IN 工作区|别名 ASCENDING|DESCENDING几个函数:CDX(索引位置号),ORDER(),TAG(),70,二.利用索引快速定位记录,1、SEEK命令SEEK 表达式 ORDER 索引编号|IDX文件名|TAG Tag名 OF CDX文件 ASCENDING|DESCENDINGIN 工作区|别名用FOUND()函数测试找到与否2、SEEK()函数SEEK(表达式,工作区|别名,索引编号|IDX文件名|TAG名),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号