第四章数据库与表的基本操作数据库与表的基本操作数据库的基本操作表的基本操作表的索引数据完整性多表操作例题精解数据库的基本操作一、数据库基本概念1、数据库数据库是存储表、视图、表间联系等对象的“容器”。“表”是数据库中最基本的数据对象。2、数据库的有关文件建立VFP数据库一般生成3个文件:数据库文件(.dbc),数据库备注文件(.dct)和数据库索引文件(.dcx)。下一页返回3、自由表与数据库表不属于数据库的表称为自由表,添加到数据库中的表称为数据库表,二者不同之处在于数据库表具有数据完整性约束。二、建立数据库建立数据库的一般步骤是先定义了一个空的数据库,然后向数据库添加表和其他对象,并建立表间关系。数据库的基本操作上一页下一页返回1、在“项目管理器”中建立数据库“项目管理器”窗口→“数据库”选项→“新建”按钮→“新建数据库”对话框→“新建数据库按钮”→“创建”对话框→输入数据库名称→“保存”按钮→“数据库设计器”窗口2、使用“新建”对话框建立数据库“新建”按钮→“新建”对话框→“数据库”选项→“新建文件”按钮→“创建”对话框→输入数据库名称→“保存”按钮→“数据库设计器”窗口数据库的基本操作上一页下一页返回3、使用命令建立数据库CREATEDATABASE[数据库名]注意:在使用“新建”对话框或者CREATEDATABASE命令建立数据库时,若“项目管理器”已经打开,则所建立的数据库自动包含于当前项目中。三、打开数据库1、在“项目管理器”中打开数据库“项目管理器”窗口→选定要打开的数据库→“修改”按钮→“数据库设计器”窗口数据库的基本操作上一页下一页返回2、使用“打开”对话框打开数据库“打开”按钮→“打开”对话框→在“文件类型”列表框中选择“数据库”→输入或选择要打开的数据库名称→“确定”按钮→“数据库设计器”窗口3、使用命令打开数据库OPENDATABASE[数据库名|?][EXCLUSIVE|SHARED][NOUPDATE]注意:使用“项目管理器”或“打开”对话框打开数据库,同时也打开了“数据库设计器”窗口;而使用命令打开数据库,不显示“数据库设计器”窗口。数据库的基本操作上一页下一页返回四、设置当前数据库VFP允许同一时刻打开多个数据库,但只有一个数据库是当前数据库。设置当前数据库的两种方法如下:1、在工具栏的数据库下拉列表中,单击要设置为当前数据库的数据库名称。2、在命令窗口中键入:SETDATABASETO[数据库名]五、修改数据库1、数据库中的表以及相关对象的建立、修改和删除等操作皆在“数据库设计器”中进行。2、使用命令修改数据库数据库的基本操作上一页下一页返回MODIFYDATABASE[数据库名|?][NOWAIT][NOEDIT]六、删除数据库1、若数据库属于某个项目文件,可以在“项目管理器”中将其删除。2、“移去”是删除项目对数据库的包含关系,而没有从磁盘中物理删除数据库。3、“删除”是磁盘中物理删除数据库。七、向数据库添加表1、右击“数据库设计器”窗口→“数据库”快捷菜单→“添加表”命令……2、自由表添加到数据库后,就成为数据库表。数据库的基本操作上一页下一页返回八、移去或删除数据库表1、右击要移去或删除的数据库表→“数据库”快捷菜单→“移去表”命令……2、若选择“移去”,则表与数据库脱离包含关系,成为自由表,但没有被物理删除;若选择“删除”,则从磁盘上物理删除表文件。3、数据库表移出数据库后,就成为自由表。数据库的基本操作上一页下一页返回表的基本操作一、创建数据表1、创建表的步骤①创建表结构,即定义表的字段。②输入表的数据记录。若在“项目管理器”或“数据库设计器”中创建表,或者在数据库打开的状态下创建表,那么所创建的表是数据库表,而不是自由表。2、创建表结构①在“表设计器”中创建表结构。②创建表结构就是定义每一个字段的字段名、类型、宽度以及小数位。上一页下一页返回二、打开和关闭表1、要先打开表,才能对表进行操作。2、通常使用“打开”对话框或命令“USE[表名]”来打开表文件。3、VFP默认在第1工作区打开表文件,一个工作区只能打开一个表文件。4、可使用“数据工作期”窗口或USE命令关闭表文件。三、修改表结构1、以独占的形式打开要修改的表文件。2、在“表设计器”中修改表结构,其方法与创建表结构相同。数据库的基本操作上一页下一页返回表的基本操作四、浏览与显示表记录1、在“浏览”窗口中,不但可以查看表的记录数据,还可以修改和删除记录。2、“浏览”窗口有“编辑”和“浏览”两种显示方式,两种显示方式是等价的,用户可以使用“显示”菜单中的“编辑”和“浏览”命令进行切换,还可以将“浏览”窗口拆分为“编辑”显示方式和“浏览”显示方式两个子窗口。3、使用LIST或DISPLAY命令可将表记录显示于VFP主窗口,但只能查看,而不能修改表的记录数据。上一页下一页返回五、记录指针定位1、记录指针VFP在表中设置一个记录指针,记录指针指向的记录为当前记录。对表的操作通常是对当前记录操作。2、记录指针定位记录指针定位就是将指针移到某条记录,使该记录成为当前记录。3、记录指针定位的方法①在“浏览”窗口中,直接使用鼠标点击记录指针标记。②执行“表”菜单中的“转到记录”命令。表的基本操作上一页下一页返回③使用绝对定位命令:GO[TO]TOP|BOTTOM|数值表达式④使用相对定位命令:SKIP[数值表达式]⑤使用条件定位命令:LOCATE[范围][FOR|WHILE条件]⑥使用索引检索命令:SEEK表达式或者FIND字符串|常数LOCATE,SEEK和FIND都是检索命令,其本质是将记录指针移到目标记录。六、修改记录1、使用“浏览”窗口修改记录数据①以独占的形式打开要修改的表文件。表的基本操作上一页下一页返回②在“浏览”窗口中直接修改记录数据。2、使用替换命令修改记录数据命令格式:REPLACE字段名1WITH表达式1[ADDITIVE][,字段名2WITH表达式2[ADDITIVE]…][范围][FOR|WHILE条件]说明:若缺省范围和条件子句,则默认当前记录。七、追加记录1、使用菜单中的命令追加记录表的基本操作上一页下一页返回①在“浏览”窗口中打开表文件。②若执行“表”菜单中的“追加新记录”命令,则每次操作只能追加一条记录。③若执行“显示”菜单中的“追加方式”命令,则可以连续追加多条记录。2、使用命令追加记录命令格式:APPEND[BLANK]说明:若缺省BLANK,则打开记录编辑窗口,从键盘输入要追加的记录数据;若使用BLANK选项,则直接在表尾追加一条空记录,而不打开记录编辑窗口。表的基本操作上一页下一页返回八、插入记录命令格式:INSERT[BLANK][BEFORE]说明:若缺省BLANK,则打开记录编辑窗口,从键盘输入要插入的记录数据;若选用BLANK,则插入一条空记录。若缺省BEFORE,则新记录插在当前记录之后;若选用BEFORE,则新记录插在当前记录之前。九、删除记录删除表记录分为两步:先逻辑删除,然后物理删除。逻辑删除只是在记录旁作删除标记,必要时还可以撤消删除标记恢复记录;物理删除是表文件中删除有删除标记的记录。表的基本操作上一页下一页返回表的索引一、索引的基本概念表中记录输入的前后顺序称为记录的物理顺序,以记录号标识。索引是根据表中的某些字段或表达式的值,建立一个按逻辑顺序排列记录的索引文件。索引不改变表中记录的物理顺序,而是另外建立一个基于索引表达式值的记录号列表。索引可以加快查找的速度;此外,如果要建立表间联系,则必须先对表间联系的关联字段建立索引。上一页下一页返回二、索引的类型VFP提供了四种类型的索引:主索引、候选索引、普通索引和惟一索引。三、索引文件的类型索引文件是关于索引的存储,VFP的索引文件有复合索引文件和独立索引文件两种基本类型。只有表文件和索引文件都打开时,表数据的更新才会反映到索引文件,从而保证表与索引文件的匹配。表的索引上一页下一页返回四、建立索引1、建立结构化复合索引文件(.CDX)①在“表设计器”中创建索引②使用VFP命令创建普通索引命令格式:INDEXON索引关键字TAG索引标记[ASCENDING|DESCENDING]③使用SQL命令创建索引命令格式:ALTERTABLE表名ADDPRIMARYKEY|UNIQUE索引关键字[TAG索引标识名]表的索引上一页下一页返回2、建立独立索引文件(.IDX)命令格式:INDEXON索引表达式TO独立索引文件五、删除索引1、删除结构化复合索引文件(.CDX)2、删除独立索引文件(.IDX)六、使用索引1、打开索引表打开时,结构化复合索引文件自动打开;而独立索引文件不会随着表自动打开。如果要使用独立索引文件,必须先用命令打开。表的索引上一页下一页返回2、设置主控索引①设置结构化复合索引文件的主控索引②设置独立索引文件的主控索引七、索引应用举例八、数据检索索引目的是建立表间联系和加快数据检索。数据检索的本质是将记录指针定位到目标记录,并没有显示记录数据的内容。找到目标记录后,还要使用DISP命令显示目标记录的内容。常用的数据检索命令有:SEEK、FIND和LOCATE。表的索引上一页下一页返回数据完整性一、实体完整性与主关键字1、实体完整性的概念实体完整性是指表中记录的唯一性。一个表中可能不仅有一个字段能惟一地确定一条记录,这些字段称作候选关键字,从中选出一个作为主关键字。VFP通过主关键字或候选关键字实现实体完整性。2、实体完整性的实现在“表设计器”的“表”选项卡的“记录有效性”选项组的“规则”框中,输入对主关键字或候选关键字的数据有效性检查规则,例如,输入:!EMPTY(学上一页下一页返回号),表示作为主关键字或候选关键字的“学号”字段的值不能为空。二、域完整性与约束规则1、域完整性的概念域是指字段的取值范围。域完整性是指字段取值的合理性。建立表结构时,定义了字段的类型和宽度,以限制字段的类型和取值范围,但这还不能保证字段取值的合理性。例如,定义“成绩”字段为数值型,宽度为3,若在“成绩”字段中输入“-45”,显然是不合理的。所以,需要进一步设置域完整性,才能保证字段取值的合理性。数据完整性上一页下一页返回2、域完整性的实现域完整性通过设置字段有效性规则来实现。在“表设计器”的“字段”选项卡的“字段有效性”选项组的“规则”框中,输入字段值有效性检查规则,例如,输入:成绩=0.AND.成绩=100。三、表间联系与参照完整性1、表间联系①表间关联的分类:永久联系和临时关联数据完整性上一页下一页返回②创建表间永久联系创建表间永久联系的步骤是:先建立两个表的联系字段的索引,然后在“数据库设计器”窗口中,用鼠标把一个表的索引拖放到另一个表的索引上,两表之间就出现了一条关系连线,从而建立了表间永久联系。2、参照完整性①参照完整性的概念参照完整性用于控制数据库表之间记录的一致性。例如,数据库中包含“学生”表和数据完整性上一页下一页返回“成绩”表。若在“成绩”表中插入一条记录,则可能插入不存在的学生的成绩。②参照完整性的实现在“数据库设计器”窗口中,建立表间永久联系。执行“数据库”菜单中的“清理数据库”命令,物理删除数据库各个表中所有带有删除标记的记录。执行“数据库”菜单中的“编辑参照完整性”命令,打开“编辑参照完整性生成器”对话框。在此对话框的“更新规则”、“删除规则”和“插入规则”选项卡中,分别设置参数据完整性上一页下一页返回照完整性的规则:“级联”、“限制”或“忽略”。设置参照完整性之后,就不能随心所欲地修改数据库表的数据,此时对表的编辑操作要受到参照完整性的约束。数据完整性上一页下一页返回多表操作一、工作区基本概念1、VFP最多允许在内存中开辟32767个工作区。2、每一个工作区只能打开一个表文件。3、系统默认在第1工作区打开表文件。第1工作区又称为主工作区。二、工作区的区号与别名1、区号分别为1~32767,区号0为最小空闲工作区。上一页