第四章VisualFoxPro数据库及其操作2本章要点4.1VisualFoxPro数据库及其建立4.2建立数据库表4.3表的基本操作4.4索引4.5数据完整性4.6自由表4.7多个表的同时使用4.8排序本章小结34.1VisualFoxPro数据库及其建立4.1.1基本概念数据库是数据库管理系统的核心,通过一组系统文件将相互联系的数据库表及其相关的数据库对象统一组织和管理。在VisualFoxPro中,数据库是一个包容器(简称容器)数据库包含:数据库表、视图、表之间的关系……4VisualFoxPro中数据库文件的扩展名为.dbc,与数据库文件同时建立的文件还有数据库备注文件(.dct)和数据库索引文件(.dcx)。把表放入数据库中可以减少数据的冗余,保护数据的完整性,使得对数据的管理更加方便和有效54.1.2创建项目项目是文件、数据、文档和VFP对象的集合。利用“项目管理器”可以很方便地组织和管理项目中的各类数据和对象用户在开发一个应用系统时,通常都是先从创建项目开始的查询(.QPR)项目(.PJX)文档数据代码类其他自由表(.DBF)数据库(.DBC)库表(.DBF)备注(.FTP)索引(.IDX)61.建立项目文件⑴菜单:选择“文件/新建”菜单命令,或按工具栏“新建”按钮,在“新建”对话框中选择“项目”项⑵命令:CREATEPROJECT[项目文件名]例如:分别用两种方式创建项目1和2。72.打开项目文件⑴菜单:选择“文件/打开”菜单命令,或按工具栏的“打开”按钮,在“打开”对话框中选择项目文件(*.PJX)⑵命令:MODIFYPROJECT[项目文件名]例如:分别用两种方式打开项目1和2。81.在项目管理器中建立数据库打开已建立的项目文件——出现项目管理器窗口——选择“数据”标签的“数据库”——单击“新建”按钮。例如:在项目1中创建学生管理数据库。2.菜单方式“文件”——“新建”——新建对话框——选择“数据库”单选按钮——单击“新建文件”按钮……例如:创建财务管理数据库。系统自动打开数据库文件,并且将数据库设计器也自动打开。4.1.3建立数据库93.建立数据库的命令方式【格式】CREATEDATABASE[数据库文件名|?]【功能】建立一个新的扩展名为.DBC的数据库文件并打开此数据库。【说明】数据库文件名指定生成的数据库文件,若省略扩展名,则默认为.DBC,同时也自动建立相关联的数据库备注文件.DCT,关联的索引文件.DCX。10如果未指定数据库文件名或用“?”代替数据库名,VisualFoxPro系统会弹出创建对话框,以便用户选择数据库建立的路径和输入数据库名。保存后该数据库文件被建立,并且自动以独占方式打开该数据库。(独占、共享、只读)显示当前数据库的信息:displaydatabase打开数据库设计器的命令:modifydatabase111.在项目管理器打开数据库打开已建立的项目文件,出现项目管理器窗口,选择“数据”标签,选择要打开的数据库名,然后双击。2.菜单方式①“文件”——“打开”——出现打开对话框。②选择数据库文件所在的文件夹,将文件类型选择为“数据库(.dbc)”——选择所要打开的库文件名——单击“确定”按钮。4.1.4使用(打开)数据库123.打开数据库的命令方式【格式】OPENDATABASE[数据库文件名|?][EXCLUSIVE|SHARED][NOUPDATE]【功能】将磁盘上一个扩展名为.DBC的指定数据库文件打开。【说明】①打开一个数据库文件,同时数据库的备注文件.DCT与索引文件.DCX也一起被打开。②数据库打开后,在常用工具栏中可以看见当前正在使用的数据库名,同时当数据库设计器为当前窗口时,系统菜单上出现“数据库”菜单项。③EXCLUSIVE——以独占方式打开数据库;SHARED——以共享方式打开数据库;NOUPDATE——以只读方式打开数据库131.从项目管理器打开数据库设计器打开已建立的项目文件,出现项目管理器窗口,选择“数据”标签,选择要打开的数据库名,然后单击“修改”按钮。2.菜单方式①“文件”——“打开”——出现打开对话框。②选择数据库文件所在的文件夹,将文件类型选择为“数据库(.dbc)”——选择所要打开的库文件名——单击“确定”按钮。4.1.5修改数据库143.打开数据库设计器的命令方式【格式】MODIFYDATABASE[数据库文件名|?][NOWAIT][NOEDIT]【功能】打开指定的数据库设计器。【说明】NOWAIT——该选项只在程序中使用。其作用是:在数据库设计器打开后,程序继续执行;若不选该项,则打开数据库设计器后应用程序会暂停,直到数据库设计器关闭。NOEDIT——禁止对数据库进行修改151.从项目管理器中删除数据库打开已建立的项目文件——出现项目管理器窗口——单击“数据”标签——选择要删除的“数据库”——单击“移去”按钮。“移去”——仅将数据库从项目中移去;“删除”——将从磁盘上删除数据库。被删除的数据库中的表成为自由表。4.1.6删除数据库162.删除数据库的命令方式【格式】DELETEDATABASE数据库文件名|?[DELETEDTABLES][RECYCLE]【功能】从磁盘上删除一个扩展名为.DBC的数据库文件。【说明】①被删除的数据库不能处于打开状态。②[DELETEDTABLES]若选择,则在删除数据库文件的同时删除该库所包含的表;若不选,则被删除的数据库中的表成为自由表。③[RECYCLE]若选择,则将删除数据库文件送回收站④如果用“?”代替数据库文件名,将显示打开对话框,用户可从打开对话框中选择要从磁盘上删除的数据库的名字。17数据库文件操作完成后,或暂时不用时,必须将其关闭,以确保数据的安全性。1.利用项目管理器关闭数据库打开已建立的项目文件——“关闭”按钮。2.关闭数据库的命令方式【格式】CLOSE[ALL|DATABASE]【功能】关闭当前打开的数据库。【说明】①ALL用于关闭所有对象。如数据库、表、索引、项目管理器等。②DATABASE关闭当前数据库和数据库表;如果当前没有打开的数据库,则关闭所有打开的自由表、所有工作区内所有索引和格式文件。4.1.7数据库的关闭18第1节小结1、建立数据库CREATEDATABASE[数据库文件名|?]2、打开数据库OPENDATABASE[数据库文件名|?][EXCLUSIVE|SHARED][NOUPDATE]3、修改数据库MODIFYDATABASE[数据库文件名|?]4、删除数据库DELETEDATABASE数据库文件名|?5、数据库的关闭CLOSEDATABASE或CLOSEALL19第1节作业1、在D:盘指定文件夹(你自己的姓名文件夹)中建立一个项目文件“学生成绩管理.pjx”2、在该项目文件中分别用菜单方式和命令方式建立二个数据库文件STUDENT.DBC和TEACHER.DBC。4、关闭所有数据库。5、删除数据库文件TEACHER.DBC。20表有二种,一种是数据库表,另一种是自由表。如果建表时数据库是打开的,则建立的表为当前数据库表,否则,建立自由表。表结构:描述了数据存放形式以及存贮的顺序,确定了表的字段;表表记录:是表所要保存的数据主体,数据由记录组成,字段是构成记录的基本单元。建立一个表文件第一步就是建立表结构,然后再输入表记录。4.2建立数据库表21建立表的方法:1.用项目管理器新建表2.菜单方式“文件”——“新建”3.命令方式【格式】CREATE[表文件名|?]【功能】建立一个新的、扩展名为.DBF的表文件。【说明】①表文件名指定生成的表文件名,若缺省扩展名,则默认为.DBF。②如果使用“?”或未指定表文件名,则弹出创建对话框,以便用户输入表名。CTRL+W或CTRL+END存盘4.2.1在数据库中建立表22建立学生成绩表xscj.dbf(学号c/6、姓名c/8、国贸n/5/1、会计n/5/1、计算机n/5/1、英语n/5/1、总分n/6/1、平均分n/5/1)将自由表添加到数据库中:ADDTABLE表文件名23表设计器中的基本内容说明:1、字段名:自由表中的字段名长度为1—10个字符;库中表的字段名长度为:1—128个字符2、字段类型、宽度和小数位数字符型——C,其宽度为:0~254个字符货币型——Y数值型——N,最大长度(数据位数)20位浮点型——F双精度型———B整型——I(-32768~32767)日期型——D,其长度固定为8位。日期时间型——T,其长度固定为8位。24逻辑型——L,其长度固定为1位。备注型——M,字段长度固定为4位备注型(Memo)数据是表示、存放较多字符的数据类型。可以把它看成是字符型数据的特殊形式,用字母M表示。备注型数据没有数据长度限制,仅受限于磁盘空间。字段长度固定为4位,实际数据存放在与表文件同名的备注文件(.FPT)中,长度根据数据的内容而定。通用型——G,字段长度固定为4位通用型(General)数据是存储OLE(对象链接嵌入)对象的数据类型,用字母G表示。通用型数据中的OLE对象可以是电子表格、文档、图形图片等。其长度固定为4位,实际数据长度仅受限于磁盘空间。二进制字符型二进制备注型253、空值NULLNULL——表示是否允许字段为空值。注意:空值与空字符串(空白)、数值0具有不同的意义;空值就是缺值或还没有确定值。如:价格字段,0表示免费;而NULL则表示价格还没确定作为关键字的字段是不允许为空值的。264、字段有效性组框后面介绍5、显示组框可以定义字段显示的格式、输入的掩码和字段的标题【格式】:实质上是一个输出掩码,它决定了字段在表单、浏览窗口等界面中的显示风格;【输入掩码】:是字段的一种属性,用以限制或控制用户输入的格式。【标题】:用于字段显示时的标题6、字段注释便于维护274.2.2修改表结构表结构的修改包括:增加、删除字段;修改字段名、类型、宽度;建立、修改、删除索引;建立、修改、删除有效性规则。格式:MODIFYSTRUCTURE表设计器对话框中包含:“字段”、“索引”、“表”三个选项卡。1)“字段”选项卡:适用于建立表结构。2)“索引”选项卡:对表的索引进行操作。3)“表”选项卡:对表的记录属性进行描述,控制记录数据。284.2.3表的打开表文件建好后,以文件的形式保存在磁盘上,在进行各种操作之前,首先必须打开表。打开表的过程实质上就是将表从磁盘调入内存,这样就可以对表中的数据进行各种操作。系统在任何时刻都只能对内存中的表进行访问。(1)用项目管理器打开表在项目管理器中选中需要打开的表,选择“浏览”或“修改”都能直接打开表且进行浏览或修改,关闭浏览或修改窗口后,该表仍处于打开状态。(2)用菜单方式打开表29(3)命令方式【格式】USE[盘符][路径]表文件名【功能】打开指定磁盘的指定路径下的表和相关的索引文件。【说明】①盘符和路径:指定表文件所在的驱动器及路径,若省略盘符和路径,则打开当前盘、当前路径下的表文件。②表文件名:指定打开指定数据库中的表文件。③如果表文件中含有通用型、备注型字段,同名的.FPT备注文件也同时打开。例如:打开在D盘VFP子目录中xscj.DBF表。USED:\VFP\xscj304.2.4表的关闭表文件操作完成后,或暂时不用时,必须将其关闭,保存到外存中以确保数据的安全性。关闭表就是将表文件从内存保存到磁盘上。(1)打开另一个表文件如果工作区中已打开有表文件,打开另一表文件时,系统将自动将先前打开的表文件关闭。(2)使用不带任何选项的USE命令【格式】USE【功能】关闭当前已打开的表文件。(3)使用CLEAR命令【格式】CLEARALL【功能】关闭所有工作区中已打开的表文件、索引文件、格式文件及备注文件等,同时释放所有的内存变量。并选择工作区1为当前工作区。31(4)使用CLOSE命令【格式1】CLOSEALL【功能】关闭各种类型文件,并选择工作区