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