1、第 3 章数据库与数据表3.1知 识 要 点(1)数据库的建立、使用、修改和删除。(2)数据库表的建立、表结构的修改。(3)数据表的浏览,表记录的增加、删除、修改、显示,数据表的查询定位。(4)索引的基本概念,索引的建立和使用。(5)实体完整性、域完整性和参照完整性。(6)多个表之间的关联。3.2典型试题与解析【例 1】在 Visual FoxPro 中以下叙述正确的是_。A关系也被称作表单B数据库文件不存储用户数据C表文件的扩展名是.dbcD多个表存储在一个物理文件中解析:在 Visual FoxPro 中,关系被称作表;表文件的扩展名是.dbf;每创建一个表就会产生一个.dbf 文件,多个
2、表存储在多个物理文件中;用户数据存储在数据表中,数据库只是对其中的数据表进行组织和管理,数据库文件中不存储用户数据。答案:B【例 2】扩展名为.dbf 的文件是_。A表文件B表单文件C数据库文件D项目文件解析:在 Visual FoxPro 中,数据库文件的扩展名为.dbc,表单文件的扩展名为.scx,项目文件的扩展名为.pjx。答案:AVisual FoxPro 实训(第 3 版)114可视化程序设计【例 3】在 Visual FoxPro 中字段的数据类型不可以指定为_。A日期型B时间型C通用型D备注型解析:Visual FoxPro 中支持的数据类型有字符型、数值型、整型、浮点型、双精度
3、型、货币型、日期型、日期时间型、逻辑型、备注型、通用型、字符型二进制、备注型二进制。答案:B【例 4】在 Visual FoxPro 中,下列关于表的叙述正确的是_。A在数据库表和自由表中,都能给字段定义有效性规则和默认值B在自由表中,能给表中的字段定义有效性规则和默认值C在数据库表中,能给表中的字段定义有效性规则和默认值D在数据库表和自由表中,都不能给字段定义有效性规则和默认值解析:自由表不属于任何数据库,不能定义记录级规则和字段级规则。答案:C【例 5】下面有关数据库表和自由表的叙述中,错误的是_。A数据库表和自由表都可以用表设计器来建立B数据库表和自由表都支持表间联系和参照完整性C自由表
4、可以添加到数据库中成为数据库表D数据库表可以从数据库中移出成为自由表解析:在 Visual FoxPro 中,根据数据表是否属于数据库,可以把数据表分为数据库表和自由表两类。数据库表和自由表可以相互转换,将数据库表从数据库中移出,数据库表就成为自由表;将一个自由表添加到某一数据库时,自由表就成为数据库表。数据库表支持主关键字、参照完整性和表之间的联系。答案:B【例 6】数据库表的字段可以定义默认值,默认值是_。A逻辑表达式B字符表达式C数值表达式D前三种都可能解析:数据库表可以建立字段的有效性规则,其中规则是逻辑表达式,信息是字符表达式,默认值的类型由字段类型决定。答案:D【例 7】数据库的字
5、段可以定义规则,规则是_。A逻辑表达式B字符表达式C数值表达式D前三种说法都不对解析:同例 6。答案:A【例 8】在 Visual FoxPro 中,数据库表的字段或记录的有效性规则的设置可以在_。A项目管理器中进行B数据库设计器中进行C表设计器中进行D表单设计器中进行考试篇115第 2 部分解析:在数据库表的表设计器中,选择“字段”选项卡,可以设置字段的有效性规则;选择“表”选项卡,可以设置记录的有效性规则。答案:C【例 9】假设在数据库表的表设计器中,字符型字段“性别”已被选中,正确的有效性规则设置是_。A=男 .OR. 女B性别=男 .OR. 女C$男女D性别$男女解析:性别只为“男”或
6、“女”的有效性规则设置方法 1 为,性别$男女;方法2 为,性别=男.OR.性别=女答案:D【例 10】使用索引的主要目的是_。A提高查询速度B节省存储空间C防止数据丢失D方便管理解析:使用索引技术可以使表记录按照一定的顺序排列,以提高数据的查询速度。答案:A【例 11】在指定字段或表达式中不允许出现重复值的索引是_。A唯一索引B唯一索引和候选索引C唯一索引和主索引D主索引和候选索引解析:主索引和候选索引具有关键字特性,在指定字段或表达式中不允许出现重复值,二者区别为主索引只能在数据库表中创建,一个表中只能创建一个主索引;而候选索引可以在数据库表和自由表中创建,一个表中能创建多个候选索引。唯一
7、索引和普通索引允许字段出现重复值, 唯一索引的唯一性是指索引项的唯一, 而不是字段值的唯一;普通索引的索引项也允许出现重复值。答案:D【例 12】在 Visual FoxPro 中,下面关于索引的正确描述是_。A当数据表建立索引以后,表中的记录的物理顺序将被改变B索引的数据将与表的数据存储在一个物理文件中C建立索引是创建一个索引文件,该文件包含指向表记录的指针D使用索引可以加快对表的更新操作解析:数据表建立索引后,生成一个索引文件,该文件包含指向表记录的指针,表中记录的物理顺序将不改变。使用索引可以加快对表的查询。答案:C【例 13】在表设计器的“字段”选项卡中可以创建的索引是_。A唯一索引B
8、候选索引C主索引D普通索引解析:在表设计器的“字段”选项卡中可以创建普通索引,在“索引”选项卡中可以创建主索引、候选索引、唯一索引和普通索引。答案:D【例 14】在 Visual FoxPro 中,若所建立索引的字段值不允许重复,并且一个表中只Visual FoxPro 实训(第 3 版)116可视化程序设计能创建一个,这种索引应该是_。A主索引B唯一索引C候选索引D普通索引解析:主索引和候选索引具有关键字特性,在指定字段或表达式中不允许出现重复值,二者区别为主索引只能在数据库表中创建,一个表中只能创建一个主索引;而候选索引可以在数据库表和自由表中创建,一个表中能创建多个候选索引。唯一索引和普
9、通索引允许字段出现重复值。答案:A【例 15】在表设计器中设置的索引包含在_。A独立索引文件中B唯一索引文件中C结构复合索引文件中D非结构复合索引文件中解析:复合索引文件可以包含多个索引,每个索引有一个索引标志名,用户可以利用标志名来区分和使用索引。在表设计器中建立的索引保存在主文件名为表名,扩展名为.cdx 的结构复合索引文件中。答案:C【例 16】通过指定字段的数据类型和宽度来限制该字段的取值范围,这属于数据完整性中的_。A参照完整性B实体完整性C域完整性D字段完整性解析:数据完整性包括实体完整性、域完整性和参照完整性。实体完整性是保证表中记录唯一的特性, 即在一个表中不允许有重复的记录。
10、 在 Visual FoxPro 中利用主关键字或候选关键字来保证实体完整性;域完整性是表中域的特性,对表中字段取值的限定都认为是域完整性的范围,字段有效性规则主要用于数据输入正确性的检验。参照完整性与表之间的联系有关,当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,以检查对表的数据操作是否正确。答案:C【例 17】在创建数据库表结构时,给该表指定了主索引,这属于数据完整性中的_。A参照完整性B实体完整性C域完整性D用户定义完整性解析:同例 16。答案:B【例 18】为了设置两个表之间的数据参照完整性,要求这两个表是_。A同一个数据库中的两个表B两个自由表C一个自由
11、表和一个数据库表D没有限制解析:要设置两个表之间的数据参照完整性,则这两个表之间必须存在永久关系。只有两个表在同一数据库中才能设置永久关系。答案:A【例 19】如果指定参照完整性的删除规则为“级联” ,则当删除父表中的记录时_。A系统自动备份父表中被删除记录到一个新表中考试篇117第 2 部分B若子表中有相关记录,则禁止删除父表中记录C会自动删除子表中所有相关记录D不作参照完整性检查,删除父表记录与子表无关解析:参照完整性的删除规则包括级联、限制和忽略三个选项。删除规则规定了当删除父表中的记录时,如果选择级联,则自动删除子表中的所有相关记录;如果选择限制,若子表中有相关的记录,则禁止删除父表中
12、的记录;如果选择忽略,不作参照完整性检查,即删除父表的记录时与子表无关。答案:C【例 20】在建立表间一对多的永久联系时,主表的索引类型必须是_。A主索引或候选索引B主索引、候选索引或唯一索引C主索引、候选索引、唯一索引或普通索引D可以不建立索引解析: 在数据库设计器中设计表之间的联系时, 要在父表中建立主索引或候选索引,在子表中建立主索引、候选索引、唯一索引或普通索引,然后通过父表和子表的索引建立两表之间的联系。答案:A【例 21】设有两个数据库表,父表和子表之间是一对多的联系,为控制子表和父表的关联,可以设置“参照完整性规则” ,为此要求这两个表_。A在父表连接字段上建立普通索引,在子表连
13、接字段上建立主索引B在父表连接字段上建立主索引,在子表连接字段上建立普通索引C在父表连接字段上不需要建立任何索引,在子表连接字段上建立普通索引D在父表和子表的连接字段上都要建立主索引解析:通过父表的主索引和子表的普通索引建立两表之间的一对多联系。答案:B【例 22】Visual FoxPro 的“参照完整性”中“插入规则”包括的选项是_。A级联和忽略B级联和删除C级联和限制D限制和忽略解析:参照完整性的规则包括更新规则、删除规则和插入规则。在更新规则和删除规则中都包括级联、限制和忽略三个选项,而插入规则中只包括限制和忽略两个选项。答案:D【例 23】参照完整性规则的更新规则中“级联”的含义是_
14、。A 更新父表中连接字段值时, 用新的连接字段自动修改子表中的所有相关记录B若子表中有与父表相关的记录,则禁止修改父表中连接字段值C父表中的连接字段值可以随意更新,不会影响子表中的记录D父表中的连接字段值在任何情况下都不允许更新解析:参照完整性规则包括更新规则、删除规则和插入规则,更新规则规定了当更新父表中的连接字段(主关键字)值时, “级联”表示用新的连接字段值自动修改子表中的所有相关记录;删除规则规定了当删除父表中的记录时, “级联”表示自动删除子Visual FoxPro 实训(第 3 版)118可视化程序设计表中的所有相关记录。答案:A【例 24】在 Visual FoxPro 中,有
15、关参照完整性的删除规则正确的描述是_。A如果删除规则选择的是“限制” ,则当用户删除父表中的记录时,系统将自动删除子表中的所有相关记录B如果删除规则选择的是“级联” ,则当用户删除父表中的记录时,系统将禁止删除与子表相关的父表中的记录C如果删除规则选择的是“忽略” ,则当用户删除父表中的记录时,系统不负责检查子表中是否有相关记录D上面三种说法都不对解析:参照完整性规则包括更新规则、删除规则和插入规则,删除规则规定了当删除父表中的记录时, “级联”表示自动删除子表中的所有相关记录; “限制”表示若子表中有相关的记录,则禁止删除父表中的记录; “忽略”表示不作参照完整性检查,即删除父表的记录时与子
16、表无关。答案:C【例 25】在 Visual FoxPro 中,假定数据库表 S ( 学号,姓名,性别,年龄 ) 和 SC(学号,课程号,成绩) 之间使用“学号”建立了表之间的永久联系,在参照完整性的更新规则、删除规则和插入规则中设置了 “限制” , 如果表 S 所有的记录在表 SC 中都有相关联的记录,则_。A允许修改表 S 中的学号字段值B允许删除表 S 中的记录C不允许修改表 S 中的学号字段值D不允许在表 S 中增加新的记录解析:数据库表之间的参照完整性规则包括级联、限制和忽略,如果将两个表之间的更新规则、插入规则和删除规则中都设置了“限制” ,则不允许修改两个表之间的公共字段。答案:
17、C【例 26】打开数据库 abc 的正确命令是_。AOPEN DATABASE abcBUSE abcCUSEDATABASE abcDOPEN abc解析:在 Visual FoxPro 中,打开数据库的命令是 OPEN DATABASE ,打开数据表的命令是 USE 。答案:A【例 27】MODIFY STRUCTURE 命令的功能是_。A修改记录值B修改表结构C修改数据库结构D修改数据库或表结构解析:MODIFY STRUCTURE 命令没有参数,其功能是修改已经打开的表结构。答案:B考试篇119第 2 部分【例 28】在数据库中建立表的命令是_。ACREATEBCREATE DATAB
18、ASECCREATE QUERYDCREATE FORM解析:CREATE DATABASE 用于创建数据库;CREATE QUERY 用于创建查询;CREATE FORM 用于查询表单;直接用 CREATE 创建表。答案:A【例 29】有关 ZAP 命令的描述,正确的是_。AZAP 命令只能删除当前表的当前记录BZAP 命令只能删除当前表的带有删除标记的记录CZAP 命令能删除当前表的全部记录DZAP 命令能删除表的结构和全部记录解析:ZAP 命令用于删除表中的全部记录,只删除记录,表结构依然存在。答案:C【例 30】要为当前表所有性别为“女”的职工增加100元工资,应使用命令_。AREPL
19、ACE ALL 工资 WITH 工资+100BREPLACE 工资 WITH 工资+100 FOR 性别=女CREPLACE ALL 工资 WITH 工资+100DCHANGE ALL 工资 WITH 工资+100 FOR 性别=女解析:CHANGE 命令用于对表中的记录进行编辑和修改。REPLACE 命令用指定表达式的值修改记录。REPLACE WITH FOR ,表示把表中满足条件记录的指定字段的值替换成表达式的值。答案:B【例 31】假设职员表已在当前工作区打开,其当前记录的“姓名”字段值为“李彤”(C 型字段) 。在命令窗口输入并执行如下命令:姓名=姓名-出勤?姓名屏幕上会显示_。A李
20、彤B李彤出勤C李彤.出勤D李彤-出勤解析:在表达式姓名=姓名-出勤中,等号右侧的“姓名”为字段变量,等号左侧的“姓名”为内存变量,表达式执行后,左侧内存变量“姓名”的值为“李彤出勤” ,字段变量“姓名”的值不变,仍为“李彤” 。此时语句“?姓名”输出的是字段变量的值,故为“李彤” ,若想输出内存变量的值,可以将语句改为“?M.姓名”或“?M-姓名” 。答案:AVisual FoxPro 实训(第 3 版)120可视化程序设计3.3测试题3.3.1数据库与数据表1可以链接或嵌入 OLE 对象的字段类型是_。A备注型字段B字符型字段C任何类型字段D通用型字段2在 Visual FoxPro 中,下
21、列各项数据类型在数据表中宽度相等的是_。A日期型和逻辑型B日期型和通用型C逻辑型和备注型D备注型和通用型3某数据表中定义了三个备注型字段和两个通用型字段,则相应的备注型文件的个数是_。A0B1C2D不确定4下列字段名中不合法的是_。A计算机B123abcCabc_2Dstudent5要存储员工上下班打卡的日期和时间,应采用_字段。A字符型B日期型C日期时间型D备注型6对数据表的结构进行操作,是在_环境下完成的。A表设计器B表向导C表浏览器D表编辑器7Visual FoxPro 表结构中的逻辑型、通用型和日期型字段的宽度分别为_。A1、4、8B4、4、10C1、10、8D2、8、88在 Visu
22、al FoxPro 中,数据库表字段名最长为_个字符。A10B128C130D1569在 Visual FoxPro 的设计器是创建和修改应用系统各种组件的可视化工具,其中在表设计器中不可以_。A建立新表B修改数据C建立索引D修改表结构10在 Visual FoxPro 中表的字段类型不包括_。A时间型B日期时间型C货币型D日期型11在 Visual FoxPro 中表的字段类型不包括_。A数值型B长整型C 双精度型D整型12在 Visual FoxPro 中,如果要保存 word 格式的数据,需要使用的数据类型是_。A字符型B备注型C通用型D文本型13在 Visual FoxPro 中,存储
23、图像的字段类型是_。A双精度型B备注型C字符型D通用型14在创建表文件时要定义一个逻辑型字段,应该在该字段的宽度位置输入_。AFB不必输入C1D3考试篇121第 2 部分15在创建表文件时要定义一个日期型字段,应该在该字段的宽度位置输入_。ADB不必输入C8D116某数据库文件有字符型、数值型和逻辑型三个字段,其中字符型字段宽度为 5,数值型字段宽度为 6,小数位为 2,库文件中共有 100 条记录,则全部记录需要占用的存储字节数目是_。A1100B1200C1300D140017在 Visual FoxPro 中,定义数据的有效性规则时,在规则框输入的表达式的类型是_。A数值型B日期型C逻辑
24、型D字符型18在表设计器中可以定义字段有效性规则,规则(字段有效性规则)是_。A字符串表达式B随字段类型来确定C逻辑表达式D控制符19在 Visual FoxPro 中,下面的描述中正确的是_。A视图就是自由表B可以为自由表指定字段级规则C可以为自由表指定参照完整性规则D没有打开任何数据库时建立的表是自由表20在 Visual FoxPro 中,下面有关表和数据库的叙述中错误的是_。A一个自由表可以添加到数据库中成为数据库表B一个表可以属于多个数据库C一个数据库表可以从数据库中移去成为自由表D一个表可以不属于任何数据库3.3.2表的索引1以下关于主索引和候选索引的叙述正确的是_。A主索引和候选
25、索引都能保证表记录的唯一性B主索引和候选索引都可以建立在数据库表和自由表上C主索引可以保证表记录的唯一性,而候选索引不能D主索引和候选索引是相同的概念2在创建数据库表结构时,为该表中一些字段建立普通索引,其目的是_。A改变表中记录的物理顺序B为了对表进行实体完整性的约束C加快数据库表的更新速度D加快数据库表的查询速度3某数值型字段的宽度为6,小数位为2,则该字段所能存放的最小数值是_。A0B-999.99C-99.99D-9999.994以下索引文件会随着表的打开而自动打开,随着表的关闭而自动关闭的是_。A结构复合索引文件B独立复合索引文件Visual FoxPro 实训(第 3 版)122可
26、视化程序设计C单索引文件D以上都是5在建立唯一索引出现重复字段值时,只存储重复出现的_记录。A第一个B最后一个C全部D几个6在 Visual FoxPro 中一个表中只能建一个索引的是_。A候选索引B普通索引C唯一索引D主索引7在 Visual FoxPro 中,以下描述中错误的是_。A候选索引允许出现重复字段值B主索引不允许出现重复字段值C唯一索引允许出现重复字段值D普通索引允许出现重复字段值3.3.3数据完整性1Visual FoxPro 中的参照完整性包括_。A更新规则B删除规则C插入规则D以上答案均正确2Visual FoxPro 中设置参照完整性时,要设置成:当更改父表中的主关键字段
27、或候选关键字段时,自动更改所有相关子表记录中的对应值,应选择_。A忽略B级联C限制D忽略或限制3设有一个数据库表:学生(学号,姓名,年龄),规定学号字段的值必须是 10 个数字组成的字符串,这一规则属于_。A参照完整性B限制完整性C域完整性D实体完整性4在建立数据库表 book.dbf 时,将单价字段的字段有效性规则设为“单价0”,能保证数据的_。A实体完整性B表完整性C域完整性D参照完整性5如果学生和学生监护人两个表的删除参照完整性规则为“级联” ,下列选项正确的描述是_。A删除学生表中的记录时,学生监护人表中的相应记录不变B不允许删除学生监护人表中的任何记录C不允许删除学生表中的任何记录D
28、删除学生表中的记录时,学生监护人表中的相应记录将自动删除6如果病人和病人家属两个表之间的删除完整性规则为“限制”,下列选项正确的描述是_。A若病人家属表中有相关记录,则禁止删除病人表中记录B不允许删除病人家属表中的任何记录C删除病人表中的记录时,病人家属表中的相应记录将自动删除7在数据库设计器中建立表之间的联系时,下列说法正确的是_。A 在父表中建立主索引, 在子表中建立候选索引就可以建立两个表之间的一对多关系B只要两个表有相关联的字段就可以建立表之间的联系C只要在父表中建立主索引或候选索引就可以建立表之间的联系考试篇123第 2 部分D 在父表中建立主索引或候选索引, 在子表中建立普通索引就
29、可以建立两个表之间的一对多关系3.3.4Visual FoxPro 常用命令1如果要在当前表中新增一个字段,应使用_命令。AMODIFY STRUCTUREBAPPENDCINSERTDEDIT2要为当前所有学生的年龄增加两岁,应输入的命令是_。ACHANGE ALL 年龄 WITH 年龄+2BCHANGE ALL 年龄+2 WITH 年龄CREPLACE ALL 年龄 WITH 年龄+2DREPLACE ALL 年龄+2 WITH 年龄3下面不能创建数据库的方式是_。ACREATE 命令B单击工具栏上的“新建”按钮,然后在弹出的“新建”对话框中选中“数据库”单选按钮并单击“新建文件”按钮C在
30、项目管理器窗口中选择“数据库”选项,然后单击“新建”按钮DCREATE DATABASE 命令4当用命令 CREATE DATABASE db 创建一个数据库后,磁盘上不会出现的文件是_。Adb.dcxBdb.dctCdb.dbfDdb.dbc5下列打开数据库设计器的方法中,错误的是_。A从项目管理器中打开数据库设计器B使用命令 USE DATABASE DATABASE NAMEC使用命令 OPEN DATABASE DATABASE NAMED从“打开”对话框中打开数据库设计器6删除 Visual FoxPro 数据库的命令是_。ADELETE DATABASEBREMOVE DATABA
31、SECALTER DATABASEDDROP DATABASE7在当前数据库中添加一个表的命令是_。AAPPEND 命令BADD TABLE 命令CAPPEND TABLE 命令DADD 命令8在 Visual FoxPro 中建立表的命令是(非 SQL 命令)_。ACREATEBCREATE GRIDCCREATE TABLEDCREATE DATABASE9在 Visual FoxPro 中打开表的命令是_。AUSE TABLEBUSECOPENDOPEN TABLEVisual FoxPro 实训(第 3 版)124可视化程序设计10职工表中的婚姻状态字段是逻辑型,执行如下程序后,最后一条命令显示的结果是_。USE 职工APPEND BLANKREPLACE 职工号 WITH E11 ,姓名 WITH 张三 ,婚姻状态 WITH .F.?IIF(婚姻状态,已婚,未婚)A已婚B.T.C未婚D.F.3.4测试题答案3.3.1数据库与数据表1D2D3B4B5C6A7A8B9B10A11B12C13D14B15B16C17C18C19D20B3.3.2表的索引1A2D3C4A5A6D7A3.3.3数据完整性1D2B3C4C5D6A7D3.3.4Visual FoxPro 常用命令1A2C3A4C5B6A7B8A9B10C