vfp6.0第二章【数据库和表】
- 格式:docx
- 大小:86.97 KB
- 文档页数:22
2.1 Visual FoxPro 概述2.1.1 关系数据库系统发展32位系统2.1.2 VFP6.0的功能与性能指标每个表文件最多可容纳10亿条记录。
每条记录最多可用255个字段。
每条记录最多能包含65500个字节。
每个表文件最多能容纳655000亿个字节。
每个字段的最多字符数2542.1. 3 VFP6.0的运行环境、安装、启动、退出2.1.4 中文VFP开发环境简介临时配置修改主要通过一些SET命令,退出VFP时从内存释放,永久修改通过修改配置文件(.fpw)和Foxuser.dbf完成。
VFP三种工作方式:菜单工作方式、命令工作方式、程序工作方式VFP命令格式:范围限制ALL 所有NEXTn 包括当前记录在内的一下n条记录RECORD n 只对记录号为n的记录操作REST 从当前文件开始到文件尾的所有记录操作2.1.5 项目管理器项目文件,扩展名.pjx,保存系统包含各类文件的相关信息项目说明文件,扩展名.pjt,保存项目文件的备注数据选项卡:全部数据(数据库、自由表、查询、视图、连接、存储过程文件)文档:表单、报表、标签类:类库文件代码:程序、API库、应用程序其他:菜单文件、文本文件、其他文件2.1.6 VFP设计器和向导生成器向导:工具、向导2.2 VFP6.0的数据类型1.字符型数据C包括任何可显示的字符、汉字和符号,字符串长度<=254空字符串的长度为02.数值型数据N 数字符号0~9、小数点、正负号、E 不能超过20字节取值范围-0.9999999999E+19~0.9999999999E+203.整型N 仅用于字段定义4字节二进制表示4.浮点型N 参考数值型5.双精度型N 只用于字段的定义8字节6.货币型Y 小数位数超过四位自动四舍五入,8字节7.日期型D 8字节8.日期时间型T 系统默认以1899年12月30日作为默认日期,午夜12点作为默认时间8字节9.逻辑型L10.备注型M 备注字段固定为4字节,表示一个指向存储备注文件.fpt的指针11.通用型G OLE对象4字节12.对象型O 用于存储OLE对象,仅适用于内存变量2.3 VFP6.0的常量与变量2.3.1常量1.字符型常量由双引号、单引号或方括号括起的字符,成为定界符2.数值型常量0~9数字、小数点、正负号、E组成3.逻辑型常量.T. .F. 字母大小写通用4.货币型常量以$作为前缀的数值$12.365.日期型常量花括号括起,分隔符/ - . 空格严格的日期格式SET STRICTDA TE TO 1 {^YYYY-MM-DD}传统的日期格式SET STRICTDATE TO 0 不用脱字符开头,年月日次序不定,年份位数不定{}{}{/}值为空6.日期时间型常量日期和时间之间分隔符可以是逗号或空格{/:}值为空7.编译时常量#DEFINE 取消#UNDIFINE#DEFINE PAI 3.1415926`````````````#UNDEFINE PAI2.3.2字段变量(段名变量)字段变量的名称与类型是在建立表时进行定义的字段变量名可以使用字母、数字、下划线和汉字,但第一个字符必须是字母或汉字,长度<=128字符(自由表<=10字符),字母不区分大小写,使用时数据表处于打开状态。
第1章Visual FoxPro 6.0概述•Visual FoxPro数据库是一个关系型数据库。
–Windows环境。
–FoxBASE+汉字操作系统(UCDOS)•Visual FoxPro不需要用户编程就可以建立一个面向对象的数据库应用程序,所以在众多的数据库软件中,Visual FoxPro脱颍而出,成为一种通用的数据库软件。
1.1 Visual FoxPro 6.0的发展过程•主要经历了3个阶段1.dBASE阶段2.FoxBASE和FoxPro阶段3.Visual FoxPro阶段•1995 VFP 3.0版运行于Win3.x、Win9X和WindeosNT环境•1997 VFP 5.0中文版。
•1998 VFP 6.0中文版。
VFP6.0的功能1)为某种信息创建一个表,利用表存储相应的信息。
(2)定义表间的关系,将各表中的数据地联系在一起。
(3)创建查询搜索记录,对记录排序和分组并根据查询结果创建报表、表及图形。
(4)可以通过视图更新表中的数据及从网上取得数据,从而收集或修改远程数据。
(5)创建表单来直接查看和管理表中的数据。
(6)可以创建一个报表来分析数据或将数据以特定的方式打印出来。
1.2.2 VFP的特点1.利用向导来操作,方便易用2.可视化开发3.事件驱动4.面向对象编程5.生成器6.组件库7.VFP基础类8.活动文档9.对动态图形文件的支持9.程序语言的增强10.支持OLE拖放11.新增和改进的生成器和编译器1.3 VFP6.0系统的软硬件环境•软件环境–Windows 98–Windows NT 4.0•硬件环境–奔腾Ⅱ以上的微型计算机–32MB以上的内存–硬盘空间240MB以上。
1.5 VFP6.0系统的启动•启动VFP–在“开始”菜单中启动VFP–用快捷方式启动VFP•退出VFP(以下并列)–在“命令”窗口中,打“quit”。
–直接按Alt+F4。
–在“文件”菜单中,选择“退出”命令。
VFP第二章习题解答1.内存变量一经定义,它的类型将不能改变。
(×)2.如有一条图文并茂的广告可以将它存储在数据表通用字段(G)中。
(√)3.在Visual FoxPro 6.0中,自由表永远不能使它成为数据库表。
(×)4.关系运算符是没有优先级别的,但是关系运算符如果出现在逻辑表达式中则变成有优先级别了。
(×)5.通过运算能够得到逻辑结果的表达式只有逻辑表达式。
(×)6.进行程序设计时一般采用“自顶向下逐步求精”的方法。
(√)7.一个完整的程序由输入、输出和数据处理三部分组成。
(√)二、选择题1.表达式ABS(SIGN(-25.5))的值是()。
A.25.5 B.25 C.1 D.-1解:答案为C2.表达式SQRT(PI()**2) 的值是()。
A.3.54 B.3.14 C.6.28 D.1.57解:答案为B3.表达式INT(RAND()*90+10)的取值范围是()。
A.[10,99] B.(10,99)C.[10,100] D.(10,100)解:答案为A4.表达式ROUND(1234.567,2)的值是()。
A.1234 B.1234.56 C.1234.57 D.1234.567解:答案为C5.表达式MOD(38,-5)的值是()。
A.3 B.-3 C.2 D.-2解:答案为D说明:MOD(X,Y)的返回值的符号由Y的符号确定,若X、Y的符号相同,数值为X、Y的绝对值相除后的余数;若X、Y的符号不相同,数值为Y的绝对值减掉X、Y的绝对值相除后的余数。
6.表达式AT(RIGHT("中华人民共和国",4),"中华人民共和国")的值是()。
A.4 B.5 C.10 D.11解:答案为D7.表达式UPPER("abcXYZ123")的值是()。
A.ABCXYZ123 B.abcxyz123 C.abcXYZ123 D.ABCxyz123解:答案为A8.表达式STR(1234.5678)的值是()。
第2章表的操作表是VFP基本内容。
数据库的管理最终是对表的管理。
表是对数据进行有效的加工、管理,使数据更能显示出它的价值,由于表可以独立于程序,因而表使得数据得以共享,同时使数据得到充分的利用。
VFP中的表可分为自由表、数据库表两种。
本章讲的表是针对自由表而言的,数据库表将在后续章节中介绍。
本章主要介绍表的建立、表的基本操作。
2.1 表的建立在VFP中表的建立方式有多种。
本节中只介绍可视化的界面建立表和用命令建立表两种方式,其他几种方式将在后续章节中逐步介绍。
建立表的过程一般可分为三步。
第一步要确立表的结构,第二步用界面或用命令开始建表,以上步骤实际上就是对表结构的定义。
第三步输入表的内容。
表2.1所示是学生自然情况表。
VFP表的建立及相关知识。
2.1.1 确定表的结构一个二维表是由它的列项与行项组成,从1.2.2节中已经掌握了表的列项称为字段,表中内容一行称为一个记录。
学段也是一种变量,它的命名规则已在前面介绍了。
字段变量类型可为表1.1数据类型中的所有数据类型。
由表2.1来确定学生自然情况表的结构:学号C(9)、姓名C(6)、性别C(2)、出生D、团否L、入学成绩N(3)、近照G及备注M。
2.2.2 建表、修改、显示一个表的建立应确定表建立在磁盘中的位置,这样,在建立表后,需要打开表时,按表在磁盘中的位置找到表将表打开。
为了叙述的方便本书规定用“―〉”表示进行下一步操作。
在X盘上已经建立一个Y文件夹,X盘表示任意盘,Y文件夹表示任意名的文件夹。
例如在D盘建立一个名为学生的文件夹,也可由用户自定义文件夹的名。
建文件夹可通过win的我的电脑或资源管理器等建立。
如果用户不给出路径,VFP可以建立默认路径,当打开VFP时它自动在默认路径上。
下面给出默认路径的方法:单击工具菜单->[选项],打开选项对话框,如图 2.1所示。
->[文件位置]选项卡->选[默认目录]->[修改]按钮,打开[更改文件位置]对话框->使用[默认目录]复选框->在定位默认目录文本框中输入路径。
VFP6.0复习提纲第一章数据库系统概述一、概念1.什么是信息、数据、数据库、数据库系统、数据库管理系统?他们的英文缩写各是什么?2.数据库系统由哪几部分构成?其中最重要的是什么?3.数据库、数据库系统、数据库管理系统三者的关系如何?4.数据库系统有哪些特点?5.数据库管理系统有哪些特点?二、数据库模型1.什么是数据库模型?2.常见的数据模型有哪些?各有什么特点?3.关系型二维表应满足哪些条件?三、自由表与数据库表1.什么是自由表?什么是数据库表?2.自由表和数据库表之间有何关系?3.构成表的两个要素是什么?二者有何关系?四、VFP6.0的产生1.VFP6.0于哪一年由哪家公司开发的?五、VFP6.0的启动与退出1.启动VFP6.0有哪几种方法?2.如何退出VFP6.0系统?3.VFP6.0的主窗口由哪几部分构成?各有什么作用?4.VFP6.0有哪几种工作方式?各有什么优点?第二章VFP6.0语言基础一、数据类型1.VFP6.0中有哪些数据容器?2.VFP6.0中常见的数据类型有哪些?其字母表示各是什么?长度如何?二、常量与变量1.什么是常量?VFP6.0中有哪些常量?2.举例说明各种常量的表示方法?3.什么是变量?VFP6.0中有哪几变量?4.变量的命名规则是什么?5.内存变量的值是由什么决定的?6.如何给内存变量赋值?7.内存变量有哪些类型?8.字段变量最多可有多少个?9.字段变量特有的两种数据库类型是什么?三、VFP6.0中的函数1.FP6.0中有哪几类函数?2.注意掌握函数的复习方法。
①掌握函数的基本格式及功能②掌握函数的参数及类型和函数的返回值及类型四、表达式1.什么是表达式?2.VFP6.0中有哪些表达式?3.各种表达式有哪些运算符?4.各种运算的优先级如何?第三章项目管理器一、概念1.什么是项目管理器?2.项目管理器有何功能?3.项目管理器有哪些选项卡?每个选项卡各有什么功能?二、项目管理器的操作1.如何将项目管理器设置为工具栏?如何还原?2.如何将项目管理器折叠与展开?3.利用项目管理器可对文件进行哪些操作?第四章数据库和表一、数据库1.设计数据库的目的及内容怎样?2.如何建立数据库?3.如何打开和关闭数据库?有哪些方法?4.如何设置当前数据库?二、表的建立1.VFP6.0中创建表有哪些方法?2.创建表时必须遵循哪些规则?3.创建表结构主要是确定哪些内容?三、表结构的操作1.如何显示表结构?2.打开表结构的命令是什么?3.设置字段的主要内容有哪些?是否所有表都能设置字段属性?四、工作区1.打开、关闭表的命令是什么?2.什么是工作区?VFP6.0提供了多少工作区?3.工作区的编号及别名是如何规定的?4.如何选择工作区?5.如何访问其它工作区中的数据?6.如何向当前表中添加记录?添加记录有哪些方法?五、数据表的维护1.修改记录的命令有哪些?命令格式各是什么?2.命令中[范围]的四个选项各是什么?含义如何?3.记录的删除分哪两种?命令各是什么?4.如何恢复带删除标志的记录?5.如何删除部分记录?六、表的浏览1.记录的显示方式有哪两种?2.如何在表中查找特定的数据?七、索引1.什么是索引?为什么要建立索引?2.什么是关键字?什么是主关键字?3.FP6.0中索引分哪几种?各有什么特点?4.如何建立索引?八、表中数据的计算1.如何横向求和?2.如何纵向求和、求平均值?命令及格式什么?3.分类汇总的前提条件是什么?4.分类汇总有何意义?5.分类汇总的命令格式是什么?九、数据库中数据表的增删1.如何向数据库中添加表?2.向数据库中添加的表有何要求?3.如何从数据库中移去表?4.数据库中表的增删所对应的命令是什么?十、表与表之间的连接关系1.表与表之间有哪些关系?其函义如何?2.如何创建两表间的临时关系?命令是什么?3.建立一对多临时关系的前提是什么?4.任何表都可以建立永久关系吗?5.对建立永久关系的两个表有何要求?十一、参照完整性1.设置参照完整性的目的是什么?2.“参照完整性生成器”中有哪些选项卡?各有什么规则?每个规则有什么含义?第五章查询与视图一、查询设计1.什么是查询?2.创建查询有哪些方法?3.查询设计器中有哪些选项卡?各有什么作用?4.查询结果有哪些去向?如何设置或改变查询结果的输出方向?5.在查询设计器中如何创建新字段?6.表之间的连接类型有哪些?二、视图设计1.什么是视图?它与查询有何异同?2.视图分哪几种?3.如何通过视图更新源表中的数据?第六章报表和标签一、报表1.报表由哪两部分构成?每部分有何含义?2.创建报表有哪些方法?3.报表布局中主要设计哪些内容?4.报表中可使用哪些控件?5.报表设计器默认有哪些基本带区?6.报表设计器中各带区有何作用?7.如何看到报表输出的结果或输出格式?8.运行报表时,输出结果的去向如何?9.报表文件中存放的内容是什么?是表中的记录吗?10.原表中数据的变化是否影响报表的输出结果?11.预览报表的命令是什么?二、标签1.什么是标签?2.如何创建标签?第七章表单一、概念1.什么是表单?2.利用表单向导可创建哪两种表单?3.常用表单控件有哪些?4.什么是容器?什么是控件?5.标签、文本框、命令按钮、定时器、Active X绑定型控件等各有什么作用?常用属性有哪些?6.什么是数据环境?如何建立数据环境?它有什么作用?二、表单的创建及对象的操作1.创建表单有哪些方法?2.如何改变表单的前景色和背景色?如何设置表单的背景图片?3.如何将按钮Command1的标题改为“保存”?4.如何设置一个按钮的两个功能?如:同一个按钮具有“编辑”和“撤消”两种功能?代码是什么?5.向表单中添加对象有哪些方法?应如何操作?6.在数据环境中拖动不同类型的字段时,将在表单中产生何种控件?7.在数据环境中如何选中多个字段?当所选中的多个字段一次性拖到表单上时,将产生一个什么控件?8.如何给命令按钮添加代码?9.当表单打开或关闭时,与之对应的数据源状态如何?10.对象被选中时有哪些特征?容器处于编辑状态时有何特征?11.如何设置标签的颜色、字体、字号?12.编写事件代码时应注意哪些规则?13.在程序中调用表单时应注意哪些问题?第八章菜单一、基本概念1.什么是菜单?菜单一般有哪几类?2.菜单由哪几部分构成?每一部分有什么作用?3.子菜单有什么标志?4.在菜单设计器中,“结果”栏有哪些选项?每一项产生什么结果?5.“菜单级”栏的作用是什么?二、建与设计1.创建菜单有哪些方法?2.启动菜单设计器有哪些方法?3.菜单设计器由哪几部分构成?每个部分有何功能?如何操作?4.如何设置菜单项的快捷键?5.创建快速菜单与系统菜单一样吗?6.菜单设计完毕能直接运行吗?7.运行菜单程序的命令是什么?8.由菜单文件如何生成菜单程序文件?二者的扩展名分别是什么?9.如何给菜单指定任务?10.菜单运行时,将覆盖系统菜单,如何还原系统主菜单?第十章表单设计一、基本概念1.什么是数据导航?如何实现数据导航?2.要给一个按钮组添加代码,要用到程序的什么结构?3.什么是顶层表单?什么是子表单?由什么决定?4.调用子表单的命令是什么?5.使当前表单中的text1对象获得焦点的命令是什么?二、设计1.如何在表单中加载菜单?2.clear events、Read events有何作用?3.在程序中调用表单时应注意什么?4.如何实现表单间数据的传递?第九章程序设计1.如何建立、运行和调用程序?对应的命令各是什么?2.Return 、Cancel、Quit有何区别?3.input 、Accept在用法上有何不同?4.VFP6.0中有哪几种基本程序结构?5.单分支、二分支、多分支结构的具体格式是什么?执行过程如何?6.循环结构由哪些循环语句实现?执行过程如何?7.loop和EXIT有何区别?8.三种循环结构(语句)各适应什么情况?是否可互相替换?9.什么是子程序?什么是过程?10.过程有何格式?自定义函数的格式是什么?11.子程序与过程有何区别?12.调用子程序或调用函数时应注意哪些问题?。
VisualFoxPro6.0命令手册Visual FOXPRO中的常用命令目录一、数据库的建立、打开、关闭和删除二、数据表和视图的建立、打开、关闭和删除三、数据表和表结构的编辑、修改四、数据表中数据操作(查询、插入、删除和修改等)五、文件管理(文件和文件夹的复制、创建和删除)六、数据的复制与传送七、排序与索引八、查找和定位九、统计计算十、程序控制十一、其它命令结构FoxPro的命令结构一般由命令动词、语句体和注释几部分构成。
如:LIST [范围] [[FIELDS 字段名列表] [FOR 条件][WHILE 条件] [OFF] [TO PRINT]常用子句范围:表示记录的执行范围,可以是下面几项其中之一:ALL 表示全部记录;NEXT n 表示从当前记录开始的以下n条记录;RECORD n 表示第n号记录;REST 表示从当前记录到最后一条记录。
FIELDS 字段名表:用于指定操作的字段,多个字段时用逗号分隔。
FOR条件:对满足条件的记录进行操作。
WHILE 条件:当遇到第一个不满足条件的记录时,停止命令执行。
以下命令中,大写的英文词为关键词,必须原样照写。
“常用子句”指以下几个可选子句:[范围] [FIELDS 字段名表] [FOR 条件] [WHILE 条件]命令中的“列表”,指用“,”分隔的各项。
如“字段名列表”就是将各个字段名用逗号分隔。
部分英文词的意义:Databasename 数据名tablename 数据表名filename 文件名 Viewname 视图名 arrayname 数组名提示:加下划线的为本课程要求掌握的命令。
一、数据库的建立、打开、关闭和删除建立数据库:CREATE DATABASE [databasename|?]从磁盘中删除数据库:DELETE DATABASE databasename|?打开数据库:OPEN DATABASE [EXCLUSIVE|SHARED][NOUPDATE]打开数据库设计器(允许用户按交互方式编辑当前数据库):MODIFY DATABASE [databasename|?]指定的数据库databasename为当前数据库。
第二章 VFP数据库(表)的概念及操作1. 表的概念表(数据表):是指存放在磁盘文件中的一张二维表。
自由表:不属于任何数据库的表。
数据库表:包含在一个数据库中的表。
表文件名:表名可以由字母、数字或下划线组成,系统自动给出的扩展名为 .DBF。
备注文件名:当表中有备注型或通用型字段时,系统自动生成与所属数据表的表名相同、扩展名为:.FPT的文件名。
表结构:存储表记录的公共结构。
(就是指一张表的表头结构,即字段的属性)。
记录:表中的一行。
它是多个字段的集合,同一张表的每个记录都有相同的字段。
字段:表中的一列。
它规定了数据的特征。
关系型数据表的特点:(1)每一个字段不可再分解,也不能有名字相同的字段;(2)每一列中的数据都有相同的数据类型;(3)表中没有内容完全相同的行(记录)。
2. 字段的基本属性字段的属性:包括:字段名、数据类型、字段宽度、小数位数、空值支持字段名:即每个字段的名字,必须以字母开头,可由字母、数字、下划线组合而成,字母大、小写无区别,但其中不许有空格或其它字符。
自由表的字段名最多由10个字符组成,数据库表的字段名支持长名,最多可达128个字符。
如果从数据库中移去一个表,那么此表的长字段名将被截短成 10 个字符。
VFP允许长字段名和长表名,但使用长名称对于跨平台的操作可能遇到难以预料的结果。
数据类型:指该字段的数据特征。
字段宽度:指该字段所能容纳数据的的最大字节数。
小数位数:指数值型数据将保留几位小数。
此时的字段宽度 = 整数位数+1+小数位数。
NULL 值(空值):无明确的值。
NULL 值不等同于零或空格。
一个 NULL 值不能认为比某个值(包括另一个 NULL 值)大或小,相等或不同。
VFP 6.0表中字段的数据类型2. 表的基本操作表的创建:设计表名和表结构、输入记录、建立索引数据维护:增加记录、修改记录、删除记录创建表的主要步骤:设计表结构→ 输入记录→建立索引→数据维护4.关于表操作的几个基本命令注意:(1)必须先打开所需的数据表才可进行以上操作;(2)当带有命令子句时,只对指定的记录进行操作;(3)LIST 命令的默认范围是所有记录,DISPLAY 命令的默认范围是当前记录。
Visual FoxPro 6.0 数据库与程序设计教案第一章数据库系统1.本章的教学目标及基本要求(1).让学生掌握数据(DB)、数据库系统(DBS)、数据库管理系统(DBMS)的概念及三者的关系,让学生掌握三种数据模型,重点掌握关系模型。
(2).让学生理解字段和记录的概念、了解VFP的特点、掌握VFP的启动和退出。
(3).启动VFP后,让学生理解VFP窗口的各个部分。
(4).本章最后让学生简单了解VFP的向导、设计器和生成器。
2.本章各节教学具体内容及学时分配第一节1、数据库基础知识(1)基本概念:数据(DB)、数据库系统(DBS)、数据库管理系统(DBMS)(2)数据模型:层次模型、网状模型、关系模型(3)关系数据库及其特点:关系数据库、关系、二维表、记录、字段、关系数据库的主要特点。
第二节、VFP的特点、安装和运行(1)VFP特点(2)VFP的安装(3)VFP的启动和退出(菜单方式、快捷方式,退出的各种方式)第三节、VFP的集成开发环境(1)VFP用户界面(2)VFP的向导、设计器和生成器(第一节为1学时,第二节、第三节结合第二章的第一节为1学时) 3.本章教学内容的重点和难点本章教学内容的重点:基本概念、关系数据库及其特点的理解,VFP的启动和退出,以及VFP的运行环境。
本章教学的难点:关系数据库及其特点。
4.本章教学内容的深化和拓宽数据库、数据表、字段、记录的关系、字段的属性。
5.本章教学方式本课程采用多媒体课件授课,理论讲授与课堂上的示例演示相结合,理论课与上机实验紧密结合。
教学过程中应注意的问题:概念要讲解清楚。
6.本章的主要参考书目:Visual FoxPro 6.0数据库与程序设计Visual FoxPro 6.0 程序设计指南第二章Visual FoxPro 6.0 语言基础1.本章的教学目标及基本要求(1)掌握VFP的基本数据类型(2)掌握各种运算符和表达式的使用(3)掌握常用函数的使用方法(4)了解数据的存储方式(5)掌握内存变量和数组的定义、赋值和使用2.本章各节教学内容及学时分配第一节、数据类型第二节、数据存储第三节、运算符和表达式第四节、函数第五节、命令(第一节、第二节、第三节为1学时,第四节、第五节为1学时)3.本章教学内容的重点和难点本章教学内容的重点是:各种数据类型的介绍、各种类型常量的书写格式、字段变量和内存变量、各种运算符的介绍,命令的书写格式。
第二章.数据库和表必备的知识点1.二维表的每一列就是一字段(属性),每一行叫做一条记录(元组)。
一张表中最多255个字段,10亿条记录、2.字段的属性、每个字段有4个属性:字段名,字段类型,字段宽度,小数位数字段名的命名:只能包含字母,数字,下划线,汉字;不能含有空格,不能以数字开头,不能以下划线开头。
字段变量的命名和内存变量的命名区别:内存变量可以下划线开头。
字段类型:考点:字符型字段最大的宽度是254个字节,127个汉字;日期型的宽度是8个字节,备注型是4个字节,备注型主要用于奖惩情况,个人简介,如果存储OLE对象,照片图片数据则应该设置为通用型。
(一)表的扩展名 .dbf ,表的备注文件的扩展名 .fpt一个表如果有备注型字段,那么VFP会自动产生一个与表同名的备注文件。
不管备注型字段有多少个,一个表只有一个备注文件。
填写备注字段的内容快捷键:Ctrl+PageDn 或者双击请问xsda表的备注文件名是xsda.fpt 。
(二)表分为两个部分表结构和表记录(数据)。
(三)表分为数据库表和自由表数据库表:属于某个数据库的表。
自由表:不属于任何数据库的表。
在某一时刻,一张数据库表只能属于一个数据库。
数据库表和自由表可以相互转换数据库表和自由表的区别:1.数据库表支持长字段名(128个字符,64个汉字)。
自由表的字段名不超过10个字符。
2.只有数据库表才能设置字段的有效性。
3.只有数据库表才能设置主索引。
create 表名如:create d:\xs\xsda打开表设计器创建表。
SQL命令创建表(无需打开表设计器)create table d:\xsda (姓名C (8),性别C (2),出生日期D ,入学成绩N (5,1),住校否L,照片G)use d:\abc in 0 alias bm noupdate againin 0在最小的暂未使用的工作区打开alias bm 为打开的表到别名noupdate 不允许修改表的数据,指定为只读again 再一次打开已经在其它工作区打开的表exclusive 独占方式。
默认的方式select <工作区号|别名>select 5 &&选择5号工作区为当前工作区。
use xsda in 1use xscj in 2 alias cjselect 2 (或者select cj )补充:可以使用alias 指定表的别名,如果没有使用alias指定别名,表的名字就是别名。
工作区的别名前10个工作区的别名分别是A~J函数:select()函数作用:返回当前工作区区号;?select()当前工作区:正在操作的工作区为当前工作区。
启动VFP时,1号工作区为默认的当前工作区。
当前表:当前工作区中打开的表当前记录:记录指针指向的记录为当前记录。
打开表时,默认的当前记录为1号记录补充:一个工作区只能打开一个表,如果在同一个工作区打开第二个表,VFP会自动关闭先前打开的表。
举例说明:e &&关闭当前表e in 5 &&关闭5号工作区的表e in C &&关闭3号工作区的表e in cj &&关闭别名是cj的表display structure &&分屏显示当前表的结构结构中总计的宽度=各字段宽度的总和+1以xsda表为例,表中的姓名无论是“王小阳”还是”张华”,姓名字段的宽度都是定义时的8位宽度。
list structure &&不间断显示(一次性显示)当前表的结构display|list structure to file d:\abc将显示的结果输出到指定的文本文件display |list structure to printer将显示的结果输出到指定的打印机display|list structure in 2显示2号工作区中表的结构命令:modify structure &&打开表设计器,修改当前表的结构。
菜单:显示/表设计器修改表结构时,修改数据类型,修改宽度,当宽度变小时,数据会丢失。
所以在修改表结构前要对表文件进行备份,以免丢失数据。
copy to <表文件名> 【fields 字段列表】【for条件】复制当前表的数据,创建一个新表。
举例use xsdacopy to d:\xsda2将当前表xsda复制备份到D:\,表名为xsda2例题1:将xsda表中超过430分的学生复制到新表D:\xsda2中use xsdacopy to d:\xsda2 for 入学成绩> 430例题2:将xsda表中住校的学生复制到新表D:\xsda3中,新表只要姓名,性别,住校否。
use xsdacopy to d:\xsda3 fields 姓名,性别,住校否for住校否=.T.copy structure to <表文件名> 【fields 字段列表】复制当前表的结构,创建一个新表。
菜单显示表的数据:显示--- 浏览命令:browse 命令browse [fields字段列表] [for条件][freeze 字段名] [lock 锁定字段数] [noappend] [nodelete] [noedit]显示数据display|list[fields字段列表] [for条件] [范围] [off][to printer][to file 文件名]范围record 单词的意思是记录restdisplay 省略范围,默认的是当前记录强化训练写出下列命令1.在D:\ZG文件夹中创建一个表ZG.dbfcreate D:\ZG\ZG2.复制ZG.dbf表的数据,新建一个表DA_1.dbfuse D:\ZG\ZG &&首先打开源表copy to D:\ZG\ DA_13.复制ZG.dbf表中编号、姓名、基本工资字段的数据,新建一个表DA_2.dbfuse D:\ZG\ZGcopy to D:\ZG\ DA_2 fields 编号,姓名,基本工资4.复制ZG.dbf表的结构,新建一个表DA_3.dbfuse D:\ZG\ZGcopy structure to D:\ZG\ DA_35.复制ZG.dbf表中编号、姓名、基本工资字段的结构,新建一个表DA_4.dbfuse D:\ZG\ZGcopy structure to D:\ZG\ DA_4 fields 编号,姓名,基本工资课本P112第六大题1.显示DA_1表文件的结构。
use DA_1display structure2.浏览/编辑DA_1表的所有数据。
use DA_1browse3.浏览/编辑DA_1表所有男职工的数据。
use DA_1browse for 性别=”男”4.浏览/编辑DA_1表所有男职工的编号、姓名、部门、基本工资字段的数据。
use DA_1browse for 性别=”男” fields 编号,姓名,部门,基本工资5.显示DA_1表的所有职工的数据。
use DA_1display alllist和display的区别list后面没有范围,默认显示所有记录,指针指向的是文件尾display后面没有范围,默认显示当前记录6.显示DA_1表第5条记录的编号、姓名、部门、基本工资字段的数据。
use DA_1go 5display fields 编号,姓名,部门,基本工资定位指针recno() 返回当前记录的记录号r eccount()返回表中记录总数注意:当eof()函数为真时,recno()返回值是记录的总数+1,reccount()返回记录的总数。
当bof()函数为真时,recno()返回值是1例题1:设当前表有25条记录,当前记录号是6,执行下列命令后的输出结果是()skip 30?recno( )A.25B.26C.30D.36例题2:设当前表有35条记录,执行下列命令后的输出结果是()use xsdalist?recno( )A.25B.26C.30D.36例题3:设xsda表有35条记录,执行下列命令后的输出结果是()select 1use xsdalist?recno(2 )A.0B.26C.35D.36例题4:设xsda表有35条记录,执行下列命令后的输出结果是()select 1use xsdaskip -5?recno()A.0B.1C.35D.36注意:打开一个空表时,bof()和eof()都返回为真,此时recno()函数返回为1,reccount()返回0;replace字段名1 with 表达式1 【,字段名2 with 表达式2……】【all】【for条件】举例:replace 总分with 语文+数字+英语allreplace命令默认替换当前记录,替换所有记录必须加ALL如果带有for条件时,替换所有满足条件的记录。
此时可以不加allreplace 总分with 语文+数字+英语for 性别=”女”将姓张的同学,入学成绩都加5分replace 入学成绩with入学成绩+5 for 姓名=“张”replace 入学成绩with入学成绩+5 for left(姓名,2)=“张”xsda 表中,450分以上等级为优秀,400分以上为良好,360分以上为合格,其它为不合格SQL命令:update <表名> set 字段1=表达式1,字段2=表达式2……【where 条件】和VFP命令的区别:1)不需要打开表就能替换。
2)update是针对所有记录。
replace命令默认是针对当前记录。
替换所有记录要加ALLupdate d:\xsda set 入学成绩=入学成绩+5将xsda表中所有学生的入学成绩加5分;update d:\xsda set 入学成绩=入学成绩+5 where 性别=”女”将xsda表中所有女生的入学成绩加5分;1.append表的末尾追加多条记录append blank在表的末尾追加一条记录。
追加后,指针指向该条空白记录。
2.insert 在当前记录的后面追加多条记录。
insert blank在当前记录的后面追加一条记录。
insert before blank在当前记录的前面追加一条记录。
3.append from <表> [fields 字段列表] [for条件]将指定表中的记录添加到当前表中。
哪个表需要添加记录,哪个表就得是当前表。
例题:如将xsda表中的姓名,性别添加到xscj表中。
use xscjappend form xsda fields 姓名,性别4.SQL命令insert into <表名> [(字段列表)] values (表达式列表)如果是添加指定的字段,字段列表不能省略;如果添加表中所有的字段,字段列表可以省略;insert into d:\xsjs (学号,书号,书名,借书日期);values (“20040001”,”B05001”,”苏醒”,{^2019/10/10})添加的数据类型必须和字段的数据类型一致。