注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

水滴石穿

破浪是阵风!

 
 
 

日志

 
 

vf数据库操作  

2009-11-09 15:25:33|  分类: 数据库 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

第一节  数据表的复制

一数据表结构的复制

     若需新建的数据表结构和某个已经建立好的数据表相同或相似,就可以利用复制表结构来快速建立新的数据表结构。

       命令格式:copy  structure  to  (新数据表名  )   [fields   (字段名)]

       功能:将当前数据表的一部分或全部结构复制到新数据表中。

        说明:若缺省“[fields   (字段名)]”,即将当前数据表的全部结构复制到新数据表中。[]表示可选项,()表示必选项。新数据表前要带路径。建立的新表只是一个空表。

         例如:use d:\王增才\学生成绩.dbf       **打开数据表学生成绩.dbf

                     copy  stru  to  d:\学生成绩2.dbf    **复制表结构

二数据表的复制

     数据表的复制是将数据表的结构和记录一起复制到一个新表中。

     命令格式:copy   to  (新数据表名  )   [范围]  [fields   (字段名)]  [for  (条件)]

    功能:将当前数据表的结构和记录一起复制到一个新表中。

    说明:VF里有四个表示范围的关键字——all,next,rest,record(这四个关键字的意思是什么,请上机自我调试,很简单的)若缺省“[fields   (字段名)]”,即将当前数据表的全部结构复制到新数据表中。若缺省范围则默认为all.

     例如:use d:\王增才\学生成绩.dbf       **打开数据表学生成绩.dbf

                 copy  to  d:\女学生.dbf   fields  姓名,数学,语文,英语    for  性别="" 

 

第二节  记录指针的定位

        VF设置了一个逻辑指针,实际上数据表了并没有真实的指针,通常把它称为记录指针。记录指针所指向的记录叫做当前记录。第一条记录标号为1,依次类推。

        下面介绍用命令方式移动指针。

         指针的移动可分为绝对移动和相对移动。

       1、指针的绝对移动的操作命令

             格式:go  (数值)

             功能:将指针指向数值指定的记录。

             例如:use d:\王增才\学生成绩.dbf       **打开数据表学生成绩.dbf

                         go  5   **将第五条记录(也叫5号记录)设置为当前记录。

             补充:go命令的特殊格式

                     格式一:go  top

                      功能:将指针指向头条记录

                     格式二:go  bottom

                      功能:将指针指向最后一条记录

       2、指针的相对移动的操作命令

             格式:skip   (数值)   

             功能:将指针从当前位置向数据表头方向(该值为负数时)或数据表尾方向(该值为正数时)移动数值的绝对值个单位。 

            说明:当数值为1时,1可以省略。

           例如:use d:\王增才\学生成绩.dbf       **打开数据表学生成绩.dbf

                       go  5    

                       skip    **跳到下一条记录,即6号记录

                       skip  2   **再跳到下两条记录,即8号记录

 

第三节  数据表的编辑

一记录的追加

      利用append命令追加,该命令的用法前面已经讲了,所以不再重复。

二记录的插入

     命令格式:insert  [blank] /[before]

     功能:在当前记录后(前)插入一条新记录

    说明;“/”表示二者选一。若insert后面不带参数,表示在当前记录后面插入一条记录并提供编辑状态。若有“[blank] ”,表示在当前记录后插入一条空记录。若有“[before]”,表示在当前记录前面插入一条记录并提供编辑状态。

     例如:insert  before

三记录的删除

      记录的删除分为逻辑删除和物理删除。逻辑删除只是把记录打上删除标记,并没有真的从磁盘把它删除,可以恢复。物理删除是把记录从磁盘上删除,不可以恢复。

     1、逻辑删除记录的命令方式

           格式:delete  [范围]  [for  〈条件〉]

           功能:逻辑删除数据表中指定范围内符合条件的所有记录。若delete后面不带参数,则只删除当前记录。〈〉表示必选项。

           例如:delete  all  for  数学 <60  

                      delete      **删除当前记录

    2、恢复被逻辑删除的记录

         命令格式:recall  [范围]  [for  〈条件〉]

         功能:恢复数据表中指定范围内符合条件的所有记录。若recall后面不带参数,则只恢复当前记录。〈〉表示必选项。

        例如:recall  all  **恢复所有的记录

     3、物理删除记录

          命令格式:pack

          功能:将当前数据表中所有被逻辑删除的记录从磁盘删除。

          说明:pack命令要和delete命令配合使用,不可单独使用。

           例如:delete  all  for  数学 <60  

                       pack

      4、一次性的物理删除所有记录

            命令格式:zap

             功能:删除当前数据表中的所有记录,不能恢复。慎用!

四记录的修改

        VF中通常用change,browsereplace命令修改记录。我认为change命令不太好用,平时也没有用它,对它不熟,所以略去不提。

        1browse命令

              格式:browse

              说明:前面已经介绍了使用browse命令。在这里只是提示一下,在用该命令显示数据表后,这时可以用鼠标光标在要修改的数据处点击并加以修改。

         2replace命令

              格式:replace  [范围]  〈字段名1 with  〈表达式1[,〈字段名2 with  〈表达式2…]   [for   〈条件〉]

                功能:将各个表达式的值分别替换各个字段名的数据。

                说明:若范围缺省,则只对当前记录做替换操作。使用该命令可方便的自动替换大量的数据。

                举例:replace   all   总分3   with   语文+数学+英语, 总分9    with   语文+数学+英语+化学+物理+地理+生物+历史+政治   for   英语>60

 

第四节  数据表排序

数据表排序的命令方式

格式:sort  to  〈新数据表名〉on  〈字段名1[/ a][/ d][,〈字段名1[/ a][/ d]…][范围]  [for   条件〉]

功能:按照排序字段(如字段名1,字段名2…)值将当前数据表中的记录重新排序并把它存入新数据表中。

说明:[/ a][/ d]分别表示升序和降序,缺省时系统默认为升序。当缺省[范围] [for   条件〉]时,表示对当前数据表中所有记录进行排序。

例如:use d:\王增才\学生成绩.dbf

   sort   to  d:\王增才\学生成绩排序.dbf  on  总分/d,语文/d

 

第五节  数据表索引

              索引是按某一 关键字表达式排序建立的文件,通过该文件可以方便的实现对数据表的逻辑排序。 索引分为单索引和复合索引。复合索引又分为结构复合索引和非结构复合索引。本节介绍单索引文件和结构复合索引文件。

一命令方式建立单索引文件

  格式:index  on  〈关键字表达式〉to 〈索引文件名〉[for   条件〉]

  功能:对当前数据表按关键字表达式升序建立一个单索引文件。

        说明:单索引文件的扩展名为(.idx

       例如:index   on   总分3   to   总分3    for  总分3>=180

二命令方式建立结构复合索引文件

  格式:index  on  〈关键字表达式〉tag〈复合索引标识〉[for   条件〉]

        功能:对当前数据表按关键字表达式升序建立一个结构复合索引文件的标识。

        说明:结构复合索引的文件名与当前数据表名一样。

        例如:index   on    总分    tag    总分

三打开单索引文件

        格式:set   index  to   〈单索引文件名〉

        功能:打开当前数据表的指定单索引文件。

四在结构复合索引文件中设置主控索引

        格式:set   order   to   〈复合索引标识〉

        功能:在结构复合索引文件中设置主控索引

       例如:set   order  to   总分9

       说明:该命令不带参数,即表示取消主控索引。

五关闭单索引文件

      格式:close    index

      功能:关闭单索引文件

 

第六节  数据表的检索

数据表的检索有两种方法:直接检索和索引检索。

一直接检索

   locate命令

   格式:locate   [范围]  [ for   〈条件〉]

   功能:在当前数据表中从上到下依次查找满足条件的记录。

   说明:使用该命令查找记录时,如果数据表中有多个满足条件的记录,记录指针只定位在满足条件的第一条记录上。若要继续往下查找,必须使用continue命令。反复使用conti命令就可以将多个满足条件的记录全部找出来。

    注意:conti命令必须和locate命令连用。

   例如:locate   all   for  英语>=60

               display

               conti

二索引检索

     索引检索的速度比直接检索的速度快的多。要使用索引检索必须先建立索引文件并打开它。

     ⒈seek命令

          格式:seek   〈表达式〉

          功能:根据索引文件查找数据表中索引关键字段的值等于命令中表达式值的第一条记录。

          说明:表达式可以是任何数据类型

          举例:index on 性别 tag xb

                   seek ""

                    disp

                    skip

                    disp

                    skip

                    disp

     ⒉find命令

         格式:find  〈字符串表达式〉

          功能:根据索引文件查找数据表中索引关键字段的值等于命令中字符串表达式值的第一条记录。

          说明:表达式必须是字符型的,在这里字符串表达式不要用双引号括起来。

          举例:index on 性别 tag xb

                     find   

                     disp

                     skip

                      disp

                     skip

                  disp

  评论这张
 
阅读(1090)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017