8.删除表记录
表记录的删除也是表维护的一项经常性的工作,因为删除意味着数据的消失,所以对记录的删除操作比较慎重,删除可分为逻辑删除和物理删除两种操作。逻辑删除还可以恢复,而物理删除则不可恢复。
(1).逻辑删除
逻辑删除就是给指定的记录作删除标记“*”。
1)命令方式
【格式】DELETE [<范围>] [FOR <条件>] [WHILE <条件>]
【功能】对当前表中指定范围内满足条件的记录作删除标记“*”。
【说明】DELETE命令仅仅是在要删除的记录前加上一个删除标记“*”,并不是真正地从表文件中将该记录删除掉。可以用LIST或DISP命令显示带删除标记的记录。发现添加了删除标记的记录前面会显示竖黑条。恢复逻辑删除的记录的命令是RECALL。
【例】删除STUD.DBF中所有男同学的记录。
USE STUD
DELETE FOR 性别="男"
LIST FIELDS 学号,姓名,性别,班级名,系别代号,地址,出生日
期,是否团员
(2)菜单方式
利用菜单方式逻辑删除记录的具体操作步骤如下:
① 首先打开表文件
② 选择【显示】|【浏览】命令,系统弹出记录浏览窗口,显示当前表中的记录。主菜单上增加【表】菜单项。
③ 选择【表】|【删除记录】命令,会弹出 “删除”对话框。
④ 单击删除对话框中的For…按钮或While…按钮,系统弹出表达式生成器,用户可以在表达式框中输入一个逻辑表达式,如性别=”男”,单击【确定】按钮完成条件表达式的输入。
⑤ 在“作用范围”下拉列表框中选择范围,如ALL。
⑥ 单击“删除”对话框中的“删除”按钮,系统将完成对指定范例内满足指定条件的记录的逻辑删除。
(2).物理删除
是真正从表中删除记录,方法是:单击“表”菜单中的“彻底删除”命令。物理删除带删除标记的记录命令是PACK。物理删除表中全部记录的命令是ZAP。
【例】将STUD.DBF中的学号为“021405”的记录进行物理删除。
USE STUD
DELETE FOR 学号=”021405”
PACK
例 题
1.在Visual FoxPro 中删除记录有——和———两种。
A.逻辑删除和物理删除
B.逻辑删除和彻底删除
C.物理删除和彻底删除
D.物理删除和移去删除
[解析] 本题考查的知识点是Visual FoxPro 中的删除方式。在VisualFoxPro 中删除记录有逻辑删除和物理学删除两种。选项B,C,D 中的彻底删除和移去删除的说法都不正确。因此正确答案为A
[答案] A
2.Visual FoxPro 中逻辑删除是指——。
A.真正从磁盘上删除表及记录
B.逻辑删除是在记录旁作删除标记,不可以恢复记录
C.真正从表中删除记录
D.逻辑删除只是在记录旁作删除标记,必要时可以恢复记录
[解析] 本题考查的知识点是Visual FoxPro 中的删除方式。Visual FoxPro 中删除记录的方式有逻辑删除和物理删除两种,逻辑删除是指在记录旁作添加删除标记,必要时可以去掉删除标记恢复
记录;物理删除是真正从表中删除记录,删除的记录不可以再恢复,物理删除但并不删除表。根据这一原则,只有选项D 正确。
[答案] D
3.在Visual FoxPro 中, 恢复逻辑删除的记录的命令是—— 。
A.RECOVER
B.RECALL
C.DELETE
D.PACK
[解析] 本题考查的知识点是恢复删除记录的命令。在Visual FoxPro中,恢复逻辑删除的记录的命令是RECALL; RECOVER 命令错误;DELETE 命令用于逻辑删除记录;PACK 命令用来物理删除结果。
[答案] B
4 . 物理删除表中所有记录的命令是—— 。
A.DELETE
B.PACK
C.ZAP
D.RECALL
[解析] 本题考查的知识点是物理删除表中所有记录的命令。DELETE命令用于逻辑删除结果或者删除标记;PACK 命令用于物理删除有删除标记的记录;ZAP 命令用于物理删除表中的全部记录。
[答案] C
5.在Visual FoxPro 中,逻辑删除表中性别为女的命令是——。
A.DELETE FOR 性别=“女”
B.DELETE 性别=“女” C.PACK 性别=“女”
D.ZAP 性别=“女”
[解析] 本题考查的知识点是利用命令逻辑删除指定的内容。在Visual FoxPro 中,逻辑删除表中记录的命令是DELETE,如果用FOR短语指定了逻辑表达式,则逻辑删除使该表达式为真的所有记录;如果不用FOR 短语指定逻辑条件,则只逻辑删除当前一条记录。
[答案] A
6.要物理删除表中第2-6条的记录,应输入的命令是____。
[解析]本题考查的知识点是用命令物理删除表中的记录。在VisualFoxPro中,物理删除表中记录的命令是PACK和ZAP。PACK命令是物理删除表中带有删除标记的记录;ZAP命令是物理删除表中所有记录。
在物理删除表记录之前,要先使用DELETE命令为记录添加删除标记。
本题应输入的命令是:
GO 2 &&定位到当前记录
DELETE NEXT 5 &&为指定的位置添加删除标记
PACK &&物理删除指定记录
[答案] G0 2 DELETE NEXT 5 PACK