资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,10,章 数据表的基本操作,计算机文化基础,第一节 表结构显示与修改,1、显示表的结构,格式:,LIST/DISPLAY STRUCTURE TO PRINT,功能:显示(打印)当前已打开的数据库文件结构,说明:首先必须打开库文件。,LIST,是连续显示全部内容;,DISPLAY,是分屏显示,2、修改表的结构,如果表的字段名、字段宽度、字段类型在定义时出现错误,那么,就要修改表的结构。例如,奖金字段,应该是数值型,结果被定义成字符型了。,在修改表结构之前,一定要,先打开表文件,,然后用,modify structure,命令修改。,命令格式:,modify structure,功能:,进入表设计器状态,对当前表文件结构进行修改。,看图说明,修改表的结构,1、先打开表文件。,2、输入修改结构的命令并回车,进入到下面的表设计器界面。,第二节 记录的定位,1,、,当前记录,用户当前正在处理的记录叫做当前记录。,2,、,记录指针,每个表文件中,都有一个记录指针(注意与备注型字段的指针不同),,记录指针指向的记录就是当前记录,。当用户要对某一条记录进行处理的时候,要先将记录指针指向这条记录,使这条记录变为当前记录,然后才能处理。,3,、,记录指针的定位,为了处理不同的记录,需要不断改变记录指针的位置。这个,移动记录指针的位置,使不同记录成为当前记录的过程,叫做,记录指针的定位,。,记录指针的定位分为:,绝对定位,、,相对定位,、,条件定位,。,注意:字段变量的值随记录指针的移动而变化,4、,利用,?,recno(),来检测被定位的当前记录号,记录的定位,绝对定位(1),格式1:,GOTO/GO,数值型表达式,功能:,将当前记录定位到数值表达式指定的记录上,说明:,goto/go,可省略,,的运算结果自动取整。,例如:,GO 3 (,将指针指向表文件的第3条记录),格式2:,GO TOP,(,将指针指向表文件的第 1 条记录),GO BOTTOM,(,将指针指向表文件的最后 1 条记录),看图说明,记录的定位,绝对定位(2),请参照例题练习,注意屏幕上所显示记录的内容及记录号。,记录的定位,相对定位(1),相对于当前记录的记录指针的移动,格式:,SKIP,数值表达式,eg.skip 2,功能:,将记录指针相对于当前记录,向前或向后移动若干条记录,的取值(假设为,n),决定指针的移动方向,,值0,则指针,向前,(文件尾方向)移动,n,个;,值0,则指针,向后,(文件头方向)移动,n,个,说明:,1、不带,则系统默认值为1,eg.Skip,2、,第一条记录文件头;最后一条记录文件尾,文件头:指第一条记录的上面。,文件尾:指最后一条记录的下面。,3、学习相对定位时,会遇到几个重要的,函数,,请留意。,例题:,例1,:,recno(),例2,:,bof(),例3,:,eof(),记录的定位,相对定位(2):例1,说明:,1、Recno(),函数的功能是:返回当前记录的记录号。,?,表示显示其后面表达式的结果。,表文件刚打开时,指针指向第一条记录。,2、,Skip,即,skip 1,记录的定位,相对定位(3):例2,1、bof(),函数的功能是:,测试记录指针是否指向文件头,若是,则返回值为.,t.,,否则返回值为.,f.。,2,、,指针,到达,或,超过,文件头时,,recno()=1,且,bof()=.t.,记录的定位,相对定位(4):例3,1、Eof(),函数的功能是:,测试记录指针是否指向文件尾,若是,则返回值为.,t.,,否则返回值为.,f.。,2,、,指针,到达,或,超过,文件尾时,,recno()=,总记录数+1,且,eof()=.t.,格式,:,locate,记录范围,for/while,条件,功能,:,在给定,记录范围,内,按记录顺序,查找符合,的,第一条,记录,若找到则将记录指针指向该记录,若找不到,则将记录指针指向,给定范围内的最后一条记录,或,文件尾,。,说明:,1、,如省略范围,则默认值为,all。,2、,可以通过,found(),函数,判断是否找到符合条件的记录。,如,查到,符合条件的记录,则,found()=.t.,如在,内,查不到,符合条件的记录,,found()=.f.,如在,all,范围内,查不到,符合条件的记录,则,found()=.f.eof()=.t,3、,可通过,continue,命令继续查找其他符合条件的记录。,例题:,例1,例2,例3,记录的定位,条件定位(1),按条件顺次查找,记录的定位,条件定位(2),例1:查找姓名为“赵斌”的人,并显示他的记录内容。,想想为什么不用,list,命令。,姓名是字符型字段的,名字,,不需要定界符,而“赵斌”是字符型字段的,值,,需要加定界符。,记录的定位,条件定位(3),例2:查找编号为“0202”的人,并显示结果。,1、明白两个,found(),函数的显示结果。,2、想想,为什么这个,display,命令执行完后,屏幕上没有显示。,记录的定位,条件定位(4),例3:查找奖金是 40元以上的人,并显示结果。,1、,40,是,数值型,的值,不需要加字符型定界符。,3、想想,为什么这个,display,命令执行完后,屏幕上没有显示。,2、用,continue,命令继续查找,第三节 修改记录,记录的编辑修改可以分为全屏幕编辑和单命令修改两种。,1、全屏幕编辑命令:,Edit,Change,Browse,功能:,编辑记录范围内符合条件的记录中指定的字段值,2、替换命令:,Replace,修改记录,edit,1.保存修改内容,:单击关闭或按,Ctrl+W;,2.,放弃修改:,按,Esc,;,3.追加一个空记录:,按,Ctrl+Y,修改记录,change,1.保存修改内容,:单击关闭或按,Ctrl+W;,2.,放弃修改:,按,Esc,;,3.追加一个空记录:,按,Ctrl+Y,修改记录,browse,1.保存修改内容,:单击关闭或按,Ctrl+W;,2.,放弃修改:,按,Esc,;,3.追加一个空记录:,按,Ctrl+Y,说明:,browse,命令主要用于记录的修改,因此启动后不进入追加状态。必须由用户通过,Ctrl+Y,使它进入记录追加状态。如果表文件是个空文件(记录个数为0)则,browse,就无法启动。,修改记录,replace,格式,:,replace,范围,with,additive,字段名2,with,表达式2,additive,for,功能:,对当前表文件中给定,范围,内符合,的记录进行修改,用,的值替换,原来的值,用,的值替换,原来的值。,说明:,1、若省略范围和,for,表示仅对,当前记录,进行替换。,2、若有,for,,则修改所有符合条件的记录。,3、值的类型应与值的类型相同,宽度应不超过原字段的宽度。,例题,:,例1:以下几条命令实现的功能是什么?,use rsda,go 3,disp,repl,基本工资,with 400,disp,解答:,功能是将第三条记录的基本工资修改为400,例2:将第5条记录的奖金提高10%,例3:将工程师的奖金提高10%。,Go 5,Disp,Repl,奖金,with,奖金*1.1,Disp,Repl,奖金,with,奖金*1.1,for,职称=工程师,List,第四节 添加记录,常用的添加记录的方式有两种,1、追加记录:,append,2、,插入记录:,insert,添加记录,追加记录,append,格式:,append blank,功能:在表文件的末尾追加记录。,说明:,1、不加可选项,blank,表示在表文件末尾添加一条新记录,进入编辑状态。,2、加上可选项,blank,表示在表文件末尾添加一条空记录,不进入编辑状态。,3、,append blank,命令可以和,replace,命令联合使用增加一条新记录。,添加记录,插入记录,insert,格式:,insert beforeblank,功能:,在,当前记录,的前面或后面插入一条新记录。,说明,:,1、省略,before,和,blank(,即无可选项)时,把新记录插入在当前记录之后,进入编辑状态。,2、,有,before,在当前记录,之前,插入一条新纪录,进入编辑状态。,3、,有,blank,,当前记录,之后,插入一条空纪录,不进入编辑状态。,第五节 删除记录,记录的删除有两种方法,,直接删除,和,间接删除,一、直接删除:,ZAP,格式:,ZAP,功能:将表文件里的记录全部删除。(真正删除),说明:,1、使用,zap,命令时要小心,因为它将删除掉表文件中的所有记录,只留下表的结构。,2、,如果只想删除指定的记录,则不能用,zap,命令,而应该采用间接删除法。,二、间接删除,间接删除表文件中的记录需要进行两步操作。,第一步,是给记录加上删除标记(*),叫做逻辑删除;,第二步,是用,pack,命令彻底删除带有删除标记(*)的记录,又叫做物理删除。在执行,pack,命令之前,还可以用,恢复命令,recall,抹掉删除标记,将此记录恢复正常。,逻辑删除,物理删除,记录恢复,1、逻辑删除,格式:,DELETE ,范围,FOR,条件,功能:给指定范围内符合条件的记录加上删除标记。,说明:,若不指定范围或条件,只给当前记录加上删除标记。逻辑删除标记为“,*,”,看图说明:,例1,例2,删除记录,逻辑删除,例1:给第四条记录加上删除标记。,第四条记录前加上了删除标记,*,删除记录,逻辑删除,例2:给所有男职工记录加删除标记。,所有男职工记录都已经加上了删除标记,*,2.恢复逻辑删除命令,recall,格式:,recall ,for/while,功能:恢复范围内符合条件的被逻辑删除的记录,说明:在全屏编辑命令(,append,insert,edit,browse,change),中可用,Ctrl+T,来进行逻辑删除和恢复,例题,:,记录恢复示例:,去掉所有男职工记录的删除标记。,所有男职工记录的删除标记已经去掉。,3.物理删除命令,pack,格式,:,pack,功能,:真正删除所有被逻辑删除(加删除标记)的记录,说明:,永久删除带有逻辑删除标记的记录,其他记录重新排号,例题,:,物理删除示例:,删除所有男职工记录。,观察两次,list,命令的显示结果。,加删除标记,物理删除,
展开阅读全文