第三章数据表基本操作课件.ppt

上传人:牧羊曲112 文档编号:4093091 上传时间:2023-04-03 格式:PPT 页数:70 大小:774KB
返回 下载 相关 举报
第三章数据表基本操作课件.ppt_第1页
第1页 / 共70页
第三章数据表基本操作课件.ppt_第2页
第2页 / 共70页
第三章数据表基本操作课件.ppt_第3页
第3页 / 共70页
第三章数据表基本操作课件.ppt_第4页
第4页 / 共70页
第三章数据表基本操作课件.ppt_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《第三章数据表基本操作课件.ppt》由会员分享,可在线阅读,更多相关《第三章数据表基本操作课件.ppt(70页珍藏版)》请在三一办公上搜索。

1、1,1,设置默认目录,(1)菜单操作方式“工具”“选项”“文件位置”“默认目录”(2)命令方式 SET DEFAULT TO D:vfp注意:VFP中所有命令全部使用英文标点符号,2,2,创建自由表,菜单操作方式表文件扩展名*.dbf备注型字段或通用型字段数据的输入方法(Ctrl+Home)使用备注型、通用型字段后,系统会自动生成备注文件,扩展名为.FPT,此文件不可删除Ctrl+w 保存所输入的数据 ctrl+q 取消所输入的数据窗口分割器,3,3,命令方式【格式1】Create【格式2】Create table(,)字符型 C,数值型 N,日期型 D逻辑型 L,备注型 M,通用性 G例:c

2、reate table xscj(学号 c(5),课程号 c(4),成绩 n(6,3),4,4,Visual FoxPro 6.0中的命令,Visual FoxPro 6.0命令的一般格式命令动词FIELDSFOR|WHILE 范围子句ALL 表中全部记录RECORD n 表中指定的第n条记录NEXT n 从表中当前记录开始向下的n条记录REST 从表中当前记录开始到最后一条记录为止的所有记录,5,5,FOR和WHILE选项的不同,(1)FOR子句是从首记录开始判断逻辑表达式的值是真还是假,而WHILE子句则是从当前记录开始判断逻辑表达式值的真假。(2)FOR子句是对整个表中所有满足条件的记录

3、进行操作,而WHILE子句则是从当前记录开始对满足条件的连续记录进行操作,即遇到不满足条件的记录,则立即停止操作,不管其后是否还有满足条件的记录。(3)FOR和WHILE子句在某些命令中既可以单独使用,也可以同时使用,WHILE优先于FOR。,6,6,命令的使用,(1)每条命令以命令动词开头,动词后的选项先后顺序可以任意,但必须符合命令格式的规定。(2)用空格来分隔每条命令中的各个选择项。(3)分号作为续行符(;)用来表示下行仍是同一命令的一部分,这样就可以把一条长命令分成多行来写,但命令的最后一行不能以分号结尾。(4)命令动词、各短语中的关键字、函数名都可以简写为4个字符,不区分大小写。,7

4、,7,表记录操作,1.表的打开与关闭 表的打开命令格式:USE 表的关闭格式:USE&关闭当前工作区中的表 CLOSE ALL&数据库、索引、项目管理器等同时被关闭,8,8,2.表记录的浏览,菜单方式 命令方式格式1:BROWSE FIELDS FOR|WHILE 格式2:DISPLAY FIELDS FOR|WHILE TO PRINT OFF格式3:LIST FIELDS FOR|WHILE TO PRINT OFFBROWSE命令执行时打开“浏览”窗口。DISP、LIST将显示结果送到屏幕。有“OFF”时,不显示记录号,9,9,LIST和DISPLAY命令的区别,(1)省略时,LIST默

5、认值为ALL,显示所有记录;省略和时,DISPLAY默认值为当前记录,即显示一条记录。(2)当显示内容较多时,DISPLAY是分页显示;LIST不分页,而是连续地滚动显示。,10,10,3.表记录的定位,记录的指针 系统在打开一个表文件后将自动生成三个控制标志:记录开始标志、记录指针标志、记录结束标志。,Skip-1,Skip 1,11,11,根据定位的方式,分为绝对定位(GO或GOTO)、相对定位(SKIP)、条件定位(LOCATE)和索引定位(FIND或SEEK)四种。当表打开时,当前记录为第一条记录。菜单方式定位记录“表”“转到记录”,12,12,命令方式定位记录,(1)绝对定位(GO)

6、命令格式1:GO|TOP|BOTTOM命令格式2:(2)相对定位(SKIP)命令格式:SKIP 当为1时可省略,即SKIP等价于SKIP 1。,13,13,常用测试函数,BOF()是否在开始标志处EOF()是否在结束标志处RECNO()当前记录号RECCOUNT()表文件总记录数,刚打开表时记录指针的情况,14,14,4.表记录的修改,(1)在“浏览”窗口修改表记录(2)在“编辑”窗口中修改表记录命令格式:EDIT FIELDS FOR|WHILE CHANGE FIELDS FOR|WHILE 功能:这两条命令的格式、功能相同,以竖直编辑窗口显示、编辑与修改表中的记录。默认范围:Rest,1

7、5,15,(3)用REPLACE命令直接修改表记录,命令格式:REPLACE WITH ADDITIVE,WITH ADDITIVEFOR|WHILE 功能:不进入全屏幕编辑方式,根据命令中指定的条件和范围,用表达式的值去更新指定字段的内容。,16,16,(1)WITH,WITH;指定用的值来代替字段中的数据;依此类推。(2)、都缺省时,REPLACE仅对当前记录操作。(3)ADDITIVE:把对备注字段的替代内容追加到备注字段原内容的后面。ADDITIVE只对替换备注字段有用。如果省略ADDITIVE,则用表达式的值改写备注字段原有内容。例:USE XSCJ MODIFY STRUCTURE

8、&增加一个平均分字段 REPLACE 平均分 WITH 总分/3 ALL,17,17,REPLACE命令对应菜单方式,“表”菜单中选择“替换字段(R).”,18,18,5.表记录的追加与插入,(1)菜单方式追加表记录“表”“追加新记录”“显示”“追加方式”(2)命令方式追加表记录命令格式:APPEND BLANK功能:在当前使用的表文件后面追加记录。假设该表文件已有n条记录,执行该命令后,则从第n+1条记录开始追加;若表文件尚无记录,则从第1号记录开始追加。,19,19,【例】打开学生情况表XSDA.dbf,向其中追加空白记录,用REPLACE命令往该记录的“学号”字段填入”00051”,“姓

9、名”字段填入”王平”,“性别”字段填入”男”。CLOSE ALLUSE XSDA APPEND BLANKREPLACE 学号 WITH”00051”,姓名 WITH“王平”,性别 WITH”男”,说明:有BLANK时,不打开浏览窗口,系统自动在表末尾加一条空白记录,可配合REPLACE等命令编辑新记录。无此项时,进入编辑窗口,让用户输入空白记录,CTRL+W存盘退出。,20,20,(3)外部追加将另一个表文件的记录追加到当前表的尾部。在实际应用中,两个表的结构应尽量保持一致。菜单方式“表”“追加记录(A).”“追加来源”对话框 命令方式格式:APPEND FROM|?FIELDS功能:将其他

10、表(文件)中的记录加入到当前表中。,21,21,(4)记录的插入,格式:INSERT BEFORE BLANK功能:在当前表、当前位置前后插入一个新记录。相关参数和选项的含义:无任何选项时,打开“编辑”窗口,在表的当前记录之后添加一个新的记录,随后显示该记录以便用户录入数据。含“BEFORE”选项时,新记录插入在当前记录的前面。含“BLANK”选项时,不进入“编辑”窗口,而是自动插入一条空白记录。,22,22,(1)逻辑删除(为记录做上删除标记),格式:DELETE FOR WHILE,功能:对当前表文件中指定的记录做删除标记。GO 7DELETEGO 4DELETE NEXT 3 LIST,

11、执行上述命令后屏幕显示结果:,6.表记录的删除与恢复,set deleted onset deleted off,23,23,(2)物理删除(清除带有删除标记的记录),格式:PACK,功能:省略选择项,该命令将从当前表中删除所有带删除标记的记录。说明:用PACK命令删除的记录是不可被恢复的。所以在使用PACK命令前一定要检查删除标记是否加的正确。,例:PACKLIST,执行上述命令后屏幕显示的结果:,注意:在进行这一步操作前先备份数据,24,24,(3)恢复带删除标记的记录,格式:RECALL FOR WHILE,功能:恢复当前表中带删除标记的记录,即去掉删除标记“*”号。当省略所有的选项时,

12、仅恢复当前记录。,RECALL ALLBROWSE,执行上述命令后屏幕显示的结果,(4)清除所有记录,格式:ZAP,功能:从当前表中清除全部记录,仅保留表的结构。ZAPDELETE ALL+PACK,25,25,(1)复制任何类型文件,命令格式:COPY FILETO,功能:从文件复制得文件,说明:(a1)若对表进行复制,该表必须处于关闭状态。(a2)文件扩展名必须写。(a3)和都可使用通配符*和?,例:CLOSE ALL COPY FILE XSDA.DBF TO DA.DBF COPY FILE XSDA.*TO DA.*,7.表和表结构的复制,26,26,(2)从表复制出表或其他类型的文

13、件,COPY TO 范围FOR FIELDS,功能:将当前表中选定的部分记录和部分字段复制成一个新表或其他类型的文件。,说明:(a1)若对表进行复制,首先要打开原表(a2)对于含有备注型字段的表,系统自动复制备注文件,例:USE XSDA COPY TO XSDA2,27,27,COPY TO命令,(3)新文件的类型除了表之外,还可以是系统数据格式、定界格式等文本文件或Mifrosoft Excel文件。,例:Close all use xsda copy to a1 next 3 sdf go 1 copy to b1 next 3 delimited,(4)TYPE 子句的格式 TYPE

14、SDF|XLS|DELIMITEDWITH|WITH BLANK|WITH TAB,比较a1.txt和b1.txt两个文件,28,28,(3)复制表结构,COPY STRUCTURE TOFIELDS,功能:将当前打开的表文件结构的部分或全部复制到所制定的表结构,仅复制当前表结构,不复制其中的数据。,说明:(1)指定新表结构的表文件名(2)FIELDS指定在新表中包含的字段及顺序。,例:COPY STRUCTRE TO XSDA FIELDS 姓名,性别,出生日期,29,29,3.4 排序与索引,3.4.1 排序1基本概念排序是将已建好的表记录按某一关键字规定的顺序重新排列。排序后产生一个新的

15、表文件,但源文件不变。“关键字”是用作排序的字段,其类型可以是C型、N型和D型,不能是L型和M型。数据从小到大排列称为“升序”,从大到小排列称为“降序”,若是字符型数据,则按其内部代码的值论大小。,30,30,【格式】SORT TO ON/A/C/D,/A/C/D.FIELDSFORWHILE【功能】对当前打开的表,按指定的字段进行排序,生成新的表文件。【说明】用作排序的字段的数据类型允许是N、C、D、L型。/A 表示升序/D 表示降序/C 表示不区分大小写。,2.排序命令,31,31,若有多个排序字段时,先按命令中的值顺序排列,值相同则按值的顺序排列,依次类推。其中称为主关键字,这种排序也称

16、为多重排序。注意:在set dele on的情况下,带有删除标记的记录不参加排序,显示时原表中还有此记录,但排序后的表中不存在。【例】对表XSCJ.dbf按“总分”降序排序,排序后生成的的排序文件名为XSCJ1.dbf,且只有学号和总分2个字段。USE XSCJLISTSORT TO XSCJ1 ON 总分/D FIELDS 学号,总分,32,32,示例:Close allClearUse XSDAListSort to XSDA 2 on 学号/DUse XSDA 2 ListSort to XSDA 3 on 入学分/A FIELDS 学号,姓名,入学分Use XSDA3List,33,3

17、3,3.4.2 索引,1.基本概念索引是按照索引关键字的值使数据表中的记录有序排列的一种技术。索引文件是由指针构成的文件,只包括索引关键字值和记录号两项内容,所有关键字值按升序或降序排列,每个关键字值对应源表文件的一条记录号,这样便确定了记录的逻辑顺序。索引文件总是依附、从属于源表文件而存在,不可单独使用。,34,记录的顺序物理顺序:表中记录的存储顺序。按记录输入的时间顺序存放。逻辑顺序:记录的处理顺序。对记录按某个(些)字段的值进行排序。,35,索引示例,学生成绩情况表,索引文件是由指针构成的文件,只包括关键字和记录号两项内容,所有关键字值按升序或降序排列,每个关键字对应原表文件的一个记录号

18、。建立一个索引后,原记录的物理存储不发生变化。,索引文件的结构,数据库表文件结构,36,排序与索引的区别,排序:产生的表文件的扩展名为.dbf,记录的输出顺序是物理顺序(重新排列的),原表中记录的排列顺序并不发生改变,但新排序表中的记录与原表中的记录已不再一一对应。索引:产生的文件扩展名为.idx(单索引)或.cdx(复合索引),文件只包含索引关键字的值和与其对应的记录号,记录的输出是逻辑排序的,原表中记录的物理顺序并不发生改变,但产生的索引文件中的每个记录值对应原表中的一个记录号。,37,2.索引类型,索引可分为主索引、候选索引、普通索引、惟一索引4种类型。(1)主索引(Primary In

19、dex)作为主索引的索引关键字,其在表中的值是惟一能够标识每个记录的值。它“强调不允许出现重复值”,是指建立索引的字段值不允许重复。一个数据表只能建一个主索引,只有数据库中的数据表才能建立和使用主索引。,(2)候选索引(Candidate Index)候选索引也是一个不允许在指定字段和表达式中出现重复值的索引。数据库表和自由表都可以创建候选索引。一个表可以建立多个候选索引。当数据库表无主索引时,可指定一个候选索引为主索引。主索引和候选索引都存储在.CDX结构复合索引文件中,不能存储在非结构复合索引文件和单索引文件中,因为主索引和候选索引都必须与表文件同时打开和同时关闭。,38,(3)普通索引(

20、Regular Index)作为普通索引的索引关键字,其表中不同记录的对应值可重复,并且索引项也允许出现重复。一个表可以建立多个普通索引。数据库表和自由表均可建立普通索引。(4)惟一索引(Unique Index)作为惟一索引的索引关键字,其表中不同记录的对应值可重复,但在索引文件中仅保存重复值记录的第一个,即索引文件中的记录值惟一。一个表可以建立多个惟一索引,数据库表和自由表均可建立惟一索引。,39,3.索引文件的类型,(1)单索引文件(.idx)(2)复合索引文件(.cdx)“结构复合索引”文件“非结构复合索引”文件,40,(1)命令方式建立索引,41,4.建立索引,注意:单索引文件默认为

21、升序ASCENDING,不可用DESCENDING降序,但数值型字段可在前面乘上一个-1降序排列。【例2】打开xsda.dbf表,按年龄的降序建立索引文件nl.idx use xsda index on-年龄 to nl list,42,【例3】打开xsda.dbf表,按性别建立唯一索引文件XB.idx。USE xsda INDEX ON 性别 TO XB UNIQUE LIST【例4】打开xsda.dbf表,性别为第一关键字,年龄为第二关键字建立索引文件xn.idx。USE xsda INDEX ON 性别+str(年龄,3)TO xn List,43,若是索引表达式:若索引表达式中用到了不

22、同类型的字段变量,应当用函数将它们转换成统一的类型。字符型+数值型字符型+STR(数值字段,长度,小数位)数值型+数值型:不用转换(将两个数值表达式的值相加后的值进行排序)字符型+日期型字符型+DTOC(日期型,1)数值型+日期型STR(数值字段,长度,小数位)+DTOC(日期型,1)数值转换成字符串函数:STR(,,)字符串转换成数值函数:VAL()日期型转换成字符型函数:DTOC()字符型转换成日期型函数:CTOD(),44,复合索引文件示例,(1)命令方式建立索引,建立结构复合索引文件(.cdx)INDEX ON TAG FOR ASCENDING|DESCENDING UNIQUE|C

23、ANDIDATE ADDITIVE【例1】为表xsda.dbf建立结构复合索引文件。索引关键字为姓名,用xm作为普通索引标识(TAG标记),建立复合索引文件xsda.cdx。use xsda index on 姓名 tag xm list,46,【例2】以总分为关键字,降序排序,把zf作为索引标识添加到xscj.cdx中。use xscj Index on 总分 tag zf descending List【例3】在表XSDA.DBF的结构复合索引文件中,先按性别再按学号追加一个索引标识。USE XSDA INDEX ON 性别+学号 TAG xbxh List,47,【例4】对表XSCJ.d

24、bf中总分大于等于345分的记录按总分的降序建立一个单索引文件。对表XSDA.dbf中北京的学生按“姓名”字段(升序)建立结构复合文件的一个索引标识XM,索引类型为普通索引;按“性别”字段(降序)建立结构复合文件的另一个索引标识XB,索引类型为惟一索引。USE XSCJINDEX ON 总分 TO XSCJ1 FOR 总分=345 LISTUSE XSDAINDEX ON 姓名 TAG XM FOR 住址=”北京”LISTINDEX ON 性别 TAG XB DESC UNIQUELIST,48,(1)命令方式建立索引,49,(2)在表设计器中建立索引 在排序选项中,选择索引方向,升序()或降

25、序()。数值型按其值论大小,西文字符按其ASCII码值论大小,汉字等字符串按其内码论大小。在表设计器中建立的索引文件与表同名,是结构复合索引文件。,50,5打开索引文件,刚刚建立完索引文件时,该索引文件处于打开状态。在打开表文件时,结构复合索引文件随之打开。可以同时打开多个索引文件,但任何时候只能有一个索引文件起作用。当打开多个索引文件时,(复合索引文件中的多个子索引同时打开),此时只有一个索引起作用,该索引称是主控索引。,51,打开单索引文件和非结构复合索引文件,命令格式1:SET INDEX TO ADDITIVE命令格式2:USEINDEX功能:打开当前表的一个或多个索引文件。(1):指

26、定要打开的一个或多个索引文件,多个索引文件之间要用逗号分隔,第一个索引文件自动成为主控索引文件。(2)ADDITIVE:若缺省该项,则在用本命令打开索引文件的同时,除结构复合索引文件之外的其他索引文件均被关闭。若含此项,表示不关闭以前打开的索引文件。,52,【例】单索引文件使用方法示例。use xsda set index to xm,xn&打开索引文件xm和xn,xm被设置为主索引 List&显示xm.idx主控索引文件记录的逻辑排序结果 使用SET INDEX TO或CLOSE INDEX命令将关闭单索引文件和非结构复合索引文件。,53,6.设置当前索引的命令,54,【例】打开索引文件和设

27、置当前索引示例。USE XSCJLIST SET INDEX TO XSCJ1&打开单索引文件XSCJ1,当前主控索引文件LIST USE XSDALISTSET ORDER TO XM&设置当前索引为包含在结构复合索引文件中的XM索引项LIST SET ORDER TO XB&设置当前索引为包含在结构复合索引文件中的XB索引项 LIST SET ORDER TO&记录还是按物理顺序显示LIST,55,7.更新索引,(1)自动更新 已打开的索引文件跟随数据的改变自动改变记录的逻辑顺序(2)重新索引 格式:REINDEX,56,8.删除索引,单索引文件可采取删除文件的方法直接删除,复合索引文件可

28、用下列命令删除。命令格式:DELETE TAG|ALLOF.【例】删除索引示例。USE XSDA DELETE TAG XB MODI STRU DELETE TAG ALL MODI STRU,57,9.关闭索引文件,格式一:USE功能:关闭表文件的同时,也关闭了所有已打开的索引文件。格式二:SET INDEX TO功能:关闭所有已打开的索引文件,但表文件仍处于打开状态。格式三:CLOSE INDEX功能:功能同SET INDEX TO命令。,58,3.5 数据查询,3.5.1 顺序查询 顺序查找是在表文件中依次查找满足条件的记录。顺序查询也称直接查询。命令格式:LOCATE FOR CON

29、TINUE默认范围:ALL,59,说明该命令不显示结果,使用有关函数可证实找到否。若查找到一个满足条件的记录可用函数RECNO()返回该记录号,此时函数FOUND()返回值为.T.,EOF()返回值为.F.;若找不到满足条件的记录可用函数RECNO()返回值为该表文件总记录数+1,函数FOUND()返回值为.F.,EOF()返回值为.T.。,60,【例】在表XSDA.dbf中(共有50条记录)按顺序查找不是团员且家在安徽的所有男同学记录。USE XSDALOCATE FOR 性别=”男”.AND.是否团员=.F.AND.住址=”安徽”?FOUND()?RECNO()DISPLAY CONTIN

30、UE?FOUND()?RECNO(),61,3.5.2 索引查询,格式:SEEK 功能:在已确定当前索引的表文件中快速查找满足值的第一条记录。说明:(1)要产生一个索引内容的值(如:”许小亭”)而不是关系表达式(如:姓名=”许小亭”)。(2)只能在索引过的表中使用,并且只能对当前索引关键字进行查询。(3)当表中有多个符合条件的记录时,指针定位在第一个,用SKIP可定位到下一个。,62,【例】索引查找示例。CLOSE ALL USE XSDAINDEX ON 姓名 TAG XMINDEX ON 出生日期 TAG CSRQSET ORDER TO XMSEEK”许小亭”?RECNO()DISPLA

31、YSET ORDER TO CSRQSEEK 1982/07/27?RECNO()DISPLAY,63,3.6 数据统计,3.6.1 统计记录个数命令格式:COUNT FOR WHILE TO 功能:统计当前表中指定范围内满足条件的记录个数,并存于中。【例】分别统计表XSDA.dbf中学生总人数、男同学的人数。USE XSDACOUNT TO N?NCOUNT FOR 性别=”男”TO BOY?BOY,64,3.6.2 求和命令,格式:SUM FOR WHILE TO 功能:在当前表中,对指定范围内给定条件的数值型字段或含数值型字段的数值表达式进行纵向求和计算,并把结果存放在对应的标识的变量中

32、。缺省则对所有数值型字段进行纵向求和;若使用可选项,则只对中的各表达式累加求和,数值型字段之间或表达式之间用逗号分隔开。,65,3.6.3 求平均值命令,格式:AVERAGEFOR WHILE TO 功能:对当前表中指定范围内满足条件的记录的数值型字段求算术平均值,并把结果存入中,66,【例】分别计算学生成绩表XSCJ.dbf中全班语文、数学、英语课程的成绩和。USE XSCJSUM 语文,数学,英语【例】分别计算学生成绩表XSCJ.dbf中全班语文、数学以及英语课程的平均成绩。USE XSCJAVERAGE 语文,数学,英语,67,3.6.4 汇总命令,格式:TOTAL ON TO FIEL

33、DS FORWHILE功能:按关键字对当前表文件的数值型字段进行分类合计,结果存入表示的新生成的表文件中。,68,相关参数和选项的含义:(1)该命令将产生一个新的表文件。它将已打开的表的某些数值型字段的内容按照关键字相同的原则进行汇总,汇总结果放在一个汇总表内,汇总表名由用户在必选参数里指定。对被汇总的表文件必须先按关键字进行排序或索引。(2)FIELDS选择项是选择要参加汇总的数值型字段,缺省时对当前表中所有数值型字段合计。(3)缺省指ALL。(4)生成的汇总表中不含“备注型”字段。(5)凡未求和的字段,在新表文件中生成记录的字段值等于其第一条记录的字段值;而在被求和的字段上,生成记录的字段值等于求和的结果,若其结果超过了该字段的宽度,将会产生数据溢出错误,数据被丢失,并在汇总表文件中以星号“*”填满该字段。,69,【例】给学生成绩表XSCJ.dbf增加一个“性别”字段,然后按性别分类统计男女同学的“总分”字段之和。CLOSE ALLUSE XSCJINDEX ON 性别 TAG XBTOTAL ON 性别 TO XSCJZF FIELDS 总分USE XSCJZFLIST,70,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号