《Visual FoxPro程序设计》第三章数据库和表.ppt_第1页
《Visual FoxPro程序设计》第三章数据库和表.ppt_第2页
《Visual FoxPro程序设计》第三章数据库和表.ppt_第3页
《Visual FoxPro程序设计》第三章数据库和表.ppt_第4页
《Visual FoxPro程序设计》第三章数据库和表.ppt_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Visual FoxPro 6.0 程序设计.课件,-1-,第3章 数据库和表,3.1 数据表的建立和修改 3.2 数据表的维护命令 3.3 表的排序和索引 3.4 数据的检索和统计 3.5 多表操作 3.6 数据库的基本操作,提示:单击各个标题前的动画符号“ ” ,链接到相应的章节。,Visual FoxPro 6.0 程序设计.课件,-2-,3.1 数据表的建立和修改,3.1.1 表结构的建立 3.1.2 表的打开与关闭 3.1.3 表结构的显示与修改,Visual FoxPro 6.0 程序设计.课件,-3-,3.1 数据表的建立和修改,数据表是一组相关联的数据按行和列排列的二维表格,简

2、称为表(Table)。 表中第一行决定表的结构,表的每列都是一个字段,第一行的每一项是字段名,表中其他行是按照表结构建立的表数据,每行都称为一条记录。见下表所示的学生信息表。,Visual FoxPro 6.0 程序设计.课件,-4-,3.1.1 表结构的建立,1.表结构的设计 表结构由字段名、字段类型和字段长度(数值型还需要定义小数位数)构成。 (1)字段名 字段名即字段的标识或关系的属性名,可由汉字、字母、数字及下划线组成,但首字符必须是汉字或字母; 数据库表字段名的总长度不超过128个字符,但自由表字段名长度不能超过10个字符;不能使用VFP的保留字; 同一表中字段名不允许重复,字段名取

3、名最好能简要说明该字段的意义。 (2)字段类型 表中每一个字段都有特定的数据类型; 见下表,可以选择下列表中的任意一种数据类型。,Visual FoxPro 6.0 程序设计.课件,-5-,Visual FoxPro 6.0 程序设计.课件,-6-,对于有些由数字构成,但不参与数值计算的数据,可以定义成字符型,如学号、身份证号码等;对于取值只有两种状态的数据可以定义成逻辑型,如是否团员、婚否等。 可以定义上述学生信息表的表结构,见下表。,Visual FoxPro 6.0 程序设计.课件,-7-,2. 表结构的建立 表结构的建立方法常用两种:菜单方式和命令方式。 (1)菜单方式,图3-1 “文

4、件”菜单,图3-2 “新建”对话框,单击“文件”|“新建”命令,如左图,打开“新建”对话框,如右图,Visual FoxPro 6.0 程序设计.课件,-8-, 在“新建”对话框中选择文件类型为“表”,然后单击“新建文件”按钮,打开下图所示的“创建”对话框。, 在“创建”对话框中,选择好保存路径后,输入要保存的表文件的名称,默认的保存类型为“表/DBF”,扩展名为.dbf,然后单击“保存”按钮,打开如下图所示的“表设计器”对话框。,Visual FoxPro 6.0 程序设计.课件,-9-,在“表设计器”对话框中,选择“字段”选项卡,可以设置字段名、字段宽度等。在“字段名”下方的框内输入字段的

5、名称;在“类型”下方的下拉框中选择该字段的字段类型;在“宽度”下方的框内设置该字段的宽度;如果字段类型是“数值型”或“浮动型”,则还要在 “小数位”下方的框中设置小数点后的位数。一个字段定义完后,单击下一行,再定义下一个字段,一直到所有字段都定义完成后,单击“确定”按钮,就完成了表结构的建立。,Visual FoxPro 6.0 程序设计.课件,-10-,在“表设计器”的对话框中,单击“插入”按钮,会在已选定字段前插入一个新字段;单击“删除”按钮,会删除一个已选定字段; 当选中某一字段时,该字段定义行左端的小方块上显示上下双向箭头,拖动该上下箭头可以改变字段的顺序。 在“表设计器”对话框中,表

6、结构建立好后,单击“确定”按钮,会弹出一个询问现在是否要输入数据记录的对话框,如果单击“是”按钮,将弹出记录的编辑窗口,可以直接输入表中记录的数据值;如果单击“否”按钮,将直接关闭表设计器窗口。,Visual FoxPro 6.0 程序设计.课件,-11-,(2)命令方式 建立表结构的命令格式:CREATE 例如,在命令窗口中输入:create student 将打开 “表设计器”对话框,在该对话框中定义表中的每个字段,单击“确定”按钮完成表结构的建立。,Visual FoxPro 6.0 程序设计.课件,-12-,3.1.2 表的打开与关闭,1. 表的打开 对表操作要先打开。打开的方法有:菜

7、单方式和命令方式 (1)菜单方式 单击“文件”|“打开”命令,打开“打开”对话框,如图,其中的文件类型选择“表(*.dbf)”,然后按照路径找到表文件所在位置,选中该文件,单击“确定”按钮。,Visual FoxPro 6.0 程序设计.课件,-13-,(2)命令方式 打开表的命令格式:USE 例如,打开学生信息表student,可以在命令窗口中输入相应的命令: use student 如果该表文件在当前默认路径下,输入命令并回车后则能直接打开该表; 如果该表未存放在当前默认路径下,则在use命令后应输入该表文件所在的完整路径和文件名称。,Visual FoxPro 6.0 程序设计.课件,-

8、14-,2. 表的关闭 对表文件的操作结束后,一般需要关闭表,一方面将对表的修改保存到磁盘文件中,另一方面也避免对表的无意破坏。 关闭表的方法主要有两种:菜单方式和命令方式。 (1)菜单方式: 单击“文件”|“关闭”命令,即可关闭当前打开的表。 (2)命令方式: 关闭表的命令格式为:USE 在命令窗口中输入USE命令,回车后,当前工作区中打开的表被关闭。 也可使用命令:CLOSE ALL来关闭所有工作区中打开的表文件。,Visual FoxPro 6.0 程序设计.课件,-15-,3.1.3 表结构的显示与修改,1. 表结构的显示 表文件建立以后,随时可以查看表结构。表结构的显示方法主要有两种

9、:菜单方式和命令方式。 (1)菜单方式 单击“文件”|“打开”命令,打开“打开”对话框,在其中选择要打开的表。 单击“显示”|“表设计器”命令,打开“表设计器”对话框,在其中能看到该表的表结构中所有字段的定义。 (2)命令方式 显示表结构的命令格式如下: LIST|DISPLAY STRUCTURE LIST STRUCTURE和DISPLAY STRUCTURE命令功能相近,都可以显示当前表的表结构,区别在于:使用LIST命令时,当显示的内容超出一屏时会自动滚屏,显示到最后一屏;而使用DISPLAY命令,显示内容满一屏时会自动暂停,按任意键后才继续显示下一屏。,Visual FoxPro 6

10、.0 程序设计.课件,-16-,例如,显示学生信息表student的表结构,可以在命令窗口中输入相应的命令: use student list structure 回车后,在主窗口中会显示表的结构,如图。,Visual FoxPro 6.0 程序设计.课件,-17-,2. 表结构的修改 表结构的修改方法也有菜单方式和命令方式两种。 (1)菜单方式 单击“文件”|“打开”命令,或者单击常用工具栏中的“打开”按钮,打开“打开”对话框,在对话框中选择要打开的表。 单击“显示”|“表设计器”命令,打开“表设计器”对话框。 在“表设计器”对话框中,选中要修改的字段,可以随意修改字段名、类型、宽度等项;可

11、以单击“插入”按钮,在选中字段前插入一个新字段;可以单击“删除”按钮,删除当前选中的字段;也可拖动被选中字段左端的带上下双向箭头的按钮来改变字段的顺序。修改后,单击“确定”按钮完成表结构的修改。,Visual FoxPro 6.0 程序设计.课件,-18-,(2)命令方式 修改表结构的命令格式: MODIFY STRUCTURE 例如,修改学生信息表的表结构,可以在命令窗口中输入相应的命令: use student modify structure 按回车键后,也会打开“表设计器”的对话框,具体修改操作同菜单方式。 注意:在修改表结构时,注意已有数据的类型和宽度,防止表中已有数据的丢失。,Vi

12、sual FoxPro 6.0 程序设计.课件,-19-,3.2 数据表的维护命令,3.2.1 表记录的浏览 3.2.2 表记录的添加 3.2.3 表记录的删除 3.2.4 表记录的修改,Visual FoxPro 6.0 程序设计.课件,-20-,3.2.1 表记录的浏览,表记录的浏览方法主要有两种:菜单方式和命令方式 1. 菜单方式 (1)单击“文件”|“打开”命令,或者单击常用工具栏中的“打开”按钮,打开“打开”对话框,在对话框中选择要打开的表。 (2)单击“显示”|“浏览”命令,打开“浏览”窗口,如图。,Visual FoxPro 6.0 程序设计.课件,-21-,2. 命令方式 有多

13、个命令可以实现记录的浏览,主要分为两种:在浏览窗口中显示和在工作区中显示。 (1) 浏览窗口中显示 在浏览窗口中显示表记录的命令格式如下: BROWSEFIELDSFOR 其中,FIELDS指定在浏览窗口中显示的字段,如果缺省,默认显示所有字段;FOR指定在浏览窗口中显示满足条件的记录,如果缺省,默认显示所有记录。 例如,显示学生信息表student中身高不大于170cm的学生记录,可以在命令窗口中输入下列命令: use student browse for 身高=170 命令执行结果如下图所示。,Visual FoxPro 6.0 程序设计.课件,-22-,在“浏览”窗口的最左侧有一个黑色的

14、三角箭头,称为记录指针,记录指针所指的记录称为当前记录。,显示浏览窗口后,“显示”菜单中多了“浏览”、“编辑”等菜单项,单击“显示”|“编辑”命令,可以将“浏览”窗口改为“编辑”窗口。,Visual FoxPro 6.0 程序设计.课件,-23-,(2) 工作区中显示 其命令格式: LIST|DISPLAY FIELDS FOR|WHILE TO PRINTER|TO FILE OFF 其中,LIST为连续显示命令。DISPLAY为分页显示命令。 指定操作的记录范围,可选的范围有下列4种: ALL:表示所有记录,若范围缺省,默认为ALL。 RECORD n:表示第n条记录; NEXT n: 表

15、示从当前记录开始的n条记录; REST:从当前记录到最后一条记录; FIELDS:指定在浏览窗口中显示的字段,如果缺省,默认显示所有字段。 FOR:指定在浏览窗口中显示满足条件的记录,如果缺省,默认显示所有记录。 TO PRINTER|TO FILE :指定输出结果到打印机或FILE后的文件中。 OFF:指定不显示记录号,如果缺省,默认显示记录号。,Visual FoxPro 6.0 程序设计.课件,-24-,例如,要显示学生信息表student中第3条记录的学号、姓名,可以在命令窗口中输入下列命令: use student list record 3 学号,姓名 命令执行结果如图所示。,Vi

16、sual FoxPro 6.0 程序设计.课件,-25-,3.2.2 表记录的添加,表记录的添加有三种方式:添加一条空记录、添加若干条记录和将其他表中的记录添加到当前表。记录的添加主要有两种方法:菜单方法和命令方法。 1. 菜单方式 (1) 添加一条空记录 单击“文件”|“打开”命令,或者单击常用工具栏中的“打开”按钮,打开“打开”对话框,在对话框中选择要打开的表。 单击“显示”|“浏览”命令,打开“浏览”窗口。 单击“表”|“追加新记录”命令,此时浏览窗口的记录指针将会指向最后一条记录的后面,可以通过光标定位来输入该条新增记录各字段的字段值,如下图所示。,Visual FoxPro 6.0

17、程序设计.课件,-26-,(2) 添加若干条记录 按照上述添加一条新记录的前两步骤,打开表的“浏览”窗口后,单击“显示”|“追加方式”命令,则记录指针指向表中最后一个记录后面,可以向表尾连续添加若干条记录。,Visual FoxPro 6.0 程序设计.课件,-27-,(3) 将其他表中的记录添加到当前表,在“追加来源”对话框中,可以在“类型”下拉列表框选择要添加到当前表的记录所在来源文件的文件类型;在“来源于”文本框中,可以直接输入来源文件的文件路径和名称,也可单击其后的“对话”按钮 ,在打开的“打开”对话框中选择来源文件所在的路径和名称。,按照上述添加一条新记录的前两步骤,打开表的“浏览”

18、窗口后,单击“表”|“追加记录”命令,打开“追加来源”的对话框,如下图所示。,Visual FoxPro 6.0 程序设计.课件,-28-,如果需要从来源文件中选取满足条件的记录或指定字段,则可在选择好来源文件后,在“追加来源”对话框中,单击“选项”按钮,打开如下图所示的“追加来源选项”对话框。,在该对话框中可以单击“字段”按钮,打开“字段选择器”对话框,选择要添加的字段名;也可单击“For”按钮,打开“表达式生成器”对话框,设置要满足的条件。,Visual FoxPro 6.0 程序设计.课件,-29-,2. 命令方式 添加记录前应先打开要操作的表,然后在命令窗口内输入相应的命令。 (1)

19、添加一条空记录 添加一条空记录的命令格式:APPEND BLANK (2) 添加若干条记录 添加若干条记录的命令格式:APPEND,Visual FoxPro 6.0 程序设计.课件,-30-,(3) 将其他表中的记录添加到当前表 将其他表中的记录添加到当前表的命令格式如下: APPEND FROM FIELDS FOR 例如,要将stu表中性别为男的记录追加到当前表中。可在命令窗口中输入如下命令: use student append from stu for 性别= 男 用于追加的来源表可以是Visual FoxPro中的表,也可以是Excel工作表,或其他类型的存放数据的文件。,Visu

20、al FoxPro 6.0 程序设计.课件,-31-,3. 表记录的插入 在表中指定位置添加记录,称为记录的插入。插入表记录的命令格式如下: INSERT BLANK BEFORE 其中,BLANK表示插入一条空记录,无此参数将出现记录编辑窗口,等待用户输入记录;BEFORE表示在当前记录的前面插入一条空记录,无此参数,则在当前记录的后面插入一条空记录。 Visual FoxPro提供这条命令主要是为了兼容早期版本设置,没有相应的菜单操作,且在使用时受到较多约束,因此建议添加记录还是使用前面两种方式。,Visual FoxPro 6.0 程序设计.课件,-32-,3.2.3 表记录的删除,表中

21、不需要的记录可以随时被删除。Visual FoxPro中把删除记录分为逻辑删除和物理删除两种。 1逻辑删除 逻辑删除并不真正将记录从表中彻底删除掉,而是在要删除记录前面加注一个删除标记。加注删除标记的记录仍能被操作,如显示、修改等。若不想删除时,还可撤消该记录删除标记来恢复。 逻辑删除主要有菜单方式和命令方式两种。 (1)菜单方式 单击“文件”|“打开”命令,或者单击常用工具栏中的“打开”按钮,打开“打开”对话框,在对话框中选择要打开的表。 单击“显示”|“浏览”命令,打开“浏览”窗口。,Visual FoxPro 6.0 程序设计.课件,-33-, 单击“表”|“删除记录”命令,打开“删除”

22、对话框,如下图所示,在该对话框中可以选择删除的范围、条件,确定后单击“删除”按钮,即完成逻辑删除。,在浏览窗口中,凡是被逻辑删除的记录前面都加上黑色方块的删除标记,如下图所示。,Visual FoxPro 6.0 程序设计.课件,-34-,(2)命令方式 逻辑删除的命令格式如下: DELETE FOR 其中用于指定要加删除标记的记录范围,如果命令中有for条件,缺省时默认为所有记录,如果命令中没有for条件,缺省时默认为当前记录;FOR 用于指定对满足条件的记录加删除标记。 例如,要逻辑删除学生信息表student中学号为200810280的记录。可在命令窗口中输入以下命令: use stud

23、ent delete for 学号= 200810280 list,Visual FoxPro 6.0 程序设计.课件,-35-,显示结果如图3-17所示,在主窗口工作区中,凡是被逻辑删除的记录前面都加上了删除标记“*”.,注意:可以用鼠标直接单击要删除记录前面的删除标记区域来加注删除标记,实现快速逻辑删除记录。,Visual FoxPro 6.0 程序设计.课件,-36-,2恢复删除 恢复删除是逻辑删除的逆操作,将逻辑删除记录的删除标记取消掉,恢复成正常记录。恢复删除主要有菜单方式和命令方式两种方法。 (1) 菜单方式 单击“文件”|“打开”命令,打开“打开”对话框,在对话框中选择要打开的表

24、。 单击“显示”|“浏览”命令,打开“浏览”窗口。 单击“表”|“恢复记录”命令,打开“恢复记录”对话框,如图所示,在该对话框中可以选择恢复记录的范围、条件,确定后单击“恢复记录”按钮,即完成恢复删除操作。此时再浏览表记录,会发现选定记录的删除标记已被撤销。,Visual FoxPro 6.0 程序设计.课件,-37-,(2)命令方式 恢复逻辑删除的命令格式如下: RECALL FOR 其中用于指定要撤销删除标记的记录范围,如果命令中有for条件,缺省时默认为所有记录,如果命令中没有for条件,缺省时默认为当前记录;FOR 用于指定对满足条件的记录撤销删除标记。 例如,要恢复学生信息表stud

25、ent中所有逻辑删除的记录。可在命令窗口中输入以下命令: use student recall all 命令执行后,再浏览表记录,会发现所有记录的删除标记都已被撤销。 注意:可以用鼠标直接单击要恢复记录前面的删除标记来快速恢复逻辑删除。,Visual FoxPro 6.0 程序设计.课件,-38-,3. 物理删除 物理删除是将表中所有具有删除标记的记录从表中彻底删除,无法再恢复。 恢复删除主要有两种方法:菜单方式和命令方式 (1) 菜单方式 单击“文件”|“打开”命令,打开“打开”对话框,在对话框中选择要打开的表。 单击“显示”|“浏览”命令,打开“浏览”窗口。 单击“表”|“彻底删除”命令,

26、打开删除确认对话框,确认后,表中所有带删除标记的记录会被从磁盘上彻底删除。 (2) 命令方式 物理删除的命令格式:PACK 注意:物理删除所删除的记录对象是已被加注删除标记的逻辑删除记录,因此要实施物理删除,应先实施逻辑删除;被物理删除的记录不可恢复。,Visual FoxPro 6.0 程序设计.课件,-39-,4. 直接删除表中所有记录 当表中所有记录都不需要时,可以一次性从表中直接删除所有记录,但此时表结构仍存在。 直接删除表中所有记录的命令格式:ZAP 如要实施该操作,可直接在命令窗口内输入该命令,回车后会弹出确认操作对话框,确认命令执行后,不能再恢复已被删除的记录。它相当于下列两个命

27、令的组合: delete all pack,Visual FoxPro 6.0 程序设计.课件,-40-,3.2.4 表记录的修改,可利用表记录的修改操作来修改表中某条记录或某些记录中相应字段的字段值。表记录的修改主要有两种方式:逐条修改记录内容和成批修改记录内容。 1. 逐条修改记录内容 逐条修改记录内容的操作可在浏览窗口内进行。 (1) 记录的定位 在Visual FoxPro中只能对记录指针所指的当前记录进行操作,因此在修改记录前,应首先定位要修改的记录,将其设为当前操作记录,才能进行修改。在浏览窗口的最左侧有一个黑色的三角箭头,称为记录指针,记录指针所指的记录称为当前记录,每一个打开的

28、表都有一个记录指针,用以指示当前操作的记录。移动记录指针至当前要操作的记录,称为记录的定位。,Visual FoxPro 6.0 程序设计.课件,-41-,记录的定位主要有以下3种方法: 直接用鼠标单击要定位的记录即可。 单击“表”|“转到记录”命令,打开“转到记录”的子菜单,如图所示,根据要定位记录所在的位置选择相应的命令。,Visual FoxPro 6.0 程序设计.课件,-42-,使用记录的定位命令,该命令主要有以下几种,见表。,在使用定位命令时需要注意以下几点: 定位命令经常与函数FOUND()、RECNO()、BOF()、EOF()配合使用来观察定位效果。 文件开始是指第一条记录的

29、前面而不是第一条记录;文件结尾是指最后一条记录的后面而不是最后一条记录。,Visual FoxPro 6.0 程序设计.课件,-43-,(2) 记录的修改 在“浏览”窗口中,可直接编辑修改记录内容。若要修改字符型、数值型、逻辑型、日期型或日期时间型字段中的值,可以把光标移动当前记录的相应字段中编辑修改内容; 若要修改备注型或通用型字段中的值,可在浏览窗口中双击该字段或按【CTRL+PgDn】组合键,打开该字段的编辑窗口,再编辑修改该字段的内容。,Visual FoxPro 6.0 程序设计.课件,-44-,2. 成批修改记录内容 (1) 菜单方式 单击“文件”|“打开”命令,打开“打开”对话框

30、,在对话框中选择要打开的表。 单击“显示”|“浏览”命令,打开“浏览”窗口。 单击“表”|“替换字段”命令,打开“替换字段”对话框。,在“替换字段”对话框中,可以在“字段”下拉列表框中选择要修改的字段名;在“替换为”文本框中输入要替换的表达式,或单击文本框右侧的“对话”按钮,在打开的“表达式生成器”对话框中生成所需要替换的表达式;在“替换条件”栏中可以选择替换记录的范围。设置好以后,单击“替换”按钮即可完成成批替换操作。在浏览窗口中可以看到修改后的结果。,Visual FoxPro 6.0 程序设计.课件,-45-,(2) 命令方式 成批替换记录的命令格式如下: REPLACE WITH AD

31、DITIVE , WITH ADDITIVE FOR 其中各参数的说明如下: WITH :用表达式i的值来替换字段名i的字段值。注意表达式类型和前面的字段类型应该匹配。 ADDITIVE:把表达式的值追加到备注字段的原有内容后面,而不是取代,但只用于备注字段。 :指定要修改的记录范围,如果命令中有for条件,缺省时默认为所有记录,如果命令中没有for条件,缺省时默认为当前记录。 FOR :指定对满足条件的记录作修改操作。,Visual FoxPro 6.0 程序设计.课件,-46-,3.3 表的排序和索引,3.3.1 表的排序 3.3.2 表的索引,Visual FoxPro 6.0 程序设计

32、.课件,-47-,3.3.1 表的排序,排序是将表中记录按某字段值顺序重新排列,排序后产生一个新的表文件,原表文件不会被改变,这个新文件与原来表文件大小、格式完全相同,只是记录的排列顺序不相同。格式: SORT TO ON /A|/D/C, /A|/D/C FOR|WHILE FIELDS 排序时先按字段名1排序,若有两个以上的记录字段名1的值相同,则对这些记录再按字段名2的值排序 /A|/D:分别表示升序或降序,缺省时按升序排序;/C:表示不区分字母的大小写;FIELDS指定排序后形成的新表中应包含的字段,缺省时默认包含原表所有字段。 :如果命令中有for条件,缺省时默认为所有记录,如果命令

33、中没有for条件,缺省时默认为当前记录。 FOR|WHILE :指定对满足条件的记录作排序操作。 注意:用于排序的字段称为排序关键字,只能是字符型、数值类型或日期类型,不可选用备注型或通用型字段作为排序关键字。当关键字为字符型时,按字符串的ASCII码值大小排序,汉字字符一般是按照汉字的汉语拼音进行排序。,Visual FoxPro 6.0 程序设计.课件,-48-,例如,对学生信息表student按身高从低到高排序。可在命令窗口输入以下命令: use student *.cdx)”,如图所示,然后按照路径找到索引文件所在位置,选中该索引文件,单击“确定”按钮。,Visual FoxPro 6

34、.0 程序设计.课件,-57-,(2) 命令方式 打开索引文件的命令格式如下: SET INDEX TO ADDITIVE 其中,“索引文件名列表”指定要打开的索引文件,可以同时打开多个索引文件,其中第一个索引文件将成为主控索引。如果主控索引文件是单索引文件,则表处理的记录顺序按其索引顺序进行;如果主控索引文件是复合索引文件,则默认索引项是它在创建时的第一个索引项,如果要使用其他索引项,还须具体指定。 ADDITIVE表示保留原先打开的索引文件。缺省时,默认除结构复合索引文件外,其它打开的索引文件都将被关闭。,Visual FoxPro 6.0 程序设计.课件,-58-,4. 设置主控索引 尽

35、管结构复合索引在打开表时自动打开,或者打开某个非结构复合索引文件作为主控索引,但在使用某个特定索引项进行查询或需要按某个特定索引项的顺序显示记录时,必须指定当前索引项。 设置主控索引的方法主要有菜单方式和命令方式两种。 (1) 菜单方式 单击“文件”|“打开”命令,或者单击常用工具栏中的“打开”按钮,打开“打开”对话框,在对话框中选择要打开的表。 单击“显示”|“浏览”命令,打开“浏览”窗口。 单击“表”|“属性”命令,打开如下图所示的“工作区属性”对话框。,Visual FoxPro 6.0 程序设计.课件,-59-,在对话框中,可以通过“索引顺序”下方的下拉列表框来设置当前的主控索引。单击

36、“确定”按钮后,在“浏览”窗口中的记录将按照索引指定的顺序排列。,Visual FoxPro 6.0 程序设计.课件,-60-,(2) 命令方式 设置主控索引的命令格式如下: SET ORDER TO |TAG 其中各参数的说明如下: 数值表达式:指已打开索引的序号,将该序号索引设置为主控索引。系统先为各单索引文件编号,所以单索引文件总是排在前面。 单索引文件名:将指定的单索引文件设置为主控索引文件。 TAG :将索引标识符所代表的索引项设置为主控索引。,Visual FoxPro 6.0 程序设计.课件,-61-,5. 索引文件的关闭 关闭表时,则该表所对应的索引文件都会被关闭。若不关闭表,

37、单独关闭索引文件的命令有如下两种: SET INDEX TO CLOSE INDEXS 6. 索引的删除 索引文件的删除方法主要有菜单方式和命令方式两种。 (1) 菜单方式 在“表设计器”对话框的“索引”选项卡中,选中要删除的索引,单击“删除”按钮即可删除。 (2) 命令方式 删除索引的命令格式如下: DELETE TAG ALL|, 其中,ALL表示删除索引文件中所有索引,当该索引文件的所有索引项都被删除,则该索引文件也已删除;表示删除索引文件中指定索引项。,Visual FoxPro 6.0 程序设计.课件,-62-,3.4 数据的检索和统计,3.4.1 数据的检索 3.4.2 数据的统计

38、,Visual FoxPro 6.0 程序设计.课件,-63-,3.4.1 数据的检索,数据的检索就是按照指定条件在表中查找满足条件的记录数据。有两类检索命令:顺序检索和索引检索。 1. 顺序检索 命令格式:LOCATE FOR 其中,FOR 表示所需满足的条件;指定查找的记录范围,缺省时,默认为所有记录。找到第一条满足条件的记录后,记录指针就指向该记录,否则,记录指针就指向查找范围的末尾或文件结束处。 LOCATE命令只能查找到当前表中满足条件的第一条记录,若继续往下查找满足条件的记录须用CONTINUE命令。CONTINUE命令须在LOCATE命令之后使用,否则出错。 例如,在表stude

39、nt中查找姓“王”的学生记录: use student locate for姓名=王 disp continue disp,Visual FoxPro 6.0 程序设计.课件,-64-,2. 索引检索 但在打开索引文件后,还可以使用FIND和SEEK两条命令来进行快速检索。 (1) FIND命令 格式:FIND | 该命令用于在表的主控索引中查找关键字值与或相匹配的第一条记录,若查找到,则记录指针指向第一条满足条件的记录,否则指向文件尾,在主窗口的状态条中显示“没有找到”。 在使用FIND命令时需要注意以下几点: FIND命令只能查找字符串或数值,而且表必须已按相应字段建立了主控索引。 查找的

40、字符串一般可以不用定界符括起来(,),但前后有空格的,应该要括起来。若要检索字符型内存变量,必须使用宏替换&函数。 本命令只能查找到当前表中满足条件的第一条记录,若要继续查找其他符合条件的记录,可以使用SKIP命令。,Visual FoxPro 6.0 程序设计.课件,-65-,(2) SEEK命令 格式: SEEK 该命令用于在表的主控索引中查找关键字值与相匹配的第一条记录,若查找到,则记录指针指向第一条满足条件的记录,否则指向文件尾,在主窗口的状态条中显示“没有找到”。 在使用SEEK命令时需要注意以下几点: SEEK命令可以查找字符型、数值类型、日期类型和逻辑型,但表必须已按相应字段建立

41、了主控索引,而且SEEK命令中的表达式的类型必须与建立索引的索引表达式的类型相匹配。 查找的字符串须用定界符括起来;日期型须用花括号括起来,但内存变量可以直接查找,不必使用宏替换函数。 该命令只能查找到当前表中满足条件的第一条记录,若要继续查找其他符合条件的记录,可以使用SKIP命令。,Visual FoxPro 6.0 程序设计.课件,-66-,例如,在学生信息表student中查找姓“王”的学生记录,可在命令窗口中输入以下命令: use student index on 姓名tag 姓名 &按姓名升序建立索引 set order to tag 姓名 &设置姓名索引项为主控索引 seek 王

42、 &查找姓“王”的记录 disp &在主控窗口中显示该条记录 skip &查找下一条符合条件的记录 disp,Visual FoxPro 6.0 程序设计.课件,-67-,3.4.2 数据的统计,1. 计数命令 该命令用于计算指定范围内满足条件的记录数,其格式如下: COUNT FOR|WHILE TO :指定要计算的记录范围,缺省时,默认为所有记录。 FOR|WHILE :指定对满足条件的记录计数。 TO :将记录数保存到中,便于以后引用。缺省时,直接将计数结果显示在主窗口的状态条中。 例如,统计学生信息表student中性别为男的学生数,相应的命令序列如下: use student cou

43、nt for 性别=男 命令执行后在主窗口的状态栏中能看到执行结果。 2. 求和命令 SUM FOR|WHILE TO 该命令用于对中各个字段表达式分别求和。,Visual FoxPro 6.0 程序设计.课件,-68-,3. 求平均值命令 AVERAGE FOR|WHILE TO 该命令用于对中各个字段表达式分别求平均值。 :指定要参加求平均值的记录范围,缺省时,默认为所有记录。 FOR|WHILE :指定对满足条件的记录求平均值。 TO :将求平均值的结果保存到中的相对内存变量中,便于以后引用。 例如,统计学生信息表student中所有学生的平均身高: use student averag

44、e 身高 4. 计算命令 CALCULATE FOR|WHILE TO 该命令用于对中各个字段表达式分别求计算结果。 :指定要求计算的表达式表,在表达式中至少应包含一个系统规定的用于计算的函数,常用的用于计算的函数见表3-5。,Visual FoxPro 6.0 程序设计.课件,-69-,例如,统计学生信息表student中所有学生的平均身高,相应的命令序列如下: use student calculate avg(身高),Visual FoxPro 6.0 程序设计.课件,-70-,5汇总命令 汇总命令可对数据进行分类合计,比如按学号求某个学生的总成绩等,命令格式如下: TOTAL ON O

45、N FIELDS FOR|WHILE 在按关键字排序的表中或已按相应的关键字建立索引的表中按关键字段分组,求各组指定字段值的和,并将结果存入一个新表,新表以TO后指定的文件名命名。一组关键字相同的记录在新表中产生一个记录,对于非数值型字段,只将关键字值相同的第一个记录的字段值放入该记录。 FIELDS :指定要汇总的字段,缺省时对所有数值型字段汇总。 注意:在汇总前,当前表必须按有序,即已按排序或建立相应索引,否则不能汇总。,Visual FoxPro 6.0 程序设计.课件,-71-,3.5 多表操作,3.5.1 工作区 3.5.2 多表关联,Visual FoxPro 6.0 程序设计.课

46、件,-72-,3.5.1 工作区,1. 基本概念 对表文件做任何操作之前都必须先打开该文件,实际上打开表就是把它从磁盘调入内在的某一工作区中。Visual FoxPro支持32767个工作区,编号从1到32767,一个工作区中只能打开一个表,一个表也只能在一个工作区中打开。若想同时使用多个表,就必须在多个工作区中打开多个表,但在任一时刻,只有一个工作区是当前工作区,用户只能在当前工作区中对当前打开的表进行操作。 2. 别名 前10个工作区除了可以使用110为编号外,还可分别使用AJ十个字母来表示,后者称为工作区的别名。 其实表也有别名,用USE命令打开表时,可以给表取一个别名,其命令格式如下:

47、 USE ALIAS 如果打开表时未对表取别名,系统将默认表的别名与表名相同。 工作区除了可以使用132767数字编号来标识外,还可以使用工作区内打开的表的别名来标识。 注意:不可以使用表名来标识,只能使用表的别名来标识;不同工作区中表的别名不能相同。,Visual FoxPro 6.0 程序设计.课件,-73-,3. 工作区的选择 在Visual FoxPro默认情况下,使用的是1号工作区,可以使用SELECT命令改变当前工作区,选择工作区的命令格式如下: SELECT | 在使用SELECT命令时需要注意以下几点: 用SELECT命令选择的工作区称为当前工作区,如果不知道当前的工作区号,也

48、可以用函数SELECT()来查询。 只有已打开的表才能在SELECT命令中使用其别名来选择相应的工作区。 命令“SELECT 0”表示选定当前尚未使用的最小号工作区。 命令“USE IN |”可以在指定的工作区中打开表,但不能改变当前工作区,若要改变工作区仍需使用SELECT命令。 若要引用非当前工作区中表的字段,需要在字段名前加一个前缀别名,引用格式如下:别名.字段名或别名-字段名。其中的别名一般指表的别名,也可以是工作区的别名。因为每个工作区中打开的表,系统设置各自的记录指针,用以指示当前记录,所以对某工作区进行与其他工作区无关的操作时,其他工作区打开的表的记录指针不发生变化。,Visua

49、l FoxPro 6.0 程序设计.课件,-74-,3.5.2 多表关联,若要查询多个相关表中的数据时,常采用多表关联。所谓关联,就是令不同工作区的记录指针之间建立一种临时的联动关系,使一个表的记录指针移动时另一个表的记录指针能随之移动。 1. 表之间的关系 在建立多表关联之前,应先确定表之间的关系。根据表记录之间的对应关系,可以将表之间的关系分为三种:一对一关系、一对多关系和多对多关系。 (1)一对一关系:A表中的一条记录只能对应B表中的一条记录,而B表中的一条记录也只能对应A表中的一条记录。 (2)一对多关系:A表中的一条记录可以对应B表中多条记录,但B表中的一条记录只能对应A表中的一条记

50、录。一对一关系可以看作是一对多关系的特例。有时又称B表和A表之间是多对一的关系。例例如,“学生信息表student”和“成绩表cj”之间即为一对多的关系,一个学生选修多门课程,有多门课程成绩。,Visual FoxPro 6.0 程序设计.课件,-75-,(3)多对多关系:A表中的一条记录可以对应B表中多条记录, B表中的一条记录也可以对应A表中的多条记录。由于Visual FoxPro中不处理多对多关系,通常将多对多的关系通过一个“纽带表”,转换成两个一对多的关系来实现。例例如,“学生信息表student”与“课程表course”之间的关系是多对多的关系,一个学生可以选修多门课程,一门课程可

51、供多名学生来选修。若要实现他们之间的关系,可以引入“成绩表cj”来作为纽带表。如图3-27所示,在“成绩表cj”中既有和“学生信息表student”相同的关键字“学号”,又有和“课程表course”相同的关键字“课程号”。,Visual FoxPro 6.0 程序设计.课件,-76-,Visual FoxPro 6.0 程序设计.课件,-77-,2. 关联的建立 建立关联的两个表,一个是父表,一个为子表,父表记录指针移动时,子表的记录指针将按照关联条件相应地移动。关联条件通常要求比较不同表的两个字段或表达式值是否相等,因此在建立关联前,应先为子表的字段或表达式建立索引。 方法主要有两种:菜单方

52、式和命令方式。对于建立的临时关系,只要表关闭,则临时关系不被保存。 (1) 菜单方式 可以在“数据工作期”窗口建立关联,其步骤如下: 打开需建立关联的表。 按照关联的关键字或表达式为子表建立索引并确定主控索引。 选定父表工作区为当前工作区,并与一个或多个子表建立关联。默认建立的是多对一关系,如果建立一对多关系,还要进行一对多关系的设置。 【例3-1】 建立学生信息表student和成绩表cj之间的关联,并查询学生的学号、姓名、课程号和成绩。,Visual FoxPro 6.0 程序设计.课件,-78-,(2) 命令方式 SET RELATION TO INTO | , INTO |ADDITI

53、VE 该命令是将当前工作区的表文件与或指定的工作区中打开的表文件按建立多对一关联。当前工作区中的表作为父表,|指定的工作区中的表作为子表。如果子表中没有与关键字段值相同的记录,则记录指针指向文件尾。可以同时建立一个父表与多个子表之间的多对一关联。 :表示建立关联的依据。子表应已依此建立主控索引。 |指定子表,可以用表的别名,也可用工作区的别名或工作区号;ADDITIVE表示当前表与其他工作区中的表已有的关联仍有效,缺省时,将取消当前表与其他表已有的关联。 【例3-2】 通过“学号”建立成绩表cj与学生信息表student之间的多对一关联,并查询学生的学号、姓名、课程号和成绩。,Visual F

54、oxPro 6.0 程序设计.课件,-79-,3. 关联的取消 当关联不需要时,可以用命令取消关联。 可以用命令“SET RELATION TO”取消当前表与其他表之间的所有关联,也可以用SET RELATION OFF INTO |,取消当前表与指定工作区中的表之间的关联。当关闭表文件时,该表的所有关联也将被全部取消。,Visual FoxPro 6.0 程序设计.课件,-80-,3.6 数据库的基本操作,3.6.1 数据库的创建 3.6.2 自由表与数据库表 3.6.3 向数据库中添加或移除表 3.6.4 数据词典的使用,Visual FoxPro 6.0 程序设计.课件,-81-,3.6

55、.1数据库的创建,在Visual FoxPro中,通过数据库文件将相互联系的数据库表及相关的数据库对象进行统一组织和管理。数据库文件实质上也是一种表文件,其中记录了它所包含的各种类型文件的信息。 一般先创建一个数据库,然后才创建内含于此数据库的各个表。数据库的创建方法常用的有两种:菜单方式与命令方式。 1. 菜单方式 (1)单击“文件”|“新建”命令,或者是单击工具栏中的“新建”按钮,打开“新建”对话框,按如图3-34所示,选择文件类型为“数据库”,然后单击“新建文件”按钮,打开“创建”对话框。,Visual FoxPro 6.0 程序设计.课件,-82-,图3-34 “新建”对话框,图3-3

56、5 “创建”对话框,Visual FoxPro 6.0 程序设计.课件,-83-,(2)在“创建”对话框中,选择好保存路径后,输入要保存的数据库文件的名称,如图3-35所示,默认的保存类型为“数据库”,扩展名为.dbc,然后单击“保存”按钮,打开“数据库设计器”窗口。此时Visual FoxPro系统菜单中多了“数据库”菜单项,同时在“数据库设计器”窗口中还会弹出一个用来创建各项数据库对象的“数据库设计器”工具栏,方便用户对数据库的操作。 至此,数据库文件建立完毕,与此相关的库索引文件.dcx和备注文件.dct也一同自动生成。这时新建的数据库文件已经被打开,但此时的数据库中仍是一个空的数据库,

57、没有包含其他的文件。 2.命令方式 CREATE DATABASE 指定数据库名,则会在系统默认路径下生成相应的数据库文件,如果不指定数据库名,则会弹出“创建”对话框(见图3-35),后续操作同菜单方式。使用命令建立数据库后没有打开数据库设计器,但此时数据库处于打开状态。,Visual FoxPro 6.0 程序设计.课件,-84-,3.6.2自由表与数据库表,表是关系型数据库系统中存储数据的最基本单元,对表的操作也是最基本的操作。表文件可以在数据库中创建,也可以单独创建之后再添加到数据库中,也可将数据库中的表文件移出数据库。根据表文件是否添加到数据库中,将表分成了两类:数据库表和自由表。数据

58、库表又称为库表,是属于某个数据库的表文件,而且只能属于某一个数据库;自由表是不属于任何一个数据库的表文件。在Visual FoxPro中创建表时,如果当前没有打开数据库,则创建的表是自由表,可以随时将数据库表移出数据库,成为自由表,也可以将自由表添加到数据库中,成为数据库表。 数据库表和自由表的基本结构都是二维表,处理的方法基本相同。但通常为了建立表文件之间的关联,更好的管理表文件及表文件中的数据,多数表文件都会建成库表。 注意:在建立或使用数据库中的表时,都必须先打开数据库,才能进行相应的操作。,Visual FoxPro 6.0 程序设计.课件,-85-,3.6.3 向数据库中添加表或从数

59、据库移除表,1. 向数据库中添加表 建立数据库后,就可以向数据库中添加表了,可以将自由表添加到数据库中成为数据库表。添加表主要有两种方法:菜单方式和命令方式 (1) 菜单方式 单击“文件”|“打开”命令,或者是单击工具栏中的“打开”按钮,打开“打开”对话框,在“文件类型”后的下拉列表框中选择“数据库(*.dbc)”,选择要打开的数据库文件,单击“打开”按钮,将打开该数据库,同时“数据库设计器”的窗口也将被打开。 选择“数据库”|“添加表”命令,或者单击“数据库设计器”工具栏中的“添加表”按钮,或者在“数据库设计器”的窗口中右击,在弹出的快捷菜单中选择“添加表”命令,打开“打开”对话框。 在“打开”对话框中,选择要添加到数据库中的表文件,单击“确定”按钮。如图3-36所示,所要添加的表已被添加到数据库中,成为数据库表。,Visual FoxPro 6.0 程序设计.课件,-86-,(2) 命令方式 ADD TABLE 指定表名,则将系统默认路径下相应的表文件添加到当前数据库中,如不指定表名,则弹出“添加”对话框,在对话框中选择要添加的表文件后,单击“确定”按钮即可。 注意:因为一个表同一时间内只能属于一个数据库,若想将一个数据库表移到另一数据库中,应先将该表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论