② 选择“显示/浏览?”命令,浏览表。
③ 选择“表/删除记录”命令,打开图5所示“删除”对话框。 ④ 在“删除”对话框设置删除专业为“市场营销”的记录。
⑤ 单击“确定”按钮,所有“市场营销”专业的记录打上了黑色删除标记。
命令法:
① 打开表:USE xsqk
图5 删除对话框
② 逻辑删除专业为“市场营销”的记录。
命令:delete all for 专业=“市场营销”
(2)物理删除记录和恢复记录
去掉张晓伟所打的删除标记,彻底删除其他打上删除标记的记录。 菜单操作:
① 选择“文件/打开”命令,打开学生情况表(xsqk.dbf)。 ② 选择“显示/浏览?”命令,浏览表。
③ 用鼠标单击记录张小伟前的黑色删除标记,即可去掉删除标记。也可选
择“表/恢复记录”命令去掉删除标记。
④ 选择“表/彻底删除”命令可以物理删除已打上删除标记的记录。 命令法:
① 打开表:USE xsqk ② 恢复张小伟这条记录。
命令:recall all for 姓名=“张晓伟”
③ 物理删除其它打上删除标记的记录。
命令:pack
- 6 -
6.表的排序与索引。 (1)表的排序
对学生情况表(xsqk.daf)按入学分数从高到低排序生成表文件rxfs.dbf,并检查排序结果。
命令:sort to xsqk on 入学分数/d Use xsqk list
(2)建立表的索引
对学生情况表(xsqk.dbf)建立以学号为主关键字的候选索引xh。 菜单操作:
① 选择“文件/打开”命令,打开学生情况表(xsqk.dbf)。 ② 选择“显示/表设计器”命令,打开表设计器。 ③ 在“索引”区域选择升序或降序。
④ 单击“索引”选项卡,打开如图6所示的建立索引对话框,在索引名处
输入“xh”,类型设为“候选索引”,单击“确定”按钮。
命令法:
① 打开表: USE xsqk
图6 建立索引
② 建立索引:INDEX ON 学号 TAG xh CANDIDATE
参照以上两种方法对学生情况表建立以下索引: ① 以姓名为关键字建立普通索引xm。
Index on 姓名 tag xm
② 以出生日期为关键字建立普通索引csrq。
- 7 -
Index on 出生日期 tag csrq
③ 以入学分数为关键字建立普通索引rxfs且降序排列。
Index on 入学分数 tag rxfs descending
参照以上两种方法对成绩表cj.dbf建立以下索引: ① 以学号为关键字建立普通索引xh;
Index on 学号 tag xh
② 以课程号为关键字建立普通索引kch;
Index on 课程号 tag kch
③ 以学号+课程号为关键字建立候选索引(xhkc)
Index on 学号+课程号 tag 成绩表
(3)索引查询的使用。
按姓名查询张晓伟的情况,并测试是否找到,如果找到显示结果。 ① 打开学生情况表(xsqk.dbf):USE xsqk
② 把姓名为关键字建立的普通索引xm作为主控索引:
SET ORDER TO TAG xm ③ 索引查找: SEEK ”张晓伟” ④ 测试查找结果:?RECNO(),FOUND() 4 .T. ⑤ 显示查找结果:DISPLAY
参照上述步骤查找学号为“20070105”的学生情况,并测试是否找到,如果找到显示结果。 写出命令序列: Use xsqk
Set order to tag xh Seek “20070105” ?recno(),found()
5 .T.
display
参照上述步骤查找出生日期为“12/01/88”的学生情况,并测试是否找到,如果找到显示结果。 写出命令序列:
Use xsqk
- 8 -
Set order to tag csrq Seek {^1988-12-01} ?recno(),found() 3 .T. display
7.多个工作区操作。
(1)练习在多个工作区打开多个表。 菜单操作:
① 选择“窗口/数据工作期”命令,打开数据工作期对话框。
② 依次选择“打开”按钮,打开xsqk,kc,cj三个表,如图7所示。 ③ 选中工作表,单击“关闭”按钮可以依次关闭所有表。
命令法:
图7 数据工作期窗口
① 在1区打开学生情况表:
SELECT 1 USE xsqk
② 在 2区打开课程表:
SELECT 2 USE kc
③ 在3区打开成绩表:
SELECT 3 USE cj
④ 关闭所有打开的表:
CLOSE TABLES
- 9 -
(2)多表数据查询。
列出李小霞所选的课程号及成绩。
① 在1区打开学生情况表(xsqk.dbf)定位李小霞。 命令: close all Select 1
Use xsqk order 姓名 Find 李小霞
② 在2区打开成绩表(cj.dbf),显示成绩表中和1区学号相同的记录就是
李小霞的成绩。(要求:最后显示的字段有学号,姓名,课程号,成绩) 命令: select 2 Use 成绩表
List fields a.学号,a.姓名,课程号,成绩 for 学号=a.学号
(3)表的关联
创建学生情况表(xsqk.dbf)和成绩表(cj.dbf)的一对多关联,并显示关联结果。
菜单操作:
① 选择“窗口/数据工作期”命令,打开数据工作期对话框。 ② 依次打开表xsqk和cj。
③ 选中cj表,单击“属性”命令按钮,把cj表的索引顺序选为xh。 ④ 选中xsqk表,单击“关系”按钮,然后单击cj表,在图8所示的“表
达式生成器”对话框中选择“学号”字段,单击“确定”按钮。两表已经建立关联。
⑤ 单击“一对多”按钮,为两表建立一对多关联。 ⑥ 在命令窗口输入命令“BROWSE FIELDS
姓名,cj.课程号,cj.成绩”,显示一对多关联后结果,如图9所示。
- 10 -
命令法:
① 选择工作区1打开学生情况表(xsqk.dbf)。 命令:
② 选择工作区2打开成绩表(cj.dbf),并把按学号字段建立的索引作为
主索引。
命令: 图8 表达式生成器窗口
③ 重新回到工作区1,建立表xsqk和kc的关联。 命令:
④ 建立一对多关联: 命令:
⑤ 在命令窗口执行“BROWSE FIELDS 姓名,cj.课程号,cj.成绩”显示一对
多关联后结果和图9一致。
图9 一对多关联后结果
- 11 -