VFP表和数据库
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Visual FoxPro 程序设计
数据库的基本操作
项目管理器(project)
项目管理器是Visual FoxPro 中处理数据和对象的主要组织 工具。所谓项目是指文件、数据、文档和对象的集合,被 保存在扩展名为.PJX的文件中。在建立表、数据库、查询、 表单、报表以及应用程序时,可以用项目管理器来组织和 管理文件。 CREATE PROJECT [<项目文件名>]
数据表
在Visual FoxPro中,一个数据表包括表结构和表记录 FoxPro中 两部分。 以文件形式保存,扩展名为.DBF .DBF。 两部分。 以文件形式保存,扩展名为.DBF。 定义表结构就是定义各个字段的属性, 定义表结构就是定义各个字段的属性,基本的字段属性 可包括字段名、字段类型、字段宽度和小数位数等。 可包括字段名、字段类型、字段宽度和小数位数等。 字段名用来标识字段,通常是二维表列标题名或其缩写, 字段名用来标识字段,通常是二维表列标题名或其缩写, 它是一个以字母或汉字开头,由字母、汉字、数字、 它是一个以字母或汉字开头,由字母、汉字、数字、下划线等 组成的序列的字符序列,自由表的字段名长度不超过10个字符, 10个字符 组成的序列的字符序列,自由表的字段名长度不超过10个字符, 而数据库表的字段名最多可以达到128个字符。 128个字符 而数据库表的字段名最多可以达到128个字符。 一个表最多定义255个字段。 一个表最多定义255个字段。字段的总宽度不能超过 255个字段 65000个字节 65000个字节
(3)字段宽度:字段宽度用以表明允许字段存储的最大 字节数。对于字符型、数值型、浮点型3种字段,在建 立表结构时应根据要存储的数据的实际需要设定合适 的宽度。其它类型字段的宽度均由Visual FoxPro系统规 定,例如日期型宽度为8,逻辑型宽度为1等。需要注 意的是,备注型与通用型字段的宽度一律为4个字节, 用于表示数据在.FPT文件中的存储地址。
表的操作
打开表 USE <表文件名 [EXCLUSIVE] [SHARED]
表的操作
关闭表 关闭表 USE USE <新表文件名> CLOSE TABLE [ALL] QUIT 关闭当前工作区的表文件; 在当前工作区中打开一个新表文件, 同时关闭了在此之前所打开的表文件。 关闭所有工作区的表文件, 但不关闭数据库文件。 关闭所有文件(含表文件)并退出 Visual FoxPro 系统。
记录的定位
1. 定位数据记录 当前记录 GO TOP | BOTTOM | <n> SKIP [ + | - <N>] 记录指针 绝对移动记录指针 相对移动记录指针
记录的定位
记录指针测试函数: 记录指针测试函数 RECNO( ) 测试记录指针所指的当前记录号,函数返回的 数值是当前记录的序号。 RECCOUNT( ) 返回当前表的记录条数。 EOF( )测试记录指针是否移动到文件结束标识,返回逻辑 真(.T.)或逻辑假(.F.)。 BOF( )测试记录指针是否指向文件起始标识,返回逻辑 真(.T.)或逻辑假(.F.)。
学生(学号, 姓名, 生日, 性别, 简历, 学生(学号, 姓名, 生日, 性别, 班级 ,简历,照片 )
课程(课程号, 名称, 学时, 性质,学分,停开否) 课程(课程号, 名称, 学时, 性质,学分,停开否)
成绩(学号,课程号,学期,平时成绩,期考成绩,总评成绩) 成绩(学号,课程号,学期,平时成绩,期考成绩,总评成绩)
表记录的操作
二、插入数据记录 INSERT [BEFORE] [BLANK]
表记录的操作
三、显示数据记录 LIST DISPLAY [<范围>] [[Fields]<字段名表>] [FOR<条件>] [OFF]
范围: ① All ② NEXT<N> 指表中全部记录范围 指表中当前记录下的连续N个记录(包括当前记录在内)
数据表
修改表结构: MODIFY STRUCTURE
设置字段级有效性规则
设置字段的注释
显示表结构: LIST STRUCTURE [TO PRINT/FILE <文件名>] 或 DISPLAY STRUCTURE [TO PRINT/FILE <文件名>]
表的操作
表结构的复制 COPY STRUCTURE USE 学生 COPY STRUCTURE TO STUDENT FIELDS 学号 , 姓名 , 班号 TO <文件名> [FIELDS <字段名表>]
MODIFY PROJECT [<项目文件名>]
数据库的定义
数据库是数据的集合,这些数据都以文件 的形式存放在计算机中。 数据库文件的扩展名为.DBC,相关的备注 文件的扩展名为.DCT,相关的索引文件的扩展名 为.DCX 。
数据表
数据库是包含有多个“数据表”的文件。 数据表(简称为“表”)有两种状态形式:数据库表与自由 表,两种表可以相互转换。 自由表加入数据库的就成为数据库表;把数据库表移出数 据库,就成为自由表。 数据库还用于存储“数据库表”的属性,有效性规则、说 明、默认值,以及视图与远程数据库的连接和存储过程。 把许多表组织到一个数据库中,以减少数据的冗余度,保 护数据的完整性,充分发挥Visual FoxPro 的处理数据的强 大功能。
数据表
3.建立表结构 数据表的创建有二种方法: .菜单方式 .命令方式 命令格式:CREATE <表文件名> CREATE Students
表设计器
数据表
4.表数据的输入 • 逻辑型字段只能接受T,Y,F,N这4个字母之一。 • 日期型数据必须与系统所设置的日期格式相符默认的是美国 日期格式:mm/dd/yy。 • 备注型和通用型字段,在没输入数据时,它们显示的分别是 memo和gen,如果输入了数据,则它们和首字母将以大写显 示(Memo和Gen)。 要 输 入 备 注 型 和通 用 型 字 段 的 内 容 , 可 以 双 击 该 记 录 的 memo和gen则可打开相应的字段编辑窗口。对于通用型字段, 双击进入编辑窗口后,可点击“编辑”菜单中的“插入对象” 命令来插入图形、电子表格或声音等多媒体文件。
表记录的操作
一、添加数据记录 APPEND [BLANK] • 若有备注字段和通用字段,备注字段或通用字段中如果 没有内容,则memo或general的第一个字母为小写m或g, 如果有内容就为大写M或G。 • 将信息输入到备注字段和通用字段中的方法是:把光标 移到memo或gen上,然后按Ctrl+PgDn键,则出现一个备 memo gen Ctrl+PgDn 注字段或通用字段输入窗口。 • 可以在备注字段窗口中输入任何字符信息或通用字段窗 口输入多媒体信息(如图片、声音、图像等)。输入完 成后,按Ctrl+W键,这个字段的内容便写盘,然后退出 这个通用字段或备注字段窗口。 USE 学生 COPY STRUCTURE TO std1 USE std1 APPEND FROM 学生 FIELDS 学号 , 姓名 , 班号 FOR 班号=="0101"
&& 将当前表(学生表)的学号、姓名、班号三个字段复制到一 个新表文件STUDENT.DBF中 注意:此命令只是复制表的结构,形成的新表是一个空表,即不 会含有任何的记录。
表的操作
表文件的复制 COPY TO <新文件名> [〈范围〉] [FIELDS〈字段名表〉] [FOR〈条件〉] USE 学生 COPY TO 男生 FIELDS 学号,姓名,班号 FOR 性别=”男” &&生成新的表文件“男生.DBF”
1.表文件名 Visual FoxPro规定表文件名 表文件名可以由字母、汉字、数字或下划 表文件名 线组成,系统自动给出的扩展名为 .DBF,在使用与表相关的 , 命令时,如建立、打开等操作时,一般不用人为指定,系统 会自动给出。 当表中有备注型或通用型字段时,系统自动生成与所属数据 表的表名相同、扩展名为.FPT的文件名。 在实际使用时,表名应该简明而且容易记忆。如学生.DBF, 成绩.DBF、BOOK.DBF等等
数据表的操作
创建数据表 表文件的打开与关闭 表结构的操作 表文件的数据的输入与添加 记录的显示与定位 记录的删除与恢复 表数据的修改
数据模型
教师(编号, 姓名, 生日, 性别, 职称,专业,) 教师(编号, 姓名, 生日, 性别, 职称,专业,)
班级(班号, 名称, 专业, 班主任) 班级(班号, 名称, 专业, 班主任)
2.定义表结构 定义表结构就是定义各个字段的属性,基本的字段属性可包 括字段名、字段类型、字段宽度和小数位数等。 (1)字段名:字段名用来标识字段,通常是二维表列标题名或 其缩写。自由表的字段名长度不超过10个字符,而数据库表 的字段名最多可以达到128个字符。
wenku.baidu.com
(2)字段类型(如表3-1所示):用于指明该列数据的存储类型。 一般在定义表结构时遵循下列规则: ① 凡该列数据需参与数学运算者,一般定义为数值型、整型、 浮点型或双精度型,具体由数据的精度及范围而定。 ② 凡该列数据不参与数学运算的,一般可定义为字符型。字符 型数据是最为方便操作的一种数据类型。 ③ 凡该列数据其值只有两种时,可定义为逻辑型。 ④ 凡该列数据表示日期的(如出生年月等),可定义为日期型。 如涉及到日期中的具体时间的,定义为日期时间型。 ⑤ 如需保存大量文本,可定义为备注型;如涉及到多媒体信息, 则需定义通用型(如商标,照片,声音等)。
Visual FoxPro 中的数据类型
1、字符型(Character,简写为C) 2、数值型(Numeric,简写为N) 整型 (Integer,简写为I) 浮点型(Float,简写为F) 双精度型(Double,简写为B) 货币型(Currency,简写为Y) 3、逻辑型(Logic, 简写为L) 4、日期型(Date,简写为D) 日期时间型 (DateTime,简写为T) 5、备注型(Memo,简写为M)
记录的定位
2. 顺序查找(LOCATE) (LOCATE) LOCATE FOR <条件 条件> 条件 功能:在表中顺序查找满足指定条件的第一个记录。 LOCATE 如果找到一个匹配记录,则函数FOUND( )返回逻 辑真( . T. ),且函数EOF( )返回逻辑假( . F. )。 如果LOCATE命令没有找到一个匹配的记录,函数 RECNO( ) 将返回当前表记录数加1,函数FOUND( )返回逻辑假( . F. ),且 函数EOF()返回逻辑真( . T. )。 FOUND( )
当表中定义了备注型字段时, 6、通用型(General,简写为G) 系统自动生成一个与表文件的主 名相同、扩展名为.FPT的辅助文 件来存放此类字段的内容。
创建数据表 在Visual FoxPro中建立一个表时要经过以下几个步骤:: 确定表文件名。 设计和建立表结构,包括表中各字段名、字段类型和 字段宽度等。 输入表中数据项内容(记录)。
③ RECORD< N> 指表中记录号为N的某一个记录 ④ REST 指表中从当前记录开始到最后一个记录为止的所有记录
表记录的操作
四、浏览记录 BROWSE [FIELDS <字段表> ] [FOR<逻辑表达式 1>][LAST] USE 学生 BROWSE FIELDS 学号,姓名,班号,生日 FOR 性别=="女"
CONTINUE
记录的删除与恢复
1.逻辑删除记录 DELETE [<范围>][FOR<条件>][WHILE<条件>] 测试函数:DELETED( ) 2.恢复记录 RECALL [<范围>][FOR<条件>][WHILE<条件>] 3. 3.物理删除记录 PACK 4.清除表记录 ZAP
(4)小数位数:只有数值型和浮点型字段才需要定义小 数位数。应注意小数点和正负号都必须在字段宽度中 占一位,例如,课程表中学分为1位整数和1位小数, 则该字段宽度为1位(3=1+1+1位小数点)。由此可知, 对于纯小数,其小数位数至少比字段宽度小1;若字段 值都是整数,则应定义小数位数为0或直接将字段设为 整型(I)。
数据库的基本操作
项目管理器(project)
项目管理器是Visual FoxPro 中处理数据和对象的主要组织 工具。所谓项目是指文件、数据、文档和对象的集合,被 保存在扩展名为.PJX的文件中。在建立表、数据库、查询、 表单、报表以及应用程序时,可以用项目管理器来组织和 管理文件。 CREATE PROJECT [<项目文件名>]
数据表
在Visual FoxPro中,一个数据表包括表结构和表记录 FoxPro中 两部分。 以文件形式保存,扩展名为.DBF .DBF。 两部分。 以文件形式保存,扩展名为.DBF。 定义表结构就是定义各个字段的属性, 定义表结构就是定义各个字段的属性,基本的字段属性 可包括字段名、字段类型、字段宽度和小数位数等。 可包括字段名、字段类型、字段宽度和小数位数等。 字段名用来标识字段,通常是二维表列标题名或其缩写, 字段名用来标识字段,通常是二维表列标题名或其缩写, 它是一个以字母或汉字开头,由字母、汉字、数字、 它是一个以字母或汉字开头,由字母、汉字、数字、下划线等 组成的序列的字符序列,自由表的字段名长度不超过10个字符, 10个字符 组成的序列的字符序列,自由表的字段名长度不超过10个字符, 而数据库表的字段名最多可以达到128个字符。 128个字符 而数据库表的字段名最多可以达到128个字符。 一个表最多定义255个字段。 一个表最多定义255个字段。字段的总宽度不能超过 255个字段 65000个字节 65000个字节
(3)字段宽度:字段宽度用以表明允许字段存储的最大 字节数。对于字符型、数值型、浮点型3种字段,在建 立表结构时应根据要存储的数据的实际需要设定合适 的宽度。其它类型字段的宽度均由Visual FoxPro系统规 定,例如日期型宽度为8,逻辑型宽度为1等。需要注 意的是,备注型与通用型字段的宽度一律为4个字节, 用于表示数据在.FPT文件中的存储地址。
表的操作
打开表 USE <表文件名 [EXCLUSIVE] [SHARED]
表的操作
关闭表 关闭表 USE USE <新表文件名> CLOSE TABLE [ALL] QUIT 关闭当前工作区的表文件; 在当前工作区中打开一个新表文件, 同时关闭了在此之前所打开的表文件。 关闭所有工作区的表文件, 但不关闭数据库文件。 关闭所有文件(含表文件)并退出 Visual FoxPro 系统。
记录的定位
1. 定位数据记录 当前记录 GO TOP | BOTTOM | <n> SKIP [ + | - <N>] 记录指针 绝对移动记录指针 相对移动记录指针
记录的定位
记录指针测试函数: 记录指针测试函数 RECNO( ) 测试记录指针所指的当前记录号,函数返回的 数值是当前记录的序号。 RECCOUNT( ) 返回当前表的记录条数。 EOF( )测试记录指针是否移动到文件结束标识,返回逻辑 真(.T.)或逻辑假(.F.)。 BOF( )测试记录指针是否指向文件起始标识,返回逻辑 真(.T.)或逻辑假(.F.)。
学生(学号, 姓名, 生日, 性别, 简历, 学生(学号, 姓名, 生日, 性别, 班级 ,简历,照片 )
课程(课程号, 名称, 学时, 性质,学分,停开否) 课程(课程号, 名称, 学时, 性质,学分,停开否)
成绩(学号,课程号,学期,平时成绩,期考成绩,总评成绩) 成绩(学号,课程号,学期,平时成绩,期考成绩,总评成绩)
表记录的操作
二、插入数据记录 INSERT [BEFORE] [BLANK]
表记录的操作
三、显示数据记录 LIST DISPLAY [<范围>] [[Fields]<字段名表>] [FOR<条件>] [OFF]
范围: ① All ② NEXT<N> 指表中全部记录范围 指表中当前记录下的连续N个记录(包括当前记录在内)
数据表
修改表结构: MODIFY STRUCTURE
设置字段级有效性规则
设置字段的注释
显示表结构: LIST STRUCTURE [TO PRINT/FILE <文件名>] 或 DISPLAY STRUCTURE [TO PRINT/FILE <文件名>]
表的操作
表结构的复制 COPY STRUCTURE USE 学生 COPY STRUCTURE TO STUDENT FIELDS 学号 , 姓名 , 班号 TO <文件名> [FIELDS <字段名表>]
MODIFY PROJECT [<项目文件名>]
数据库的定义
数据库是数据的集合,这些数据都以文件 的形式存放在计算机中。 数据库文件的扩展名为.DBC,相关的备注 文件的扩展名为.DCT,相关的索引文件的扩展名 为.DCX 。
数据表
数据库是包含有多个“数据表”的文件。 数据表(简称为“表”)有两种状态形式:数据库表与自由 表,两种表可以相互转换。 自由表加入数据库的就成为数据库表;把数据库表移出数 据库,就成为自由表。 数据库还用于存储“数据库表”的属性,有效性规则、说 明、默认值,以及视图与远程数据库的连接和存储过程。 把许多表组织到一个数据库中,以减少数据的冗余度,保 护数据的完整性,充分发挥Visual FoxPro 的处理数据的强 大功能。
数据表
3.建立表结构 数据表的创建有二种方法: .菜单方式 .命令方式 命令格式:CREATE <表文件名> CREATE Students
表设计器
数据表
4.表数据的输入 • 逻辑型字段只能接受T,Y,F,N这4个字母之一。 • 日期型数据必须与系统所设置的日期格式相符默认的是美国 日期格式:mm/dd/yy。 • 备注型和通用型字段,在没输入数据时,它们显示的分别是 memo和gen,如果输入了数据,则它们和首字母将以大写显 示(Memo和Gen)。 要 输 入 备 注 型 和通 用 型 字 段 的 内 容 , 可 以 双 击 该 记 录 的 memo和gen则可打开相应的字段编辑窗口。对于通用型字段, 双击进入编辑窗口后,可点击“编辑”菜单中的“插入对象” 命令来插入图形、电子表格或声音等多媒体文件。
表记录的操作
一、添加数据记录 APPEND [BLANK] • 若有备注字段和通用字段,备注字段或通用字段中如果 没有内容,则memo或general的第一个字母为小写m或g, 如果有内容就为大写M或G。 • 将信息输入到备注字段和通用字段中的方法是:把光标 移到memo或gen上,然后按Ctrl+PgDn键,则出现一个备 memo gen Ctrl+PgDn 注字段或通用字段输入窗口。 • 可以在备注字段窗口中输入任何字符信息或通用字段窗 口输入多媒体信息(如图片、声音、图像等)。输入完 成后,按Ctrl+W键,这个字段的内容便写盘,然后退出 这个通用字段或备注字段窗口。 USE 学生 COPY STRUCTURE TO std1 USE std1 APPEND FROM 学生 FIELDS 学号 , 姓名 , 班号 FOR 班号=="0101"
&& 将当前表(学生表)的学号、姓名、班号三个字段复制到一 个新表文件STUDENT.DBF中 注意:此命令只是复制表的结构,形成的新表是一个空表,即不 会含有任何的记录。
表的操作
表文件的复制 COPY TO <新文件名> [〈范围〉] [FIELDS〈字段名表〉] [FOR〈条件〉] USE 学生 COPY TO 男生 FIELDS 学号,姓名,班号 FOR 性别=”男” &&生成新的表文件“男生.DBF”
1.表文件名 Visual FoxPro规定表文件名 表文件名可以由字母、汉字、数字或下划 表文件名 线组成,系统自动给出的扩展名为 .DBF,在使用与表相关的 , 命令时,如建立、打开等操作时,一般不用人为指定,系统 会自动给出。 当表中有备注型或通用型字段时,系统自动生成与所属数据 表的表名相同、扩展名为.FPT的文件名。 在实际使用时,表名应该简明而且容易记忆。如学生.DBF, 成绩.DBF、BOOK.DBF等等
数据表的操作
创建数据表 表文件的打开与关闭 表结构的操作 表文件的数据的输入与添加 记录的显示与定位 记录的删除与恢复 表数据的修改
数据模型
教师(编号, 姓名, 生日, 性别, 职称,专业,) 教师(编号, 姓名, 生日, 性别, 职称,专业,)
班级(班号, 名称, 专业, 班主任) 班级(班号, 名称, 专业, 班主任)
2.定义表结构 定义表结构就是定义各个字段的属性,基本的字段属性可包 括字段名、字段类型、字段宽度和小数位数等。 (1)字段名:字段名用来标识字段,通常是二维表列标题名或 其缩写。自由表的字段名长度不超过10个字符,而数据库表 的字段名最多可以达到128个字符。
wenku.baidu.com
(2)字段类型(如表3-1所示):用于指明该列数据的存储类型。 一般在定义表结构时遵循下列规则: ① 凡该列数据需参与数学运算者,一般定义为数值型、整型、 浮点型或双精度型,具体由数据的精度及范围而定。 ② 凡该列数据不参与数学运算的,一般可定义为字符型。字符 型数据是最为方便操作的一种数据类型。 ③ 凡该列数据其值只有两种时,可定义为逻辑型。 ④ 凡该列数据表示日期的(如出生年月等),可定义为日期型。 如涉及到日期中的具体时间的,定义为日期时间型。 ⑤ 如需保存大量文本,可定义为备注型;如涉及到多媒体信息, 则需定义通用型(如商标,照片,声音等)。
Visual FoxPro 中的数据类型
1、字符型(Character,简写为C) 2、数值型(Numeric,简写为N) 整型 (Integer,简写为I) 浮点型(Float,简写为F) 双精度型(Double,简写为B) 货币型(Currency,简写为Y) 3、逻辑型(Logic, 简写为L) 4、日期型(Date,简写为D) 日期时间型 (DateTime,简写为T) 5、备注型(Memo,简写为M)
记录的定位
2. 顺序查找(LOCATE) (LOCATE) LOCATE FOR <条件 条件> 条件 功能:在表中顺序查找满足指定条件的第一个记录。 LOCATE 如果找到一个匹配记录,则函数FOUND( )返回逻 辑真( . T. ),且函数EOF( )返回逻辑假( . F. )。 如果LOCATE命令没有找到一个匹配的记录,函数 RECNO( ) 将返回当前表记录数加1,函数FOUND( )返回逻辑假( . F. ),且 函数EOF()返回逻辑真( . T. )。 FOUND( )
当表中定义了备注型字段时, 6、通用型(General,简写为G) 系统自动生成一个与表文件的主 名相同、扩展名为.FPT的辅助文 件来存放此类字段的内容。
创建数据表 在Visual FoxPro中建立一个表时要经过以下几个步骤:: 确定表文件名。 设计和建立表结构,包括表中各字段名、字段类型和 字段宽度等。 输入表中数据项内容(记录)。
③ RECORD< N> 指表中记录号为N的某一个记录 ④ REST 指表中从当前记录开始到最后一个记录为止的所有记录
表记录的操作
四、浏览记录 BROWSE [FIELDS <字段表> ] [FOR<逻辑表达式 1>][LAST] USE 学生 BROWSE FIELDS 学号,姓名,班号,生日 FOR 性别=="女"
CONTINUE
记录的删除与恢复
1.逻辑删除记录 DELETE [<范围>][FOR<条件>][WHILE<条件>] 测试函数:DELETED( ) 2.恢复记录 RECALL [<范围>][FOR<条件>][WHILE<条件>] 3. 3.物理删除记录 PACK 4.清除表记录 ZAP
(4)小数位数:只有数值型和浮点型字段才需要定义小 数位数。应注意小数点和正负号都必须在字段宽度中 占一位,例如,课程表中学分为1位整数和1位小数, 则该字段宽度为1位(3=1+1+1位小数点)。由此可知, 对于纯小数,其小数位数至少比字段宽度小1;若字段 值都是整数,则应定义小数位数为0或直接将字段设为 整型(I)。