第三章 表和数据库
- 格式:doc
- 大小:53.00 KB
- 文档页数:9
第三章表的创建和使用对于关系型数据库来说,数据均以二维表的形式被保存在表中。
在VFP中表分为两种类型:数据库表和自由表,数据库表是指从属于某个数据库的表(简称―库表‖),而自由表是指不从属于任何数据库的表。
与自由表相比,数据库表具有自由表的所有特性外,还具有数据库管理的其他功能。
3.1 表结构表(Table)是指存储放在磁盘文件中的二维表,一张表保存为一个表文件(.DBF)。
表文件的文件名必须遵守Windows系统对文件名的约定,并且不可用A~J中的单个字母作文件名。
表中的列称为字段(Field)。
字段规定了数据的特征。
例如,学生表中学号、姓名、性别和系名就是字段。
每张表最多可以有255个字段。
表的行叫做记录(Record),每条记录表示一个实体。
记录是多个字段的集合。
同一张表的每一个记录都有相同的字段。
3.1.3 表结构的创建表创建后,系统以扩展名.dbf保存表文件。
如果表中有备注字段或通用字段,则自动地产生与表名相同但扩展名为.fpt的备注文件2. CREATE TABLE-SQLCREATE TABLE-SQL命令的一般格式是:CREATE TABLE 表文件名(字段名1 字段类型[(字段宽度[,小数位数])][NULL|NOT NULL][,字段名2 字段类型[(字段宽度[,小数位数])]]……)说明:本书中命令的表示约定如下:垂直分隔符―|‖分隔的项,表示多项中只能选择一个。
斜体字是占位符,在实际使用中要用具体的信息代替。
方括号[ ]所括的表示是可选项,[ ]本身不是命令的一部分。
省略号―……‖表示参数可以有任意多项。
CREATE TABLE-SQL其中字段类型必须要用字母表示。
例如,学生表结构的创建可以使用以下命令:CREATE TABLE XS2 (xh C(6),xm C(8),xb C(2),zydh C(6),ximing C(18))则XS2表的结构与XS表一模一样。
这个命令主要用在程序代码中。
临时关系与永久关系的区别:临时关系是用来临时地控制相关表之间记录的访问;而永久关系主要是用来存储相关表之间的参照完整性。
附带地可以作为默认的临时关系或查询中默认的联接条件。
临时关系在表打开之后使用 SET RELATION 命令创建,随表的关闭而解除;永久关系永久地保存在数据库中而不必在每次使用表时重新创建。
临时关系可以在自由表之间、库表之间或自由表与库表之间建立;而永久关系只能建立在库表之间。
临时关系与永久关系的联系:无论建立临时关系还是永久关系,都必须明确建立关系的两个表之间确实在客观上存在着一种关系(一对多或一对一关系)。
永久关系在许多场合可以用来作为默认的临时关系。
3.10.2 建立表之间的临时关系建立临时关系要明确几个要素:主表、子表、子表的主控索引以及关系表达式。
临时关系:主表的记录——>子表的主控索引建立临时关系的方法: 1、在“数据工作期”窗口中建立 2、使用 SET RELATION 命令建立: SET RELATION TO 关系表达式 INTO 区号|别名
3.10.3 解除表之间的临时关系一. 在“数据工作期”窗口中解除二. 使用命令解除选择主表工作区,使用如下命令解除临时关系: SELECT XS SET RELATION TO 或者 SET RELATION OFF 三. 在关闭主表或子表时,临时关系也即自动解除。
(四)表的操作一、选择题1. 定位第一条记录上的命令是______。
A. GO TOPB. GO BOTTOMC. GO 6D. SKIP2. 备注型字段的数据用来存放______。
A. 指向备注的具体内容B. 指向DBF文件的指针C. 指向FPT文件的文件名D. 指向FPT文件中文字块的指针3. 在Visual FoxPro中,使用LOCA TE FOR<expL>命令按条件查找记录,当查找到满足条件的第一条记录后,如果还需要查找下一条满足条件的记录,应使用_______。
A. LOCATE FOR<expL>命令B. SKIP命令C. CONTINUE命令D. GO命令4. 在Visual FoxPro中,在当前工作区打开student表的情况下,将整个表复制到stu表的命令是_______。
A. copy to stuB. copy all to stuC. copy structure to stuD. copy to stu sdf5. 在Visual FoxPro中,表结构中的逻辑型、通用型、日期型字段的宽度由系统自动给出,它们分别为:A. 1、4、8B. 4、4、10C. 1、10、8D. 2、8、86. 设当前数据库有10条记录(记录未进行任何索引),在下列三种情况下,当前记录号为1时,EOF()为真;BOF()为真时,命令?RECN()的结果分别是______。
A. 1,11,1B. 1,10,1C. 1,11,0D. 1,10,07. 下列关于在浏览窗口追加记录的描述中,错误的一条是_______。
A. 执行“显示(V)”菜单中的“追加方式(A)”命令,可在当前表的末尾连续追加多个新记录B. 执行“显示(V)”菜单中的“追加方式(A)”命令,只能在当前表的末尾追加一个新记录C. 执行“表(A)”菜单中的“追加新记录(N)”命令,只能在当前表的末尾追加一个新记录D. 执行“表(A)”菜单中的“追加记录(A)”命令,可在当前表的末尾追加一批记录,但其数据来源为其他表或文本文件8. 不允许在记录中出现重复索引值的索引是______。
A. 主索引和候选索引B. 主索引、候选索引和唯一索引C. 主索引D. 主索引、候选索引和普通索引9. 创建数据表时,可以给字段规定NULL或NOT NULL值,NULL值的含义是______。
A. 0B. 空格C. NULLD. 不确定10. 在“表设计器”中定义字段的类型时,可以定义的类型为_______种。
A. 4B.9C. 6D. 1311. 两表之间的“临时性”联系称为关联,在两个表之间的关联已经建立的情况下,有关“关联”的正确叙述是_______。
A. 建立关联的两个表一定在同一个数据库中B. 两表之间的“临时性”联系是建立在两表之间“永久性”联系基础之上的C. 当父表记录指针移动时,子表记录指针按一定的规则跟随移动D. 当关闭父表时,子表自动被关闭12. 在Visual FoxPro的数据工作期窗口,使用SET RELATION TO命令可以建立两个表之间的关联,这种关联是_______。
A. 永久性关联B. 永久性关联或临时性关联C. 临时性关联D. 永久性关联和临时性关联13. 下列关于在表浏览窗口可以打开的设计器,_______。
A. 只能是表设计器B. 只能是数据库设计器C. 是表设计器或数据库设计器D. 以上三项都不对14. Append blank命令的作用是______。
A. 编辑记录B. 在第一条记录前增加新记录C. 在表尾增加一条空白记录D. 在当前记录前增加一条空白记录15. 可以伴随着表的打开而自动打开的索引是______。
A. 单一索引文件(IDX)B. 复合索引文件(CDX)C. 结构化复合索引文件D. 非结构化复合索引文件16. 打开一个建立了结构复合索引的数据表,表记录的顺序将按______。
A. 第一个索引标识B. 最后一个索引标识C. 索引标识D. 原顺序17. 在建立唯一索引,出现重复字段值时,只存储重复出现记录的______。
A. 第一个B. 最后一个C. 全部D. 几个18. 利用_________命令,可以在浏览窗口浏览(或编辑)表中的数据A. USEB. BROWC. LISTD. REPLAY19. 修改表结构的命令是______。
A. MODI COMMB. MODI STRUC. EDITD. CHANGE20. 在没有打开相关索引文件的情况下,以下各组中的两条命令,执行结果相同的是______。
A. LOCAT FOR RECNO()=5 与SKIP 5B. GO RECNO()+5 与SKIP 5C. SKIP RECNO()+5 与GO RECNO()+5D. GO RECNO()+5 与LIST NEXT 521. 逻辑删除表中所有记录的正确命令是______。
A. PACKB. ZAPC. DELETED. CLEAR ALL22. 顺序执行以下Visual FoxPro命令之后,屏幕所显示的记录号顺序是______。
USE XYZGO 6LIST NEXT 4A. 1---4B. 4---7C. 6---9D. 7---1023. 设某表有10条记录,当前记录号为1 ,且无索引文件处于打开状态。
若执行命令SKIP-1后再执行命令?RECNO(),屏幕将显示_______。
A. 0B. 1C. -1D. 出错信息24. 设某表有11条记录,当前记录号为5,先执行命令SKIP 10,再执行命令?EOF()后显示的结果是______。
A. 11B. .F.C. .T.D. 出错信息25. 设表MYFILE共有100条记录,则执行以下命令序列后,屏幕的显示结果是______。
SET DELETED ONUSE MYFILEGO 3DELETECOUNT TO A?A,RECCOUNT()A. 100 100B. 100 99C. 99 100D. 99 99二、填空题1.Visual FoxPro中不允许在主关键字字段中有重复值或______。
2.Create C:\VFP\ABC.DBF命令将会打开______设计器。
3.工资关系中有工资号、姓名、职务工资、津贴、公积金、所得税等字段,其中可以作为关键字的字段是______。
4.在定义字段有效性规则中,在规则框中输入的表达式类型是______。
5.打开“选项”对话框之后,要设置日期和时间的显示格式,应当选择“选项”对话框的_____选项卡。
6.假设图书管理数据库中有三个表,图书.dbf、读者.dbf和借阅.dbf。
它们的结构分别如下:图书(总编号C(6),分类号C(8),书名C(16),出版单位C(20),单价N(6,2))读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))借阅(借书证号C(4),总编号C(6),借书日期D(8))在上述图书管理数据库中,图书的主索引是总编号,读者的主索引是借书证号,借阅的主索引应该是_____。
7.实现表之间临时联系的命令是______。
8.设工资=1200,职称=“教授”,下列逻辑表达式的值是_____。
工资>1000 AND (职称=“教授”OR 职称=“副教授”)9.Visual FoxPro中,索引分为主索引、_______、______和普通索引。
10.二维表中的列称为关系的______;行称为关系的______。
11.释放所有除了d字母开头的且变量名仅有三个字符的内存变量,应使用命令______。
12.字段变量是在______时定义的。
13.建立一个新的表文件,一般分两步进行,第一步是______;第二步是______。
14.在表的尾部增加一条空白记录的命令是______。
15.创建数据库RY后,系统自动生成的三个文件为、和。
16.在参照完整性的设置中,如果要求在主表中删除记录的同时删除子表中的相关记录,则应将“删除”规则设置为。
17.同一个表的多个索引可以创建在一个索引文件中,索引文件名与相关的表同名,索引文件的扩展名是______,这种索引称为______。
18.每个关系应有一个主关键字,其值唯一标识关系中的一个元组,主关键字的值不能重复,不能为空值(NULL),此约束称为______。
(五)数据库操作一、选择题1.对于向一个数据库添加自由表,下列说法中,错误的是_______。
A. 可以将一个自由表添加到数据库表B. 可以将一个数据库表直接添加到另一个数据库中C. 可以在项目管理器中将自由表拖放到数据库中,使它成为数据库表D. 将一个数据库表从一个数据库移动至另一个数据库,则必须先使其成为自由表2.在Visual FoxPro中进行参照完整性设置时,要想设置成:当更改父表中的主关键词段或候选关键词段时,自动更改所有相关子表记录中的对应值,应选择______。
A. 限制(Restrict)B. 忽略(Ignore)C. 级联(Cascade)D. 级联(Cascade)或限制(Restrict)3.将数据库表从数据库移出后,该表被_____。
A.移出数据库B.逻辑删除C.放入回收站D. 物理删除4.实体完整性规则要求主属性不能取空值,为此,可通过_____来保证。
A.定义主关键词B. 用户定义的完整性C. 定义外部键D. 关系系统自动定义5.Visual FoxPro的参照完整性规则不包括______。
A.更新规则B.删除规则C.查询规则D. 插入规则6.如果在数据库表中设置主索引或候选索引,则能保证数据的_______。
A.实体完整性B.域完整性C.参照完整性D. 表完整性7.在Visual FoxPro命令窗口中输入CREATE DATA命令后,屏幕出现一个创建对话框,要想完成同样的工作,还可以采取如下步骤,单击“文件”菜单中的“新建”按钮_______。
A. 在“新建”对话框中选定“数据库”单选钮,再单击“新建文件”命令按钮B. 在“新建”对话框中选定“数据库”单选钮,再单击“向导”命令按钮C. 在“新建”对话框中选定“表”单选钮,再单击“新建文件”命令按钮D. 在“新建”对话框中选定“表”单选钮,再单击“向导”命令按钮8.关系数据库中,表与表之间的联系是通过_______来实现的。
A.实体完整性规则B. 参照完整性规则C. 用户自定义的完整性D. 值域9.如果exercise数据库已经存在,则_______命令可以打开该数据库。
A. create database exerciseB. modify database exerciseC. open exerciseD. modify exercise10.若要设置两个表的“参照完整性”,则要求这两个表_______。