全国二级VFP等级考试培训课件(3)_第1页
全国二级VFP等级考试培训课件(3)_第2页
全国二级VFP等级考试培训课件(3)_第3页
全国二级VFP等级考试培训课件(3)_第4页
全国二级VFP等级考试培训课件(3)_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章第三章 数据库及其操作数据库及其操作3.1 数据库及其建立数据库及其建立3.1.1 基本概念基本概念 数据库是一种容器,是以数据库是一种容器,是以.DBC为扩展名的一种数据格式为扩展名的一种数据格式文件,它存储了所包含的表、表之间的联系以及依赖于表的文件,它存储了所包含的表、表之间的联系以及依赖于表的视图、连接和存储过程等信息的集合视图、连接和存储过程等信息的集合 。 建立数据库时,除了建立建立数据库时,除了建立.dbc文件还会自动建立与之相文件还会自动建立与之相关的关的.dct(数据库备注文件数据库备注文件)和和.dcx(数据库索引文件数据库索引文件).3.1.2 数据库的创建数据库的

2、创建 1、在项目管理器中启动数据库设计器、在项目管理器中启动数据库设计器 在某一项目管理器中,选中在某一项目管理器中,选中“数据库数据库”,单击,单击“新建新建”,在在“创建创建”对话框中输入数据库存储位置和数据库名,对话框中输入数据库存储位置和数据库名,“保保存存”.2、菜单或工具栏、菜单或工具栏 “新建”“数据库”“新建文件”在创建对话框中键入数据库名“保存” 3、命令命令: CREATE DATABASE 功能:在指定的位置建立一个数据库文件 例:例:CREATE DATABASE 学生学籍学生学籍注意:前注意:前2种方法建数据库,会打开数据库设计器。命令方种方法建数据库,会打开数据库设

3、计器。命令方式建立,只是让数据库处于打开状态。式建立,只是让数据库处于打开状态。 所有这所有这3种方法都是建立一个新的数据库,若有同名数种方法都是建立一个新的数据库,若有同名数据库存在,默认情况下会警示用户据库存在,默认情况下会警示用户“是否改写是否改写”相当于在相当于在新建操作前使用了新建操作前使用了 set safety on; 若使用了若使用了set safety off 会直接改写覆盖。会直接改写覆盖。 一一. 在项目中添加数据库在项目中添加数据库 在一个项目中添加数据库的步骤为在一个项目中添加数据库的步骤为 1、新建或打开一个项目、新建或打开一个项目 2、在项目管理器中选择、在项目管

4、理器中选择“数据数据 | 数据库数据库” 3、单击、单击“添加添加”,在,在“打开打开”对话框中选择要添对话框中选择要添加到加到 项目中的数据库,项目中的数据库,“确定确定”。 3.1.3 使用数据库使用数据库二、打开数据库二、打开数据库当前版本中打开数据库中的表不一定必须打开数据库当前版本中打开数据库中的表不一定必须打开数据库方法:方法: 1、“文件文件| 打开打开”,在,在“打开打开”对话框中选择类型为对话框中选择类型为“数据库数据库”,单击要打开的文件,单击要打开的文件,“确定确定”。注:要注:要修改修改数据库,须选中数据库,须选中“独占独占”方式。方式。 2、在项目管理器中,选中相应的

5、数据库,该数据库就自、在项目管理器中,选中相应的数据库,该数据库就自动打开。动打开。 3、命令:、命令: OPEN DATABASE NOUPDATE VALIDATE功能:功能: 以指定方式打开一个指定的已存在的数据库以指定方式打开一个指定的已存在的数据库 说明:说明: (1) NOUPDATE :指明数据库以只读方式打开。:指明数据库以只读方式打开。不允许修改。不允许修改。 (2) VALIDATE :指明打开数据库时做合法性检查:指明打开数据库时做合法性检查 注:注: 系统可同一时间打开多个数据库,但系统可同一时间打开多个数据库,但当前数据库只有一当前数据库只有一个个。最后打开的数据库为

6、当前数据库。可用命令来指定当前。最后打开的数据库为当前数据库。可用命令来指定当前数据库数据库 命令:命令: SET DATABASE TO 说明:说明: SET DATABASE TO 表使所有的数据库都不是表使所有的数据库都不是当前数据库当前数据库 也可以通过标准工具栏上的数据库下拉列表框来指定当也可以通过标准工具栏上的数据库下拉列表框来指定当前数据库。前数据库。3.1.4.修改数据库修改数据库 在数据库设计器中对数据库修改主要包含向数据库中在数据库设计器中对数据库修改主要包含向数据库中添加、移去或删除对象等。添加、移去或删除对象等。 用用OPEN DATABASE 命令打开了数据库,但并没

7、命令打开了数据库,但并没有打开数据库设计器。要打开数据库设计器,用命令:有打开数据库设计器。要打开数据库设计器,用命令: MODIFY DATABASE NOEDIT NOWAIT 功能:打开数据库设计器,并允许修改当前数据库。功能:打开数据库设计器,并允许修改当前数据库。 说明:说明: (1) NOEDIT : 禁止对数据库修改禁止对数据库修改 (2) NOWAIT:在程序方式下有效。表示程序不等:在程序方式下有效。表示程序不等待而继续执行下一条语句待而继续执行下一条语句3.1.5 关闭数据库关闭数据库 1、若数据库在项目中打开,则在项目管理器中选择、若数据库在项目中打开,则在项目管理器中选

8、择要关闭的数据库,单击要关闭的数据库,单击“关闭关闭” 2、 命令:命令: CLOSE ALL :关闭所有已打开的文件:关闭所有已打开的文件 CLOSE DATABASE :关闭当前数据库:关闭当前数据库 CLOSE DATABASE ALL : 关闭所有已打开的数据库关闭所有已打开的数据库3.1.6 删除数据库删除数据库1.从项目管理器中删除数据库从项目管理器中删除数据库移去,删除,取消。移去,删除,取消。2.使用命令:使用命令: DELETE DATABASE 数据库名数据库名|? DELETEDATABASERECYCLE 其中其中 数据库名:数据库名:给出要删除的数据库名,此时数据库必

9、须处于给出要删除的数据库名,此时数据库必须处于关闭状态;关闭状态;?:?:打开对话框请用户选择要删除的数据库;打开对话框请用户选择要删除的数据库; deletedatabase: 在删除数据库文件的同时删除该数据在删除数据库文件的同时删除该数据库包含的所有数据库文件;库包含的所有数据库文件; recycle:将删除的数据库文件和表文件等放入将删除的数据库文件和表文件等放入windows的回收站中,可以进行还原。的回收站中,可以进行还原。 set safety on :删除时提示。删除时提示。 Set safety off:直接删除:直接删除 3.2 创建数据库表创建数据库表 3.2.1、在数据

10、库中创建新表、在数据库中创建新表 会创建.dbf的表文件,若有备注型和通用型字段还会有.fpt文件。方法方法: (在数据库打开的情况下在数据库打开的情况下) 1、在命令窗口中键入、在命令窗口中键入CREATE 命令命令. 2、选择、选择”数据库数据库”菜单菜单,再选再选”新建表新建表” 3、右击、右击”数据库数据库”, 从右键菜单中选择从右键菜单中选择”新表新表” 4、单击、单击”数据库设计器数据库设计器”工具栏上的工具栏上的”新表新表”按钮按钮 5、在项目管理器中、在项目管理器中,选中选中“表表”, 单击单击“新建新建”按钮按钮 进行上面任何一种操作进行上面任何一种操作,系统都会调出表设计器

11、让用户系统都会调出表设计器让用户在其中生成新表,且在其中生成新表,且表都属于该数据库表都属于该数据库。表设计器(各项说明见P100) 表的建立表的建立 表由表由结构结构和和数据数据两部分组成两部分组成 数据表的结构数据表的结构 一、表名一、表名 二、表头:确定表中的字段二、表头:确定表中的字段 1、字段名、字段名 由一个字母、汉字或下划线开头由一个字母、汉字或下划线开头,字母、数字或下划线字母、数字或下划线组成组成 。自由表。自由表10个字符,数据库表个字符,数据库表128个字符。个字符。 2、字段类型与宽度、字段类型与宽度 (1)字符型字符型字段字段(C) 宽度:最多宽度:最多254个字符个

12、字符 (2)数值型数值型字段字段(N) 宽度:最多宽度:最多20个字节个字节 宽度宽度=1(负号负号)+整数位数整数位数+1(小数点小数点)+小数位数小数位数 (3)逻辑型逻辑型字段字段(L) 宽度:宽度:1个字节个字节(系统默认系统默认) (4)日期型日期型字段字段(D) 宽度:宽度:8个字节个字节(系统默认系统默认) (5)备注型备注型字段字段(M) 宽度:宽度:4个字节个字节(系统默认系统默认) (6)通用型通用型字段字段(G) 宽度:宽度:4个字节个字节(系统默认系统默认) 说明:备注型与通用型的说明:备注型与通用型的4个字节用于个字节用于存储一个指针存储一个指针,该指针指向存储备注或

13、通用内容的该指针指向存储备注或通用内容的.FPT文件文件 表结构的建立表结构的建立 1、菜单方式、菜单方式 “文件文件 | 新建新建 | 表表”,“新建文件新建文件”,在在“创建创建”窗窗口中输入口中输入:保存路径和保存路径和“文件名文件名”,“保存保存”。 2、命令、命令方式方式 命令:命令:CREATE | ? 说明:使用?参数时,打开说明:使用?参数时,打开“创建创建”窗,用户输入表窗,用户输入表文件名。文件名。 3、项目方式、项目方式 在项目管理器中,在项目管理器中,“数据数据 | 自由表自由表”,“新建新建”。 上述方法都可打开表设计器。上述方法都可打开表设计器。 表数据的输入表数据

14、的输入 1、立即型追加数据、立即型追加数据 说明说明: (1) 逻辑型逻辑型字段只能接受字段只能接受T、Y、F、N这这4个字母之一个字母之一 (2)要输入备注型与通用型字段数据,按要输入备注型与通用型字段数据,按Ctrl+PgDn或或双击双击MEMO或或GEN可打开编辑窗口;按可打开编辑窗口;按Ctrl+W或或单击单击窗窗口口“关闭关闭”按钮可保存输入内容按钮可保存输入内容,按按ESC或或Ctrl+ Q放弃放弃本次操作本次操作 2、增加记录、增加记录 (1) “显示显示|浏览浏览”,再选择,再选择“显示显示|追加方式追加方式 ”即可添加即可添加记录记录 (2) Append命令方式命令方式 格

15、式:格式: Append blank Append需要立即交互输入数据,需要立即交互输入数据,append blank 在尾部在尾部增加一条空白记录,然后可以用增加一条空白记录,然后可以用edit ,chang,browse命令交命令交互输入空白记录的值,或用互输入空白记录的值,或用replace 直接修改空白记录的值。直接修改空白记录的值。 (3) insert命令命令 格式:格式: insert beforeblank 说明:如不加上说明:如不加上before指在当前记录后插入一条新记录,指在当前记录后插入一条新记录,否则在当前记录前插入一条新记录。否则在当前记录前插入一条新记录。 bla

16、nk 在尾部增加一条空白记录在尾部增加一条空白记录,然后可以用然后可以用edit ,chang,browse命令交互输入空白记录的值,或用命令交互输入空白记录的值,或用replace 直接修改直接修改空白记录的值。空白记录的值。 数据表的打开、显示和关闭数据表的打开、显示和关闭 打开表打开表 表在使用之前一定要先打开表在使用之前一定要先打开 一、菜单方式一、菜单方式 “文件文件 | 打开打开”,在,在“打开打开”对话框中,对话框中,“文件类型文件类型”选为选为“表表(*.DBF)” ,然后选路径和表名,再选中,然后选路径和表名,再选中“独占独占”复选框复选框 注:若不选中注:若不选中“独占独占

17、”,打开的表是,打开的表是只读只读的,不能修的,不能修改。改。 二、命令方式二、命令方式 格式:格式:USE EXCLUSIVE SHARED 说明:说明:EXCLUSIVE:独占方式:独占方式 SHARED:只读方式:只读方式 关闭表关闭表 一、菜单方式一、菜单方式 通过退出通过退出VFP来关闭表来关闭表 二、命令方式二、命令方式 格式格式1 :USE 功能:关闭当前打开的表文件功能:关闭当前打开的表文件 格式格式2 :CLOSE ALL 功能:关闭所有工作区中的所有各类型文件,但不释功能:关闭所有工作区中的所有各类型文件,但不释 放内存变量放内存变量 格式格式3 :CLEAR ALL 功能

18、:关闭所有工作区中的所有各类型文件,并释放功能:关闭所有工作区中的所有各类型文件,并释放内存变量内存变量 格式格式4 :QUIT 功能:关闭所有工作区中的各类型文件,释放内存变功能:关闭所有工作区中的各类型文件,释放内存变量并返回到操作系统量并返回到操作系统 二、二、 添加表到数据库添加表到数据库 操作操作: (1) 选择选择”数据库数据库”菜单菜单,再选再选”添加表添加表” (2) 单击单击”数据库设计器数据库设计器”工具栏上的工具栏上的”添加表添加表”按钮按钮 (3) 右击右击”数据库数据库”,从右键菜单中选择从右键菜单中选择“添加表添加表” 系统会显示出系统会显示出”打开打开”对话框对话

19、框,在其中打开需要的表在其中打开需要的表. 注注:一个表最多只能属于一个数据库一个表最多只能属于一个数据库。 三、删除三、删除(移去移去)表表 1、选择表后、选择表后,选择数据库上的选择数据库上的“移去移去”菜单项菜单项. 2、在数据库工具栏上选择、在数据库工具栏上选择“移去表移去表”,会出现会出现一个一个 对话框对话框,选择是从数据库中移走表选择是从数据库中移走表(即变为自即变为自由表由表), 还是从磁盘上删除该表还是从磁盘上删除该表.3.2.2 修改表结构修改表结构表结构的显示表结构的显示 命令:命令:LIST | DISPLAY STRUCTURE TO PRINTER PROMPT |

20、 TO FILE 菜单方式:打开表,菜单方式:打开表,“显示显示 | 表设计器表设计器” 表结构的修改表结构的修改 数据库设计器中修改:数据库设计器中修改: 选中要修改的数据库表,选中要修改的数据库表,“修改修改”,出现表设计器。出现表设计器。 菜单菜单:以以独占独占方式打开要修改的表,方式打开要修改的表,“显示显示 | 表设计器表设计器” 命令:命令:MODIFY STRUCTURE 说明:使用该命令前先打开表说明:使用该命令前先打开表 修改完毕,修改完毕,“确定确定”(或或Ctrl+W)保存保存3.3 表的基本操作 3.3.1 浏览数据库表浏览数据库表 一、项目管理器中操作一、项目管理器中

21、操作 选中要修改的数据库表,选中要修改的数据库表,“浏览浏览” 二、命令方式显示记录二、命令方式显示记录 菜单方式:打开表,菜单方式:打开表,“显示显示 | 浏览浏览” 命令:命令: LIST | DISPLAY OFF FIELDSFOR | WHILE 说明:说明: 1、 :指定输出记录的范围:指定输出记录的范围 有四种范围选项有四种范围选项:ALL : (默认值默认值) 显示所有记录显示所有记录 RECORD : 显示第显示第N条记录条记录 NEXT :显示从当前记录开始的显示从当前记录开始的N条记录条记录 REST :显示从当前记录到表文件末的记录:显示从当前记录到表文件末的记录 LI

22、ST与与 DISPLAY的区别的区别: (1)不接任何子句,不接任何子句, LIST显示显示所有记录所有记录; DISPLAY只只显示显示当前记录当前记录 (2) LIST滚动滚动显示记录;显示记录;DISPLAY分屏分屏显示显示 例例1:(1)显示学生表中的所有记录显示学生表中的所有记录 USE 学生学生 LIST 或:或:DISPLAY ALL (2)显示当前表中第显示当前表中第3条记录条记录 LIST RECORD 3 或:或:DISP RECORD 3 (3)假设现在在第二条记录处,则下列命令显示哪些记录假设现在在第二条记录处,则下列命令显示哪些记录 LIST NEXT 4 &

23、显示第显示第2,3,4,5条记录条记录 (4)显示从当前记录开始的显示从当前记录开始的3条记录条记录 DISP NEXT 3 (5)显示从当前记录开始一直到文件尾的记录显示从当前记录开始一直到文件尾的记录 LIST REST 2、 OFF:显示输出时不显示记录号:显示输出时不显示记录号 例例2: LIST LIST OFF 3、 FIELDS :指定显示的字段名。不用该:指定显示的字段名。不用该子句,则默认输出所有字段子句,则默认输出所有字段 例例3:显示学生表中所有学生的姓名、性别和入校总分,同:显示学生表中所有学生的姓名、性别和入校总分,同时不显示记录号时不显示记录号 LIST OFF F

24、IELDS 姓名姓名,性别性别 或或 DISP ALL 姓名姓名, 性别性别 OFF 4、 FOR | WHILE:指定输出显示记录:指定输出显示记录所需要满足的条件。所需要满足的条件。 例例4:(1)显示学生表中所有女生的记录显示学生表中所有女生的记录 LIST FOR 性别性别=“女女” (2)显示所有入校总分大于显示所有入校总分大于560分的女生记录分的女生记录 LIST FOR 性别性别=“女女” .AND. 入校总分入校总分 560 (3)显示所有三好学生显示所有三好学生 LIST FOR 三好生三好生 (4)写出下列命令写出下列命令 显示学号为显示学号为S0201106的学生记录的

25、学生记录 LIST FOR 学号学号=“S0201106” 显示所有在显示所有在1984年年10月份以后出生的男生记录月份以后出生的男生记录 LIST FOR 性别性别=“男男” .AND. 出生年月出生年月= 10/01/84 显示所有入校总分在显示所有入校总分在570分分(含含570)以下的非三好学生以下的非三好学生 LIST FOR 入校总分入校总分560 LIST FOR 入校总分入校总分560 的区别的区别 (3) 当当FOR 与与 WHILE同时使用时,同时使用时,WHILE优先优先进行进行,即先即先选取满足选取满足WHILE条件的记录条件的记录,然后在选出的记录中再用然后在选出的

26、记录中再用FOR条条件选取满足条件的记录件选取满足条件的记录 例:例: LIST FOR 性别性别=“女女” WHILE 入校总分入校总分 560 (二二) 命令:命令:BROWSE FIELDS FOR REST 功能:打开浏览窗口显示记录功能:打开浏览窗口显示记录 例:在浏览窗口显示女生的姓名、性别和入校总分例:在浏览窗口显示女生的姓名、性别和入校总分 BROWSE FIELDS 姓名姓名, 性别性别, 入校总分入校总分 FOR 性别性别=“女女” 三、浏览窗口显示记录有三、浏览窗口显示记录有编辑编辑和和浏览浏览两种格式,通过两种格式,通过“显示显示”可相互切换可相互切换 浏览窗口左下角有

27、一个窗口分割器,向右拖动可将浏览浏览窗口左下角有一个窗口分割器,向右拖动可将浏览窗口分为两个窗口。窗口分为两个窗口。 1、测试文件头函数、测试文件头函数 格式:格式:BOF () 功能:测试指定工作区表中记录指针是否指向文件头功能:测试指定工作区表中记录指针是否指向文件头 说明:说明:打开一个表打开一个表,当前记录指针指向,当前记录指针指向第第1条条记录,记录, BOF( )返回返回.F. ,若使用命令使记录指针再,若使用命令使记录指针再往前移动往前移动1条记条记 录录,BOF( )返回返回.T. 3.3.2表文件测试函数(教材P69) 2、测试文件尾函数、测试文件尾函数 格式:格式:EOF

28、() 功能:测试指定工作区表中记录指针是否指向文件尾功能:测试指定工作区表中记录指针是否指向文件尾说明:当记录指针说明:当记录指针指向指向表中表中最后最后1条记录条记录时,时,EOF ( ) 返返回回.F. ,若使用命令使记录指针再,若使用命令使记录指针再往后移动往后移动1条记录条记录,EOF( )返回返回.T. 3、测试当前记录号函数、测试当前记录号函数 格式:格式:RECNO() 功能:测试指定工作区表中的当前记录号功能:测试指定工作区表中的当前记录号4、记录个数测试函数、记录个数测试函数 格式:格式:RECCOUNT () 功能:测试指定工作区中表的记录个数功能:测试指定工作区中表的记录

29、个数5、记录删除测试函数、记录删除测试函数 格式:格式:DELETED () 功能:测试当前表文件中当前记录是否有删除功能:测试当前表文件中当前记录是否有删除标记。有返回标记。有返回.t.,否则返回,否则返回.f.3.3.3记录指针的定位记录指针的定位 1、绝对定位、绝对定位 格式格式1: GOTO TOP | BOTTOM 格式格式2: GOTO 说明说明: (1) GO TOP : 将记录指针指向表的第一个将记录指针指向表的第一个记录。记录。 (2) GO BOTTOM: 将记录指针指向表的最后一将记录指针指向表的最后一个记录。个记录。 (3)GO TO : 将记录指针指向将记录指针指向表

30、的某记录表的某记录, 指出该记录的记录号。指出该记录的记录号。 菜单:菜单: 打开表记录浏览窗口,打开表记录浏览窗口,“表表 | 转到记录转到记录”。 例:例: USE 学生学生 ? RECNO( ) ? BOF( ) GO 4 ? RECNO( ) GO BOTTOM ? RECNO( ) ? EOF( ) GO TOP ? RECNO( ) 22、相对定位、相对定位 格式格式: SKIP 功能功能: 从从当前记录当前记录开始移动记录指针开始移动记录指针,表表示移位记录的个数示移位记录的个数. 说明说明: 负值负值表示表示向文件头向文件头移位移位,正值正值表示表示向文件尾向文件尾移位移位;

31、缺省等同于缺省等同于1,即向下移动一条记录即向下移动一条记录. 3、locate查询定位查询定位 格式:格式:LOCATE FOR 功能:将记录指针定位在满足条件的第一条记录上。功能:将记录指针定位在满足条件的第一条记录上。若要指向下一条满足条件的记录,用若要指向下一条满足条件的记录,用cotinue。若没有满若没有满足条件的记录,则记录指针指向文件结束位置。足条件的记录,则记录指针指向文件结束位置。 常用结构:常用结构: locate for 表达式表达式 do while found() /处理处理 continue enddo 3.3.4 记录的修改记录的修改 1、交互方式修改、交互方式

32、修改 edit ,change 2、成批修改记录数据、成批修改记录数据 格式格式: REPLACE WITH ADDITIVE, WITH ADDITIVE FOR | WHILE 功能功能: 在当前表的指定记录中在当前表的指定记录中, 将有关字段的值用相应的将有关字段的值用相应的表达式值来替换。表达式值来替换。 若若与与等选项都缺省等选项都缺省, 只对当前记录的有只对当前记录的有关字段进行替换。关字段进行替换。 例例1:(1) 将学生表中第将学生表中第2条记录的姓名改为张小强条记录的姓名改为张小强 go 2 &定位到第定位到第2条记录条记录 replace 姓名姓名 with 张小强

33、张小强 disp (2) 将所有女生的入校总分都增加将所有女生的入校总分都增加50分分 replace 入校总分入校总分 with 入校总分入校总分+50 for 性别性别=“女女” 说明说明: ADDITIVE子句用于子句用于备注型备注型字段字段, 表示将表达式值表示将表达式值添加到字段的原有内容的后面;若没使用该子句添加到字段的原有内容的后面;若没使用该子句,则将表达则将表达式值替代字段的原有内容式值替代字段的原有内容. 练习命令:练习命令: 表表SX (部门部门C,价格,价格N,数量,数量N,主要设备,主要设备T,生产日期,生产日期D) (1) 将第将第3个记录的部门值改为个记录的部门值

34、改为A2 ,价格减少价格减少100元元 (2) 将主要设备的价格上调将主要设备的价格上调10% (3) 将在将在99年以后生产的非主要设备或属于年以后生产的非主要设备或属于11部门的价格部门的价格小于小于1万元的设备的数量减少万元的设备的数量减少5 3.3.5 记录的删除和恢复记录的删除和恢复 删除记录分为:作删除标记删除记录分为:作删除标记(逻辑删除逻辑删除)、从磁盘上删除、从磁盘上删除(物理删除物理删除) 1、逻辑删除记录、逻辑删除记录 操作操作: 在记录显示窗口,单击记录左侧的矩形域在记录显示窗口,单击记录左侧的矩形域,该矩形该矩形域变黑,这一黑色矩形域就是删除标记;再次单击它,黑域变黑

35、,这一黑色矩形域就是删除标记;再次单击它,黑色矩形域变白,这称为恢复记录。色矩形域变白,这称为恢复记录。 或:或: “表表”“删除记录删除记录” | “恢复记录恢复记录” 命令命令: DELETE FOR| WHILE 功能功能: 对当前表在指定范围内满足条件的记录加上删除标记对当前表在指定范围内满足条件的记录加上删除标记. 若可选项都缺省若可选项都缺省,只对当前记录作删除标记只对当前记录作删除标记. 例例4-13 (P53) 2、逻辑删除、逻辑删除记录的恢复记录的恢复 记录的恢复是指去掉删除标记记录的恢复是指去掉删除标记命令命令: RECALL FOR| WHILE 功能功能: 对当前表在指

36、定范围内满足条件的记录去掉删除标记对当前表在指定范围内满足条件的记录去掉删除标记. 若可选项都缺省若可选项都缺省,只恢复当前记录只恢复当前记录. 3、记录物理删除、记录物理删除 菜单:菜单: “表表 | 彻底删除彻底删除” 命令命令(1): PACK 功能功能: 从物理上删除从物理上删除(真正删除真正删除)有删除标记的记录。已有删除标记的记录。已被物理删除的记录是不可恢复的。被物理删除的记录是不可恢复的。 命令命令(2) : ZAP 功能功能: 物理删除表中所有的记录。物理删除表中所有的记录。 执行执行ZAP相当于执行相当于执行 DELETE ALL PACK 两条命令。两条命令。 2.3.6

37、 数据表与数组之间的数据交换数据表与数组之间的数据交换p55 1、将当前记录复制到数组、将当前记录复制到数组格式:格式:scatter fields memo to blank | memvar blank功能功能: 将当前记录的字段值按将当前记录的字段值按顺序依次送入数组元顺序依次送入数组元 素中素中,或依次送入一组内存变量或依次送入一组内存变量.说明:说明: (1) 若选择若选择fields子句子句,只传送字段名表中的字段值,否只传送字段名表中的字段值,否 则传送所有字段值则传送所有字段值(备注型字段除外备注型字段除外). 若要传送备注型字段值若要传送备注型字段值,还需使用还需使用memo

38、选项选项. (2)使用使用to 能将数据复制到能将数据复制到所示的数组所示的数组元素中元素中. VFP会自动扩大数组的长度会自动扩大数组的长度. (3) 使用使用memvar将数据复制到一组变量名与字段名相同的将数据复制到一组变量名与字段名相同的内存变量中内存变量中. 2、将数组或内存变量的数据复制到当前记录、将数组或内存变量的数据复制到当前记录 格式:格式:gather from | memvar fields memo 功能:功能:将数组或内存变量的数据依次复制到当前记录将数组或内存变量的数据依次复制到当前记录,以替以替 换相应字段值换相应字段值. 说明说明: (1) 修改记录前需确定记录

39、指针位置修改记录前需确定记录指针位置. (2)若使用若使用fields子句子句, 仅仅中的字段被数组元中的字段被数组元 素值替代素值替代.缺省缺省memo子句将忽略备注型字段子句将忽略备注型字段. (3)内存变量值传送给与它同名的字段,若某字段没有内存变量值传送给与它同名的字段,若某字段没有同名的内存变量则不对该字段进行数据替换。同名的内存变量则不对该字段进行数据替换。 (4)若数组元素多于字段数若数组元素多于字段数,则多出的数组元素不传送则多出的数组元素不传送;而数组元素少于字段数而数组元素少于字段数,则多出的字段其值不会改变则多出的字段其值不会改变. 3.4.1 基本概念基本概念 按照特定

40、的顺序定位、查看或操作表中记录,可以按照特定的顺序定位、查看或操作表中记录,可以使用索引。使用索引。 索引是由指针构成的文件,和表索引是由指针构成的文件,和表.dbf文件分别存储。文件分别存储。 3.4 索引索引 一、索引的种类一、索引的种类P112 按组织方式分按组织方式分: 1.单单(独立独立)索引文件索引文件 (后缀名为后缀名为.IDX ,即一个索引文件只即一个索引文件只包含一个索引项包含一个索引项) 2. 复合索引文件复合索引文件(后缀名为后缀名为.CDX ,即一个文件中包含多即一个文件中包含多个索引项个索引项) 在一个复合索引文件中的各个索引叫一个在一个复合索引文件中的各个索引叫一个

41、索引标识索引标识( Index Tag ), 代表一种记录的逻辑顺序代表一种记录的逻辑顺序 ) 分为:分为:结构复合结构复合索引文件索引文件: (与活动表文件同名与活动表文件同名, 打开其相应数据表打开其相应数据表,索引文件索引文件将自动打开将自动打开) 独立复合索引文件独立复合索引文件:(与打开的表文件不同名与打开的表文件不同名,不会随着不会随着表打开而打开表打开而打开) 2、索引关键字和索引类型、索引关键字和索引类型 索引关键字索引关键字:指在数据表中建立索引用的字段或字段:指在数据表中建立索引用的字段或字段表达式表达式 按功能分按功能分: (索引除具有建立记录逻辑顺序的作用外索引除具有建

42、立记录逻辑顺序的作用外,还还能控制是否允许相同的索引关键字值在不同记录中重复出能控制是否允许相同的索引关键字值在不同记录中重复出现现,或允许在永久关系中建立参照完整性或允许在永久关系中建立参照完整性) 普通索引普通索引, 唯一索引唯一索引, 侯选索引侯选索引, 主索引主索引 具体见教材具体见教材P1093.4.2 在表设计器中建立索引3.4.3 用命令建立索引v1. 单索引的建立单索引的建立( .idx ) 格式格式: index on to for compact additive ascending unique | candidate 功能功能: 对当前表根据关键字表达式的值的大小排列对

43、当前表根据关键字表达式的值的大小排列,并存并存入到入到to 指定的索引文件中指定的索引文件中. 说明:说明:(1) ascending表示表示升序升序,记录逻辑顺序默认为升序,记录逻辑顺序默认为升序. 单索引文件在字段名前加上单索引文件在字段名前加上“”表示降序表示降序. (2)默认建立的为普通索引文件默认建立的为普通索引文件. unique: 表示建立表示建立唯一唯一索引型索引文件索引型索引文件. candidate:表示建立表示建立侯选侯选索引型索引文件索引型索引文件. (3) additive: 表示建立本索引文件时并不关闭先前打表示建立本索引文件时并不关闭先前打开的索引文件开的索引文件

44、 (4)索引关键字:可以是一个字段,也可是多个字段组索引关键字:可以是一个字段,也可是多个字段组成的表达式,多个字段用成的表达式,多个字段用“+”或或“-”连接,主关键字在最前,连接,主关键字在最前,数据类型一致数据类型一致. 例例 :对表对表“学生学生”按出生年月建立单索引文件按出生年月建立单索引文件 USE 学生学生 INDEX ON 出生年月出生年月 TO CSNY LIST &与原文件相比与原文件相比,索引文件记录在排列顺序索引文件记录在排列顺序 上发生了逻辑变化上发生了逻辑变化,但其记录号不变但其记录号不变 例例 :对对学生学生表文件按入校总分升序建立索引文件表文件按入校总分

45、升序建立索引文件 use 学生学生 index on 入校总分入校总分 to st1 降序降序 : index on -入校总分入校总分 to st2 例例3:对对学生学生表文件按入校总分升序和性别升序进行索引表文件按入校总分升序和性别升序进行索引,索引文件为索引文件为sy1 use 学生学生 exclusive index on str(入校总分入校总分,6,2)+ 性别性别 to sy1 例例4: 对对学生学生表文件按入校总分升序进行索引表文件按入校总分升序进行索引,并建立为唯并建立为唯一索引型文件一索引型文件. index on 入校总分入校总分 to sy2 uniq index on

46、 tag of ascending | descending unique | candidate 说明说明: 指定指定 tag子句子句,将索引标识加到一个复合索引文件中将索引标识加到一个复合索引文件中. 有有of子句子句,则建立索引标识则建立索引标识,并写到指定的并写到指定的独立复合索引独立复合索引文件文件中中. 若不规定若不规定,则索引标识写到则索引标识写到结构复合索引结构复合索引文件文件.2. 复合索引的建立复合索引的建立 例:对学生表建立复合索引,包含例:对学生表建立复合索引,包含3个索引:个索引: (1)以姓名降序排列,索引标识为普通索引)以姓名降序排列,索引标识为普通索引 INDE

47、 ON 姓名姓名 TAG XM DESCENDING (2)以性别升序排列,性别相同时以入校总分升序排)以性别升序排列,性别相同时以入校总分升序排列,索引标识为普通索引列,索引标识为普通索引 INDEX ON 性别性别+STR(入校总分入校总分,3) TAG XBZFA (3)以性别升序排列,性别相同时以出生年月降序排)以性别升序排列,性别相同时以出生年月降序排列,索引标识为侯选索引列,索引标识为侯选索引 INDEX ON 性别性别+STR( DATE( )-出生年月出生年月) TAG XBCSNY CANDIDATE 注:索引关键字若为多个字段表达式注:索引关键字若为多个字段表达式, 是根据

48、是根据计算结果计算结果升序升序排列排列. 一、打开索引文件一、打开索引文件 索引文件不能脱离所依赖的表单独使用索引文件不能脱离所依赖的表单独使用,使用之前必须先使用之前必须先打开它打开它. 索引刚建立时索引刚建立时, 索引文件呈打开状态且成为主控索引索引文件呈打开状态且成为主控索引文件文件. 主控索引文件主控索引文件:一个表文件可以打开多个索引文件,但:一个表文件可以打开多个索引文件,但任何时刻只有一个索引文件起作用,当前起作用的索引文件就任何时刻只有一个索引文件起作用,当前起作用的索引文件就称为主控索引文件。称为主控索引文件。 主控索引主控索引:一个复合索引文件可包含多个索引标识,但:一个复

49、合索引文件可包含多个索引标识,但任何时刻只有一个索引标识起起作用,当前起作用的索引标识任何时刻只有一个索引标识起起作用,当前起作用的索引标识称为主控索引。称为主控索引。 5.2.3 索引的使用、更新和删除索引的使用、更新和删除 1、打开表文件的同时打开索引文件、打开表文件的同时打开索引文件 格式:格式: USE INDEX 功能:打开表的同时打开一个或多个索引文件功能:打开表的同时打开一个或多个索引文件 说明说明: (1) 包括单索引或复合索引文件,第一包括单索引或复合索引文件,第一个为主索引。但如果第一个索引文件为复合索引文件,则表个为主索引。但如果第一个索引文件为复合索引文件,则表记录按物

50、理顺序排列。记录按物理顺序排列。 (2) ORDER :设置主控索引:设置主控索引 2、打开表文件后再打开索引文件、打开表文件后再打开索引文件 格式:格式:SET INDEX TO ADDITIVE 功能:功能: 打开当前表的一个或多个索引文件并确定主控索引打开当前表的一个或多个索引文件并确定主控索引 文件。文件。 说明:说明: (1) 中第一个索引文件为主控索引文中第一个索引文件为主控索引文件件. 该命令常用于打开单索引文件该命令常用于打开单索引文件. (2) SET INDEX TO : 表示关闭当前工作区中除表示关闭当前工作区中除结构复合索引文件外的所有索引文件结构复合索引文件外的所有索

51、引文件,同时取消主控索引同时取消主控索引. (3)缺省缺省additive ,则用本命令打开索引文件时则用本命令打开索引文件时,除结除结构复合索引文件以外的索引文件均被关闭构复合索引文件以外的索引文件均被关闭. 命令命令: SET ORDER TO | | TAG 功能:在打开的索引文件中指定主控索引文件,或在打开功能:在打开的索引文件中指定主控索引文件,或在打开的复合索引文件中设置主控索引的复合索引文件中设置主控索引 说明说明: (1) 指索引文件或标识的序号指索引文件或标识的序号 其其次序是次序是: 先打开先打开IDX文件编号文件编号, 接着是结构接着是结构.CDX的标的标识顺序编号识顺序

52、编号, 最后是独立复合索引文件的标识编号最后是独立复合索引文件的标识编号. 二、确定主控索引二、确定主控索引 (2)用户可选用户可选 指定一个指定一个IDX文件为主控索文件为主控索引文件引文件,也可直接使用也可直接使用 TAG 指定一个索引指定一个索引标识为主控索引标识为主控索引. (3) SET ORDER TO 或或 SET ORDER TO 0 命令取命令取消主控索引文件及主控索引消主控索引文件及主控索引, 表中记录将按物理顺序输表中记录将按物理顺序输出出.三、更新索引三、更新索引 1. 自动更新自动更新 若索引文件已打开,则会随数据的改变自动改变记录的若索引文件已打开,则会随数据的改变

53、自动改变记录的逻辑顺序逻辑顺序, 实现索引文件自动更新实现索引文件自动更新. 2. 重新索引重新索引 有时索引文件受到破坏有时索引文件受到破坏,或修改表记录时或修改表记录时,索引文件由于索引文件由于没没打开而未自动调整,这时就可以使用重新索引打开而未自动调整,这时就可以使用重新索引 REINDEX 命命令令. 四、删除索引四、删除索引 1. 若用删除文件命令来删除索引文件若用删除文件命令来删除索引文件,须遵循先关闭后须遵循先关闭后删除的原则删除的原则,这与删除表类似这与删除表类似. 2. 删除索引标识删除索引标识命令命令: delete tag all | , 说明:若某索引文件的所有索引标识

54、都被删除说明:若某索引文件的所有索引标识都被删除, 则该索引文则该索引文件也将自动删除件也将自动删除. (1) 关闭当前索引文件:关闭当前索引文件:SET INDEX TO (2) 关闭所有索引文件:关闭所有索引文件:CLOSE INDEX 或或 CLOSE ALL (3)关闭表文件的同时)关闭表文件的同时, 关闭索引文件:关闭索引文件:USE五、关闭索引文件五、关闭索引文件 SEEK命令命令 格式格式 : SEEK ordern|tagtagname ascendingdescending 功能功能: 在索引文件中在索引文件中,查找索引关键字之值与指定查找索引关键字之值与指定的值相匹配的第一

55、个记录的值相匹配的第一个记录. 若若找到找到,FOUND( )函数为函数为.T. 否则,否则, FOUND( )函数为函数为.F. ,EOF ( )函数为函数为.T. 若要继续查找,用若要继续查找,用SKIP 命令命令 说明说明: (1) 索引查询命令只能对索引文件进行查询索引查询命令只能对索引文件进行查询,不能不能在未经索引的表文件中查询在未经索引的表文件中查询,而且不能查找非索引关键字而且不能查找非索引关键字.3.4.5 索引定位索引定位(P112) (2) SEEK可以查找可以查找C型型,N型型,D型型,L型数据,若查找型数据,若查找C型型 数据数据,必须用必须用定界符定界符将字符串括起

56、来将字符串括起来. 例例1: 在以在以“姓名姓名”为索引关键字的索引文件为索引关键字的索引文件XM.IDX中,用中,用SEEK命令查找学生刘雨的记录命令查找学生刘雨的记录 USE 学生学生 INDEX XM SEEK “刘雨刘雨” DISP (3)SEEK命令可命令可直接使用内存变量查找直接使用内存变量查找 ,不需用宏替,不需用宏替换函数换函数&进行替换。进行替换。 例例2: ZJ =“刘雨刘雨 ” SEEK ZJ DISP (4) 在查找在查找C型数据时型数据时 若若 set exact off (默认默认):模糊模糊查询,即查询,即可不唯一可不唯一 set exact on:精确精

57、确查询查询,即必须写出被查询即必须写出被查询的全部内容的全部内容.3.5 数据完整性数据完整性数据完整性包括实体完整性、域完整性和参照完整性。数据完整性包括实体完整性、域完整性和参照完整性。3.5.1 实体完整性与主关键字实体完整性与主关键字 实体完整性是保证表中记录唯一的特性,在一个表实体完整性是保证表中记录唯一的特性,在一个表中不允许有重复的记录。中不允许有重复的记录。 VF中通过主关键字(主索引)或候选关键字(候中通过主关键字(主索引)或候选关键字(候选索引)来保证记录的唯一,即实体唯一性。选索引)来保证记录的唯一,即实体唯一性。3.5.2域完整性在在VF中中域完整性域完整性表现为字段的

58、表现为字段的取值类型和取值范围的限定取值类型和取值范围的限定,以,以及通过及通过域约束规则(即字段有效性规则)域约束规则(即字段有效性规则)来保证域完整性。来保证域完整性。域完整性可通过表设计器完成。域完整性可通过表设计器完成。字段属性字段属性 注:注:数据库表数据库表的的字段名字段名是长字段名,最多为是长字段名,最多为 128个字符,个字符,而自由表最多为而自由表最多为10个字符个字符 一、设置字段标题、输入掩码和显示格式一、设置字段标题、输入掩码和显示格式 1、标题标题:设置在:设置在“浏览浏览”窗口和表单上显示出该字段的窗口和表单上显示出该字段的标识名称。标识名称。 步骤:打开数据库并选

59、择要修改的表步骤:打开数据库并选择要修改的表 “显示显示 | 表设计器表设计器 | 字段字段”选项卡中设置选项卡中设置 2、显示格式显示格式:即输出掩码,决定字段在:即输出掩码,决定字段在浏览窗口、报表或表单中的数据显示样浏览窗口、报表或表单中的数据显示样式。式。 如输出掩码:如输出掩码:“!999999999”3、输入掩码输入掩码:控制用户输入格式:控制用户输入格式 如输入掩码:如输入掩码:“A999999999”常用掩码及其含义掩码符号 作用!把小写字母转换成大写字母 (常输出用)(当数据为负数时用括号括起来$在输出的数值数据前显示浮动的$符号用科学技术法显示数值数据*数值型数据的前导零用

60、星号替换.输出用于指定小数点的位置,用于分隔数值的整数部分#允许数值、空格和正负号字符数据9只允许数字字符,数值型数据可以是数字和正负号A只允许字母 二、字段注释二、字段注释 字段注释起注释、说明字段的含义字段注释起注释、说明字段的含义 三、字段有效性三、字段有效性 有效性:控制字段可接受的数据是否符合指定的要求,有效性:控制字段可接受的数据是否符合指定的要求,只有满足输入的规则要求时才被接受,保证了数据的有效只有满足输入的规则要求时才被接受,保证了数据的有效性和可靠性。性和可靠性。 1、规则规则:设置字段的有效性检查,当输入或改变字段:设置字段的有效性检查,当输入或改变字段值时起作用值时起作用 (如:性别(如:性别$男女

温馨提示

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

评论

0/150

提交评论