第四章
1. 什么是自由表?什么是数据库表?
属于某一
数据库的表称为
数据库表,不属于任何
数据库而独立存在的表称为自由表。
2. 一个表有3个备注型字段,该表有多少个备注文件?
一个备注文件。
3. 在设计学生表时,可否将学生“性别”字段定义为逻辑型字段?这和定义为字符型字段有何区别?若定义为数值型呢?
可以将“性别”字段定义为逻辑型字段因为逻辑型字段只有两个取值,可以用.T.代表男.F.代表女,定义为字符型也可以只要输入数据的时候保证只能输入“男”和“女”就可以。定义为数值型也可以,比如可以用1代表男2代表女。
4. 修改表的结构有哪些方法?它们有何区别?
有两中方法第一种是先打开表,然后在命令窗口输入modify structure 命令打开表设计器来修改表的结构。第二中方法是先打开表然后在视图菜单中打开表设计器来对表的结构进行修改,这两中方法的实质都是用表设计器来修改表的结构,不同的只是打开表设计器的方法不同而已。
5. 如何对浏览窗口进行分割?如何设置同步?如何设置数据显示方式?
浏览窗口左下角有一黑色小方块,可用于窗口的分割。用鼠标将小方块向右拖动,便可把窗口分为两个分区。两个分区显示同一表的内容。
分区后同一记录可以在两个分区同时看到。“表”菜单项中的链接分区命令可以选择恢复或者解除这种同步(消除该命令前的“√”)。
浏览窗口中的数据有浏览和编辑两种显示方式,用“显示”菜单中的“编辑”命令(在浏览方式时)或“浏览”命令(在编辑方式时)可在两种显示方式之间切换。
6. DISPLAY和LIST命令有何异同?
两个命令的作用基本相同,区别仅在于LIST是连续显示,当显示的内容超过一屏时,自动向上滚动,直到显示完成为止。DISPLAY是分屏显示,显示满屏时暂停,待用户按任一键后继续显示后面的内容。
7. 一个表用ZAP命令删除后,该表还存在吗? 该命令与DELETE和PACK有何异同?
一个表用ZAP命令删除后该表还存在只不过表中的记录没有了。而delete命令只是逻辑删除表中的某些记录并没有实际删除还可以恢复。而pack命令是物理删除那些被逻辑删除的记录不能恢复。
8. 排序与索引有何区别?索引有哪几种?如何建立索引文件?
排序是改变表中记录的实际物理顺序,而索引是为该表建立一个索引文件设置一个逻辑顺序,索引可分为下列4种类型:主索引,候选索引,惟一索引,普通索引。建立索引文件有两种方法:1. 用命令建立索引,2. 在表设计器中建立索引。
9. 在已打开的表中有“姓名”字段,此外又定义了一个
内存变量“姓名”。要把内存变量“姓名”的值赋给当前记录的“姓名”字段,应使用什么命令?
姓名=m.姓名
10. 设txl.dbf有10条记录,在命令窗口执行下列命令后,表的当前记录是什么?
USE txl
GO 5
LIST NEXT 3
SKIP –2
第6条记录。
11. 在不同工作区之间切换用什么命令?如何访问别的工作区中的表?
可以用 SELECT 〈工作区号〉|〈别名〉|0 命令来在不同的工作区之间切换。
在当前工作区中可以访问其他工作区中的表的数据,但要在非当前表的字段名前加上别
名和连接符,格式为:别名.字段名或别名->字段名
12. 什么叫关联?如何建立关联?
所谓关联,就是当前表记录指针的移动,能引起别的表按某种条件相应地移动记录指针。建立关联后,称当前表为主文件,与主文件建立关联的表为子文件。
建立一对一的关联可以用命令:SET RELATION TO [〈关联表达式1〉] INTO 〈工作区号1〉|〈别名1〉
建立一对多的关联可以用命令:SET SKIP TO [〈别名1〉[,〈别名2〉…]
13. 就学生表,写出实现下列操作的命令:
(1) 显示第5号记录;
go 5
display
(2) 显示第5号至第10号之间的全部记录;
go 5
list next 6
(3) 连续列出1980年以后出生的学生的姓名与出生年月;
list for year(出生日期)>=1980 fields 姓名,出生年月
(4) 显示在1985年1月1日至1983年12月31日之间出生的学生记录;
list for 出生年月>={12/31/1983} and 出生年月<={01/01/1985}
(5) 在表的顶部增加一个新记录;
go top
insert before
(6) 修改最后一个记录;
go bottom
edit
(7) 将16岁以下的少数民族学生入学成绩提高20分;
replace 入学成绩 with 入学成绩+20 for year(date())-year(出生年月)<=16 and 少数民族=.t.
(8) 将学生表原样复制为xsda.dbf,并物理删除xsda.dbf中记录号为偶数的记录;
copy to xsda.dbf
delete for int(recn()/2)=recn()/2
(9) 显示入学成绩前5名的记录;
index on 入学成绩
list next 5
(10) 统计1985年出生学生的人数,并把它存入变量number中;
count for year(出生年月)=1985 to number
(11) 分别求男、女学生的平均年龄;
average for 性别=’男’
average for 性别=’女’
(12) 查找并显示出第一位少数民族学生;
locate for 少数民族=.t.
display
(13) 建立一个结构复合索引文件,其中包括两个索引:记录以学号降序排列;记录
按出生年月升序排列;
index on 学号 tag a desc
index on 出生年月 tag b
(14) 查询年龄最小和最大的学生;
calculate min(出生年月) to a
display for 出生年月=a
calculate max(出生年月)=b
display for 出生年月=b
(15) 按性别对入学成绩进行汇总。
index on 性别 tag c
total on 性别 fields 入学成绩 to xbhz