




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VFP二级培训教程
VisualFoxPro6.0
数据库治理系统
赵兵
目录
开篇错误!未定义书签。
第一章差不多概念错误味定义书签。
第二章走进VFP3
第三章VFP的数据形式、类型及运算12
第四章数据库及其操作32
第五章SQL语言58
第六章查询与视图74
第七章程序设计基础80
第八章表单设计与应用97
第九章菜单设计与应用125
第十章报表设计130
第十一章数据库应用系统的开发136
第一章数据库系统基础知识
1.1数据库系统概述
1.1数据库基础知识
1数据与数据处理
数据是指储备在某一种媒体上能够识别的物理符号。
数据处理的中心咨询题是数据治理。
2运算机数据治理
(1)人工治理。
(2)文件系统。
(3)数据库系统。
(4)分布式数据库系统。
(5)面向对象数据库系统。
3数据库治理系统
为数据库的建立、使用和爱护而配置的软件称为数据
库治理系统DBMS(DataBaseManagementSystem)□
2数据库系统
1有关数据库的概念
(1)数据库(DataBase):储备在运算机储备设备上、结
构化的有关数据的集合。
(2)数据库应用系统(DBAS):是由系统开发人员利用
数据库系统资源开发出来的,面向某一类实际应用的应用软件
系统。
(3)数据库治理系统(DBMS):对数据实行专门治理,
提供安全性和完整性等统一机制,能够对数据库的建立、使用
和爱护进行治理。
(4)数据库系统(DBS):是指引进数据库技术后的运算
机系统,实现有组织地、动态地储备大量有关数据,提供数据
处理和信息资源共享的便利手段。数据库系统由硬件系统、数
据库、数据库治理系统及有关软件、数据库治理员和用户等部
分组成。
2数据库系统的特点
(1)实现数据共享,减少数据冗余。
(2)采纳特定的数据模型。
(3)具有较高的数据独立性。
(4)具有统一的数据操纵功能。
3数据模型
1实体的描述
⑴实体。
(2)实体的属性。
(3)实体集和实体型。
2实体间联系及联系的种类
(1)一对一联系。
(2)一对多联系。
(3)多对多联系。
3数据模型简介
为了反映事物本身及事物之间的各种联系,数据库中
的数据必须有一定的结构,这种结构用数据模型来表示,通常
有以下3种。
(1)层次数据模型。
(2)网状数据模型。
(3)关系数据模型。
小提示:
数据库DB、数据库系统DBS和数据库治理系统DB
MS之间的关系是DBS包括DB和DBMS。
1.2关系模型
关系模型的用户界面专门简单,一个关系的逻辑结构
确实是一张二维表。这种用二维表的形式表示实体和实体间联
系的数据模型称为关系数据模型。
1关系术语
(1)关系:一个关系确实是一张二维表,每个关系有一
个关系名。在VisualFoxPro中一个关系储备为一个文件,扩
展名为DBF,称为“表二
对关系的描述称为关系模式,一个关系模式对应一个
关系的结构,格式为:
关系名(属性名1,属性名2,…,属性
名n)
(2)元组:在一个二维表中,水平方向的行称为元组,
每一行为一个元组。
(3)属性:将二维表中垂直方向的列称为属性,每一列
都有一个属性名。
(4)域:属性的取值范畴,即不同元组对同一个属性的
取值所限定的范畴。
(5)关键字:属性或属性的组合,其值能够唯独地标识
一个元组。在VisualFoxPro中,主关键字和候选关键字就起
唯独标志一个元组的作用。
(6)外部关键字:如果表中一个字段不是本表的主关键
字或候选关键字,而是另一个表的主关键字或候选关键字,那
么那个字段(属性)就称为外部关键字。
2关系的特点
(1)关系必须规范化。
(2)在同一个关系中不能显现同名属性,VisualFoxPr
o中表示为字段名的不同。
(3)关系中不承诺有完全相同的元组,即冗余。
(4)在一个关系中元组的次序无关紧要。
(5)在一个关系中列的次序无关紧要。
5关系运算
对关系数据库进行查询时,需要找到用户感爱好的数
据,这就需要对关系进行一定的关系运算,关系的差不多运算
有两类:传统的集合运算和专门的关系运算。
1传统的集合运算
(1)并:两个相同结构关系的并是由属于这两个关系的
全部元组组成的集合。
(2)差:两个相同结构关系的差是由属于前一个关系的
元组而不属于后一个关系的元组组成的集合。例如,关系R和
S的差结果是由属于R但不属于S的元组组成的集合。
(3)交:两个相同结构关系的交是由属于这两个关系所
共有的元组组成的集合。
2专门的关系运算
(1)选择:从关系中找出满足给定条件的元组的操作。
(2)投影:从关系模式中指定若干个属性组成新的关
系:
(3)连接:关系的横向结合,将两个关系模式拼接成一
个更宽的关系模式。
(4)自然连接:在连接运算中,按照字段值对应相等为
条件进行的连接操作称为等值连接。自然连接是去掉重复属性
的等值连接。
小提示:
选择和投影运算的操作对象只是一个表,相当于对一
个二维表进行切割。连接运算则需要把两个表作为操作对象。
如果两个表以上进行连接,应当两两进行连接。
1.3数据库设计基础
6数据库设计步骤
1设计原则
(1)关系数据库的设计应遵从概念单一化“一事一地”
的原则。
(2)幸免在表之间显现重复字段。
(3)表中的字段必须是原始数据和差不多数据元素。
(4)用外部关键字保证有关联的表之间的联系。
2设计步骤
利用VisualFoxPro来开发数据库应用系统,能够按
照以下步骤来设计。
(1)需求分析。
(2)确定需求表C
(3)确定需求字段。
(4)确定联系。
(5)设计精确
1.4VisualFoxPro系统概述
7VisualFoxPro的特点
(1)增强项目与数据库治理。
(2)提升应用程序开发的生产率。
(3)互操作性与支持Internet。
(4)充分利用已有数据
第二章走进VFP
一、VFP简介
1、VFP的认识
VFP是一个适合小型数据库治理的数据库治理系统。
2、VFP之前统领小型数据库治理领域的数据库治理系统是
dBASE,其要紧版本:dBASEH-dBASEHI-dBASEIIIPlu
s-dBASEIV
3、VFP的进化轨迹
FoxBase2.0/2.1-FoxPro2.0-*FoxPro2.5-FoxPro2.6-
VisualFoxPro3.0-*VisualFoxPro5.0-*VisualFoxPro6.0
我们学习的是VisualFoxPro6.0。
4、VisualFoxPro(包括3.0、5.0、6.0版本)的差不多特
点:
•以可视化方式开发软件界面。
•采纳面向对象的软件开发技术。
二、接近VFP
1、VFP的安装(略)
2、VFP的启动
3、VFP差不多界面的认识
・菜单栏
・工具栏
・状态栏
•主屏幕:显示交互操作结果。
•命令窗口
作用:供输入操作命令的场所。一个命令输完后按下回车
键,VFP才会执行相应的命令。
命令窗口的关闭与显示
快捷键操作一Ctrl+F4:关闭;Ctrl+F2:显示。
4、VFP的差不多命令
,clear:清除主屏幕上的显示。
・?:在主屏幕当前行的下一行显示其后要显示的内容。
・??:在主屏幕当前行内容之后显示其后要显示的内容。
讲明:差不多使用过的命令能够再用。
5、VFP的退出
鼠标操作:见演示。
键盘操作:
・快捷键:Alt+F4o
•退出命令:QUITo
三、设置VFP
1、设置VFP是指对VFP的工作环境进行一些设置,如日
期的格式等。这些设置能够通过相应命令进行,也可在“选项”
对话框中进行。
2、“选项”对话框设置VFP。
1)状态栏的设置
2)日期格式设置
3)默认名目(工作名目)设置
・了解默认名目(工作名目)
?sys(5)+sys(2OO3)
sys(5)一默认名目中的盘;sys(2003)一默认名目中的
路径。
•设置
,意义(doformgzml.scx)
4)使设置长期有效
四、学习VFP
1、VFP提供的关心系统是我们学习VFP的一本专门好教
科书,建议同学们经常使用。
2、使用关心系统而不要依靠关心系统,如此不利于我们通
过二级考试。
第三章VFP的数据形式、类型及运算
一、常量
1、常量是表示一个确定值的数据。常量有数值型、货币型、
字符型、逻辑型、日期型、日期时刻型6种。
2、数值型常量
・数值型常量表示的是一个具体的数,因此,数值型常量
也称为常数。
•数值型常量的书写方法:
(1)日常表示法
如12、+56、-64.8等。
(2)科学表示法
1.6E12表示1.6X1012;
1.6E-12表示1.6X10-12;
-L6E12表示-1.6X1012;
-1.6E-12表示-1.6X10-12。
3、货币型常量
•货币型常量用来表示一个具体的货币值。货币型常量的
小数位数采纳4位。
•货币型常量的书写方法:
如$12,$12.68,-$12.68等。
4、字符型常量
•字符型常量用来表示一串确定的字符,因此,字符型常
量也称为字符串。
・字符型常量的书写方法:
'abed'、"abed",[abed]均表示字符串abed。
・讲明
(1)表示字符型常量前后的,、"或口称为字符型常量的定
界符,它表示字符串的开始和终止,不是字符串的组成内容。
字符串的前后定界符必须一致,如,abed"等是错误的。
(2)当字符串中包含,、"或口时,必须使用其它的定界符,
如字符串ab'ed应表示为"ab,cd"或[ab'ed]。
(3)字符型数据中的字母大小写是区分的,例如"abed"和
"ABCD"是不同的两个字符串。顺便讲一下,命令中的字母大小
写是不区分的,如Clear、cleAr、CLEAR等均表示清除主屏幕
显示命令。
(4)两个单引号(”)、两个双引号("")、一对中括号([])
均表示没有组成内容的字符串,如此的字符串称为空串。
(5)组成字符串的内容也能够有空格,如"abcd"、"a
bed\""等差不多上正确的字符串。
(6)注意定界符应是英文符号,不能是中文符号。顺便讲
一下中英文符号咨询题:除了字符串中能够随意使用符号以外,
其它场合均只能使用英文符号!
5、逻辑型常量
•逻辑型常量用来表示一确定的逻辑值。逻辑值只有真值
和假值两个。
•逻辑型常量的书写方法:
真值:.T.、.t.、.Y.、.y.;
假值:.F.、.f.、.N.、.n.。
6、日期型常量
・日期型常量用来表示一确定的日期。
・日期型常量的书写方法:
2004年7月14日可表示为:{人2004-7-14}、{人2004.7.14}、
{人2004/7/14}、{人2004714}。
7、日期时刻型常量
・日期时刻型常量用来表示一确定的日期和时刻。
・日期时刻型常量的书写方法:
格式:{人日期,时刻}
其中,日期的书写格式同日期型常量,时刻的书写格式有:
8:10:30、18:15:25、8:10:30A,8:10:30AM,8:10:30P,8:10:30P
Mo
二、变量
1、变量是表示可变值的数据。变量用一名称来表示,该名
称称为变量名。变量名一样以字母或汉字开始,其后能够是字
母、汉字、数字及某些符号(如下划线)。
摸索:a,aa,bl2,c_l,alB2,2d4,同学们,“同学们”。
2、变量的值能够通过赋值命令获得:
a=12表示为变量a赋一个值12;
store34.2toa,b,c表示将值34.2分别赋给变量a,b,
Co
3、赋值命令的格式:
变量=表达式
store表达式to变量1,变量2,
4、变量的类型由其值的类型决定。
5、变量的另一种使用形式一一数组
•一般变量是一个变量对应一个值,而数组变量却一个变
量对应多个值。数组变量中的每一个值称为数组元素。
•数组变量的取名同一般变量,数组元素用数组变量名加
下标的方法来表示,如a(1)、a(2)、b(1,1)、b(1,2)
等。也确实是讲,数组用下标来区分其元素。
•如果一个数组,其元素只用一个下标,则该数组称为一
维数组;如果一个数组,其元素使用两个下标,则该数组称为
二维数组。
•数组变量的使用与一般变量的使用有所不同:数组变量
必须先定义,然后才能使用。
・定义一维数组变量:
dimension/declare数组名(下标上限)
下标上限指下标的最大值。下标下限指下标的最小取值。
VFP中,下标的下限规定为1,因此无须在定义数组时指定。
・定义二维数组变量:
dimension/declare数组名(第一个下标上限,第二个下标
上限)
•数组变量定义后,如果未对其赋值,则各元素为假值。
•给数组变量赋一个值时,其元素均得到该值,也能够为
其元素分别赋以不同的值。
•数组变量不直截了当参加运算,其元素能够。
6、和变量有关的常用命令
,listmemory命令
格式:p60o
功能:显示变量信息。
讲明:
。书中命令格式的书写约定:中括号部分表示选项;尖括
号部分内容(汉字部分)要按照要求提供;竖杠(斜杠)两边
内容表示只能选择其一。
。显示的变量信息不仅有我们自己使用的变量,而且包括
VFP本身所固有的变量(这些变量称为系统变量,系统变量名
均以下划线开始)。
O"like〈通配名〉”表示只显示和通配名一致的变量信息。
通配名是指包含?或*的名称,其中,?表示该位置能够是任意
的某个符号,*表示该位置能够是任意多的符号。例如a?c表示
如此的一些名称:第一位是a,第二为任意,第三位是c;a*c
表示如此的一些名称:第一位是a,最后一位是c,中间内容任
思、O
O“toprinter"表示将变量信息同时送打印机打印;“tof
ile〈文件〉”表示将变量信息同时存入到指定的文件中。
。当显示的变量信息超出一个屏幕时,前面的信息会滚出
屏幕。
OVFP命令中规定使用的英文单词称为保留字。使用时,
保留字能够只写出前面部分,但至少要有4位。
,displaymemory命令
格式:p60o
功能:显示变量信息。
讲明:与listmemory命令的唯独区别在于:当显示的变量
信息超出一个屏幕时,该命令能做到一个屏幕一个屏幕地显示。
,clearmemory命令
格式:clearmemory
功能:清除所有变量。
讲明:系统变量是我们清除不掉的。
,release命令
格式1:release变量1,变量2,……
功能:清除指定的变量。
格式2:releaseall
功能:清除所有变量。
格式3:releasealllike通配名
功能:清除和通配名一致的变量。
格式4:releaseallexcept通配名
功能:清除和通配名不一致的变量。
二、表达式
1、表达式是对数据(常量、变量)进行运算的式子。运算
能够通过运算符,也能够通过函数。为改变运算的顺序,也能
够在表达式中使用圆括号。
讲明:
・运算机中,表达式里的所有字符均并列书写。
・单个常量或变量是表达式的特例,即属于表达式范畴。
2、数值表达式
•对数值型、货币型数据进行运算的式子,其值为数值型
或货币型。
・算术运算符:
**或人:乘方运算;
*:乘法运算;
/:除运算;
%:求余运算;
+:加运算;
-:减运算。
3、字符表达式
•对字符型数据进行运算的式子,其结果仍为字符型。
・字符运算符:
+:将前后两个字符串进行合并,如[abc]+[def],其结果
为字符串[abcdef]。
-:将前后两个字符串进行合并,但将前面字符串尾部的空
格挪到合并后的新字符串尾部。如[abc]-[def],其结果为字符
串[abcdef]0
两个字符运算符的优先级相同。
4、日期时刻表达式
•对日期时刻型数据进行运算的式子,其结果类型依情形
而定。
•日期时刻表达式类型:p64表3.3。
5、关系表达式
•通过关系运算符进行比较的式子。如果比较成立,结果
为逻辑值真,否则为假。
・关系运算符:p65表3.4。关系运算符的优先级相同,但
低于前面的运算符。
•关系运算符前后参与比较的数据要求是同一类型(数值
型能够和货币型比较)。
・关系表达式的运算结果和关系运算符两边的数据大小紧
密有关,VFP中,数据大小的规定:
(1)数值型、货币型
同算术中大小。
(2)日期型、日期时刻型
靠后的日期、时刻大。
(3)逻辑型
真大于假。
(4)字符型
【单个字符大小的规定】
当设置为Machine(机器)顺序时:
字符大小:空格〈数字字符('0'至『9')〈大写字母〈小
写字母;
汉字大小:常用汉字以拼音顺序排大小,如‘李'<'张
当设置为PinYin(拼音)顺序时:
字符大小:空格(数字字符('0'至『9')<'a'<'N
<,b,<,B,……;
汉字大小:以拼音顺序排大小,如‘李'<'张'。
当设置为Stroke(笔画)顺序时:
字符大小:空格(数字字符('0'至『9')<'a'<'N
<,b,<,B,……;
汉字大小:以书写笔画多少确定大小,笔画多的大。
【三种顺序的设置】
方法一:“选项”对话框中设置。
方法二:用命令设置:
setcollateto“Machine”
setcollateto"PinYin”
setcollateto“Stroke”
【字符型数据的大小】
两个字符串大小的判定规则:
自左至右,逐个字符进行比较,直到某个字符能辨论出大
小为止。七,(字符型数据大小规则图解)
非精确比较方式(默认方式):
两个字符串的比较以右边字符串的终止而终止。亡(比较
方式图解)
精确比较方式:
两个字符串的比较以最长字符串的终止而终止。e(比较
方式图解)
【比较方式的设置】
方法一:“选项”对话框中进行。
方法二:命令
SETEXACTON&&设置为精确比较方式
SETEXACTOFF&&设置为非精确比较方式
【摸索、练习与提示】
1)了解当前比较方式。提示:通过SETCEXACT)函数也
可了解。
2)分别在非精确比较方式和精确比较方式下判定下述关系
表达式的值:
'XYZ'='XY'XY'='XYZ','XYZ'=='XY'
XY'=='XYZ';XY'<'XYZ'XYZ'〉'XY'。
6、逻辑表达式
•对逻辑型数据进行运算的式子,结果为逻辑型。
・逻辑运算符:
.not.或not或!:非运算;
.and.或and:与运算;
.or.或or:或运算。
优先级(高一低):非、与、或。但它们的优先级均低于前
面的运算符。
讲明:如果一个运算符只对一个数据进行运算,称之为单
目运算符;如果对两个数据进行运算,称为双目运算符。
7、逻辑表达式、关系表达式的意义
VFP中,使用逻辑表达式、关系表达式表示条件。当逻辑
表达式、关系表达式的值为真时,所表示的条件成立;当逻辑
表达式、关系表达式的值为假时,所表示的条件不成立。
例:试用关系表达式或逻辑表达式表示如下条件,并验证
条件的成立与否和表达式真假值之间的关系。
1)A大于5
2)A不大于5
3)A大于5且B小于10
4)A大于5或B小于10
5)A在5和20之间
四、常用函数
1、函数是进行数据运算的另一种途径。
2、函数的一样使用格式:
函数名(自变量,自变量,……)
自变量又称参数。无自变量时,圆括号也要写上,如DAT
E()等。
3、常用函数
(1)数值处理函数
•ABS函数
功能:求一个数的绝对值。
例:ABS(67),ABS(-67+89),ABS(-82)
•SIGN函数
功能:当自变量值正时,返回1;当自变量值负时,返回-
1;当自变量值为0时,返回0。
例:当变量A的值为正时,B赋以值8+20;当变量A的
值为负时,B赋以值8-20;当变量A的值为。时,B赋以值8。
•SQRT函数
功能:求正数的平方根。
例:SQRT(2)
讲明:默认运算结果为2位小数。SETDECIMALSTO命
令可设置运算结果的小数位数。
•PI函数
功能:得到n的值。
例:PIo
•INT函数
功能:返回自变量的整数部分。
例:INT(1.3),INT(1.6),INT(-1.3),INT(-1.6)
•CEILING函数
功能:返回大于或等于自变量的最小整数。
例:CEILING(1.3),CEILING(2),CEILING(-1.3),C
EILING(-2)
•FLOOR函数
功能:返回小于或等于自变量的最大整数。
例:FLOOR(1.3),FLOOR(2),FLOOR(-1.3),FLOO
R(-2)
•ROUND函数
功能:对自变量的值进行四舍五入运算。运算时,第二个
自变量表示精确到哪一位。
例:ROUND(345.345,2),ROUND(345.345,1),RO
UND(345.345,0),ROUND(345.345,-1)
•MOD函数
功能:求两个整数相除以后的余数。
例:MOD(10,3),MOD(9,3),MOD(11,3)
讲明:有负数的求余不考虑。
•MAX函数
功能:从多个自变量中挑出最大的值。
例:MAX(1,2,7,4,5),MAX('A','ABC','BC')
讲明:自变量的类型应一致。
•MIN函数
功能:从多个自变量中挑出最小的值。
例:MIN(1,2,7,4,5),MIN「A"'ABC','BC')
讲明:自变量的类型应一致。
(2)字符处理函数
•LEN函数
功能:求字符串的长度。
讲明:一个汉字长度为2,一个英文字符(包括空格)长
度为lo
例:LEN(“二级VisualFoxPro培训班”)
•LOWER函数
功能:将自变量中的所有字母转化为小写字母。
例:LOWER(“二级VisualFoxPro培训班”)
•UPPER函数
功能:将自变量中的所有字母转化为大写字母。
例:UPPER(“二级VisualFoxPro培训班”)
•SPACE函数
功能:产生指定个数空格组成的字符串。
例:SPACE(10)
•REPLICATE函数
功能:由指定字符串重复组合产生字符串。
例:REPLICATE('*',10),REPLICATE('ABCD',5)
•TRIM函数
功能:将字符型自变量右边空格去掉。
例:TRIM("VisualFoxPro”)
・LTRIM函数
功能:将字符型自变量左边空格去掉。
例:LTRIM("VisualFoxPro”)
•ALLTRIM函数
功能:将字符型自变量左、右两边的空格均去掉。
例:ALLTRIM("VisualFoxPro”)
•LEFT函数
功能:从一个字符串左边开始取子串。
例:LEFT(“上午好!”,2),LEFT(“上午好!”,4)
•RIGHT函数
功能:从一个字符串右边取子串。
例:RIGHT(“上午好!”,2),RIGHT(“上午好!”,4)
•SUBSTR函数
功能:从一个字符串中取子串。
例:SUBSTR(“上午好!”,3,2),SUBSTR(“上午好!”,
3,4)
•OCCURS函数
功能:求第一个字符串在第二个字符串中显现的次数。
例:OCCURS("ab","huabhgtabagfbyrba"),OCCURS("a
b","huahgtbagfbyrba")
•AT函数
功能:求第一个字符串在第二个字符串中显现的位置。
例:AT("ab","huABygabhgtabagf"),AT("ab","huAByga
bhgtabagf",2)
•ATC函数
功能:求第一个字符串在第二个字符串中显现的位置,但
不区分字母大小写。
例:ATC("ab","huABygabhgtabagfATC("ab","hu
ABygabhgtabagf",2)
•STUFF函数
功能:用第二个字符串替换第一个字符串中的内容。
例:STUFF("gtyabku",3,4,"AA")
摸索:
1)在"ab"的a、b之间插入"和"。
2)将"淮北煤炭师范学院”中的“煤炭”二字删除。
•CHRTRAN函数
功能:对第一个字符串中的字符进行替换。
例1:CHRTRAN("ABACAD","ACD","X12")
例2:CHRTRAN("大伙儿好大伙儿你")
・LIKE函数
功能:第一个字符串中的字符和第二个字符串中字符是否
对应相同,是返回真,否则返回假。
例1:LIKE("ABA","ABAD")
讲明:第一个字符串中能够使用通配符。
例2:LIKE("AB*","ABAD")
(3)日期、时刻函数
•DATE函数
功能:返回当前系统日期。
例:DATE()
•TIME函数
功能:返回当前系统时刻。
例:TIME()
讲明:函数值为字符型。
•DATETIME函数
功能:返回当前系统日期及时刻。
例:DATETIMEO
・YEAR函数、MONTH函数、DAY函数
功能:分别返回日期或日期时刻型自变量对应的年份、月
份和生活。
例:YEAR(DATE()),MONTH(DATEQ),DAY(DATE())
・HOUR函数、MINUTE函数、SEC函数
功能:分别返回日期时刻型自变量对应的时、分、秒。
例:HOUR(DATETIME()),MINUTE(DATETIME()),SEC
(DATETIMEO)
摸索:10小时后是几点?
(4)转换类函数
•STR函数
功能:将数值型自变量转换为字符型。
例1:STR(123.456)
讲明:函数值默认10位,不带小数部分。能够加上第2、
第3个参数,用来分别表示总位数和小数位数。默认或指定位
数比实际位数多时,函数值的左边补以相应个数的空格,以保
证总位数。
例2:STR(123.456,5),STR(123.456,5,1),STR(123.4
56,5,2),STR(123.456,6,2),
STR(123.456,3,2),STR(123.456,2)
,VAL函数
功能:将字符型自变量转换为数值型。
例:VAL([1234.56]),VAL([123a]),VAL([下午好])
•DTOC函数
功能:将日期型自变量转换为日期形式的字符串。
例1:DTOC(DATEO)
讲明:转换后的字符串组成和当前日期格式有关,但加上
1参数后,将转化为YYYYMMDD这种固定格式的字符串。
例2:DTOC(DATE(),1)
•TTOC函数
功能:将日期时刻型自变量转换为日期时刻形式的字符串。
例1:TTOC(DATETIME())
讲明:转换后的字符串组成和当前日期、时刻格式有关,
但加上1参数后,将转化为YYYYMMDDHHMMSS这种固定
格式的字符串。
例2:TTOC(DATETIME(),1)
•CTOD函数
功能:将日期形式的字符串转化为日期型。
例:CTOD("2004/7/16")
讲明:字符串的日期形式应和当前日期格式一致,否则将
转化为空日期。
・CTOT函数
功能:将日期时刻形式的字符串转化为日期时刻型。
例:CTOT("2004/7/1610:10")
(5)测试类函数
•BETWEEN函数
功能:判定一个数据是否在另两个数据之间,是为真,否
则为假。
例:BETWEEN(2,1,16),BETWEEN("2","1","16")
•EMPTY函数
功能:判定一个数据是否空值(p76表3.7),是为真,否
则为假。
例:EMPTY(0),EMPTY("0"),EMPTYEMPTY("
"),EMPTY({})
•VARTYPE函数
功能:判定一个数据的类型。
例:VARTYPE(A)
4、典型函数介绍
・条件函数
用法:HF(逻辑型表达式,表达式1,表达式2)
功能:如果逻辑型表达式的值为真,则表达式1的值作为
函数值,否则,表达式2的值作为函数值。
例:函数IIF(X>10,'AAA'BBB')
摸索:当变量X分别取值10、0、100时,函数nF(X>10,'
AAA',IIF(X<10/BBB'/CCC'))的值。
•宏替换函数
用法:&字符型变量.
功能:用字符型变量的值(不带定界符)替换整个宏替换
函数。
例:假设A=,76+28',咨询表达式1+A和1+&A.分别等
价于什么?
讲明:
(1)该函数是一个十分有用又十分专门的一个函数。
(2)宏替换函数显现在字符串中时也还有效,而其它函数
显现在字符串中时被当作一个个字符处理。即:
<A='ABC,则X&A.Y,等价于XABCY,;而,ABS(-86),却
不等价于,861
(3)宏替换函数最后的小数点是宏替换函数的终止标记。
当宏替换函数和其后的内容能够明确区分清晰时,该终止标记
能够省略。
摸索:下面的表达式中,哪些宏替换函数的终止标记能够
省略?假设A='76+28\
&A.+52,&A.6-285&A.BCDEFG'。
第四章数据库及其操作
一、认识VFP数据库
1、VFP中,数据库是一个扩展名为DBC的文件,但为了
储存与数据库有关的其它信息,VFP还会自动地为每个数据库
文件建立同差不多名但不同扩展名的另两个文件:扩展名为D
CT的数据库备注文件和扩展名为DCX的数据库索引文件。
摸索:假设我们建立了数据库SJK.DBC,咨询:实际会产
生哪些文件?
2、VFP数据库要紧由表组成。组成数据库的表能够是一个,
也能够是多个。
3、VFP中,表是一个扩展名为DBF的文件。
4、VFP中,表就相当于我们日常生活中所见的各种表格。
日常表格中,表头上所列出的各项在VFP中叫字段;表格中的
一行内容在VFP中叫作一个记录。,拶(字段与记录)
5、尽管数据库包含表,但数据库文件和表文件从文件夹中
看差不多上独立的文件。t(数据库和表的关系)
6、VFP中,数据库建立的一样步骤是:
(1)建立数据库。
(2)在数据库中建立表。
(3)重复(2),创建数据库中的其它表。
(4)关闭数据库。
讲明:关闭数据库后,其所属的表也被关闭。或者,先关
闭表,再关闭数据库。
7、VFP中,使用数据库的一样步骤:
(1)先打开数据库,再打开表。或直截了当打开表(现在,
表所属的数据库也会自动打开)。
(2)对表进行操作。
(3)关闭数据库。或者先关闭表,再关闭数据库。
二、数据库及表的差不多操作
1、建立数据库
・菜单方法
•命令方法
CREATEDATABASE[数据库]
讲明:
1)命令中,不指定要建立的数据库时,会显现对话框,通
过对话框来选择数据库的位置及提供数据库名。
2)命令中,指定要建立的数据库时,能够省略数据库扩展
名。如果要建立的数据库文件不想放在默认名目,则文件名前
面还必须提供文件位置。如果文件位置或文件名中用到空格,
则所提供的内容前后应加上字符定界符。
3)菜单方式建立数据库后,会自动显示出“数据库设计器”
窗口(我们今后简称为“数据库窗口”),命令方式建立时可不
能。执行“MODIFYDATABASE”命令可显示数据库窗口。
4)不管显示不显示数据库窗口,新建的数据库都将是打开
状态。即关闭数据库窗口,不表示关闭数据库。
5)分别建几个数据库时,这些数据库差不多上打开状态,
但叫“当前数据库”的只有一个。从“常用”工具栏能够看出
差不多打开的数据库、当前数据库,也能够选择当前数据库。
2、在数据库中建立表
・菜单方法
•命令方法
CREATE[表]
讲明:
1)命令中,不指定要建立的表时,会显现对话框,通过对
话框来选择表的位置及提供表名。
2)命令中,指定要建立的表时,能够省略表扩展名。如果
要建立的表文件不想放在默认名目,则文件名前面还必须提供
文件位置。如果文件位置或文件名中用到空格,则所提供的内
容前后应加上字符定界符。
3)一个表的组成字段称为表的结构。
4)如果当前有多个数据库是打开状态,则新建的表将属于
当前数据库。
5)表建好后,自动处在打开状态,但看不到表内容。
6)一样情形下,打开一个表将自动关闭差不多打开的表。
即一样情形下,只能打开一个表。当前所打开的表从状态栏能
够看出有关信息。从状态栏所看到的表称为当前表。
3、关闭表和数据库
关闭表
•命令方法
USE
关闭数据库
•命令方法
CLOSEDATABASES&&关闭当前数据库
CLOSEDATABASESALL&&关闭所有数据库
4、打开数据库
・菜单方法
•命令方法
OPENDATABASE[数据库]
讲明:用“OPENDATABASE”打开数据库时并不自动
显示数据库窗口,要想显示,须再执行“MODIFYDATABAS
E”命令。
5、打开表
•菜单方法
•命令方法
USE表[EXCLUSIVE/SHARED]
讲明:
1)选择EXCLUSIVE选项时,表以独占方式打开;选择S
HARED选项时,表以共享方式打开。省略时,默认以独占方
式打开。独占方式打开时,表的结构能够修改,表的记录能够
删除。
2)一样情形下,新打开一个表时,之前打开的表会被关闭。
6、修改表结构
•菜单方法:“显示|表设计器”
•命令方法:MODIFYSTRUCTURE
讲明:修改一个表结构前,相应表必须打开。
三、表的有关操作
专门提示:对表进行任何操作前,该表都要预先打开。
1、表窗口及其操作
•表窗口的打开
菜单方式:“显示|扫瞄二
命令方式:
命令1:BROWSE[LAST]
命令中的LAST选项将使表窗口以上次的显示外观显现。
命令2:EDIT
命令3:CHANGE
命令4:APPEND
・讲明:
(1)表窗口有两种显不方式:扫瞄方式和编辑方式。
(2)表窗口有两种工作方式:追加方式和非追加方式。使
用APPEND命令打开的表窗口自动处在追加方式,其余均处在
非追加方式。如果处在非追加工作方式,能够将其转换为追加
方式;反之不行。
(3)表窗口显现后,能够对表的内容进行任意的修改。所
以,如果表是以只读方式打开时,则禁止修改。命令方式打开
表示,加上“NOUPDATE”选项表示以只读方式打开。
(4)表窗口显现后,VFP会自动多出一个“表”菜单,从
中,我们能够进行许多操作。
2、定位记录指针
・记录指针的认识
(1)表中有许多记录,为了指示出当前可操作的记录,V
FP自动为打开的表安排一个“记录指针:记录指针所“指”
的记录称为当前记录。
(2)一个表刚打开时,记录指针指向1号记录。随着操作
的进行,记录指针会自动改变其指向。我们也能够人为移动记
录指针。
(3)记录指针的位置能够从状态栏看出。也可通过RECN
0()函数值获知。
・记录指针的定位
GOTOP或GOTOTOP
将记录指针指向表中最前面的记录。
讲明:在记录指针差不多指向最前面记录的情形下,如果
让指针再前移“一步”,则称”指向了表的开头“,这时,函数
BOFO的值将为真。在指针差不多指向表头的情形下,再“越
雷池一步”,就会出错。
GOBOTTOM或GOTOBOTTOM
将记录指针指向表中最后面的记录。
讲明:在记录指针差不多指向最后面记录的情形下,如果
让指针再后移“一步”,则称“指向了表的末尾”,这时,函数
E0FO的值将为真。在指针差不多指向表尾的情形下,再“越
雷池一步”,就会出错。
GO记录号或GOTO记录号或
记录号
将记录指针指向指定记录号的记录。
讲明:VFP会自动对表中的记录进行编号,这确实是我们
所讲的记录号。记录号从1开始,记录号的顺序反映了记录在
表中的实际顺序。
SKIP
记录指针后移一个记录。
SKIPn(n为正整数)
记录指针后移n个记录。
SKIP-n(n为正整数)
记录指针前移n个记录。
・摸索:将记录指针指向表头,查看当前记录号;将记录
指针指向表尾,查看当前记录号。所显示的记录号与你认为的
不同吗?你不能懂得吗?
3、在主屏幕显示记录
•LIST
显示表中全部记录。显示完毕,记录指针指向表尾。
•LIST范畴
显示指定范畴内的记录。范畴:ALL一全部记录,NEXT
n一当前记录开始的n个记录,REST—当前记录到最后一个记
录,RECORDn—第n号记录。
•LISTFOR条件
显示表中符合条件的记录。
•LISTFOR条件范畴或LIST范畴FOR
条件
仅显示指定范畴内符合条件的记录。
•DISPLAY
显示当前记录。
•DISPLAY范畴
同LIST范畴。
•DISPLAYFOR条件
同LISTFOR条件。
•DISPLAYFOR条件范畴或DISPLAY范
畴FOR条件
同LIST范畴FOR条件。
・讲明:
(DLIST命令和DISPLAY命令除了第一种用法上功能有
差别外,另外一个差别是:当显示的记录信息多时,LIST命令
不能一屏一屏显示记录信息,而DISPLAY命令能够。
(2)命令中,若加上OFF选项,则不显示记录号。
(3)能够指定显示字段,格式:FIELDS字段名1,字段
名2,……o
(4)如果期望记录信息送往打印机,可加上TOPRINT
ER选项。
(5)VFP命令中,若同时显现多个选项,一样它们能够以
任意顺序显现。
(6)留意显示前后记录指针位置的变化。
4、向表中添加记录
•INSERT
当前记录之后插入一空记录,同时打开表窗口以便填写内
容。
•INSERTBLANK
当前记录之后插入一空记录,但不打开表窗口。
•INSERTBEFORE
当前记录之前插入一空记录,同时打开表窗口以便填写内
容。
•INSERTBEFOREBLANK
当前记录之前插入一空记录,但不打开表窗口。
•APPEND
在表的最后添加一空记录,同时打开表窗口以便为空记录
填写内容。
•APPENDBLANK
在表的最后添加一空记录,但不打开表窗口。
•APPENDFROM表[FOR条件]
将指定表中记录有条件或无条件地追加到当前表后。命令
中指定的表无须打开。
例:先分别查看“学生Ldbf”和“学生.dbf”的内容,然
后将“学生Ldbf”中年龄小于20的记录追加到“学生.dbf”中,
并查看追加后的“学生.dbf”内容。
5、自动替换字段内容
命令格式:
REPLACE字段1WITH表达式1,字段2WITH
表达式2,……[范畴][FOR条件]
功能:对表中指定范畴内符合条件的记录进行替换。若省
略范畴和条件,只对当前记录进行替换。
例:对学生表进行如下替换:
•每人奖学金为1000元。
•按照出生日期重新运算年龄(CEILING)
•85年前(包括85年)出生的学生奖学金增加100元。
•男生奖学金加100,女生奖学金加150。
6、记录的删除
•逻辑删除(即在记录上做个删除标记,并不是确实删除)
命令格式:DELETE[范畴][FOR条件]
功能:删除指定范畴内符合条件的记录。省略范畴和条件
时,只删除当前记录。
讲明:如果当前记录被逻辑删除,则函数DELETEDO
值为真。
•逻辑删除记录的复原(即取消删除标记)
命令格式:RECALL[范畴][FOR条件]
功能:复原指定范畴内符合条件的记录,如果它被逻辑删
除的话。省略范畴和条件时,只复原当前记录。
讲明:也能够在表窗口中,通过鼠标或Ctrl+T键逻辑删除
/复原记录。
・物理删除(确实将记录从表中删除)
命令1:PACK
功能:物理删除差不多逻辑删除的记录。
命令2:ZAP
功能:物理删除表的全部记录,不管其是不是已逻辑删除。
7、查找记录
命令格式:LOCATEFOR条件[范畴]
功能:从表中找出符合条件的第一个记录。
讲明:
(1)找到如此的记录后,只是将记录指针指向所找到的记
录,并可不能显示出所找记录的内容。
(2)若要查找表中符合条件的下一个记录,使用Continu
e命令。
(3)找到记录时,函数FOUND()值为真,否则为假。
摸索:找不到符合条件的记录时,记录指针将指向何处?
8、获知表中记录个数
从状态栏能够看出,也可通过RECCOUNT()函数值获
四、索引
1、索引的认识
・索引是为了在不改变表中记录顺序的情形下得到新的记
录顺序。
假设学生表:
记录号学号姓名年龄
12003001张三21
22003002李四20
32003003王五19
42003004张三18
52003005赵六20
如果我们期望得到以“姓名”升序排列的记录顺序,做法
是:建立一个以“姓名”升序排列的如下“索引表”:
姓名记录号
李四2
王五3
张三1
张三4
赵六5
从该“索引表”中,就能够看出“姓名”升序排列下的记
录顺序。该“索引表”就叫作上述学生表的一个索引。
一个表,其索引能够有多个。
•索引的有关概念
(1)索引名:为建立的索引所取的名字。
(2)索引项(索引关键字或索引表达式):建立索引的依
据,如上例中的“姓名”字段。索引项能够是一个字段,也能
够是一个表达式。如期望建立一个如此的索引:以“姓名”升
序排列,当记录的“姓名”相同时,再以“年龄”的升序排列。
这时,索引项确实是:姓名+年龄?索引如下:
姓名+str(年记录号
龄,2)
李四202
王五193
张三184
张三211
赵六205
•索引的类型
(1)主索引:如果不同记录,其索引项值要求不同,贝L
如此的索引能够定义为主索引。
(2)候选索引:如果不同记录,其索引项值要求不同,贝11,
如此的索引也能够定义为候选索引。
主索引与候选索引的区别是:一个表,只能有一个主索弓1,
能够有多个候选索引。
(3)一般索引:对索引项值无限制要求的索引可定义为一
般索引。
(4)唯独索引:关于索引项值相同的记录,在索引中只记
录第一个记录。有这种要求的索引应定义为唯独索引。3(唯
独索引图解)
•索引的储存
(1)索引不是和表一起储存在表文件中,而是单独储存到
索引文件中。
(2)索引文件的类型:
单索引文件:一个索引文件只能储备一个索引。单索引文
件的扩展名为IDXo
复合索引文件:一个索引文件能储备多个索引,不同索引
以索引名进行区分。复合索引文件的扩展名为CDX。如果表的
某个复合索引文件,其差不多名与表同名,则该复合索引文件
称为结构化复合索引文件,否则称为非结构化复合索引文件。
(3)明显,一个表的单索引文件能够有多个,非结构化复
合索引文件也能够有多个,但结构化复合索引文件只能有一个。
实际使用中,以结构化复合索引文件最常用。
・索引的其它认识
(1)同数据库和表一样,索引也只有当其是打开状态时,
索引才能使用。新建一个索引时,其自动处于打开状态;结构
化复合索引文件中的索引,随表的打开而自动打开;单索引文
件及非结构化复合索引文件中的索引必须人为打开。
(2)当多个索引被打开时,能够指定某个索引为当前索弓
当前索引也能够没有。如果没有当前索引,则对表进行处理时,
以表中的记录顺序进行(例LIST、GOTOP等);如果有当前
索引,则对表进行处理时,以当前索引中的记录顺序进行(例
LIST、GOTOP等)。
(3)当索引处在打开状态时,索引的内容会随表内容的改
变而自动调整。也确实是讲,当一个索引处在关闭状态时,表
内容改变后,索引内容得不到及时调整,这就导致索引内容的
“老化”。为此,能够打开索引,对其进行重新索引即可。可见,
表的索引一样都要让其处在打开状态。
2、索引的有关操作
•索引的建立
(1)结构化复合索引文件中索引的建立
在“表设计器”中建立:见演示。
命令方式建立:
INDEXON索引项TAG索引名[ASCENDING/DESCE
NDING][UNIQUE/CANDIDATE]
讲明:UNIQUE一建唯独索弓],CANDIDATE—«选索弓1,
不指定为一般索引。
(2)单索引文件中索引的建立
INDEXON索引项TO单索引文件[ASCENDING/DES
CENDING][UNIQUE/CANDIDATE]
(3)非结构化复合索引文件中索引的建立
INDEXON索引项TAG索引名OF非结构化复合索引
文件[ASCENDING/DESCENDING][UNIQUE/CANDIDATE]
讲明:新建的索引自动处于打开状态,且用命令方式建立
的索引为当前索引(“表设计器”中建立的索引不被自动设为当
前索引)。
•索引的打开
(1)结构化复合索引文件中索引的打开
随表的打开而打开。索引打开后,没有指定当前索引。
(2)单索引文件、非结构化复合索引文件中索引的打开
K和表一起打开H
USE表INDEX索引文件1,索引文件2,……
K表打开后打开X
SETINDEXTO索引文件1,索引文件2,[ADD
ITIVE]
讲明:一个或一批索引文件打开后,之前打开的索引文件
(不包括结构化复合索引文件)将自动关闭,除非命令中有“A
DDITIVE”选项。
・设置当前索引(又称主控索引)
SETORDERTO索引号[ASCENDING/DESCENDING]
索引号从1开始编号,编号顺序:单索引文件中索引、结
构化复合索引文件中索引、非结构化复合索引文件中索引。
SETORDERTO[TAG]索引名[ASCENDING/DESC
ENDING]
单索引文件中索引的索引名为单索引文件的差不多名。
讲明:
(1)如果显现索引名重名情形,应在索引名后指明其所在
的复合索引文件:OF复合索引文件。
(2)当前索引也能够重新指定升、降序,不重新指定为建
立索引时的升、降序。
(3)SETORDERTO或SETORDERTO0表示不指定
当前索引。
(4)也能够在打开索引时指定当前索引。这时,在打开索
引命令中加上如下选项即可:
ORDER索引号[ASCENDING/DESCENDING]
ORDER[TAG]索引名[ASCENDING/DESCENDING]
(5)表窗口显现后,选择“表/属性”菜单功能能够了解
当前打开的索引、索引的顺序,也能够设置当前索引。
(6)ORDER。函数能够了解当前索引的索引名。无当前索
引时,为空串。
・重新索引
命令:REINDEX
功能:对所有打开的索引进行重新索引。
讲明:当表窗口显现后,也能够通过“表”菜单进行重新
索引。
•按照索引项查找记录
格式:SEEK索引项值
功能:按照当前索引,找出指定索引项值的第一个记录,
将记录指针指向该记录。如未找到,记录指针指向表尾。
讲明:
(1)“索引项值”处能够是一个表达式。
(2)找到后,函数FOUND()值为真,否则为假。
(3)要想找到相同索引项值的下一个记录,使用SKIP命
令即可,不能使用CONTINUE命令。
(4)如果想在非当前索引中,按照其索引项进行查找,则
命令中应指定一个索引:
ORDER索引号[ASCENDING/DESCENDING]
ORDER[TAG]索引名
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车和食品合作协议书
- 无纸化商户签约协议书
- 课程置换协议书
- 联通授权协议书
- 自驾免责协议书
- 药厂授权协议书
- 平台店铺代运营协议书
- 药品三方协议书
- 豪车合成协议书
- 旧房屋顶翻合同协议书
- 病假医疗期申请单(新修订)
- 钻孔桩钻孔记录表(旋挖钻)
- 660MW机组金属监督项目
- JBK-698CX淬火机数控系统
- ZJUTTOP100理工类学术期刊目录(2018年版)
- 心理学在船舶安全管理中的应用
- JJF(鄂) 90-2021 电子辊道秤校准规范(高清版)
- 超星尔雅学习通《今天的日本》章节测试含答案
- 餐饮量化分级
- 三一重工SCC2000履带吊履带式起重机技术参数
- [精品]GA38-2004《银行营业场所风险等级和防护级别的规定》
评论
0/150
提交评论