1、第 3 章 数据库与表的创建和使用一、选择题1下列关于项目、数据库和表的描述中不正确的是: 。A. 一个项目可以包含多个数据库 B. 一个数据库可以包含在多个项目中C. 一个数据库可以包含多个表 D. 一个表可以包含在多个数据库中2. Visual FoxPro 系统中,修改表结构的命令是 。AMODIFY STRUCTURE BLIST STRUCTUREC. DISPLAY STRUCTURE DCREATE STRUCTURE3表(table)是存储数据的容器。在下列有关 VFP 表的叙述中,错误的是 。每个表最多只能包含 200 多个字段新建一个表后,一般会生成 13 个文件自由表与数
2、据库表在数据存储功能上相同,但在数据管理与控制功能上有差别自由表添加到数据库中则变成数据库表,数据库表移出数据库则变成自由表4在 VFP 系统中,对于数据库表来说,如果将其移出数据库变成自由表,则该表原设置或创建的 仍然有效。候选索引 B 长表名 C记录有效性规则 D 触发器5在创建表索引时,索引表达式可以包含一个或多个表的字段。在下列字段类型中,不能直接选作索引表达式的是 。A货币型 B日期时间型 C逻辑型 D备注型6在 VFP 系统中,如果指定二个表的参照完整性的删除规则为“级联” ,则当删除父表中的记录时 。 A系统自动备份父表中被删除记录到一个新表中 B若字表中有相关记录,则禁止删除父
3、表中记录 C自动删除子表中所有相关记录 D不作参照完整性检查,删除父表记录与子表无关7. Visual FoxPro 系统中,检测表文件指针是否已到文件尾的函数是 。ABOF() B. EOF() C. END() DFIEL()8表(table)是存储数据的容器。在下列有关 VFP 表的叙述中,错误的是 。系统默认的表文件扩展名为.dbfB利用设计器创建表结构时,系统默认的字符型字段宽度为 10C自由表的索引功能与数据库表有区别D表文件名在命名上只要遵循操作系统的规定, VFP 本身无任何新的限定9数据库(database )是许多相关的数据库表及其关系等对象的集合。在下列有关 VFP 数据
4、库的叙述中,错误的是 。A新建一个数据库后,会生成三个相关文件B从项目管理器中可以看出,数据库包含表、视图、查询、连接和存储过程C创建数据库表之间的永久性关系,一般是在数据库设计器中进行D数据库表之间创建“一对多 ”永久性关系时,主表必须用主索引或候选索引10在下列有关 VFP 表索引的叙述中,错误的是 。A通过创建表的索引,不仅可以对记录数据进行排序,而且可以实现记录的筛选B对于数据库表来说,可以创建 VFP 系统支持的所有类型的索引C在表打开时,系统会自动地将默认的第一个索引作为主控索引D表的唯一索引并不能控制字段数据输入时的重复11数据库表可以设置字段有效性规则,字段有效性规则属于 _。
5、A实体完整性范畴 B参照完整性范畴 C数据一致性范畴 D域完整性范畴12通用型字段宽度为 。 A1 B2 C4 D813. XS(学生)表中有 XM(姓名,字符型)和 XB(性别,字符型)等字段。如果要将所有男生记录的姓名字段值清空,则可以使用命令 。A. UPDATE xs SET xm=“ WHERE “xb“=男 B. UPDATE xs SET xm=SPACE(1) WHERE xb= “男“ C. UPDATE xs SET xm=SPACE(1) FOR xb= “男“ D. UPDATE xs SET xm=“ FOR “xb“= 男 14.在下列关于数据库表和临时表的叙述中,
6、不正确的是 。A数据库表随着其所在的数据库的打开而打开,也随着其所在的数据库的关闭而关闭B基于数据库表创建的临时表随着数据库的打开而打开,也随着数据库的关闭而关闭C用 BROWSE 命令可浏览数据库表,也可浏览临时表D临时表被关闭后,可使用 USE 命令再次将其打开15.设某数据库中的学生表(XS.DBF )已在 2 号工作区中打开,且当前工作区为 1 号工作区,则下列命令中不能将该 XS 表关闭的是 。ACLOSE TABLE BUSE IN 2CCLOSE DATABASE ALL DUSE 16.首先执行 CLOSE TABLES ALL 命令,然后执行 命令,可逻辑删除 JS 表中年龄
7、超过 60 岁的所有记录。ADELETE FOR YEAR(DATE()-YEAR(csrq)60BDELETE FROM js WHERE YEAR(DATE()-YEAR(csrq)60CDELETE FROM js FOR YEAR(DATE()-YEAR(csrq)60DDELETE FROM js WHILE YEAR(DATE()-YEAR(csrq)6017.数据库表的主索引(及候选索引)的设置可以实现 。 A域完整性 B实体完整性 C参照完整性 D用户自定义完整性18.函数 SELECT(0)的返回值是 。A. 当前工作区号 B. 当前工作区的下一个工作区号C. 当前未被使用的
8、最小工作区号 D. 当前未被使用的最大工作区号19在 vfp 中, “.dbf”文件被称为 。A. 数据库文件 B. 表文件 C. 程序文件 D. 项目文件20要求一个表文件的数值型字段具有 5 位小数,那么该字段的宽度至少为 。A. 5 位 B. 6 位 C. 7 位 D. 8 位21打开一张空表,分别用函数?EOF()和?BOF()测试,结果是 。A T和T B F和F C T和F D F和T22下面 命令组与 BROW FOR xb=”女”具有相同的显示结果。A BROW(回车) SET FILTER TO (回车)B SET FILTER TO xb=”女” (回车) BROW(回车)
9、 C SET FILTER TO (回车)BROW(回车)D BROW(回车)SET FILTER TO xb=”女” (回车)23在 js.dbf 中筛选出性别为“女”的命令是 。ASET FILTER TO xb=”女” BSET FILTER xb=”女”CSET FIELDS TO xb=”女” DSET FILTER TO24当执行命令 USE js ALLAS teacher IN B 后,被打开的表的别名是 。A teacher B js C B D js b25已知 js 表中有两条记录,下列操作中,返回值一定是T的是 。A BC D.26某打开的表中有 20 条记录,当前记录
10、号是 8,执行命令 GO TOP 后,再执行 SKIP -1命令,此时所显示的记录号为. 。A1 B0 C7 D927. 开一张表后,执行下列命令后,关于记录指针的说法正确的是 。GO 6 SKIP -5GO 5A记录指针停在当前位置不动 B记录指针的位置取决于记录的个数USE js?EOF( )USE js GO 2 SKIP -1?BOF( )USE jsGO BOTTOMSKIP?EOF( ) USE js SKIP-1?EOF( )C记录指针指向第 5 条记录 D记录指针指向第 1 条记录28恢复带删除标记的记录的是 。AAPPEND BPACK CRECALL DZAP29用表设计器
11、创建一个自由表,不能实现的操作是 。A. 设置某字段可以接受 NULL 值 B. 设置表中某字段的类型为通用型C. 设置表的索引 D. 设置表中某字段的默认值30一张表的全部 meno 字段的内容存储在 。A不同的备注文件 B. 同一个文本文件C. 同一个备注文件 D. 同一个数据库文件二、填空题1Visual FoxPro 系统支持 3 种不同的索引文件,即 索引文件、非结构复合索引文件和独立索引文件。2设在 1 号工作区中打开 XS 表,若要求在 2 号工作区中再次打开 XS 表且别名设置为XUESHENG,则可使用命令:USE xs xuesheng IN 2 AGAIN 3利用 DBG
12、ETPROP()函数,可以获取当前数据库的属性设置信息,或当前数据库中的表、表字段或视图的属性设置信息。例如,要获取当前数据库 SJK 中 XS 表的 xb 字段的默认值,可以使用函数 DBGETPROP(“Xs.xb“, “Field“, “ “) 。4查看 xs 表中 xh 字段的有效性规则,可以使用下列命令:? dbgetprop(“xs.xh”,” ,”RuleExpression”)5存放在数据字典中的各种描述信息,包括所有数据的结构名、存储格式、完整性约束、使用权限等信息,这些描述信息通常称为_。6对于包含备注型字段或 字段的表来说,系统会自动生成和管理一个相应的备注文件,用于存储
13、备注内容。备注文件的文件名与表文件名相同,其扩展名为.fpt。7虽然结构复合索引文件是随表的打开而自动打开的,但复合索引中的任何一个索引都不会被自动设置为主控索引,此时,表中的记录任按记录的物理顺序显示和访问。要设置一张表的主控索引可以有两种方式:在打开表的同时打开索引,或打开表以后再设置主控索引。打开表以后再设置主控索引的命令为 。8触 发 器 是 绑 定 在 表 上 的 逻 辑 表 达 式 , 当 表 中 的 任 何 记 录 被 指 定 的 操 作 命 令 操 作 时 , 触发 器 被 激 活 。 触 发 器 的 返 回 值 为 .T.或 .F., 如 果 为 .F., 则 相应的操作。9
14、教学管理数据库中含有课程表(KC.DBF),该表中有以下字段:KCDH(课程代号 C) ,KCM(课程名 C) ,BXK (必修课否 L) ,XF(学分 N) 。现要为该表设置一个记录级的规则:学分大于 3 的课程均为必修课。相应的逻辑表达式是 。10设教师(JS.DBF)表中含有 100 个记录,运行下列程序后,显示记录个数是 。【程序 2 清单】CLEARUSE JSSCAN?RECNO(),GH,XMSKIPENDSCANUSE 3、按照要求写出相应的命令。已知:(1)学生表 XS.DBF 包含字段 XH,XM,XB,XZYDM 分别表示学生的学号、姓名、性别、系专业代码。(2)成绩表
15、CJ.DBF 包含字段 XH,KCDM,CJ 分别表示学号、课程代码和成绩。(3)院系专业 YXZY.DBF 包含 XZYDM、YXMC 和 ZYMC,分别表示系专业代码、院系名称和专业名称。(4)工资表 GZ.DBF 包含字段 GH,JBGZ 分别表示工号和基本工资。1创建一个教师表(js.dbf) ,其中有字段 gh(字符型,长度为 8) 、xm(字符型,长度为10) 、csrq (日期型) 、bz( 备注型,且允许为 NULL 值)。2删除 JS 表中年龄超过 60 岁的所有教师的记录。3将工资表中 GH 以“A”开头的基本工资加 200。4为院系专业表插入一条新纪录:系专业代码为“00
16、15” ,院系名称为“信息科学系” ,专业名称为“人工智能” 。5创建一个课程表(kc.dbf),其中有字段 KCDM(字符型,长度为 4)、KCM(字符型,长度为 18)、KSS(数值型,长度为 2)、BXK(逻辑型)。6将学号为“950106” ,课程代码为“06” ,成绩为“80”的记录从成绩表删除中。7更新成绩表 CJ.DBF 的 CJ 字段的值,要求 90 分以下的新成绩为原成绩的 1.1 倍,90分及以上的同学新成绩都为 100 分。8将学号为“950106” ,课程代码为“02” ,成绩为“85”的记录插入到成绩表中。9将 CJ(成绩表)中学号为“990102” 、课程代码为“02”的学生的成绩改为:90。10删除成绩表中成绩不及格的所有记录。