1 / 54

本 章 内 容

第四章 数据库与表的基本操作. 本 章 内 容. §4.1  数据库的基本操作 §4.2  表的基本操作 §4.3  表的索引 §4.4  数据完整性 §4.5 多表操作. §4.1  数据库的基本操作. VFP 数据库是存储表、视图、表间联系等对象的“容器”。“表”是数据库中最基本的数据对象。 建立 VFP 数据库一般生成 3 个文件: 数据库文件( .dbc ) ,数据库备注文件( .dct )和数据库索引文件( .dcx )。

indivar-sam
Télécharger la présentation

本 章 内 容

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第四章 数据库与表的基本操作 本 章 内 容 §4.1 数据库的基本操作 §4.2 表的基本操作 §4.3 表的索引 §4.4 数据完整性 §4.5 多表操作

  2. §4.1 数据库的基本操作 VFP数据库是存储表、视图、表间联系等对象的“容器”。“表”是数据库中最基本的数据对象。 建立VFP数据库一般生成3个文件:数据库文件(.dbc),数据库备注文件(.dct)和数据库索引文件(.dcx)。 建立数据库的一般步骤:建立一个数据库,并打开“数据库设计器”。刚建的数据库是一个空的数据库,接着向数据库添加表和其他对象,并建立表间联系。 不属于数据库的表称为自由表,添加到数据库中的表称为数据库表,二者不同之处在于数据库表增加了数据完整性约束。

  3. §4.1.1 创建数据库 建立数据库常用的方法有以下3种: 1.在“项目管理器”中建立数据库 (1)打开某个项目,例如打开“职工管理”项目。 (2)在“项目管理器”中,选择“数据库”选项,然后单击“新建”按钮,打开“新建数据库”对话框,单击其中的“新建数据库”按钮,打开“创建”对话框,如图4-1所示。 图4-1 “创建”对话框

  4. (4)单击“保存”按钮,即在当前项目中建立了一个“职工业绩.dbc”的数据库文件。 此时屏幕上会显示一个空的“数据库设计器”窗口,同时还激活了“数据库设计器”工具栏,如图4-2所示。“数据库设计器”是创建、修改和管理数据库的工具。 图4-2 “数据库设计器”窗口

  5. 2.使用“新建”对话框建立数据库 (1)单击工具栏中的“新建”按钮,打开“新建”对话框,如图4-3所示。 (2)在“文件类型”选项组中,选择“数据库”选项,单击“新建文件”按钮,打开“创建”对话框。接下去的操作步骤与方法1相同。 图4-3 “新建”对话框

  6. 3.使用命令建立数据库 在命令窗口中键入: CREATE DATABASE [数据库名] 说明:使用命令建立数据库,不打开“数据库设计器”,但刚建的数据库是打开的。 注意: 在使用“新建”对话框或者CREATE DATABASE命令建立数据库时,若要将所建立的数据库包含于某个项目中,则需要将数据库“添加”到该项目中。

  7. §4.1.2 修改数据库 1.打开数据库 要使用数据库或修改数据库,例如,在数据库中添加表,都要先打开数据库。 打开数据库的常用方法有以下3种: (1)在“项目管理器”中打开数据库 1)在“项目管理器”中打开“职工管理.pjx”项目,选择“职工业绩.dbc”数据库。 2)单击“修改”按钮,打开“数据库设计器”窗口,同时激活“数据库设计器”工具栏,如图4-2所示。 (2)使用“打开”对话框打开数据库 1)单击工具栏中的“打开”按钮,或选择“文件”菜单中的“打开”命令,弹出“打开”对话框,如图4-4所示。

  8. 图4-4 “打开”对话框 2)在“文件类型”选项组中,选择“数据库”;在“文件名”文本框中,输入或选择要打开的数据库名称;勾选“独占”复选框,以此方式打开的数据库可修改。 3)单击“确定”按钮,即打开“数据库设计器”窗口和工具栏。

  9. (3)使用命令打开数据库 1)打开数据库 命令格式:OPEN DATABASE [数据库名|?] [EXCLUSIVE|SHARED] [NOUPDATE] 说明:使用该命令打开数据库,不显示“数据库设计器”窗口和“数据库设计器”工具栏。 2)修改数据库 命令格式:MODIFY DATABASE [数据库名|?] [NOWAIT] [NOEDIT] 说明: ①该命令打开数据库,同时显示“数据库设计器”窗口。 ②NOWAIT:该选项在交互方式的命令窗口中无效,只在程序中使用。其作用是“数据库设计器”打开后,程序不停顿而继续执行。

  10. 2.设置当前数据库 同一时刻VFP可以打开多个数据库,但只有一个数据库是当前数据库。 (1)使用工具栏中的数据库下拉列表设置当前数据库 在工具栏的数据库下拉列表中,单击某数据库的名称,该数据库即成为当前数据库,如图4-5所示。 图4-5 数据库下拉列表 (2)使用命令设置当前数据库 在命令窗口中键入:SET DATABASE TO [数据库名]

  11. 3.向数据库添加表 (1)在“数据库设计器”窗口中打开要操作的数据库。 (2)鼠标右击“数据库设计器”窗口,弹出“数据库”快捷菜单。选择其中的“添加表”命令,弹出“打开”对话框;或者,单击“数据库设计器”工具栏中“添加表”按钮,弹出“打开”对话框,如图4-7所示。 图4-7 “打开”对话框

  12. (3)在“打开”对话框中,选择要添加的表文件,如选定“Zgjk.dbf”表,然后单击“确定”按钮,所选定的表即添加到“数据库设计器”窗口中。 (4)重复以上的操作,将前面所建的与职工业绩相关的表(职工简况表Zgjk.dbf、工资表Gz.dbf、销售表Xs.dbf、商品表Sp.dbf)都添加到“数据库设计器”窗口中,如图4-8所示。 图4-8 添加表文件后的“数据库设计器”

  13. 4.创建数据库表 鼠标单击“数据库设计器”工具栏中“新建表”按钮,弹出“新建表”对话框。接下去的操作是创建数据库表,其方法与创建自由表相似,如何创建表将在下一节的内容中介绍。 值得强调的是:在“数据库设计器”中创建的表是数据库表,而不是自由表,且自动地被包含在该数据库中。

  14. 5.移去或删除数据库表 VFP中有两种表:数据库表(属于数据库)和自由表(不属于数据库)。数据库表可以从数据库中移出去而成为自由表;反之,自由表也可以移入数据库而成为数据库表。 移去或删除数据库表的操作步骤如下: (1)在“数据库设计器”窗口中,选定要移去的表。 (2)单击“数据库设计器”工具栏中“移去表”按钮,弹出提示对话框。 (3)若选择“移去”,则表与数据库脱离包含关系,而成为自由表,但没有被物理删除;若选择“删除”,则从磁盘上物理删除该表。

  15. §4.2 表的基本操作 §4.2.1 表的设计 1.表的设计 (1)设计表就是在使用VFP创建表之前的规划工作。 (2)表的设计包括以下内容: 1)设计表的结构。 2)设计表的数据记录。 (3)设计表的方法一般用表格表示。 2.表结构的设计 设计表的结构就是设计表的字段,即确定表的每一个字段的属性,字段属性包括字段名、类型、宽度和小数位4个参数。

  16. 职工简况表(Zgjk.dbf)的结构设计如下表所示。

  17. 3.表记录的设计 职工简况表(Zgjk.dbf)数据记录的设计如下表所示。

  18. §4.2.2 创建表结构 创建表分为两个步骤:第一步是创建表结构,即定义表的字段;第二步是向表中输入数据记录。 VFP提供两种创建表的方法,一种是使用“表向导”,另一种是使用“表设计器”。用“表设计器”创建表的操作步骤如下: 1.打开“表设计器”  打开“表设计器”有如下的方法: (1)打开“项目管理器”窗口,选择“表”选项,单击“新建”按钮,打开“新建表”对话框,单击“新建表”按钮,打开“创建”对话框,输入表名,然后单击“保存”按钮,打开“表设计器”。 (2)单击“新建”按钮,打开“新建表”对话框,选择“表”选项,单击“新建文件”按钮,打开“创建”对话框,输入表名,然后单击“保存”按钮,打开“表设计器”。 (3)在“命令”窗口中,键入CREATE并回车。

  19. 2.定义表结构 (1)在项目中打开表“表设计器” 1)打开项目文件“职工管理.pjx”,在“项目管理器”中,选择“自由表” 。 2)单击“新建”按钮,弹出“新建表”对话框,单击其中的“新建表”按钮,打开“创建”对话框。 3)在“保存在”文本框中,选择保存表的文件夹;在“输入表名”文本框中,输入表的名称:Zgjk。 4)单击“保存”按钮,即在“职工管理”项目中创建了一个“Zgjk.dbf”表,并打开表“表设计器” 。 (2)输入表结构 按照所定义的Zgjk.dbf表的结构,在表设计器中依次输入各字段的字段名、类型、宽度和小数位的属性值 ,如图4-13所示。

  20. 图4-13 “表设计器”的“字段”选项卡 说明:建立数据库表和自由表的“表设计器”界面是不同的。建立数据库表时,“表设计器”有“显示”、“字段有效性”和“匹配字段类型到类”选项组,而建立自由表则没有这些选项组。

  21. (3)保存表结构 所有的字段属性设定完后,单击“确定”按钮,即弹出提示框,询问“现在输入数据记录吗?”。若打算以后再输入记录,则单击“否”按钮,关闭表设计器;若要立即输入数据记录,则单击“是”按钮,打开输入表记录的窗口。 不论回答“是”还是回答“否”,表结构都建立完毕,表文件已经存在。

  22. §4.2.3 输入表数据记录 1.在创建表时输入记录 (1)“编辑”和“浏览”方式输入记录 当表结构定义完毕,VFP询问“现在输入数据记录吗?”。如果回答“是”,则直接进入表的“记录编辑”窗口。“记录编辑”窗口有“编辑”和“浏览”两种显示方式,VFP默认“编辑”方式,如图4-14所示。在此窗口中,用户可以逐条记录地输入数据。 图4-14 “记录编辑”窗口“编辑”显示方式

  23. 若选择“显示”菜单中的“浏览”命令,则“记录编辑”窗口切换为“浏览”显示方式,如图4-15所示。“浏览”显示方式更符合大多数用户的使用习惯。 图4-15 “记录编辑”窗口“浏览”显示方式

  24. (2)输入备注(M)型字段的数据 1)把光标移到备注型字段memo上。 2)双击鼠标或者按Ctrl+PgDn键,打开备注型字段编辑窗口,输入备注的内容,如图4-17所示。 3)备注内容输入完毕,单击“关闭”按钮,返回“记录编辑”窗口,此时备注型字段标志的第一个字母变为大写Memo。 图4-17 备注型字段编辑窗口

  25. (3)输入通用(G)型字段的数据 1)把光标移到通用型字段的gen上。 2)双击鼠标或者按Ctrl+PgDn键,打开通用型字段编辑窗口。 3)选择“编辑”菜单中的“插入对象”命令,打开“插入对象”对话框,并选中“由文件创建”单选按钮,如图4-18所示。 图4-18 “插入对象”对话框

  26. 4)在“由文件创建”文本框中,直接输入图像文件的路径及文件名,或者单击“浏览”按钮,打开“浏览”对话框选择所需要的图片,然后单击“确定”按钮,返回“插入对象”对话框。4)在“由文件创建”文本框中,直接输入图像文件的路径及文件名,或者单击“浏览”按钮,打开“浏览”对话框选择所需要的图片,然后单击“确定”按钮,返回“插入对象”对话框。 5)在“插入对象”对话框中,单击“确定”按钮,返回通用型字段编辑窗口,所选的图片显示于通用型字段的编辑窗口。 6)单击“关闭”按钮,返回“记录编辑”窗口,此时通用型字段的标志变为首字母为大写的Gen。 (4)保存表记录 所有的记录输入后,单击“记录编辑”窗口的“关闭”按钮。 说明:表文件的扩展名为.dbf,若表结构中包含备注(M)型或通用(G)型的字段,则自动产生同名的表的备注文件(.fpt),将备注型和通用型字段的内容存放在备注文件(.fpt)中。表文件(.dbf)中备注型和通用型字段的宽度为4B,是用于存放链接指针,指针指向同名的备注文件(.fpt)。

  27. 2.追加记录  若要对只有结构的空表或者记录不完整的表追加记录,可按以下步骤操作。 (1)打开表文件 1)使用“打开”对话框打开表文件  单击工具栏中的“打开”按钮,弹出“打开”对话框。在“文件类型”列表框中选择“表(*.dbf)”;在当前文件夹的表文件名列表框中,选定要打开的表文件;勾选“独占”复选框;单击“确定”按钮,即打开表文件。 2)使用命令打开表文件  打开表文件命令格式为:USE <表文件名>  说明:若在命令动词USE后面不指定表文件名,则关闭当前工作区的表文件。

  28. (2)打开“浏览”窗口 表文件在内存中打开后,若要查看表的记录内容,则要打开“浏览”窗口。打开“浏览”窗口的方法是:执行“显示”菜单中的“浏览”命令;或者在命令窗口中键入:BROWSE。 (3)追加记录 1)若选择“表”菜单中的“追加新记录”命令,则每次操作只能追加一条记录。 2)若选择“显示”菜单中的“追加方式”命令,则可以连续追加多条记录。(相当于执行APPEND命令) (4)保存记录  记录输入后,单击“浏览”窗口的“关闭”按钮。  职工管理需要多个表,工资表(Gz.dbf)、销售表(Xs.dbf)和商品表(Sp.dbf)的结构和数据记录内容,如图4-21、图4-22、图4-23、图4-24、图4-25和图4-26所示。可用以上介绍的方法建立这些表。

  29. §4.2.4 修改表结构  表结构的创建和修改都是在“表设计器”中进行,表结构的修改的操作步骤如下。 (1)以独占的方式打开要修改的表文件。 (2)选择“显示”菜单中的“表设计器”命令,打开“表设计器”对话框。 (3)在“表设计器”中修改结构,表结构的修改与创建的数据编辑方法相同。修改完毕,单击“确定”按钮,则弹出提示框。 (4)单击“是”按钮。

  30. §4.2.5 修改表记录  在“浏览”窗口中,既可以查看表的记录,又可以修改表记录的数据。所以修改表记录的便捷方法是在“浏览”窗口中进行,具体操作步骤如下: (1)以独占的方式打开要修改的表文件。 (2)选择“显示”菜单中的“编辑”或“浏览”命 令,打开记录“浏览”窗口。 (3)在“浏览”窗口中修改记录数据。 (4)修改完毕,单击“关闭”按钮。

  31. §4.2.6 表记录的定位 1.记录指针 VFP在表中设置一个记录指针,记录指针指向的记录称为当前记录。对表的操作通常是对当前记录操作。 2.表记录的定位 表记录的定位就是移动记录指针,以确定当前记录。 (1)使用菜单中的命令定位记录  操作步骤如下: 1)打开表文件。 2)选择“显示”菜单中的 “浏览”命令,打开记录“浏览”窗口。 3)选择“表”菜单中的“转到记录”命令,弹出“转到记录”命令的子菜单。 4)在“转到记录”的子菜单中选择“记录号”命令,打开“转到记录”对话框。输入记录号,然后单击“确定”按钮,记录指针即指向指定的记录。

  32. (2)在“浏览”窗口中定位记录 1)打开表文件。 2)选择“显示”菜单中的“浏览”命令,打开记录“浏览”窗口。 3)在“浏览”窗口中,左端第一列的小方块为记录“定位标记”。鼠标单击“定位标记”,记录指针即指向指定的记录,如图4-31所示。 图4-31 在“浏览”窗口中直接定位记录

  33. §4.2.7 删除表记录  在VFP中,删除表记录分为两步:先逻辑删除,然后物理删除。逻辑删除只是在记录旁作删除标记,必要时还可以撤消删除标记恢复记录;物理删除是从表文件中删除表中记录。 1.逻辑删除记录 (1)在浏览窗口中,单击要删除的记录左端第二列小方块。 (2)选定要删除的记录,然后选择“表”菜单中的“切换删除标记”命令。 (3)选定要删除的记录,然后按快捷键Ctrl+T。  被逻辑删除的记录的左侧出现“删除标记”,如图4-32所示。 图4-32 逻辑删除记录

  34. 2.恢复被逻辑删除记录  恢复被逻辑删除记录有如下几种方法: (1)在浏览窗口中,单击“删除标记”(“删除标记”是反复开关)。 (2)选定要恢复的记录,然后选择“表”菜单中的“切换删除标记”命令。 (3)选定要恢复的记录,然后按快捷键Ctrl+T。 3.物理删除记录  如果要将有逻辑删除标记的记录物理删除,可执行“表”菜单中的“彻底删除”命令;或键入命令:PACK

  35. §4.2.8 表的操作命令 1.VFP命令的结构 VFP命令由命令动词、语句体和注释三个部分组成。例如,显示表记录的命令为: LIST [范围] [表达式表] [FIELDS <字段名表>] [FOR|WHILE <条件>] [OFF] [TO PRINT|<文件>] &&显示表记录 (1)命令动词  命令动词LIST表示执行什么操作,即表示“做什么?” (2)语句体  语句体(命令动词之后的内容)由若干个短语(又称为子句)组成,表示操作的对象以及对操作的限制,即表示“怎么做”。 (3)注释  注释(&&符号之后的内容)是命令的非执行部分,它不是指挥计算机完成某个操作,而是写给用户看的提示文字。

  36. 2.短语的具体含义 (1)范围子句([范围])  范围子句用于限制参加操作的记录(行),具体内容及其意义如下: 1)ALL 对全部记录操作 2)NEXT <n> 对当前及以下共n个记录操作 3)RECORD <n> 对第n号记录操作 4)REST 对当前到最后一条记录操作 注意:当命令中缺省范围短语时,不同的命令有不同的默认值。修改类的命令,通常默认当前一条记录;统计类的命令,通常默认ALL。

  37. (2)字段子句([ FIELDS <字段名表> ])  字段子句用于指定参加操作的字段,即限制参加操作的列。字段名之间用逗号分隔,构成字段名表。 (3)条件子句([FOR | WHILE <条件>]) 1)FOR <条件> 对所有满足条件的记录操作。(遇假绕过) 2)WHILE <条件> 遇到不满足条件的记录即停止操作。(遇假即停) (4)输出子句(TO <设备名>|<文件名>|<内存变量名>)  输出子句用于指定命令执行结果的输出去向。默认输出到VFP主窗口。 (5)OFF子句  选用OFF子句时,不显示记录号。

  38. 3.命令中符号的约定 (1)< > 表示其中内容为必选项。 (2)[ ] 表示其中内容为任选项。 (3) | 表示或者 (4)… 表示有限次重复 4.命令书写的规则 (1)每条命令以命令动词开始,短语的顺序可任意,可用分号作为续行号,命令行以回车键结束。 (2)命令动词与短语以及短语与短语之间至少用一个空格隔开。 (3)命令中的字符皆为半角,字母大小写等效。 (4)大多数命令动词与命令关键字只需键入前4个字符。

  39. 5.创建表文件的命令 格式:CREATE [表文件名] 功能:创建表文件。 6.打开表文件的命令 格式:USE <表文件名> [ IN 区号|别名] [ ALIAS 别名] 功能:在指定的区打开表文件,并为表文件指定一个别名。 【例4-2】USE Zgjk IN 2 ALIAS Zg 说明: (1)若不指明区号,默认在当前工作区打开表文件。 (2)表文件刚打开时,指针指向第1记录。

  40. 7.关闭表文件的命令 格式:USE 功能:关闭当前工作区中的表文件。 8.追加记录的命令 格式:APPEND [ BLANK ] 功能:在表尾添加记录。 说明: (1)事先打开表文件是对表记录进行增加、删除和修改等编辑操作的前提。 (2)执行APPEND命令:出现记录编辑窗口,等待用户由键盘输入追加的记录数据。 (3)执行APPEND BLANK命令:直接在表尾追加一条空记录。

  41. 9.插入记录的命令 格式:INSERT [BLANK] [BEFORE] 功能:在指定位置插入记录。 说明: (1)若缺省BLANK,则出现记录编辑窗口,等待用户由键盘输入要插入的记录数据;若选用BLANK,则直接插入一条空记录。 (2)若缺省BEFORE,则新记录插在当前记录之后;若选用BEFORE,则新记录插在当前记录之前。

  42. 10.显示记录的命令 格式:LIST | DISPLAY [范围] [表达式表] [FIELDS <字段名表>] [FOR | WHILE <条件>] [OFF] [TO PRINT | <文件>] 功能:显示指定范围满足条件的记录。 说明: (1)当缺省范围时,LIST命令默认ALL,DISPLAY命令默认当前记录。 (2)在显示的方式方面,LIST命令是滚动显示,DISPLAY命令是分屏显示。

  43. 12.浏览修改 格式:BROWSE [ FIELDS <字段名表>] [LAST] 功能:在浏览窗口显示当前表的记录,供浏览 与修改。 说明: (1)若缺省字段子句,则默认全部字段。 (2)若选用LAST子句,则保留前一次浏览窗口的格式。例如,修改了字段的排列顺序之后,使用BROWSE LAST浏览,则无法显示修改的结果。

  44. 13.替换修改记录的命令 格式:REPLACE <字段名1> WITH <表达式1> [ADDITIVE] [ , <字段名2> WITH <表达式2>…] [范围] [FOR | WHILE <条件>] 功能:对于当前表中的记录,用表达式的值替换指定的字段的值。 说明:若缺省范围和条件子句,则默认当前记录。 【例4-5】将Zgjk表中所有职工的基本工资增加50元。 USE Zgjk REPL ALL 基本工资 WITH 基本工资+50

  45. 14.逻辑删除记录的命令 格式:DELETE [范围] [FOR|WHILE <条件>] 功能:对当前表中指定范围满足条件的记录加上删除标记。 说明:若缺省范围和条件子句,则默认当前记录。 【例4-6】逻辑删除Zgjk表中所有服装部门的职工。 USE Zgjk DELE ALL FOR 部门= "服装" LIST &&被逻辑删除的记录前出现“*”号

  46. 15.恢复记录的命令 格式:RECALL [范围] [FOR|WHILE <条件>] 功能:对当前表中指定范围满足条件的记录撤消删除标记。 说明:若缺省范围和条件子句,则默认当前记录。 【例4-7】接上例,撤消Zgjk表中所有的逻辑删除。 RECALL ALL LIST &&逻辑删除标记“*”消失

  47. 16.物理删除记录的命令 格式:PACK 功能:物理删除带有删除标记的记录。 17.清除记录的命令 命令格式:ZAP 功能:物理删除当前表中的所有记录。 说明: (1)相当于执行DELETE ALL和PACK两条命令 (2)表记录被删除后剩下表结构,表文件仍然存在。

  48. 18.记录指针绝对定位的命令 格式:GO[ TO ] TOP | BOTTOM | <数值表达式> 功能:将记录指针移到指定的记录。 说明: (1)GO TOP 将记录指针指向首记录。若没有打开表的索引文件,则首记录按物理顺序(即记录号)定义;若打开了表文件的索引文件,则首记录按逻辑顺序定义。 (2)GO BOTTOM 将记录指针指向尾记录。若没有打开表的索引文件,则尾记录按物理顺序(即记录号)定义;若打开了表文件的索引文件,则尾记录按逻辑顺序定义。 (3)GO <数值表达式> 将记录指针指向记录号为<数值表达式>值的记录。

  49. 19.记录指针相对定位的命令 格式:SKIP [<数值表达式>] 功能:记录指针从当前记录开始移动<数值表达式>值所表示的记录个数。 说明: (1)当<数值表达式>值为正时,指针向记录号增大方向跳过指定个数的记录;当<数值表达式>值为负时,指针向记录号减小方向跳过指定个数的记录。 (2)SKIP,SKIP 1,SKIP +1 都表示指针下移(增大)一条记录。

  50. 20.复制表文件的命令 格式:COPY TO <目标表文件名> 功能:将当前表文件复制到指定的文件。 说明:如果表文件(.dbf)包含备注文件(.fpt)和索引文件(.cdx),则3个文件一起复制。 【例4-10】为职工简况表Zgjk制作副本。 USE Zgjk COPY TO Zgjk2 USE Zgjk2 &&复制的表文件写在磁盘上,要先打开才能显示其内容 LIST &&显示记录数据

More Related