1、第 1 章 数据库系统概述(1)数据库、数据库管理系统及数据库系统的概念分别是什么?答:数据库是存储在计算机存储设备上的、结构化的相关数据集合;数据库管理系统是数据库系统中对数据进行管理的软件系统,是数据科系统的核心;数据库系统是指引入了数据库技术的计算机系统。(2)在关系数据模型中,关系、元组、属性是什么概念?答:一个关系就是一张二维表,由行和列构成;元组也称记录,是表中的一行;属性也称字段,是表中的一列。(3)关系模型允许定义哪几类完整性约束?答:实体完整性;参照完整性;用户定义完整性。(4)关系的基本运算有哪几类?答:传统的集合运算(并、交、差等) ;专门的关系运算(选择、投影、连接)
2、。(5)Visual FoxPro 主要提供了哪几种设计工具?答:略。(6)如何设置当前工作目录?答:界面方式:选择“工具|选项”菜单命令,打开“选项”对话框,在“文件位置”选项卡中选中“默认目录”列表项,单击“修改”命令按钮,打开“更改文件位置”对话框,选中“使用默认目录”复选框,单击“定位默认目录”文本框后的“”命令按钮,选择一个目录后确定即可。命令方式:SET DEFAULT TO 。(7)项目管理器的功能有哪些?答:对项目中的表、数据库、查询、表单、报表、菜单等对象进行组织和管理;实现对项目中各个对象的创建、修改、删除等操作;将应用程序编译成可独立运行的可执行文件等。第 2 章 Vis
3、ual FoxPro 的数据与数据运算(1)Visual FoxPro 有哪几种常用的数据类型?答:字符型、数值型、整型、浮点型、双精度型、货币型、日期型、日期时间型、逻辑型、备注型、通用型。(2)字段变量与内存变量有何区别?答:字段变量是数据表中的一个字段,变量名即字段名,针对不同的记录,同一字段可以有不同的字段值;内存变量是用户在程序中定义的,当程序运行时,在内存中临时创建内存变量,用于存放程序运行的中间结果和最终结果。(3)什么是函数?如何调用函数?答:函数是一段预先编写好的程序代码,用于实现某个特定功能,每个函数有一个函数名,可以接收若干个参数,返回一个确定值。函数的一般调用格式为:函
4、数名(参数列表)。(4)什么是表达式?常见的表达式类型有哪几种?答:表达式是把常量、变量、函数和字段名等用运算符连接起来的式子。常见的表达式类型有:算术表达式、字符表达式、日期和时间表达式、关系表达式、逻辑表达式。第 3 章 数据表的建立和使用(1)Visual FoxPro 中的表分为哪两类?它们有什么不同?答:自由表和数据库表。自由表是独立存在的、不与任何数据库相关联的表;数据库表与某个数据库相关联,比自由表具有更多的属性和功能。(2)备注型字段和通用型字段有无内容如何判断?答:在数据表的浏览窗口中,若备注型字段显示的是“Memo”或通用型字段显示的是“Gen”则表示相应字段中有内容;若显
5、示的是“memo”或“ gen”,则表示无内容。(3)什么是记录的定位?定位的方式有哪几种?如何实现?答:记录的定位是指将记录指针移动到要操作的记录,使其成为当前记录。记录的定位方式有绝对定位、相对定位和条件定位三种。在表的浏览状态下,选择“表|转到记录”菜单命令下的相应子菜单可以实现记录的定位;也可使用 GO、SKIP、LOCATE FOR 命令可分别实现绝对定位、相对定位、条件定位。(4)在对表中的记录进行批量修改时,UPDATE 命令与 REPLACE命令有何区别?答: UPDATE 是 SQL 命令,不需要事先打开表;REPLACE 是VFP 的传统命令,必须先把表打开,且让其成为当前
6、表。 语法格式不同:REPLACE 用 WITH 子句实现替换,用 FOR 子句表示替换条件;UPDATE 用 SET 子句实现替换,用 WHERE 子句表示替换条件。 REPLACE 省略范围和条件表示对当前记录进行修改;UPDATE 没有范围设置,条件省略时表示对表中所有记录进行修改。(5)记录删除命令 DELETE、ZAP 和 PACK 有何区别?答:DELETE 命令用于逻辑删除满足条件的记录,即给要删除的记录添加删除标记;PACK 命令用于将已添加删除标记的记录物理删除,即彻底删除带有删除标记的记录;ZAP 命令用于将表中所有记录进行彻底删除,不管记录有没有删除标记,即清空整张表。(
7、6)要同时实现记录和字段的筛选,如何在“工作区属性”窗口中进行设置?答:在“数据过滤器”文本框中输入记录筛选的条件;并在“允许访问”区域选中“字段筛选指定的字段”单选按钮,单击其后的“字段筛选”命令按钮,在弹出的对话框中选择需要筛选出的字段。设置完毕后重新浏览表可查看设置的结果。(7)索引有几种类型?分别具有什么特点?答:索引的类型有主索引、候选索引、普通索引和唯一索引四种。特点:主索引不允许索引表达式的值重复,只能在数据库表中创建,且每张表最多只能建一个主索引;候选索引不允许索引表达式的值重复,在数据库表和自由表中都可创建,且每张表可创建多个;普通索引允许索引表达式的值重复,在数据库表和自由
8、表中都可创建,且每张表可创建多个;唯一索引允许索引表达式的值重复,对于重复出现的索引表达式的值,仅保留其中的第一个记录,在数据库表和自由表中都可创建,且每张表可创建多个。(8)什么是工作区?工作区与表有什么关系?如何设置当前工作区?答:工作区是内存中的一个区域,用于保存打开的表及其相关信息。工作区用于存放打开的表,一个工作区同时只能打开一张表,不同的工作区可以同时打开不同的表,一张表也可同时在不同的工作区中打开。在“数据工作期”窗口中单击表的别名,可将该表所在的工作区设为当前工作区,或通过 SELECT 命令进行设置。(9)什么是表之间的临时关系?它和永久关系有何区别?答:表之间的临时关系是指
9、把当前工作区中打开的表与另一个工作区中打开的表进行逻辑连接,实现表之间记录指针的联动。临时关系是在表打开以后,根据需要临时建立的,当表关闭后,相应表之间的临时连接会自动解除,可以在自由表之间建立临时关系;永久关系只能在数据库表之间建立,一旦建立,其信息被保存在数据库文件中,只要不人为删除,永久关系会一直存在。第 4 章 数据库及数据库表的操作(1)与自由表相比,数据库表有哪些优势?答:数据库表比自由表具有更多的功能与属性,可以建立表之间的永久性关系等。(2)有哪些方法可以创建数据库?怎样在数据库中添加或移去表?答:界面方式可以通过“新建”对话框或项目管理器来创建数据库,命令方式通过 CREAT
10、E DATABASE 命令。通过项目管理器中的“添加”或“移去”命令按钮实现数据库表的添加或移去操作,也可通过 ADD TABLE、REMOVE TABLE 命令实现向当前数据库中添加表或从当前数据库中移去表。(3)在建立两张数据库表之间的永久性关系时,每个数据库表必须有索引吗?如果必须有索引,分别是什么索引类型?答:必须有索引。对于一对多关系,主表建主索引或候选索引,子表建普通索引;对于一对一关系,主表和子表都建主索引或普通索引。(4)数据库表有哪些属性设置?当数据库表从数据库中移去成为一张自由表时,原来的数据库表的属性还存在吗?答:除了自由表的一般属性外,数据库表还可以设置字段格式、输入掩
11、码、标题、字段有效性规则和有效性信息、默认值、记录有效性规则和有效性信息、长表名和表注释等属性。当将表从数据库中移去后,这些属性都将不再存在。(5)参照完整性设置的一般要求是什么?答:对于具有一对多关系的两张表,子表中的每个记录在对应的主表中必须有一个父记录;在子表中插入纪录时,其外部关键字必须是主表主关键字值中的一个;在父表中删除记录时,与该记录相关的子表中记录必须全部删除。第 5 章 查询和视图(1)查询的定义和特点分别是什么? 答:查询是指从一个或多个数据源表或视图中筛选出满足条件的数据。查询可以将筛选出的数据按照指定的排列顺序或分组方式进行输出,其输出结果也可以有多种不同的显示和输出方
12、式。(2)VisualFoxpro 中提供的查询方式有那几种?答:查询向导、查询设计器、SELECT-SQL 语句。(3)在进行查询筛选的设置时需要注意的问题有哪些?答:在实例文本框中输入比较的值时应注意:字符型字段值的定界符一般可以省略,但如果字段值与表中的字段名相同时,定界符不可省略;日期常量必须使用严格的日期格式;逻辑值必须加定界符。此外选项字段名时应注意字段名不能使用“备注”或“通用”字段作为筛选条件。(4)建立多表查询时如何建立表之间的关系?答: 若表之间已经建立了永久关系,则系统将自动建立联接; 若表之间没有建立永久关系,则在添加第二张表的时候系统会自动打开“联接条件”对话框,并以
13、两张表的同名字段作为默认的联接条件; 若没有利用“联接条件”对话框建立联接条件,则在查询设计器中可以直接从一张表的字段拖动到另一张表的相应字段上。(5)查询的输出去向有哪几种?答:浏览窗口、临时表、表、图形、屏幕、报表、标签。(6)什么是分组依据?如何确定分组依据的字段?答:略。(7)在查询设计器中,使用“筛选”和“满足条件”的目的是什么?它们之间的区别是什么?答:筛选可以筛选出原表中满足筛选条件的记录,用于筛选的字段必须是原表中的某个字段或对原表中某个字段进行计算的表达式;满足条件是对分组结果记录的筛选,满足条件通常在分组以后设置,可以实现对查询结果字段的筛选。(8)交叉表查询的特点是什么?
14、答:交叉表是将数据源中的某个字段作为行标题,另一个字段作为列标题,行、列交叉处的每个单元格显示对应数据。并可在每行的最后加入相应的总结、汇总信息。(9)什么是视图?视图的优点是什么?答:视图是在数据库中定义的一个虚表,是基于表的可更新的数据集合。其优点是:可以访问远程数据、可以作为数据源、可以实现对源表的更新等。(10)查询与视图的区别是什么?答: 视图中的数据是可更新的,并且可以同时更新数据源中的数据,而查询结果中的数据是只读的。 视图不是一个独立的文件,没有扩展名,它仅是数据库中的一个组成部分。而查询是一个扩展名为.qpr 的独立的文件,它不从属于任何数据库。 视图既可以访问本地数据也可以
15、访问远程数据,而查询不能访问远程数据。 视图只有在所属的数据库被打开时才能使用,而查询文件可以直接使用。 视图可以作为数据源被引用,而查询只能在运行时一次获得结果并输出,不能被引用。 视图只能当数据表使用,而查询有多种去向,如临时表、表、图形、报表、标签等形式。(11)在视图设计器中,在“更新”选项卡中定义关键字时,需要注意的问题是什么?答:作为关键字的字段在表中不能出现重复值。(12)利用视图来更新源表数据的操作步骤是什么?答:在“更新条件”选项卡中,先选择要更新的表,再设置关键字段和可更新字段,最后选中“发送 SQL 更新”复选框。(13)如何利用命令方式建立视图?答:CREATE SQL
16、 VIEW AS 。第 6 章 关系数据库标准语言 SQL(1)SQL 语言的特点是什么?答:可以实现对数据库的各种操作,可以直接以命令方式使用,也可以嵌入到程序设计语言中使用,语言简洁,语法简单,易学易用等。(2)SQL 语言的基本组成部分是什么?答:数据定义语言 DDL、数据操纵语言 DML、数据控制语言 DCL。(3)Visual FoxPro 支持的 SQL 语言的功能有哪些?其命令动词分别是什么?答:数据查询(SELECT) 、数据定义(CTREATE、ALTER 、DROP ) 、数据操纵(INSERT、UPDATE、DELETE) 。(4)SQL 语言数据定义功能的特点是什么?答
17、:略。(5)SQL 语言数据定义功能的核心语句分别有哪些,其作用是什么?答:CTEATE TABLE 建立表结构;ALTER TABLE 修改表结构;DROP TABLE 删除表。(6)SQL 语言数据操纵功能的特点是什么?答:略。(7)SQL 语言数据操纵功能的核心语句分别有哪些,其作用是什么?答:INSERT INTO 插入记录; UPDATE 修改记录;DELETE 删除记录。(8)SQL 语言数据查询功能的特点是什么?答:略。(9)SELECT-SQL 命令中参数 DISTINCT 的含义是什么?答:排除查询结果中的重复行。(10) SELECT-SQL 命令中 HAVING 子句的作
18、用是什么?答:实现对分组结果的筛选。(11)SELECT-SQL 命令中查询去向的表达有几种方式?其含义分别是什么?答:INTO CUROSR:存放到临时表中;INTO TABLE:存放到数据表中;TO FILE:存放到其他文件中。第 7 章 结构化程序设计(1)什么叫程序?其特点是什么?答:程序是能够完成一定任务的命令的有序集合。(2)程序的基本结构有哪些?分别有什么特点?答:顺序:按程序中语句的书写顺序依次执行;分支:根据指定条件的当前值在两条或多条程序路径中选择一条执行;循环:由指定条件的当前值来控制循环体中的语句行序列是否要重复执行。(3)程序的基本构成规则是什么?答:程序由若干行构成
19、;每个程序行以一个回车符结束,若一个程序行在一行写不完,在行尾用分号续行;程序尾部使用CANCEL、RETURN、QUIT 等命令表示程序结束。(4)如何用命令方式建立、修改和运行程序?答:创建和修改程序的命令为 MODIFY COMMAND ,运行程序的命令为 DO 。(5)程序中常用的输入和输出语句有哪些?使用特点是什么?答:ACCEPT 语句:可以接受用户输入的一个字符串;INPUT 语句:可以接收用户输入的任意类型数据或表达式,输入常量时需加定界符;WAIT 语句:只能接受用户输入的单个字符; SAY 语句:在固定位置进行输出和输入。(6)常用的程序结束语句有哪些?使用特点是什么?答:
20、CANCEL:结束程序的执行,返回命令窗口,同时关闭所有打开的文件;RETURN:结束程序的执行,若当前程序是被另一程序调用的,则返回到调用程序,否则返回到命令窗口;QUIT:结束程序执行,并推出Visual FoxPro。(7)单分支结构的特点是什么?答:根据 IF 之后条件表达式的值判断是否执行语句行序列。(8)双分支结构的特点是什么?答:根据 IF 之后条件表达式的值判断执行两个分支中的哪一个分支。(9)在使用双分支结构时需要注意哪些问题?答:略。(10)DO WHILE 循环的使用特点是什么?答:根据条件表达式的值来决定循环的执行次数,适用于循环次数未知的情况。(11)FOR 循环与
21、DO WHILE 循环的使用区别是什么?答:FOR 循环主要使用于循环次数已知的情况,DO WHILE 循环主要使用于循环次数未知的情况。(12)SCAN 循环的使用特点是什么?答:SCAN 循环用于对表中的记录进行处理,没执行完一次循环体,记录指针会自动下移。(13)在使用循环嵌套时应该注意哪些问题?答:内层循环必须完全包含在外层循环中,不能交叉;循环与分支嵌套时,也不能交叉;程序每执行一次外层循环,其内层循环必须执行完所有的循环次数,才能进入外层的下一次循环。(14)什么是用户自定义函数?如何实现用户自定义函数的调用?答:用户自定义函数是用户自己定义和编写的函数。用户自定义函数的调用格式和
22、系统函数的调用格式相同:函数名(参数列表 )。(15)什么叫过程?什么叫过程文件?二者的区别是什么?答:过程是用于完成一个特定任务的程序代码段,可以被其他程序调用;过程文件是包含了一个或多个过程的程序文件。(16)如何调用过程文件中的过程?答:先使用 SET PROCEDURE TO 命令打开相应过程文件,调用完后,使用 CLOSE PROCEDURE 命令关闭过程文件。第 8 章 面向对象的程序设计(1)什么是面向对象程序设计?特点是什么?答:面向对象的程序设计是把要处理的问题分解为若干个功能独立的“对象” ,然后通过对对象的属性、事件、方法等的设计来实现各个对象的功能。主要有封装性、继承性和多态性等特点。(2)对象的定义与特点是什么?答:对象是指客观世界存在的任何事物。(3)对象的三要素是什么?答:属性、事件、方法。(4)什么是类?试举例说明类和对象的关系。答:类是定义了对象特征以及对象外观和行为的模板,是同一类对象的共性特征的概括和抽象。(5)简述 Visual FoxPro 类的基本组成?答:容器类和控件类。(6)对象有哪些引用方法? 答:绝对引用和相对引用。(7)对象的相对引用有哪些关键字?其含义是什么?答:常用的关键字有:This 表示当前对象; ThisForm 表示当前对象所在的表单;Parent 表示当前对象的上一层容器对象。(8)举例说明属性的概念和设置方法?