




已阅读5页,还剩66页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章 Visual FoxPro 6.0数据表基本操作,2,2,设置默认目录,(1)菜单操作方式 “工具” “选项” “文件位置” “默认目录” (2)命令方式 SET DEFAULT TO D:vfp 注意:VFP中所有命令全部使用英文标点符号,3,3,创建自由表,菜单操作方式 表文件扩展名 *.dbf 备注型字段或通用型字段数据的输入方法(Ctrl+Home) 使用备注型、通用型字段后,系统会自动生成备注文件,扩展名为.FPT,此文件不可删除 Ctrl+w 保存所输入的数据 ctrl+q 取消所输入的数据 窗口分割器,4,4,命令方式 【格式1】 Create 【格式2】 Create table ( ( , ) 字符型 C,数值型 N,日期型 D 逻辑型 L,备注型 M,通用性 G 例:create table xscj (学号 c(5),课程号 c(4),成绩 n(6,3) ),5,5,Visual FoxPro 6.0中的命令,Visual FoxPro 6.0命令的一般格式 命令动词FIELDSFOR|WHILE 范围子句 ALL 表中全部记录 RECORD n 表中指定的第n条记录 NEXT n 从表中当前记录开始向下的n条记录 REST 从表中当前记录开始到最后一条记录为止的所有记录,6,6,FOR和WHILE选项的不同,(1)FOR子句是从首记录开始判断逻辑表达式的值是真还是假,而WHILE子句则是从当前记录开始判断逻辑表达式值的真假。 (2)FOR子句是对整个表中所有满足条件的记录进行操作,而WHILE子句则是从当前记录开始对满足条件的连续记录进行操作,即遇到不满足条件的记录,则立即停止操作,不管其后是否还有满足条件的记录。 (3)FOR和WHILE子句在某些命令中既可以单独使用,也可以同时使用,WHILE优先于FOR。,7,7,命令的使用,(1)每条命令以命令动词开头,动词后的选项先后顺序可以任意,但必须符合命令格式的规定。 (2)用空格来分隔每条命令中的各个选择项。 (3)分号作为续行符(;)用来表示下行仍是同一命令的一部分,这样就可以把一条长命令分成多行来写,但命令的最后一行不能以分号结尾。 (4)命令动词、各短语中的关键字、函数名都可以简写为4个字符,不区分大小写。,8,8,表记录操作,1.表的打开与关闭 表的打开 命令格式:USE 表的关闭 格式: USE &关闭当前工作区中的表 CLOSE ALL &数据库、索引、项目管理器等同时被关闭,9,9,2. 表记录的浏览,菜单方式 命令方式 格式1:BROWSE FIELDS FOR|WHILE 格式2:DISPLAY FIELDS FOR|WHILE TO PRINT OFF 格式3:LIST FIELDS FOR|WHILE TO PRINT OFF BROWSE命令执行时打开“浏览”窗口。DISP、LIST将显示结果送到屏幕。 有“OFF”时,不显示记录号,10,10,LIST和DISPLAY命令的区别,(1) 省略时,LIST默认值为ALL,显示所有记录;省略和时,DISPLAY默认值为当前记录,即显示一条记录。 (2) 当显示内容较多时,DISPLAY是分页显示;LIST不分页,而是连续地滚动显示。,11,11,3.表记录的定位,记录的指针 系统在打开一个表文件后将自动生成三个控制标志:记录开始标志、记录指针标志、记录结束标志。,Skip -1,Skip 1,12,12,根据定位的方式,分为绝对定位(GO或GOTO)、相对定位(SKIP)、条件定位(LOCATE)和索引定位(FIND或SEEK)四种。 当表打开时,当前记录为第一条记录。 菜单方式定位记录 “表” “转到记录”,13,13,命令方式定位记录,(1) 绝对定位(GO) 命令格式1: GO |TOP|BOTTOM 命令格式2: (2) 相对定位(SKIP) 命令格式: SKIP 当为1时可省略,即SKIP等价于SKIP 1。,14,14,常用测试函数,BOF() 是否在开始标志处 EOF() 是否在结束标志处 RECNO() 当前记录号 RECCOUNT() 表文件总记录数,刚打开表时记录指针的情况,15,15,4.表记录的修改,(1)在“浏览”窗口修改表记录 (2) 在“编辑”窗口中修改表记录 命令格式: EDIT FIELDS FOR|WHILE CHANGE FIELDS FOR|WHILE 功能:这两条命令的格式、功能相同,以竖直编辑窗口显示、编辑与修改表中的记录。 默认范围:Rest,16,16,(3) 用REPLACE命令直接修改表记录,命令格式: REPLACE WITH ADDITIVE , WITH ADDITIVE FOR |WHILE 功能:不进入全屏幕编辑方式,根据命令中指定的条件和范围,用表达式的值去更新指定字段的内容。,17,17,(1) WITH , WITH ; 指定用的值来代替字段中的数据;依此类推。 (2)、都缺省时,REPLACE仅对当前记录操作。 (3)ADDITIVE:把对备注字段的替代内容追加到备注字段原内容的后面。ADDITIVE只对替换备注字段有用。如果省略ADDITIVE,则用表达式的值改写备注字段原有内容。 例: USE XSCJ MODIFY STRUCTURE & 增加一个平均分字段 REPLACE 平均分 WITH 总分/3 ALL,18,18,REPLACE命令对应菜单方式,“表”菜单中选择“替换字段(R).”,19,19,5.表记录的追加与插入,(1) 菜单方式追加表记录 “表” “追加新记录” “显示” “追加方式” (2) 命令方式追加表记录 命令格式:APPEND BLANK 功能:在当前使用的表文件后面追加记录。假设该表文件已有n条记录,执行该命令后,则从第n+1条记录开始追加;若表文件尚无记录,则从第1号记录开始追加。,20,20,【例】 打开学生情况表XSDA.dbf,向其中追加空白记录,用REPLACE命令往该记录的“学号”字段填入”00051”, “姓名”字段填入”王平”, “性别”字段填入”男”。 CLOSE ALL USE XSDA APPEND BLANK REPLACE 学号 WITH ”00051”, 姓名 WITH “王平”,性别 WITH ”男”,说明:有BLANK时,不打开浏览窗口,系统自动在表末尾加一条空白记录,可配合REPLACE等命令编辑新记录。 无此项时,进入编辑窗口,让用户输入空白记录,CTRL+W存盘退出。,21,21,(3) 外部追加 将另一个表文件的记录追加到当前表的尾部。在实际应用中,两个表的结构应尽量保持一致。 菜单方式 “表” “追加记录(A).” “追加来源”对话框 命令方式 格式:APPEND FROM |?FIELDS 功能:将其他表(文件)中的记录加入到当前表中。,22,22,(4) 记录的插入,格式:INSERT BEFORE BLANK 功能:在当前表、当前位置前后插入一个新记录。 相关参数和选项的含义: 无任何选项时,打开“编辑”窗口,在表的当前记录之后添加一个新的记录,随后显示该记录以便用户录入数据。 含“BEFORE”选项时,新记录插入在当前记录的前面。 含“BLANK”选项时,不进入“编辑”窗口,而是自动插入一条空白记录。,23,23,(1)逻辑删除(为记录做上删除标记),格式:DELETE FOR WHILE ,功能:对当前表文件中指定的记录做删除标记。 GO 7 DELETE GO 4 DELETE NEXT 3 LIST,执行上述命令后屏幕显示结果:,6. 表记录的删除与恢复,set deleted on set deleted off,24,24,(2)物理删除(清除带有删除标记的记录),格式:PACK,功能:省略选择项,该命令将从当前表中删除所有带 删除标记的记录。 说明:用PACK命令删除的记录是不可被恢复的。 所以在使用PACK命令前一定要检查删除标记是否加的正确。,例: PACK LIST,执行上述命令后屏幕显示的结果:,注意:在进行这一步操作前先备份数据,25,25,(3) 恢复带删除标记的记录,格式:RECALL FOR WHILE ,功能:恢复当前表中带删除标记的记录,即去掉删除标记“*”号。当省略所有的选项时,仅恢复当前记录。,RECALL ALL BROWSE,执行上述命令后屏幕显示的结果,(4) 清除所有记录,格式:ZAP,功能:从当前表中清除全部记录,仅保留表的结构。 ZAPDELETE ALL + PACK,26,26,(1)复制任何类型文件,命令格式: COPY FILETO,功能:从文件复制得文件,说明: (a1)若对表进行复制,该表必须处于关闭状态。 (a2)文件扩展名必须写。 (a3) 和都可使用通配符*和?,例: CLOSE ALL COPY FILE XSDA.DBF TO DA.DBF COPY FILE XSDA.* TO DA.*,7. 表和表结构的复制,27,27,(2)从表复制出表或其他类型的文件,COPY TO 范围FOR FIELDS,功能:将当前表中选定的部分记录和部分字段复制成一个新表或其他类型的文件。,说明: (a1)若对表进行复制,首先要打开原表 (a2) 对于含有备注型字段的表,系统自动复制备注文件,例: USE XSDA COPY TO XSDA2,28,28,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 SDF|XLS|DELIMITEDWITH |WITH BLANK|WITH TAB,比较a1.txt和b1.txt两个文件,29,29,(3)复制表结构,COPY STRUCTURE TOFIELDS,功能:将当前打开的表文件结构的部分或全部复制到所制定的表结构,仅复制当前表结构,不复制其中的数据。,说明: (1) 指定新表结构的表文件名 (2) FIELDS指定在新表中包含的字段及顺序。,例: COPY STRUCTRE TO XSDA FIELDS 姓名,性别,出生日期,30,30,3.4 排序与索引,3.4.1 排序 1基本概念 排序是将已建好的表记录按某一关键字规定的顺序重新排列。排序后产生一个新的表文件,但源文件不变。 “关键字”是用作排序的字段,其类型可以是C型、N型和D型,不能是L型和M型。 数据从小到大排列称为“升序”,从大到小排列称为“降序”,若是字符型数据,则按其内部代码的值论大小。,31,31,【格式】SORT TO ON /A/C/D ,/A/C/D. FIELDSFORWHILE 【功能】对当前打开的表,按指定的字段进行排序,生成 新的表文件。 【说明】用作排序的字段的数据类型允许是N、C、D、L 型。/A 表示升序 /D 表示降序 /C 表示不区分大小写。,2. 排序命令,32,32,若有多个排序字段时,先按命令中的值顺序排列,值相同则按值的顺序排列,依次类推。其中称为主关键字,这种排序也称为多重排序。 注意:在set dele on的情况下,带有删除标记的记录不参加排序,显示时原表中还有此记录,但排序后的表中不存在。 【例】对表XSCJ.dbf按“总分”降序排序,排序后生成的的排序文件名为XSCJ1.dbf,且只有学号和总分2个字段。 USE XSCJ LIST SORT TO XSCJ1 ON 总分/D FIELDS 学号,总分,33,33,示例: Close all Clear Use XSDA List Sort to XSDA 2 on 学号/D Use XSDA 2 List Sort to XSDA 3 on 入学分/A FIELDS 学号,姓名,入学分 Use XSDA3 List,34,34,3.4.2 索引,1. 基本概念 索引是按照索引关键字的值使数据表中的记录有序排列的一种技术。 索引文件是由指针构成的文件,只包括索引关键字值和记录号两项内容,所有关键字值按升序或降序排列,每个关键字值对应源表文件的一条记录号,这样便确定了记录的逻辑顺序。 索引文件总是依附、从属于源表文件而存在,不可单独使用。,35,记录的顺序 物理顺序: 表中记录的存储顺序。 按记录输入的时间顺序存放。 逻辑顺序: 记录的处理顺序。 对记录按某个(些)字段的值进行排序。,36,索引示例,学生成绩情况表,索引文件是由指针构成的文件,只包括关键字和记录号两项内容,所有关键字值按升序或降序排列,每个关键字对应原表文件的一个记录号。建立一个索引后,原记录的物理存储不发生变化。,索引文件的结构,数据库表文件结构,37,排序与索引的区别,排序:产生的表文件的扩展名为.dbf,记录的输出顺序是物理顺序(重新排列的),原表中记录的排列顺序并不发生改变,但新排序表中的记录与原表中的记录已不再一一对应。 索引:产生的文件扩展名为.idx(单索引)或.cdx(复合索引),文件只包含索引关键字的值和与其对应的记录号,记录的输出是逻辑排序的,原表中记录的物理顺序并不发生改变,但产生的索引文件中的每个记录值对应原表中的一个记录号。,38,2. 索引类型,索引可分为主索引、候选索引、普通索引、惟一索引4种类型。 (1) 主索引(Primary Index) 作为主索引的索引关键字,其在表中的值是惟一能够标识每个记录的值。它“强调不允许出现重复值”,是指建立索引的字段值不允许重复。 一个数据表只能建一个主索引,只有数据库中的数据表才能建立和使用主索引。,(2) 候选索引(Candidate Index) 候选索引也是一个不允许在指定字段和表达式中出现重复值的索引。 数据库表和自由表都可以创建候选索引。一个表可以建立多个候选索引。 当数据库表无主索引时,可指定一个候选索引为主索引。 主索引和候选索引都存储在.CDX结构复合索引文件中,不能存储在非结构复合索引文件和单索引文件中,因为主索引和候选索引都必须与表文件同时打开和同时关闭。,39,(3) 普通索引(Regular Index) 作为普通索引的索引关键字,其表中不同记录的对应值可重复,并且索引项也允许出现重复。一个表可以建立多个普通索引。数据库表和自由表均可建立普通索引。 (4) 惟一索引(Unique Index) 作为惟一索引的索引关键字,其表中不同记录的对应值可重复,但在索引文件中仅保存重复值记录的第一个,即索引文件中的记录值惟一。一个表可以建立多个惟一索引,数据库表和自由表均可建立惟一索引。,40,3. 索引文件的类型,(1) 单索引文件 (.idx) (2) 复合索引文件 (.cdx) “结构复合索引”文件 “非结构复合索引”文件,41,(1)命令方式建立索引,建立单索引文件 (.idx) INDEX ON TO .IDX FOR ASCENDING|DESCENDING UNIQUE| CANDIDATE ADDITIVE 【例1】打开XSDA.DBF表,以姓名为关键字段,建立索引文件xm.idx USE XSDA INDEX ON 姓名 TO xm LIST,42,4. 建立索引,注意:单索引文件默认为升序ASCENDING,不可用DESCENDING降序,但数值型字段可在前面乘上一个-1降序排列。 【例2】打开xsda.dbf表,按年龄的降序建立索引文件nl.idx use xsda index on -年龄 to nl list,43,【例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,44,若是索引表达式:若索引表达式中用到了不同类型的字段变量,应当用函数将它们转换成统一的类型。 字符型+数值型字符型+STR(数值字段,长度,小数位) 数值型+数值型:不用转换(将两个数值表达式的值相加后的值进行排序) 字符型+日期型字符型+DTOC(日期型,1) 数值型+日期型STR(数值字段,长度,小数位)+ DTOC(日期型,1) 数值转换成字符串函数: STR( ,,) 字符串转换成数值函数: VAL() 日期型转换成字符型函数: DTOC() 字符型转换成日期型函数: CTOD (),45,复合索引文件示例,(1)命令方式建立索引,建立结构复合索引文件(.cdx) INDEX ON TAG FOR ASCENDING|DESCENDING UNIQUE|CANDIDATE ADDITIVE 【例1】为表xsda.dbf建立结构复合索引文件。索引关键字为姓名,用xm作为普通索引标识(TAG标记),建立复合索引文件xsda.cdx。 use xsda index on 姓名 tag xm list,47,【例2】以总分为关键字,降序排序,把zf作为索引标识添加到xscj.cdx中。 use xscj Index on 总分 tag zf descending List 【例3】在表XSDA.DBF的结构复合索引文件中,先按性别再按学号追加一个索引标识。 USE XSDA INDEX ON 性别+学号 TAG xbxh List,48,【例4】 对表XSCJ.dbf中总分大于等于345分的记录按总分的降序建立一个单索引文件。对表XSDA.dbf中北京的学生按“姓名”字段(升序)建立结构复合文件的一个索引标识XM,索引类型为普通索引;按“性别”字段(降序)建立结构复合文件的另一个索引标识XB,索引类型为惟一索引。 USE XSCJ INDEX ON 总分 TO XSCJ1 FOR 总分=345 LIST USE XSDA INDEX ON 姓名 TAG XM FOR 住址=”北京” LIST INDEX ON 性别 TAG XB DESC UNIQUE LIST,49,(1)命令方式建立索引,建立非结构复合索引文件(.cdx) INDEX ON TAG OF FOR ASCENDING|DESCENDING UNIQUE| CANDIDATE ADDITIVE 【例】在表文件XSDA.DBF中,先按性别再按入学日期建立一个非结构复合索引文件xhGG.CDX。 USE XSDA INDEX ON 性别+DTOC(出生日期) TAG xbrq OF xhGG.CDX,50,(2)在表设计器中建立索引 在排序选项中,选择索引方向,升序()或降序()。 数值型按其值论大小,西文字符按其ASCII码值论大小,汉字等字符串按其内码论大小。 在表设计器中建立的索引文件与表同名,是结构复合索引文件。,51,5打开索引文件,刚刚建立完索引文件时,该索引文件处于打开状态。 在打开表文件时,结构复合索引文件随之打开。 可以同时打开多个索引文件,但任何时候只能有一个索引文件起作用。 当打开多个索引文件时,(复合索引文件中的多个子索引同时打开),此时只有一个索引起作用,该索引称是主控索引。,52,打开单索引文件和非结构复合索引文件,命令格式1:SET INDEX TO ADDITIVE 命令格式2:USEINDEX 功能:打开当前表的一个或多个索引文件。 (1) :指定要打开的一个或多个索引文件,多个索引文件之间要用逗号分隔,第一个索引文件自动成为主控索引文件。 (2) ADDITIVE:若缺省该项,则在用本命令打开索引文件的同时,除结构复合索引文件之外的其他索引文件均被关闭。若含此项,表示不关闭以前打开的索引文件。,53,【例】单索引文件使用方法示例。 use xsda set index to xm,xn &打开索引文件xm和xn,xm被设置为主索引 List & 显示xm.idx主控索引文件记录的逻辑排序结果 使用SET INDEX TO或CLOSE INDEX命令将关闭单索引文件和非结构复合索引文件。,54,6. 设置当前索引的命令,当前起作用的索引文件称为主控索引文件,当前起作用的索引标识称为当前索引。 菜单操作:表属性 命令格式:SET ORDER TO |TAGOF 功能:指定当前索引。 使用set order to命令可以取消主控索引。,55,【例】 打开索引文件和设置当前索引示例。 USE XSCJ LIST SET INDEX TO XSCJ1 &打开单索引文件XSCJ1,当前主控索引文件 LIST USE XSDA LIST SET ORDER TO XM &设置当前索引为包含在结构复合索引文件中的XM索引项 LIST SET ORDER TO XB &设置当前索引为包含在结构复合索引文件中的XB索引项 LIST SET ORDER TO & 记录还是按物理顺序显示 LIST,56,7. 更新索引,(1) 自动更新 已打开的索引文件跟随数据的改变自动改变记录的逻辑顺序 (2) 重新索引 格式:REINDEX,57,8. 删除索引,单索引文件可采取删除文件的方法直接删除,复合索引文件可用下列命令删除。 命令格式:DELETE TAG |ALLOF . 【例】 删除索引示例。 USE XSDA DELETE TAG XB MODI STRU DELETE TAG ALL MODI STRU,58,9. 关闭索引文件,格式一: USE 功能:关闭表文件的同时,也关闭了所有已打开的索引文件。 格式二: SET INDEX TO 功能:关闭所有已打开的索引文件,但表文件仍处于打开状态。 格式三: CLOSE INDEX 功能:功能同SET INDEX TO命令。,59,3.5 数据查询,3.5.1 顺序查询 顺序查找是在表文件中依次查找满足条件的记录。顺序查询也称直接查询。 命令格式: LOCATE FOR CONTINUE 默认范围:ALL,60,说明 该命令不显示结果,使用有关函数可证实找到否。 若查找到一个满足条件的记录可用函数RECNO()返回该记录号,此时函数FOUND()返回值为.T.,EOF()返回值为.F.; 若找不到满足条件的记录可用函数RECNO()返回值为该表文件总记录数+1,函数FOUND()返回值为.F.,EOF()返回值为.T.。,61,【例】 在表XSDA.dbf中(共有50条记录)按顺序查找不是团员且家在安徽的所有男同学记录。 USE XSDA LOCATE FOR 性别=”男” .AND. 是否团员=.F. .AND. 住址=”安徽” ?FOUND() ?RECNO() DISPLAY CONTINUE ?FOUND() ?RECNO(),62,3.5.2 索引查询,格式:SEEK 功能:在已确定当前索引的表文件中快速查找满足值的第一条记录。 说明: (1)要产生一个索引内容的值(如:”许小亭”)而不是关系表达式(如:姓名=”许小亭”)。 (2)只能在索引过的表中使用,并且只能对当前索引关键字进行查询。 (3)当表中有多个符合条件的记录时,指针定位在第一个,用SKIP可定位到下一个。,63,【例】 索引查找示例。 CLOSE ALL USE XSDA INDEX ON 姓名 TAG XM INDEX ON 出生日期 TAG CSRQ SET ORDER TO XM SEEK ”许小亭” ?RECNO() DISPLAY SET ORDER TO CSRQ SEEK 1982/07/27 ?REC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健康养老展服务博览会方案
- 项链说课课件2017
- 《旅行社经营管理》课件-第三章 旅行社产品开发设计
- 音标教学课件
- 人民警察法制教育
- 城镇污水管网建设工程建设管理方案(模板范文)
- 健康饮食产业园项目投标书(参考)
- xx河流排水防涝设施建设项目可行性研究报告
- 先锋问答知识:政治建设题库考点(题库版)
- 2025年锂电池正极材料合作协议书
- 问题解决型护理品管圈QCC成果汇报之提高儿科护士桡动脉采血的穿刺成功率
- 沥青现场摊铺施工方案
- GB 41317-2024燃气用具连接用不锈钢波纹软管
- 幼小衔接 每日一练
- 《中国书法》参考课件
- 四年级上册脱式计算400题及答案
- 船运土方方案
- 危岩稳定性计算表格-滑移式-倾倒式-坠落式-完整版
- JCT640-2010 顶进施工法用钢筋混凝土排水管
- 03K132 风管支吊架图集
- 卫生室药房盘点明细表
评论
0/150
提交评论