已阅读5页,还剩66页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章 数据库及表的操作,主编:赖申江,本章学习导航,通过本章学习,学生应掌握有关数据库的基本概念及其相应的操作;学会用操作和命令两种方式创建、打开和关闭数据库文件。应能利用表设计器和命令对数据表进行添加、修改、删除、查找及替换等操作。能运用“数据工作期”工具进行多表间的数据处理以及数据库表的操作。能在Visual FoxPro集成开发环境下,进行数据完整性的设置。,本章学习要点,数据库的操作 :掌握数据库的基本概念 ,掌握数据库文件的创建、打开和关闭 ,掌握数据库文件的基本编辑 。 表的操作 :掌握用“表设计器”创建新表,掌握表记录的编辑,掌握索引的使用方法 ,掌握多表的使用 。 教学课时:6课时,第4章数据库及表的操作,4.1 数据库与表操作概述 4.1.1 数据库的操作 Visual FoxPro 6.0是一个具有较强的数据处理功能的系统。它通过数据库将独立的自由表组织起来,使数据库的所有信息成为一个有机整体,从而减少冗余数据的存储,保护了数据的完整性。此外,它还具有通过添加视图扩展数据操作及扩充访问远程数据的能力。 Visual FoxPro6.0中的数据库是一个容器,它包含一个或多个数据库表、视图 、与远程数据源的连接等组成部分。 数据库中存储的是数据库表与数据库之间的链接关系、数据库表的表属性、数据库表字段的扩展属性、数据库表之间的永久关系、完整性约束的定义、存储过程等内容。,第4章数据库及表的操作,1数据库的创建 创建一个数据库时,将会产生三个文件:数据库文件,其扩展名为.dbc;数据库备注文件,扩展名为.dct;数据库索引文件,扩展名为.dcx,这三个文件是供Visual FoxPro系统管理数据库使用的,用户不能直接使用这些文件。用户可以通过以下两种方法创建数据库。 1)菜单方式 (1)执行【文件】|【新建】命令,或者单击常用工具栏下的【新建】按钮,打开【新建】对话框。 (2)在对话框中选择“数据库”单选按钮,再单击【新建文件】按钮,系统将打开“创建”对话框。 (3)在“创建”对话框中指定目标文件目录,例如d:vfp,输入数据库名,保存类型为数据库(*.dbc),单击【保存】按钮后,将建立新的数据库并显示“数据库设计器” 窗口。需要说明的是,新建立的数据库只是一个空数据库,里面没有任何数据表。,第4章数据库及表的操作,2)命令方式 命令格式:CREATE DATABASE |? 其中,“数据库文件名”为要创建的数据库名称,可以带路径;如果不带参数或使用“?”,则弹出“创建”对话框,提示用户输入要创建的数据库名。 例4-1 在D盘根目录上创建一个stsc数据库。 在命令窗口输入命令: CREATE DATABASE D:stsc 当数据库被创建后,该数据库就成为当前打开的数据库。,第4章数据库及表的操作,2数据库的打开 在Visual FoxPro中,要对数据库进行操作,必须先打开数据库。用户可以通过以下两种方法打开数据库。 1)菜单方式 (1)执行【文件】|【打开】命令,在“打开”对话框中的“文件类型”列表中选择“数据库(*.dbc)”,在“查找范围”中选择数据库文件所在的位置,选择要打开的数据库。 (2)单击【确定】命令按钮,则打开“数据库设计器”窗口,并在窗口中显示数据库中的表及关系。 若项目中已包含数据库,则打开项目后,在“项目管理器”中选择“数据”选项卡,然后选定要打开的数据库,单击【修改】命令按钮,也可以打开项目中的数据库。,第4章数据库及表的操作,2)命令方式 命令格式:OPEN DATABACE 数据库名|? 例4-2 在D:vfp目录中打开已经创建的stsc数据库。 在命令窗口输入命令: OPEN DATABACE D:stsc,第4章数据库及表的操作,3数据库的关闭 1)菜单方式 在“项目管理器”中单击【关闭】命令按钮,则关闭“数据库设计器”窗口。 2)命令方式 关闭命令格式:CLOSE ALL &关闭所有打开的数据库及表 CLOSE DATABASES &关闭当前打开的数据库及表,第4章数据库及表的操作,4.1.2 数据表的操作 表是用于组织和处理数据的最基本的单元,也是数据库应用系统中最重要的组成部分。表有两种存在状态,即数据库表和自由表。自由表是没有和任何数据库关联的表,数据库表是与某一数据库进行了关联的表。数据库表和自由表可以相互转换,当用户将一个自由表加入到某一个数据库时,自由表便成了数据库表。反之,如将数据库表从数据库中移出,数据库表便成了自由表。此外,数据库表只能属于一个数据库,如想将一个数据库中的表移到其他数据库,必须先将该数据库表释放成自由表,然后再将其加入到另一数据库中。 表创建时,将产生一个扩展名为.dbf的表文件;如果表中有备注字段时,会产生扩展名为.fpt的备注文件;若对表建立了索引,那么会产生扩展名为.cdx的索引文件。 数据库表由表结构(表头)和记录数据两部分组成。,第4章数据库及表的操作,1设计表结构 在第2章Visual FoxPro关系数据库中已对数据库表的概念及结构作了详细的介绍。数据库表是由行和列组成的二维表,表中的行称为记录,表中的列称为字段,字段个数以及字段属性决定了表的结构。 设计表结构就是确定表中字段并描述字段的特征(属性)。建立一个表文件时,首先要明确该表有哪些字段,然后为每一个字段确定名称、数据类型以及字段的宽度。若是数值型字段,还要考虑小数的位数。,第4章数据库及表的操作,(1)字段名:每个字段必须用一个名字来标识,即字段名,如学生表中的“学号”、“姓名”就是其所在字段(列)的名称。字段名以字母或汉字开头,由字母、汉字、数字和下划线组成,但是不能有空格。 (2)字段类型:字段的数据类型应与存储的信息类型相匹配。如学生表中的“姓名”字段要存入学生姓名,须先定义其字段类型为字符型(C);字段“出生日期”须定义为日期型(D);若要存放图形、图像、声音等多媒体信息时,须将该字段定义为通用型(G);若信息内容超过254个文本字符时,须定义为备注型(M)。 (3)字段宽度:字段存放数据时占用的位数。 (4)小数位数:数值型数据的小数位数。一个数值型字段的宽度整数位+小数点+小数位数。例如,要存放数字1234.56,则宽度至少应定义7位。 (5)索引:按字段的值进行排序,以便数据的快速查询。 (6)空值:指是否允许字段接受空值(NULL)。,第4章数据库及表的操作,2建立表结构 用户可以使用“表设计器”或通过命令方式建立表结构。 1)表设计器方式 用表设计器方式建立表结构的方法及步骤已在第2章案例中作过介绍,过程如下。 (1)执行【文件】|【新建】命令,或者单击常用工具栏下的【新建】按钮,打开“新建”对话框。 (2)在对话框中选择“表”单选按钮,再单击【新建文件】按钮,系统将打开“创建”对话框。 (3)在“创建”对话框中指定目标文件目录,输入数据表名,保存类型为表/DBF(*.dbf),单击【保存】按钮后,系统将打开“表设计器” 窗口。 (4)在“表设计器”窗口的字段选项卡中依此输入字段名、类型、宽度、小数位数、索引等各项内容,单击【确定】按钮,完成表结构的建立。,第4章数据库及表的操作,2)命令方式 在命令窗口中输入命令,格式为: CREATE 如果在命令中给定文件名,执行命令后直接进入“表设计器”窗口,否则系统自动打开“创建”窗口。,第4章数据库及表的操作,3修改表结构 表结构的修改也是用“表设计器”来完成的。可用“菜单”方式或用“命令”方式进入“表设计器”。 1)菜单方式 单击【文件】菜单下的【打开】命令打开表文件,在“显示”菜单中选择“表设计器”。 2)命令方式 USE MODIFY STRUCTURE 进入“表设计器”窗口后就可以对表结构进行修改。结构修改结束后,单击【确定】按钮,将出现询问“结构更改为永久性更改?”的对话框,单击【是】按钮,将修改结果存盘并关闭“表设计器”窗口。,第4章数据库及表的操作,4表的打开、关闭和浏览 表结构建立后,需要对表中的数据进行维护。常用的维护包括记录的添加、修改、删除、查看等功能操作。数据维护可以通过表浏览器或命令方式来进行。对表维护之前先要打开表文件,将表调入内存。使用结束后必须将表关闭。 表的打开、关闭和浏览有如下三种方式。 1)菜单方式 菜单方式下打开表文件的步骤如下。 (1)执行【文件】|【打开】命令,在“打开”对话框中的“文件类型”列表中选择“表(*.dbf)”,在“查找范围”中选择表文件所在的位置,选择要打开的表。例如,选择D:VFP目录中的student.dbf 。 (2)单击【确定】命令按钮,则打开选中的表。 (3)执行【显示】|【浏览】命令,Visual FoxPro将用浏览器方式显示表中记录的内容,如图4-5所示。,第4章数据库及表的操作,图4-5浏览打开的表,第4章数据库及表的操作,在浏览器中,表的内容由一系列可以滚动的行和列组成。用户可以使用滚动条显示表中不同的字段和记录,也可以用左右光标键和Tab键进行移动查看。浏览备注型或通用型字段,可在浏览窗口中双击该字段,在打开的编辑窗口中进行浏览。 浏览器列宽与行高可以改变。当鼠标位于列标头区或两行的中间时,鼠标将变成双向箭头,只要上下或左右拖动鼠标就可以改变浏览窗口中记录的列宽和行高。 在浏览窗口中可以改变列的排列顺序,即调整字段顺序。方法是用鼠标选中某列标头,将它拖动到窗口中的指定位置。 用户也可以通过拆分浏览窗口的方法,将浏览窗口分为两个区域,分别在不同区域显示同一个表,显示的方式可以不同。 在浏览表时,系统默认显示表中所有数据,当表中记录数量很大、字段很多时,可以使用数据过滤器定制所需的记录和字段。,第4章数据库及表的操作,2)“数据工作期”方式 (1)执行【窗口】|【数据工作期】命令,打开“数据工作期”窗口,如图4-9所示。 (2)在“数据工作期”窗口中单击【打开】按钮,进入“打开”对话框并显示当前默认工作目录下的数据库表,如图4-10所示。 (3)在“打开”对话框中,选择要打开的表,单击【确定】按钮,则打开选中的表。 (4)在“数据工作期”窗口中单击【浏览】按钮,系统将用图4-5所示的浏览器方式显示表记录内容。 (5)“数据工作期”窗口中的表打开后,【关闭】按钮有效。单击【关闭】按钮,可以关闭当前已打开的表文件。,第4章数据库及表的操作,3)命令方式 用命令方式打开表文件的格式为:USE 。 例4-4 用命令方式打开D盘VFP文件夹下的表文件student.dbf。 USE D:VFPstudent.dbf 用命令方式关闭表文件的格式为: 命令格式:USE & 关闭当前正在使用的表。 命令格式:CLOSE DATABASE & 关闭所有打开的数据库文件和表文件。 命令格式:CLOSE ALL & 关闭所有打开的文件。,第4章数据库及表的操作,可以用两种命令方式浏览表。 (1)BROWSE命令 格式:BROWSE FIELDSFOR 功能:在浏览窗口中显示指定的字段及满足条件的记录。 例4-5 打开并浏览表。 USE student BROWSE FIELDS 学号,姓名,入学成绩 FOR 入学成绩450 (2)LIST|DISPLAY命令 格式:LIST|DISPLAY FIELDSFOR WHILE OFFTO PRINT 功能:在主窗口的显示区域,显示满足条件的记录数据。 LIST与DISPLAY二者功能相似,区别在于缺省、时,DISPLAY只显示当前指针所指的记录,而LIST则显示全部内容。,第4章数据库及表的操作,5记录定位 将记录指针指向某记录,使它成为当前记录,称为记录定位。表在打开时,系统默认指向第一条记录。记录定位可用菜单方式和命令方式实现。 1)菜单方式 打开数据库表后,执行【表】|【转到记录】命令,弹出级联菜单,如图4-11所示。单击其中的选项,系统会自动转到相应的记录。 如果选择【记录号】,会弹出一个“转到记录”对话框,输入记录号后,单击【确定】按钮就可以转到指定的记录。 如果选择【定位】,会弹出图4-13所示的“定位记录”对话框,通过范围、条件的设定,决定指针的指向。,第4章数据库及表的操作,图4-11 “转到记录”级联菜单,第4章数据库及表的操作,2)命令方式 (1)直接定位 格式:GO|GOTO TOP|BOTTOM & 直接定位到表的第一条或最后一条记录。 格式:GO|GOTO & 直接定位,记录号为数值表达式的值。 (2)间接定位 间接定位是在当前记录的基础上,向前或向后移动记录指针。 格式:SKIP 其中指定记录指针需要移动的记录数,默认值是1。如果是正数,则记录指针向文件尾部移动;如果是负数,则记录指针向文件头部移动。 例4-6 间接定位命令的使用。 USE student & 打开表student.dbf GO 3 & 定位到第3条记录 SKIP 3 & 定位到第6条记录;指针从当前位置向下移3条记录 SKIP -3 & 定位到第3条记录;指针从当前位置向上移3条记录,第4章数据库及表的操作,(3)条件定位 格式:LOCATE FOR WHILE 功能:将记录指针定位在指定范围内、满足条件的第一条记录上。 当运行了LOCATE命令并且找到满足条件的记录后,可以使用RECNO()函数返该记录号,同时FOUNT()函数返回真;否则,FOUNT()函数返回假。 当用LOCATE命令查找到第一条符合条件的记录后,如果要继续查找,可以使用CONTINUE命令,格式为: CONTINUE 该命令可以将记录指针移到下一条符合查找条件的记录上。 例4-7 条件定位命令的使用。 USE student &打开表student.dbf LOCATE FOR 性别”男” &条件定位 DISPLAY &结果显示满足条件的第一个男生 CONTINUE DISPLAY &结果显示满足条件的第二个男生,第4章数据库及表的操作,6添加记录 建立表结构结束后,单击【确定】按钮,系统将表结构保存后可以直接输入数据。在日常数据维护中,用户还可以向表中继续追加数据记录。 1)菜单方式 (1)连续添加多条记录 打开数据库表后,选择其【浏览】或【编辑】显示状态。执行【显示】|【追加方式】命令,系统自动在表的末尾追加空白记录,可连续输入多条新记录。 (2)追加单条记录 在浏览显示状态下,执行【表】|【追加新记录】命令,系统自动在表的末尾追加一个空白记录,可在这个空白记录处输入数据。 (3)从文件添加 从文件添加的方法用于将两个表合并为一个表。 在浏览显示状态下,执行【表】|【追加记录】命令,系统会显示“追加来源”对话框。在“来源于”文本框中输入要添加的表文件名或单击右边【】按钮打开文件名浏览窗口,从文件列表中选定文件。,第4章数据库及表的操作,2)命令方式 (1) INSERT命令 格式:INSERT & 在编辑窗口中插入多条记录 格式:INSERT BLANK & 插入一条空白记录,不进入编辑窗口 格式:INSERT BEFORE & 在当前记录之前插入多条记录 格式4: INSERT BLANK & 在当前记录之前插入一条空白记录 格式5: INSERT INTO (字段名,字段名,) VALUES (表达式,表达式) & 在表尾追加一条新记录并将数据填入记录中 例4-8 INSERT命令命令的使用。 INSERT INTO student(学号,姓名,院系) VALUES (“0303704”,“赵明”, “机械”) (2) APPEND命令 格式1:APPEND BLANK &在表尾追加一条空记录或以交互方式输入多条记录 格式2:APPEND FROM FIELDSFOR &在当前表末尾追加一批来自于另一文件的记录,第4章数据库及表的操作,7删除记录 记录的删除是通过逻辑删除和物理删除两步完成的。 逻辑删除:仅对记录作删除标记,记录还保存在表文件中,如果需要,逻辑删除的记录可以恢复。 物理删除:是指将已作了删除标记的记录从表文件中去掉,记录一旦物理删除则不可再恢复。,第4章数据库及表的操作,1)菜单方式 (1)打开表,在浏览方式下,每条记录的左边第二列有一个删除标记。用鼠标单击某个记录的删除标记,则该标记显示为黑色,表示对该记录作了删除标记(逻辑删除)。再次单击黑色标记则恢复己作逻辑删除的记录,也可用【表】菜单下的【切换删除标记】来恢复逻辑删除的记录。 (2)也可以执行【表】|【删除记录】命令,打开“删除”对话框,输入删除范围和删除条件,则对满足条件的多条记录作删除标记。 (3)若执行【表】|【彻底删除】命令,则将作过逻辑删除标记的记录从文件中彻底删除。 (4)若执行【表】|【恢复记录】命令,则打开“恢复记录”对话框,输入范围和条件,则在指定范围内对满足条件的多条记录进行恢复。,第4章数据库及表的操作,2)命令方式 (1)DELETE命令 格式:DELETE 范围 FOR 功能:逻辑删除指定范围内满足条件的记录。若不指定范围和条件,则对当前记录作逻辑删除。 例4-9 DELETE命令命令的使用。 USE student DELETE NEXT 5 FOR 性别= “女” (2)RECALL命令 格式:RECALL 范围 FOR 功能:恢复指定范围内满足条件的记录。,第4章数据库及表的操作,(3)物理删除 格式1:PACK 功能:将所有作了逻辑删除标记的记录从数据表中彻底删除。 格式2:ZAP 功能:物理删除表中所有的记录,相当于执行DELETE ALL和PACK两条命令。 注:该命令须谨慎使用。,第4章数据库及表的操作,8编辑记录 1)逐个修改记录值 (1)界面操作 在浏览和编辑窗口中直接进行修改,修改完成后,单击关闭按钮或按Ctrl+W进行保存。 备注型字段在浏览窗口中显示为memo或Memo,Memo表示该字段已经输入内容,若要显示或编辑备注字段,双击该字段进入备注字段的编辑窗口即可编辑备注字段的内容。编辑完成后按Ctrl+W键或单击【表】菜单的【关闭】按钮,系统备注字段的内容保存在扩展名为.fpt的备注文件中。当打开表文件时,备注文件随表文件一起打开。 通用型字段在浏览窗口中显示为gem或Gem,双击该字段可显示或编辑通用型字段的内容,若该字段没有值,可用【编辑】菜单的【插入对象】命令插入对象,编辑结束后Ctrl+W键返回到浏览窗口。 (2) EDIT命令 打开表后,用EDIT命令直接打开编辑状态,进行数据修改。,第4章数据库及表的操作,2)成批修改记录值 (1)界面操作 执行【表】|【字段替换】命令,打开“字段替换”对话框,可以一次性成批处理记录中某字段值。 2)命令方式 成批替换可以使用REPLACE命令。 格式:REPLACE 范围 FOR WITH ADDI, WITH ADDI 功能:用表达式1的值替换字段名1的值,用表达式2的值替换字段名2的值,依此类推。 说明:范围省略时仅对当前记录进行替换。ADDI用于备注型字段,表示把新的备注内容加到备注字段原内容之后。,第4章数据库及表的操作,例4-10 REPLACE命令的使用。 USE student REPLACE 院系 WITH “中文” FOR 性别=“女” & 把所有女同学的院系换成了“中文” REPLACE 入学成绩 WITH 入学成绩+10 FOR 院系=“建筑” & 把所有建筑系学生的入学成绩加上10分,第4章数据库及表的操作,9表的统计 在Visiual FoxPro中有时候需要对记录数进行统计,或者对记录中的某些数值字段进行计算,这些操作主要通过命令方式来完成。 (1)统计记录个数命令COUNT 格式:COUNT 范围 FOR TO 功能:统计指定范围内满足条件的记录个数。 说明:TO 子句的功能是将统计结果保存到内存变量中。 例4-11 统计男同学的人数。 USE student COUNT FOR 性别=”男” TO manrs,第4章数据库及表的操作,(2)求和命令SUM 格式:SUM 数值型字段名表 范围 FOR TO 功能:对数值型字段纵向求和。 说明:若不指定字段,则对所有的数值型字段进行求和。TO中内存变量的个数应与指定的数值型字段个数一致。 例4-12 求学号为“03035001”学生的总成绩。 USE score SUM 成绩 FOR 学号=”03035001” TO zcj,第4章数据库及表的操作,(3)求平均值命令AVERAGE 格式:AVERAGE 数值型字段名表 范围 FOR TO 功能:对数值型字段求平均值。 例4-13 求学号为“03035001” 学生的平均成绩。 USE score AVERAGE 成绩 FOR 学号=”03035001” TO pjcj,第4章数据库及表的操作,(4)计算命令CALCULATE 格式:CALCULATE 范围 FOR TO 功能:分别对中的表达式进行计算。 说明:各表达式之间用逗号分隔,表达式表中包含的常用函数如下: AVG(字段名):求该字段的平均值; CNT():求表中的记录个数; MAX(字段名):求指定字段的最大值; MIN(字段名):求指定字段的最小值; SUM(字段名):对指定字段求和。 例4-14 求Score表中选修课程数及成绩的平均分。 CALCULATE cnt(),avg(成绩),第4章数据库及表的操作,4.1.3 索引与排序 表文件中记录的物理存储顺序是根据输入记录的顺序排列的,在显示记录时,是按物理存储的顺序输出的。但是在实际应用中,有时需要按某个关键字段的值重新排列记录顺序,因此要用到索引和排序二种方法,实现记录的排序。 索引是根据某个关键字段的值进行逻辑排序而不对表中记录的物理顺序进行重新排列。建立索引后产生的索引文件仅包含原始表的记录号及关键字段值,是一组指向原始表记录的指针。建立索引后,增加、删除或修改原始表的记录时索引文件会自动更新。 排序是按某个关键字段值对表的记录顺序重新进行物理排列。排序结果产生一个新表,与原始表没有联系,即原始表中数据进行修改后,排序文件不会自动更新。 由此可知,索引和排序都是对现有表内的记录进行排序操作,但是索引操作优于排序操作,所以在实际应用中,一般都用索引。,第4章数据库及表的操作,1索引的基本概念 (1)索引关键字 索引关键字又称索引表达式,是用于建立索引的一个字段或者多个字段的组合,是记录排序的依据,可用作索引的字段有数值型、字符型、日期型、逻辑型。 (2)索引名 一个表可以设置多个索引,用索引名来区分各个索引,即每个索引取一个名字。对于单个字段的索引,一般可用字段名作为索引名。对于多个字段组合的索引,必须单独给出一个索引名。 (3)升序和降序 索引的关键字段的值按升序或降序逻辑排列,字符按ASCII码值排列,汉字按其机内码的大小顺序排列,逻辑值假值(.F.)小,真值(.T.)大。,第4章数据库及表的操作,(4)索引类型 索引除具有建立记录逻辑顺序的作用外,还能控制是否允许相同的索引关键字值在不同记录中重复出现,或者是否允许在永久关系中建立参照完整性。按照其功能分为四种索引类型。 主索引:不允许索引关键字中出现重复值或NULL值。一个表只能有一个主索引,且仅用于在数据库中的表。如果在任何已含有重复数据的字段中指定主索引,Visual FoxPro将产生错误信息。 候选索引:索引字段也不允许出现NULL值或重复值,可作为主索引的候选。一个表可以创建多个候选索引。 唯一索引:索引字段允许有重复值,但在索引序列中只保存第一次出现的索引值,即只能找到同一个索引关键值第一次出现的记录。 普通索引:对表中所有记录按关键字段值进行逻辑排序,不要求索引值具有唯一性。,第4章数据库及表的操作,(5)索引文件 根据建立索引的方法及排列方式,分为两种索引文件。一种是单一索引文件,另一种是复合索引文件。 单一索引文件:只包含一种索引,即一种排列方式,索引文件扩展名为.idx。单一索引文件不会随着表的打开而自动打开。 复合索引文件:在复合索引文件中包含有多种排列方式,索引文件主名与表文件主名相同,扩展名为.cdx,在表中可以按多个字段建立多个索引,一个索引是一种排列方式,多个索引保存在同一个索引文件中。复合索引文件随表文件打开一同打开。,第4章数据库及表的操作,2索引文件的创建 复合索引文件可以在表设计器中建立,也可以使用命令来建立,而单一索引文件只能用命令建立。 1)用表设计器设置索引 例4-15 为学生表student.dbf创建索引。要求以“学号”作为唯一索引关键字,“姓名”、“院系”、“入学成绩”分别为各个普通索引的关键字。 (1)打开学生表student.dbf。 (2)执行【显示】|【表设计器】命令,打开“表设计器”窗口,如图4-19所示。,第4章数据库及表的操作,图4-19 在表设计器中建立索引,第4章数据库及表的操作,(3)选择字段“学号”,单击“索引”下拉列表框,选择升序或降序。用同样方法为其他字段设置排序方式。 (4)在“表设计器”中选择“索引”选项卡,如图4-20所示。“索引名”列是索引标识,可以由用户指定,不指定则默认与索引字段名相同。 “类型”可设置索引类型,此处“学号”选择“唯一索引”,其余为“普通索引”。 “表达式”列指定用作索引的关键字,可在该列中输入一个字段或多个字段组合,也可用表达式列右边的按钮打开表达式生成器对话框,在对话框中生成索引表达式。 “筛选”列可设索引条件。 (5)创建完成后,单击【确定】按钮,在弹出的对话框中选择【是】,即完成索引文件的创建。,第4章数据库及表的操作,图4-20 表设计器“索引”选项卡,第4章数据库及表的操作,2)用命令创建索引文件 格式: INDEX ON TO |TAG OF ASCENDING|DESCENDINGUNIQUE|CANDIDATEADDITIVE 功能:按指定的索引关键字建立索引。 说明: TO :建立单一索引文件; TAG :指定索引名,若省略则取字段名; OF :指定复合索引文件名,若省略,则复合索引文件名与表文件名相同; ASCENDING|DESCENDING:指定逻辑顺序是升序或者降序,省略时取升序; UNIQUE:指定建立唯一索引; CANDIDATE:指定建立候选索引; ADDITIVE:建立本索引时不关闭原先打开的索引文件。 例4-16 用命令方式创建单一索引文件。 Use student INDEX ON 学号 UNIQUE TO 学号,第4章数据库及表的操作,3索引的使用 )索引文件的打开 一个表文件可以建立多个索引文件。一个复合索引文件可以包含多个索引,但是对于一个表文件而言,在同一时刻只有一个索引文件的一个索引标识起作用。起作用的索引文件称为主控索引文件,起作用的索引标识称为主控索引。要按某个索引关键字排列记录顺序或利用索引快速查询,首先要打开表文件及表的索引文件,同时还要指定主控索引文件和主控索引标识。,第4章数据库及表的操作,(1)打开单一索引文件 格式:USE INDEX 功能:打开表的同时打开相应的索引文件,并把打开的第一个索引文件作为主控索引文件。 格式:SET INDEX TO 功能:打开当前表的索引文件,并把打开的第一个索引文件作为主控索引文件。 (2)打开复合索引文件 打开表文件时自动打开复合索引文件。,第4章数据库及表的操作,(3)主控索引设置 设置主控索引就是指定输出时按某个索引关键字段值排列记录的顺序。 窗口操作方法如下: 执行【表】|【属性】命令,打开“工作区属性”窗口,如图4-21所示,在“索引顺序”列表框中选定其中一个索引字段,若选定“学号”,单击【确定】按钮,这时表将按照指定的索引顺序显示数据记录。 对于复合索引必须用SET ORDER指定主控索引,命令操作方法如下: 格式:SET ORDER TOTAG复合索引名 ASCENDING|DESCENDING 功能:设置复合索引标识作为主控索引。,第4章数据库及表的操作,图4-21 主控索引设置,第4章数据库及表的操作,2)索引文件的关闭 当表被关闭时,将自动关闭索引文件。在表不被关闭的情况下关闭索引文件的命令方法如下: 格式:SET INDEX TO 功能:关闭当前表的所有单一索引文件 格式:SET ORDER TO 功能:取消主控索引文件及主控索引。 3)删除索引文件 格式1:DELETE 功能:在单一索引文件关闭情况下将其删除。 格式2:DELETE TAG ALL|, 功能:删除打开的复合索引文件中的指定索引标识。 如果要删除复合索引文件,必须先删除该文件中所包含的所有索引标识。删除索引文件用删除一般文件的方法进行,即用DELETE FILE 命令。,第4章数据库及表的操作,4)索引查询 在索引文件中可以使用FIND、SEEK查找命令来定位记录指针。 (1)字符查找命令FIND 格式:FIND | 功能:查找索引关键字与所给字符串相匹配的第一个记录。若找到,指针指向该记录,否则指向表尾部,给出“没找到”信息。 说明: FIND只能查找字符串或常数,而且表必须按字段索引; 查找的字符串无需加引号; 查询匹配的数据,只要查找值与索引关键字左起连续字符相同就符合条件; 该命令只能找出符合条件的第一个记录,若要继续查找其他符合条件的记录,可使用SKIP命令; 使用该命令时,若是找到了符合条件的首记录,则置函数FOUND()的值为.T.,否则置.F.。,第4章数据库及表的操作,(2)表达式查找命令SEEK 格式:SEEK 功能:查找索引关键字与表达式值相匹配的第一个记录,并将记录指针定位在该记录。 说明 该命令可查找字符、数值、日期和逻辑型关键字; 只能找出符合条件的第一个记录; 使用该命令时,若是找到了符合条件的首记录,则置函数FOUND()的值为.T.,否则置.F.。 例4-18 FIND与SEEK命令的用法。 USE student SET ORDER TO 姓名 FIND 李 FOUND() &返回值.T. SEEK “李平” FOUND() &返回值.F.,第4章数据库及表的操作,4表的排序 排序是按某个关键字段值对表的记录顺序重新进行物理排列,结果产生一个新表。排序命令的格式如下: 格式:SORT TO ON /A|/D/C,/A|/D/C 范围FOR FIELDS 功能:将当前表的记录按指定的顺序进行重新排列。 说明: TO :指定排序后产生的新文件; ON :指出记录顺序按该字段值排列; 排序参数: 参数/A|/D:按升序或降序排列记录; 参数/C:不区分大小写; 范围FOR :指定排序后产生的新文件所包含的记录,若省略,则包含所有记录。 FIELDS:指定排序后产生的新文件所包含的字段,若省略,则包含所有字段。 例4-19 SORT命令的用法。 SORT TO stud1 ON 姓名,入学成绩 &按姓名升序排列,结果保存在stud1.dbf文件中。,第4章数据库及表的操作,4.1.4 多表的操作 1工作区的基本概念 前面介绍的表的操作都是针对单个表,打开一个表的同时就关闭了前面打开的另外一个表,在实际应用中,要用多个表来组织数据,需要访问多个表。例如要了解某个同学的所在院系及选课情况,要同时访问的表有student.dbf和score.dbf。使用某个表文件时首先要打开它,打开表是把表读到内存的一个区域中。用来存放一个表的内存区域称为工作区。 ()工作区号 Visual FoxPro提供了32767个工作区,编号是从1到32767。当前打开表时如果不指定工作区号,则默认为号工作区。 如果要同时打开多个表,应该在不同的工作区打开各个表,否则前面打开的会自动关闭。 (2)工作区别名 工作区除了编号外,还可以有别名。对于10号工作区,系统默认用AJ十个字母来表示其别名,其余可由用户来定义。 其它别名的定义是在打开表文件时赋予的,它既是打开的表文件的别名,也是该表所在工作区的别名。 表文件没有定义别名时,该表文件的主名就是其别名,也是其所在工作区的别名。,第4章数据库及表的操作,2工作区的使用 )工作区的建立 建立指定的工作区,可以通过SELECT命令指定工作区的编号或别名来实现。 格式:SELECT 功能:选择指定的工作区为当前工作区。 例4-20 用SELECT命令建立工作区。 SELECT 1 &指定当前工作区为1号工作区 USE student &在1号工作区打开student表 SELECT 2 &指定当前工作区为2号工作区 USE score ALIAS sc &在2号工作区打开score表,别名为“sc”,第4章数据库及表的操作,)非当前工作区字段的引用 在当前工作区中使用另外工作区中的数据,可以通过别名的方式来引用。 格式:. 格式:-. 例4-21 非当前工作区字段的引用。 SELECT 1 &指定1号工作区为当前工作区 USE score ALIAS sc &在当前工作区打开表,并为其指定别名“sc” SELECT 2 &指定当前工作区为号工作区 USE student &在当前工作区打开student表 LIST B.学号,B.姓名,B.院系,sc-课程编号,sc-成绩,第4章数据库及表的操作,3使用多表 在实际的应用系统中,常使用多个数据表来组织和处理数据,而这些表之间有一定的联系。 1)表间的关系 使用多表时,需要建立相应的关系,实现各表之间的联系。Visual FoxPro中表之间的关系根据其作用及建立方法可以分为临时关系和永久关系。 (1)临时关系 临时关系是指在使用时建立的、使表间记录指针联动的关系。临时关系可以根据需要随时建立,当系统退出时,这种关系也随之消失。如果下次还要使用,再重新建立。 (2)永久关系 永久关系是为了维护表之间的数据完整性而引入的。通常使用某个关键字段建立两个表之间的永久关系,在表间建立一种参照完整性规则,以保证数据的一致性和完整性,同时在查询和视图中起连接作用。永久关系是在数据库设计器中建立的,并将这种关系保存在数据库的数据字典中。,第4章数据库及表的操作,2)表的关联 (1)关联的概念 所谓关联,就是在两个表之间建立一种联系,使一个表的记录指针移动时,与该表相关联的另一个表的记录指针也能随之移动。 建立关联的两个表,总有一个是父表,一个为子表。在涉及这两个表数据的命令时,父表记录指针的移动,会使子表记录指针自动移到满足关联条件的记录上。关联条件要求建立关联的两个表必须包含具有相同属性的字段,子表必须事先以该字段为关键字建立索引,并设置其为主控索引。 (2)多对一关系 按照通过不同表的两个字段属性值相等来实现关联的原则,定义后的父表中有多条记录对应子表中一条记录,这种关系称为多对一关系。如指定成绩表score为父表,课程表course为子表,则父表中的“课程编号”与子表的“课程编号”就是多对一关系。 (3)一对多关系 按照上述原则定义后,父表的一条记录对应于子表的多条记录,这种关系称为一对多关系。如指定学生表student为父表,课程表course为子表,则父表的“学号”与子表的“学号”就是一对多关系。,第4章数据库及表的操作,3)建立关联 数据库表之间建立关联是建立永久关系,即当系统退出时,这种关系仍然存在。建立永久关系的表必须是数据库表,关系建立后将保存在数据库文件中。 数据库表之间建立关联的方法及步骤已在第2章案例中作过介绍。,第4章数据库及表的操作,4数据的完整性 对于永久关系的相关表,在更新、插入或删除记录时如果只能对其中部分数据起作用,就会影响数据的完整性。例如学生课程表中课程编号发生了改变,成绩表中的课程编号也应作相应改变,这种表和表之间数据的完整性称为参照完整性。在Visual FoxPro中,可以利用“参照完整性生成器”来设置表间的参照完整性。,第4章数据库及表的操作,4.1.5 数据库表的特殊操作 数据库表与自由表相比,具有一些自由表所没有的属性,如主关键字、触发器、默认值、有效性规则、表关系等,因而也涉及到一些特殊的操作。 1数据库表的字段的显示属性设置 字段的显示属性包括显示格式、输入掩码、标题及注释。 2字段有效性规则 指设置字段的默认值和输入数据时必须满足的条件及不满足条件时所显示的提示信息。可在文本框中直接键入数据,也可以点击生成器按钮,利用生成器生成 。 3记录有效性 记录有效性规则用于检查同一记录中不同字段之间的逻辑关系。在“表设计器”的“表”选项卡中可以设置记录有效性 。,第4章数据库及表的操作,4.2 用命令方式建立“学生-成绩-课程”数据库案例 案例说明 本案例要求参考第2章案例中介绍的方法,结合使用数据库及表的基本操作命令,设计图2-12 所示的“学生-成绩-课程”数据库Stsc。该数据库包括3张表,分别为:学生表student、成绩表score、课程表course。要求用命令方式,为各表添加记录,并建立各表之间的联系。,第4章数据库及表的操作,4.2.1 操作步骤 (1)设置默认目录 在命令窗口输入并执行如下命令,建立新的工作目录VFP1。 SET DEFA TO D:VFP1 (2)建立数据库 用命令方式创建数据库stsc。 CREATE DATABASE stsc.dbc (3)建立学生表 用命令方式创建学生表student。 执行CREATE student.dbf 命令,打开“表设计器”窗口。然后在“表设计器”窗口的字段选项卡中依此输入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安防系统工程施工合同
- 酱菜加工厂农产品购销合同
- 工程造价咨询事务所有限公司基本管理制度(同名19341)
- 四川省成都市2024年七年级上学期期中数学试卷(A卷)【附答案】
- 广西南宁市2024年七年级上学期期中数学试卷【附答案】
- 中考物理复习专项类型1科学思维题组1课件
- 2023学年大连市八年级语文上学期随堂10月检测卷附答案解析
- 4.2+土壤与植被-土壤++课件中图中华地图版+必修第一册+高中地理
- 工程项目收尾阶段的管理
- 09光学经典实验专项突破
- 建设用地增减挂钩拆旧区土地复垦项目竣工资料
- 八年级语文上册仿写练习
- BS EN 10222-5-2000用于压力目的的钢锻件—第5部分:马口铁钢奥氏体钢和奥氏体-铁素体不锈钢
- 最简单地访问OPC服务器方法
- 预制砼方桩监理实施细则
- 报考北京体育大学攻读硕士学位研究生登记表81
- 外科微创技术(课堂PPT)
- 中英文报价单
- 基于单片机的路灯稳压控制系统方案
- 中国对外开放的历史进程
- 3NB-350泥浆泵说明书资料
评论
0/150
提交评论