《第10章数据表的基本操作》由会员分享,可在线阅读,更多相关《第10章数据表的基本操作(34页珍藏版)》请在金锄头文库上搜索。
1、第第1010章章 数据表的基本操作数据表的基本操作计算机文化基础第一节 表结构显示与修改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)相对于当前记录的记录指针的移
4、动格式: SKIP 数值表达式 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):例21、bof() 函数的功能 是:测试记录指针是 否指向文件头,若是, 则返回值为.t. ,否则 返回值为.f. 。 2、指针到达或超过文 件头时,recno()=1且bof()=.t.记录的定位相对定位 (4):例31、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:查找姓名为“赵斌”的人,并显示他的记录内容。
7、想想为什么不用 list 命令。姓名是字符型字 段的名字,不需 要定界符,而“ 赵斌”是字符型 字段的值,需要 加定界符。记录的定位条件定位 (3)例2:查找编号为 “0202”的人,并显示结果。1、明白两个found() 函数的显示结果。2、想想,为什么这 个display命令执行完 后,屏幕上没有显示 。记录的定位条件定位 (4)例3:查找奖金是 40元以上的人,并显示结果。1、40是数值型的 值,不需要加字 符型定界符。3、想想,为什么这 个display命令执行完 后,屏幕上没有显示 。2、用continue 命令继续查找第三节 修改记录记录的编辑修改可以分为全屏幕编辑和单命令修 改两
8、种。1、全屏幕编辑命令: Edit Change Browse功能:编辑记录范围内符合条件的记录中指定的字段值2、替换命令:Replace 修改记录edit1.保存修改内容:单 击关闭或按Ctrl+W ;2.放弃修改:按Esc ; 3.追加一个空记录: 按Ctrl+Y修改记录 change1.保存修改内容:单 击关闭或按Ctrl+W ;2.放弃修改:按Esc ; 3.追加一个空记录: 按Ctrl+Y修改记录 browse1.保存修改内容:单 击关闭或按Ctrl+W ;2.放弃修改:按Esc ; 3.追加一个空记录: 按Ctrl+Y说明:browse命令主要用于记录的修改,因此启动后不进入追 加
9、状态。必须由用户通过Ctrl+Y使它进入记录追加状态。如果 表文件是个空文件(记录个数为0)则browse就无法启动。修改记录 replace格式:replace 范围 with additive ,字段名2 with 表达式2 additive for 功能: 对当前表文件中给定范围内符合的记录进行 修改,用的值替换原来的值,用的值替换原来的值。 说明:1、若省略范围和 for,表示仅对当前记录进行替换。2、若有for ,则修改所有符合条件的记录。3、值的类型应与值的类型相同,宽度应不 超过原字段的宽度。 例题:例1:以下几条命令实现的功能是什么?use rsda go 3 disp rep
10、l 基本工资 with 400 disp解答:功能是将第三条记录的基本工资修改为400例2:将第5条记录的奖金提高10%例3:将工程师的奖金提高10%。Go 5DispRepl 奖金 with 奖金*1.1DispRepl 奖金 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命令的 显示结果 。加删除标记物理删除