vfp笔记课件资料_第1页
vfp笔记课件资料_第2页
vfp笔记课件资料_第3页
vfp笔记课件资料_第4页
vfp笔记课件资料_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

第一章VFP基础

VisualFOXPRO可视化

数据库基础知识

(-)计算机数据管理的发展

1.数据与数据处理

(1)数据是指存储在某一种媒体上能够识别的物理符号。“女”

数据不光指文字、数字、还包括声音,动画,图形等

2.数据处理是指数据转换成信息的过程。

3.数据与信息的关系

信息来自于数据,数据是信息的载体。信息是数据的内含。

2.计算机数据管理

(1)概念:是指对数据的组织、分类、编程、存储、检索和维护提供操作手段。

(2)发展:

第一阶段:人工管理

第二阶段:文件系统

第三阶段:数据库系统:数据共享,减少数据的冗余。

第四阶段:分布式数据库系统

第五阶段:面对对象数据库系统

(二)数据库系统

1.有关数据库的概念

(1)数据库DB(Database)是存储在计算机存储设备上,结构化的相关数据集合。数据库

就是数据仓库。

(2)数据库应用系统:指系统开发人员利用数据库系统资源开发出来的,面积某一类实际

应用的应用软件系统。如图书管理系统

(3)数据库管理系统DBMS:对DB的建立、使用和维护进行管理。VFP数据库管理系

databasemanagementsystem

(4)数据库系统DBS:

组成:硬件系统、DB集合,DBMS及相关软件、数据库管理员和用户

DBS包含DB和DBMS

2.数据库系统的特点:一了解

(1)实现数据共享、减少数据冗余

(2)采用特定的数据模型一关系

(3)具有较高的数据独立性

(4)有统一的数据控制功能

(三)数据模型

1.实体的描述

(1)实体:客观存在并且可以相互区别的事物称为实体。实体可是具体(人、桌子)

也可能抽象(比赛、会议)。

(2)实体的属性:描述实体特性(姓名、性别、族别等)

(3)实体集和实体型

属性值的集合表示•个实体,而属性的集合表示一种实体的类型,称为实体型。

同类型的实体的集合,叫实体集

在VFP中,用“表”来存储同一类实体,即实体集。如“工资表”,“学生情况表”

注意:ctrl+shift输入法的切换

ctrl+space(空格)中/英文的转换

2.实体间联系及联系的种类

(1)一对一联系:1:1

(2)一对多联系:1:M

(3)多对多联系:M:N

3.数据模型简介

(1)数据模型是数据库管理系统用来表示实体间联系的方法。

(2)种类

层次数据模型:倒置的树

网状数据模型:

关系数据模型:VFP

关系数据库

(-)关系模型

关系模型的逻辑结构就是一张二维表

姓名性别所在班级学习科目最终成绩

刘露露女04园林二级VFP

郭江女二级VFP

1.关系术语:

(1)关系:一个关系就是一张二维表,每个关系有一个关系名。即表名,扩展名为DBF

(2)元组:也叫记,丧RECORD,表的一行称为一条记录(除表头)。描述同一对象的

不同属性。

(3)属性:也叫字段。表格中的列。描述不同对象的同一属性。

(4)域:属性的取值范围。

(5)关键字:属性或属性的组合,其值能够惟一标识一个元组(行)。如“学号”

(6)外部关键字:若表中的一个字段不是本表的主关键字或候选关键字,而是另一

个表的主关键字或候选关键字,这个字段就称为外部关键字。

顾客表购买表商品表

身份证号身份证条码条码

2.关系的特点:

(1)关系必须规范化。满足一定的要求。

(2)在同一关系中不能出现相同的属性名(列名)

(3)关系中不允许有完全相同的元组

(4)在一个关系中元组的次序无关紧要

(5)在一个关系中列的次序无关紧要

3.实际关系模型

一个具体的关系模型由若干个关系模式组成。

一个数据库中包含相互之间存在联系的多个表。

例:部门——职工-——工资关系模型

部门

部门编码部门名称负责人

职工

职工号姓名性别部门编码

工资

年月职工号姓名基本工资

例:图书——读者借阅关系模型

图书

总编号分类号书名作者

读者:

借书证号单位姓名性别职称地址

借阅

借书证号总编号借书日期还书日期

VFP中,•个关系模型称为数据库,一个关系叫表,数据库中可以包含多张表。

(-)关系运算

1.传统的集合运算

(1)并男人并女人=人

(2)差人差女人=男人

(3)交人交女人=女人

2.专门的关系运算

(1)选择:从关系中找出满足给定条件的元组的操作(针对行进行操作)

(2)投影:从关系模式中指定若干个属性组成新的关系(针对列进行操作)

(3)联接:是关系的横向结合。将两个关系模式拼接成一个更宽的关系模式,生成

的新关系中包含满足联接条件的元组。

(4)自然联接:去掉重复属性的等值联接。一般指都是自然联接。

注意:选择和投影的操作对象是一个表而联接需要两个表。

建库与建表

1.打开VFP

开始/程序/Microsoftvisualfoxpro/foxpro

2.输入法

CTRL+SHIFT输入法切换

CTRL+空格中/英文切换

在VFP中所有标点符号必须是英文

CTRL+,中/英标点符号切换

建立订货管理数据库,有如下的表:

三.数据库设计基础

1.设计原则

(1)关系数据库的设计应遵从概念单一化“一事一地”的原则

(2)避免在表之间出现重复字段

(3)表中的字段必须是原始数据和基本数据元素

(4)用外部关键字保存有关联的表之间的联系

2.设计步骤(了解)

(1)需求分析

(2)确定需要的表

(3)确定所需字段

(4)确定联系

(5)设计求精

3.注意事项:

(1)VFP利用主关键字迅速关联多个表中的数据,不允许在主关键字字段中有重复值

和空值

(2)一对多联系

-对多联系是关系型数据库中最普通的联系。在一对多联系中,表A的一个记录在表B

中可以有多个记录与这对应,但表B中的一个记录最多只能有一个表A的记录与之对

应。要建立这样的联系,就是把“一方”的主关键字字段添加到“多方”的表中。

(3)多对多联系

在多对多联系中,表A的一个记录在表B中对应多个记录,而表B的一个记录在表A

中也可对应多个记录。

为了避免数据的重复存储,又要保持多对多联系,方法是创建第三个表。把多对多的联

系分解成两个一对多联系。所创建的第三个表包含两个表的主关键字。在两表之间起着

纽带的作用,称这为“纽带表”

VFP是MicrosofT公司的产品。可视化编程工具。VFP是一个32的DBMS

例:学校关系模型

学生情况表成绩表借阅表

一个表就是•个关系。

一个表的建立分为两部分:

(1)表结构:即表头。一个表有多少列,列名,宽度有多少。

(2)表内容:即有多少行。

数据类型:即数据值的类型

1.数值型N:即用数字来表示其值,可以计算

2.字符型C:用数字,文字表示其值。如:姓名,性别

3.逻辑型L:只有真、假两个值。真用T或Y表示,假用F或N表示

4.日期型D:用MM/DD/YY

建表方法:

1.“文件/新建”弹出新建对话框,选择“表”,单击“新建文件”按钮

2.Create卜表文件名习

三.VFP启动与窗口组成

1.开始/程序/Microsoftvisualfoxpro6.0/Microsoftvisualfbxpro6.0

2.桌面快捷方式,VFP的图形标志是一个狐狸头

(二)窗口组成

1.标题栏

2.菜单栏

3.工具栏

4.工作区:系统主窗口的空白部分。用于展开软件工作界面,显示系统信息、命

令和程序运行结果等。

5.命令窗口:键入VFP命令

注意:一个汉字占两个字符宽度。VFP中按字符宽度。

第二章节VFP系统初步

退出VFP的命令

Quit

在VFP中所有命令必须键入在命令窗口中

—.VFP6.0的用户界面

(-)VFP工作方式

1.利用菜单系统或工具栏按钮执行命令-一菜单方式

2.在命令窗口直接输入命令进行交互式操作---命令方式

3.利用各种生成器自动产生程序,或者编写FOXPRO程序,然后执行它--程序方式

(二)VFP的主界面

1.菜单操作

2.命令操作--命令必须输入到命令窗口

CLEAR清屏,即将工作区清干净

显示/隐藏命令窗口

(1)窗口/命令窗口

(2)常用工具栏上“命令窗口”按钮

(3)CTRL+F4隐藏ctrl+f2显示

注意:CTRL、SHIFT.ALT三个键叫组合键也叫复合键,单独按没有意义,只有与其它

键同按。“+”即同按。先按住复合键不放,在按其它键。

Crtl+空格中/英文转换

Ctrl+shift输入法转换

Ctrl+句点中/英文标点符号的转换

注意:在VFP中标点符号必须是英文的。

1.工具栏的使用

除了“常用”工具栏之外,还有10个其它工具栏,在“显示”菜单中或右击常用工具栏。

(1)定制工具栏

创建工具栏

A.显示/工具栏

B.单击“新建”按钮,弹出“新工具栏”对话框

C.键入工具栏的名称,弹出“定制工具栏”对话框

(2)修改工具栏

A.显示/工具栏

B.单击“定制”按钮,弹对话框

常理:当窗口中可以显示/隐藏项目,不在查看,就在视图,或者在显示菜单中(这三个菜

单不能共存),或者在窗口菜单下。

一.VFP配置

1.使用“选项”对话框

“工具/选项”

(1)设置日期和时间的显示格式

Date。显示当前日期

Datetime。显示当前日期时间

在“区域”选项卡下

(2)更改表单的默认大小“表单”的选项卡下

(3)设置默认目录“文件位置”的选项卡下

2.保存设置

(1)单击“确定”按钮,仅在本次系统运行期间有效

(2)单击“设置为默认值”,再单击“确定”长久有效

项目管理器

1.项目:是指文件、数据、文档和VFP对象的集合

2.项目管理器:是VFP中处理数据和对象的主要组织工具,是一个工作平台。在VFP中

所有可以做的操作在项目管理器中都可完成。

(一)创建项目

1.项目文件的扩展名.pjx

2.创建一个新项目有两种途径:一是仅创建一个项目文件,用来分类管理其他文件(主讲),

二是使用应用程序向导生成一个项目和一个VFP应用程序框架。

3.“文件/新建”弹出新建对话框,选择“项目”,单击“新建文件”按钮

(二)定制项目管理器

只有在折叠状态下,选项卡才能拖出来

三.VFP向导、设计器、生成器简介

(一)向导

1.向导是一种交互式程序,用户在一系列向屏幕上回答问题或者选择选项,向导会根据回

答生成文件或者执行任务,帮助用户快速完成一般性的任务。

2.启动向导

(1)项目管理器,选择文件类型,单击“新建”,选择“向导”

(2)文件/新建,选择文件类型后,单击“向导”按钮

(3)工具/向导

(4)常用工具栏上“向导”按钮

(-)设计器

1.设计器是创建和修改应用系统各种组件的可视化工具。

2.打开设计器

(1)项目管理器

(2)文件/新建,单击‘新建文件’

(3)显示菜单中的“数据环境”

(三)生成器

是带有选项卡的对话框,用于简化对表单、复杂控件和参照完整性代码的创建和修改过程。

第三章数据与数据运算

常量与变量

(-)常量:值不变化的量

1.数值型常量:如123.5671.23567e2(科学计数法),在内存中占8个字节

2.货币型常量:前置符号$如:$789.5,在内存中占8个字节

3.字符型常量:必须用单引号,双引号,方括号(定界符)括起来的字符串。

注意:在VFP中所有的标点符号必须是英文标点符号。

输出命令:

?〈输出项〉

??<输出项〉

如果有多个输出项,用逗号隔开,字符型常量将会照原样输出

4.日期型常量:它的定界符是花括号.

花括号内包括年,月,日三部分内容,用分隔符分开.分隔符可是斜杠/(默认)、连字号(-),句

点(.)

日期型常量的格式

(1)传统的日期格式

mm/dd/yy

(2)严格的日期格式

{八yyyy・mm・dd}八脱字符

(3)影响日期格式的设置命令

注意:在命令中带方括号代表可选项,尖括号代表必选项,输入命令时,这些括号不打的。

①SETMARKTO[B期分隔符]

功能:设置显示日期型数据时使用的分隔符,如

Setmarkto默入分隔符/

Setmarkto

Setmarkto

②setdate[to]American|ansi|british|French

功能:设置H期显示格式

Americanmm/dd/yy

ANSIYY.MM.DD

BRITISH/FRENCHDD/MM/YY

GERMANDD.MM.YY

ITALIANDD-MM-YY

JAPANYY/MM/DD

USAMM-DD-YY

MDYMM/DD/YY

DMYDD/MM/YY

YMDYY/MM/DD

③SETcenturyon/off[世纪值]rollover[年份参照值]

功能:用于设置显示日期型数据时是否显示世纪

@setstrictdateto{0|1|2}

功能:用于设置是否对日期格式进行检查。0表示不进行严格检查,1和2都是检查。1默

5.日期时间型常量:{〈日期〉,〈时间〉}

6.逻辑型常量:只有真和假两个值.真用.t.或.y.假用.£或n,内存中占用1个字节

?78+62

??50*2

?8/4

?$8*4

?$789.456789

?”计算机“,」231[数据],['ABX'"abc”]

?”计算机”123寸数据],['ABX'"abc”]

?"87”,'+',[93]下,87+93

??»45*4=",45*4

?{05/29/05)

?{A05/29/05}

?{八2005-05-29}

setcenturyon

setmarkto

setdatetoymd

?{A2001-08-26)

setcenturyoff

setmarkto

setdatetomdy

?{A2001-08-26)

setstrictdateto0

?{八2001-08-26},{09.22.01}

?[09/22/01}

?{09/22/01}

?7>8

?89<78

?89>78

?{A2001-03-22,ll:30P}

(-)变量:值可以改变的量。

变量分为字段变量和内存变量。

1.字段变量:就是表中的字段,表中每一个字段就是一个字段变量。字段保存在表中。

2.内存变量:是内存中的一个存储区域,变量值就是存放在这个存储区域里的数据,变量

的类型取决于变量值的类型。

3.内存变量的数据类型包括字符型C,数值型N,货币型Y,逻辑型L,日期型D,日期

时间型T

2.简单内存变量

每一个变量都有.一个名字,叫变量名,变量名必须以字母开头后面可以是数字或下划线。

当字段变量与内存变量同名时,则在内存变量前加M.(m->)

变量一般先赋值后使用

⑴V内存变量名>=<表达式>

将〈表达式〉的值赋给左边的〈内存变量〉

x=10

y=2*30

(2)store〈表达式〉to〈内存变量名表》

将表达式的值赋给〈内存变量名表〉中的多个内存变量,即给多个内存变量赋以同一个值.

2.数组

数组是内存中连续的一片存储区域,它由一系列元素组成,每个数据元素可通过数组名及相应

的下标来访问.

数组必须先定义后使用

定义数组:dimension/declarev数组名>(<卜标上限1>,[<卜-标上限2>])

例:dinmensionxy(l0)

定义一个XY数组,有多10个元素。分别是xy(l)……xy(10)

declarem(2,3)

定义一个M二维数组。它有2行3歹!I,共6个元素。

M(1,1)M(1,2)M(l,3)

M(2,1)M(2,2)M(2,3)

(三)内存变量常用命令

1.内存变量的显示

list/displaymemory[likev通酉己符〉]

list代表滚动显示,display代表分屏显示

通配符有两个*,?。*代表任意多个字符,?代表任意一个字符

listmemorylikex*

显示所有以X开头的内存变量

2.内存变量的清除

格式1:clearmemoryOreleaseall

功能:清除所有内存变量

格式2:release〈内存变量名表》

功能:仅清除〈内存变量名表》中所列的内存变量

格式3:releaseall[like<通配符>|except〈通配符》]

例:releasealllikex*

清除所有的以X开头的内存变量

releaseallexceptX*

清除所有的除X开头的内存变量

作业:

1.x=100

2.y=20

3.z="123”

4,将XI,X2,X3赋值为40

5.定义一个XY数组,有20个元素

6.定义一个YZ的二维数组,有3行,2列

7.分屏显示所有内存变量

8.将XY数组集体赋值为7

9.将YZ数组集体赋值为“ABCD”

10.只显示以X开头的内存变量

11.清除x2,x3变量

12.清除所有以Y开头的内存变量

13.清除所有的内存变量只保留,以X开头

14.分屏显示内存变量

15.清除所有的内存变量

字符串比较

“0”“9”“A”"Z”“a”“z”

4857659097122

子串包含测试

格式:<字串1>$〈字串2>

功能:字串1若能在字串2找到,结果就为1,否则为.F.

二.设置字符的排序次序

字符串比较,从左向右比较,一旦发现不同,判断这两个字符的大小.

1.人机对话方式

“工具/选项“在“数据”选项卡下.

2.命令方式设置:

setcollateto”<排序次序名〉”

machine机器:机内码空格-数字<---大写字母小写字母

Pinyin拼音:按照拼音次序排序,对于西文字符来说,空格,〈小字字母〈,大写字母

Stroke笔划:书写笔划多少进行排序

三.逻辑表达式

逻辑运算符:.not.或!(逻辑非).AND.(逻辑与)-一并且.or.(逻辑或)——或者

逻辑表达式的结果为逻辑型

四.运算符优先级

算术一_一一字符串一一一日期时间关系一一一逻辑

五.函数

函数格式:函数名(卜表达式习)

第四章VFP数据库及其操作

一.基本概念

1.数据库是个逻辑上的概念和手段,通过一组系统文件将相互联系的数据库表及其相关

的数据库对象统一组织和管理。

数据库中可以有多张表或多个数据库对象

2.数据库文件的扩展名DBC,与之相关的还会自动建立一个扩展名DCT的数据库备注文

件和一个扩展名为DCX的数据库索引文件。

3.包含在数据库中的数据表的扩展名DBF

二.建立数据库

方法三种

1.在项目管理器中建立数据库

2.“文件/新建”弹出新建对话框,选择“数据库”

3.使用命令createdatabase[databasename/?]

注意:当命令动词多于四个字母时,可以只用前四个字母来表示。

三.使用数据库

方法三种

1.在项目管理器中打开数据库

2.“文件/打开”

3.使用命令opendatabasse[filename/?][exclusive][shared][noupdate][validate]

(1)exclusive独占方式打开

(2)shared以共享方式打开

(3)noupdate以只读方式打开

(4)validate检查在数据库中引用的对象是否合法

注意:

可以同时打开多个数据库,但在同一时刻只有一个当前数据库

1.setdatabaseto[datebasename]指定当前的数据库

2.常用工具栏的下拉框中,选择当前数据库

四.修改数据库

修改数据库实际是打开数据库设计器,用户可在数据库设计器中完成各种数据库对象的建

立,修改和删除等操作

打开数据库设计器的三种方法

1.项目管理器中

2.文件/打开

3.命令:modifydatabase[databasename/?]

五.删除数据库

1.在项目管理器中选中数据库,单击“移动”的按钮

2.命令:deletedatabase[databasename/?]

六.关闭数据库

closedatabase关闭当前数据库

closealldatabase关闭所有数据库

例:

1.使用项目管理建立“学院”数据库

2.使用文件菜单建立“二级VFP”数据库

3.使用命令建立“学生”数据库

3.使用不同的方法分别打开上述三个数据库

4.使用不同的方法分别打开上述三个数据库的数据库设计器

5.删除“学生”数据库

8.删除“学院”数据库

第二节建立数据库表

在VFP中,表有两种,包含中数据库中的叫数据表,不包含在数据库中叫自由表。

一.在数据库中建立表

1.在项目管理器中,选中相应的数据库,在选中“表”,单击“新建”按钮

2.在数据库设计器中,右击弹出快捷菜单,选择“新建表”或在数据库设计工具栏上单击

“新建表”的按钮

一些基本内容和概念

1.字段名:字段变量

字段名即关系的属性名或表的列名。字段名可以是汉字或合法的西文字符。

规定:

(1)自由表的字段名最长为10个字符

(2)数据库表的字段名最长为128个字符

(3)字段名必须必须以字母或汉字开头,由字母,汉字,数字和下划线组成

(4)字段名中不包含空格

2.字段类型和宽度

字段的数据类型决定存储在字段中的值的数据类型,数据类型通过宽度限制可以决定存储数

据的数量或精度。

(1)字符型:C

(2)货币型:Y

(3)数值型:N

(4)浮点型:F:类似于N,但其长度最长可达20位

(5)日期型:D固定长度为8

(6)日期时间型:T

(7)逻辑型:L只有T和F两个值,固定长度为1

(8)备注型:M,它在表中只有4个字节的长度,他的值存储在与表文件名同名,但扩展

名为FPT的备注文件中。

(9)通用型:G用来标记电子表格、文档、图片等OLE对象。如照片是通用型,固定长度

为4个字节的宽度

3.空值

用“NULL“选项,它表示是否允许字段为空值。

4.字段有效性组框

可定义字段的有效性

5.显示组框:可定义字段显示的格式,输入的掩码和字段的标题

6.字段注释:对字段添加注释,便于以后或其他人对数据库进行维护

三.用命令建立表

1.打开数据库

2.使用create命令建立表

注意:

新建的表当时处于打开状态,可以对其进行任何的操作,如果以后再对表进行操作,必须先

要打开表:

USE〈表文件名〉打开〈表文件名〉所指的表

USE关闭当前表

四.修改表结构表头,在表设计器中进行修改.

1.项目管理器中,选中相应的表,点''修改”,打开表设计器

2.在数据库设计器中,右击要修改表,选择“修改”

3.用命令

(1)首先必须用USR打开要修改的表

(2)modifystructure

五.使用浏览器操作表

在交互工作方式下,最简单,方便的方法就是使用BROWSE浏览器

打开浏览器的方法

1.在项目管理器中,选择相应的表,点“浏览"按钮

2.在数据库设计器中,选择表,然后从“数据库/浏览”或右击,“浏览”

3.在命令方式:

(1)先要用USE命令打开表

(2)BROWSE

(一)浏览操作

1.下一记录:下箭头键

2.前一记录:上箭头键

3.下一页:PAGEDOWN

4.前一页:PAGEUP

5.下一字段:TAB

6.前一字段SH1FT+TAB

7.添加记录:

(1)CTRY+Y

(2)"表/追加新记录”或"显示/追加方式”

(二)删除记录

在VFP中删除记录有逻辑删除和物理删除两种.逻辑删除只是给记录加删除标记,物理删除

是将加删除标记的记录真正的删除掉.

都在表菜单下.

切换删除标记:ctrl+t

作业:建立图书管理数据库,其中有图书,读者,借阅三个表

1.图书表如下

总编号分类号书名作者

445501Tp3/2数据库导论DATE

445502Tp3/2数据库导论DATE

445503Tp3/2数据库概论王珊

332211Tp5/10计算机基础李伟

112266Tp3/2数据库FOXPRO张学军

665544TP7/21高等数学刘明

114455TP9/12线性代数孙业

113388TP7/90大学英语胡明

(1)总编号字段的掩码为“999999”9代表可以输入任意的数字44

(2)分类号字段的掩码“TP9/99”

(3)追加一条记录

115566TP8/9数据结构徐玉莲

(4)将最后一条删除掉,真正删除掉

(5)将第3和第5条加删除标记,再去掉

2.读者表如下

借书证号单位姓名性别职称地址

111物理系王维利女教授212

112会计系李立威男副教授121

113经济系张大龙男讲师101

114金融系周华男讲师312

115数学系赵正义女工程师456

116信息系李明男副教授412

117金融系刘大成男讲师302

118化学系张晓华女副教授308

(1)借书证号字段的掩码设置为“119”

(2)性别字段的规则设置为“性别="男”.or.性别="女…’,默认值““男””

(3)职称字段的规则设置为“职称=”教授or.职称="副教授”.or.职称="讲师”.or.职称="

工程师叫默认值““副教授””

(4)地址字段的掩码设置为“999”

3.借阅表如下

借书证号总编号借书日期

11344550111/01/99

11211445512/12/99

11211338810/12/99

11533221108/11/99

11544550309/11/99

11144550309/11/99

二.对表的命令操作

(•)追加记录命令

格式一append在当前表的尾部追加新记录

格式二appendblank在当前表的尾部追加空记录(记录存在,但没有内容)

相当于”显示/追加方式"或“表/追加新记录”

(二)记录的插入命令

insert[before][blank]

不带任何参数时,为在当前记录之后插入一条新记录.

Before在当前记录之前blank代表空记录

Insert在当前记录之后插入•条新记录

Insertblank在当前记录之后插入一条空记录

Insertbefore在当前记录之前插入一条新记录

Insertbeforeblank--在当前记录之前插入一和空记录

(三)记录的范围对哪些记录进行操作.有四种

1.all对表中的所有记录

2.nextn从当前记录开始往下N条记录

3.rest从当前记录开始直到表结束的所有记录

4.recordn只对记录号为N的记录进行操作

注意:每个表都有一个记录指针,记录指针所指的记录为当前记录

当打开一张表时,记录指针指向的第一条记录

(四)记录删除的命令

删除一条记录时,先逻辑删除,再物理删除

1.逻辑删除命令

delete卜范围>][fbr<条件习

对当前表中指定范围内的满足的条件的记录加上删除标记.默认范围为当前记录

相当于“表彻换删除标记”或ctrl+t

例:

1.打开图书管理数据库opendatabase?

2.打开“图书表"use图书表

3.用命令在当前表的尾部追加一条空记录appendblank

4.用命令当当前表的尾部追加一条新记录append

998877TP9/20Authorware付红英

5.打开“读者表”use读者表

6.将所有的性别为女的记录加删除标记

deleteallfor性别="女"

7.将所有的性别为男,并且职称为讲师的记录加删除标记

deleteallfor性别="男”.and.职称="讲师”

3.恢复记录的命令--去掉删除标记

recall[<范围习[for<条件习

对当前表中指定范围内的满足的条件的记录去掉删除标记.默认范围为当前记录

相当于”表/切换删除标记”或ctrl+t

4.物理删除加删除标记的记录

pack将当前表中所有加删除标记的记录真正删除

相当于”表/彻底删除”

5.物理删除表的的全部记录ZAP

ZAP将当前表中所有记录真正的删除掉

Deleteallzap

pack

五.查询定位命令

1.绝对定位命令

go/goto〈数值表达式>/top/bottom

gotop将记录指针定位到首记录

gobottom——将记录指针定位到尾记录

g。〈数值表达式〉一一将记录指针定位到〈数值表达式>值的记录号上

2.相对定位命令

skip卜数值表达式刁相对于当前记录将记录指针向上(值为负),或向下(值为正)移动值

的若干记录

SKIP——相对于当前记录向下移一条

Skip=skip1

3.返回当前记录号函数——recno()

例:

8.将表中所有的女性记录去掉删除标记recallallfbr性别=»女”

9.将表中加删除标记录真正的删除掉pack

1.将记录指针定位到第4条记录go4

2.在第4条记录后插入一条空记录insertblank

3.将记录指针定位到最一条记录gobottom

4.在最后一条记录之前插入一条空记录insertbeforeblank

5.将记录指针定位到第2条记录go2

6.在第2条记录之前插入•条新记录,自己编记录insertbefore

7.在第5条记录之后插入一要新记录,自己编记录go5/go6

insert/insertbefore

8.填空:

go3

skip-2

?recno()

(1)

skip3

?recno()

(4)

skip

?recno()

(5)

六.修改记录命令

1.edit

2.change

对于当前表以交互式的进行记录的修改与编辑

3.记录的替换命令

replace[范围]v字段名>with〈表达式〉[for条件]

将指定范围内的满足条件的记录的〈字段名〉所指字段的值替换为〈表达式〉的值.

默认范围为当前记录

〈表达式〉可以是变量(字段变量,内存变量),常量和运算符组成.

9.打开”:级VFP”数据库,打开”学员成绩表”

10.计算总分和平均分

replaceall总分with星期二成绩+星期三成绩+星期四成绩

replaceall平均分with总分/3

相当于“表/替换字段”但必须在浏览表的状态下

七.显示记录的命令

list/display[范围][fields字段名表][fbr条件][off]

显示当前表指定范围内指定字段满足条件的记录。

[fields字段名表]-一只显示字段名表中所列字段

[off]不显示记录号

list默认范围是all,display默认范围是当前记录

list不等于displayall,list是滚动显示,displayall分屏显示

八.查找满足条件的记录的命令

locatefor条件

将记录指针定位到第一条满足条件的记录

continue接着往下找下一条满足条件记录

例:

20.显示当前表中的所有记录list/displayall

21.显示所有的女性记录并且职称必须是教授listfbr性别=,女,.and.职称='教授'

22.显示第三条记录list/displayrecord3go3

display

23.将记录指针定位到第一条男性记录,并显示locatefbr性别="男”

display

24.接着显示下•条男性记录continue

display

25.显示所有记录,但只要“姓名,职称,地址”三个字段

listfields姓名,职称,地址

26.显示所有记录,但不显示记录号listoff

4.4索引

一.基本概念:

索引文件是一个指向DBF文件的指针文件,它必须依赖于表文件。

索引文件并没有改变记录的物理顺序,只是改变了它的逻辑顺序。记录号不变,显示的顺序

变了。

仓库表的顺序原来如此:

记录号仓库城市面积

1WK1北京370

2WH2上海500

3WH3厂州200

4WH4武汉400

5WH8昌吉450

若将仓库表按面毛的降序进行索引,索引的文件就是弊样的:

2|5|4|||3.

建立索引的目的就是为了提高查询速度。

索引是由指针构成的文件,这些指针逻辑上按照索引关键字值进行排序.

索引文件和表的dbf文件分别存储,并且不改变表中记录的物理顺序.索引文件依赖于表文件.

索引的种类

1.主索引:在指定字段或表达式中不允许出现重复值的索引.建立主索引的字段可看作是主

关键字,一个表只能有一个主关键字,所以只能有一个主索引.

2.候选索引:与主索引具有相同的特性,建立候选索引的字段可看作是候选关键字.一个表可

以建立多个候选索引.

3.唯一索引:是指索引项的唯一,而不是字段值唯一.即出现相同字段值,只要一个.

4.普通索引:可决定记录的顺序,它不仅允许字段中出现重复值,并且索引项中也允许出现重

复值一个表可以建立多个普通索引

注意:数据表四种索引都可以建,而自由表不能建立主索引.

二.在表设计器中建立索引

1.单项索引

(1)在表设计器的“字段”选项卡中,建立索引

(2)在''索弓I”选项卡中,选择类型,或更改“索引名“

2.复合字段索引在多个字段上的索引

(1)在“索弓I”选项卡中,单击插入按钮

(2)选择索引类型,输入索引名,单击表达式栏右侧的带个三个点省略号按钮即可

三.用命令建立索引

indexon索引表达式to索引文件名/tag索引名

to索引文件名,建立是一个扩展名为IDX的单索引文件

tag索引名——建立在一个与表文件名同名,扩展名为cdx的结构化复合索引文件中.

四.使用索引

设置当前索引

setorderto索引名

五.使用索引快速定位--seek

seek表达式

查找与索引关键字表达式相同的记录

例:

1.打开二级VFP库,将学员成绩改按序号的升序建立主索引,按总分降序建立普通索引

2.设置总分为当前索引,并显示

3.查找总分为255分的记录

建立订货管理数据库,有如下的表:

MicrosoftVisualFoxPro-lQ|x|

文件⑹编辑⑹显示M工具(D程序®表®®a(w)帮助电)

□I谢口I-IJIx随匕ILJ_LLJ[ffsis~~3后制回复_d^JU

姻供性府

西

:振华电子厂

S3元-

二二工华通电至广用

S2用

S6访广

S7—.…:爱华电手广北

职工(订货管理I职工)记录:1/5Exclus1ve

4.6自由表

--数据库表和自由表

a)自由表是那些不属于任何数据库的表。扩展名DBF

2.数据库表与自由表相比,数据表具有如下特点:

i.数据库表可使用长表名(128),在表中可以使用长字段名(254)自由表(10)

ii.数据库表中字段可以添加注释和字段规则,输入掩码等

iii.数据表可建立四种索引,而自由表不能建立主索引。

二.自由表在数据库中的添加与移去

1.在项目管理器中

2.数据库设计器中

4.7多个表的同时使用

在VFP中一次可打开多个数据库,在每个数据库都可打开多个表,另外可打开多个自由表。

多工作区的概念

工作区是VFP在内存中一个临时区域,每个工作区只能打开一张表,则同时打开多张表,

要在不同的工作区中打开。

工作区有32767个,序号就是从1-32767,VFP指定一个系统别名A-J-Wl1-W32757

选择工作区

SELECT工作区号/别名

USEv表名〉in〈工作区号/别名>在指定的工作区中打开指定《表名》

当前正在使用的工作区叫当前工作区,在此工作区上打开的表叫当前表。没有选择工作区时,

默认是1号工作区

opendatabase?

use仓库in1

use职工inb

use订购单in3

use供应商in4

list

select2

list

select3

list

select4

list

—,排序

排序是对当前表按指定的字段进行排序后,形成•个新的表

$0旧0〈表名>011<字段名>[倒/<!/<:][而条件Hfields字段名表]

对当前表按指定的〈字段名〉的升序(/A,默认)或降序(/D)或不区分字母大小写(/C)进行排序,

排序的结果保存在指定〈表名〉中,扩展名仍为.DBF

例:

1.将仓库表按面积的降序进行排序,结果保存在“仓库面积''表中

select1

sortto仓库面积on面积/D

use仓库面积in5

select5

list

2.将订购单表按职工号进行排序,结果保存在“订购单职工”表中

select3

sortto订购单职工on职工号

use订购单职工in6

select6

list

3.对订购单表按订购单号进行降序的排序,只要职工号、订购单号、和订购日期三个字段,

排序的结果至『'订购单号”表中

select3

sortto订购单号on订购单号/dfields职工号,订购单号,订购日期

use订购单号in7

select7

list

第五章关系数据库标准语言SQL

-.SQL概述

1.SQL结构化查询语言StructureQueryLanguage

2.SQL语言的特点

(l)SQL是一种一体化语言,它包括了数据定义,数据查询,数据操纵和数据控制等方面的功能,

它可以完成数据库活动中的全部工作.

(2)SQL语言是一种高度非过程化的语言,它没有必要一步步地告诉计算机“如何”去做,而只

需要描述清楚用户“做什么'SQL语言就可将要求交给系统,自动完成全部工作

(3)SQL语言非常简洁.只有为数不多的几条命令

(4)SQL语言可以直接以命令方式交互使用,也可嵌入到程序设计语言中以程序方式使用.

SQL功能命令动词

数据查询select

数据定义Create,drop,alter

数据操纵Insert,update,delete

数据控制Grant,revoke

三.查询功能

SQL的核心是查询。

基本形式:select-from-where

(•)简单查询

1.从职工关系中检索所有工资值

select工资from职工

可看到结果有重复值,如果要去掉重复值只需要指定distinct短语

selectdistinct工资from职工

2.检索仓库关系中的所有元组

select*from仓库

其中“*”是通配符,表示所属性,即字段,这里的命令等同于

select仓库号,城市,面积from仓库

3.检索工资多于1230元的职工号

select职工号from职工where工资>1230

这里的where短语指定了查询条件,查询条件可是任意复杂的逻辑表达式.

注意:工资字段必须是数值型的

4.检索哪些仓库有工资多于1210元的职工

selectdistinct仓库号from职工where工资>1210

5.给出在仓库WH1或WH2工作,并且工资少于1250元的职工号

select职工号from职工;

where工资<1250.and.(仓库号=”\¥111''.01<.仓库号="WH2")

注意:这里的分号是续行符号.

前面的几个例子在FROM之后只指定了一个关系,也就是说检索只基于一个关系,一个表.

(二)简单的联接查询

联接是关系的基本操作之一,联接查询是-一种基于多个关系的查询.

1.找出工资多于1230的职工号和他们所在的城市

这里的检索查询的信息分别出自职工(职工号属性)和仓库(城市属性)两个关系,这样的检索

肯定是基于多个关系的,此类查询一般用联接查询来实现

select职工号,城市from职工,仓库;

where(工资>1230).AND.(职工.仓库号=仓库.仓库号)

这里的“职工.仓库号=仓库.仓库号''是联接条件

若在检索命令的FROM之后有两个关系,那么这两个关系之间肯定有一种联系,否则无法构

成检索表达式.

当FROM之后的多个关系中含有相同的属性名时,这时必须用关系前缀直接指明属性所属的

关系,职职工.仓库号,".”前面是关系名,后面是属性名

2.找出工作在面积大于400的仓库的职工号以及这些职工工作所在的城市

select职工号,城市from仓库,职工;

where(血积>400).AND.(职工.仓库号=仓库.仓库号)

(三)嵌套查询

讨论另一种基于多个关系的查询,这类查询所要求的结果出自一个关系,但相关的条件却涉及

多个关系.

1.哪些城市至少有一个仓库的职工工资为1250元?

要求查询仓库表中的城市信息,而查询条件是职工表的工资字段值,为此可使用如下的嵌套查

select城市from仓库where仓库in;

(select仓库号from职工where工资=1250)

在这个命令中含有两个select-from-where查询块,即内层查询块和外层查询块,内层查询块检

索到的仓库号值是WH1和WH2,这样就可写出等价的命令:

select城市from仓库where仓库号in("WHl","WH2")

这里的IN相当于集合运算符G,意思是属于

2.查询所有职工的工资都多于1210的仓库的信息

相当于没有一个职工的工资少于或等于1210元的仓库的信息

select*from仓库where仓库号notin;

(select仓库号from职工where工资〈=1210)

第六章查询与视图

6.1查询

一.查询设计器

1.查询的概念:

(1)实际上,查询就是预先定义好的一个SQLSELECT语句。

(2)查询是从指定的表或视图中提取满足条件的记录,然后按照想得到的输出类型定向

输出查询结构,诸如浏览器,报表,表,标签等。查询文件扩展名qpr

2.查询设计器

(1)使用命令cteatequery

(2)“文件/新建“选择“查询”在单击“新建文件”的按钮

(3)在项目管理器的“数据”选项卡中,选择“查询”然后单击“新建”按钮

(4)SQLSELECT

注意:当一个查询是基于多个表时,这些表之间必须是有联系的。表的相同字段建立联接。

四.建立查询

1.建立一个含有仓库号,职工号,城市和工资信息的查询

select仓库.仓库号,职工号,城市,工资from仓库,职工where仓库.仓库号=职工.仓库

三.查询设计器的局限性

只能建立一些比较规则的查询,而复杂的查询它就无能为力了.

查询嵌套

seleteout.职工号,out.供应商号,out.订购单号,out.订购日期,out.总金额;

from订购单outwhere总金额=;

(selectmax(总金额)fiwn订购单inner1;

whereout.职工号=innerl.职工号)

四.运行查询

1.命令

do查询文件名

2.”程序/运行”

注意:查询去向有多钟,在查询设计器的查询设计器工具栏上有“查询去向”的按钮

“文件/打开”查询,就可打开查询设计器

查询去向若是图形,在运行时将会弹出图形向导,按向导可以建立图形,图形文件是一个表单

文件,扩展名为SCX

例:

(1)将查询1的查询去向定为图形,保存,程序/运行,按图形向导做表单

(2)按仓库表新建一个查询,只要仓库号和面积,在做图形

(3)文件/打开,查询号,将去向选为表,程序/运行.先打开表,再用list

6.2视图

一.视图的概念

视图兼有‘'表‘'和''查询”的特点,与查询相类似的地方是,可用来从一个或多个相关联的表中提

取有用信息.与表相类似的地方是,可用来更新其中的信息,并将更新的结果永久保存在磁盘

上.

二.建立视图

1.建立视图的方法

(1)用来命令

createview

(2)”文件/新建”弹出新建对话框,选择“视图“,再单击“新建文件”的按钮

(3)在项目管理器中,在数据的选项中,选择“本地视图”

(4)SQL中,createview,,AS-"

2.视图设计器

视图与查询区别

(1)查询的结果在一个查询文件中,扩展名为“QPR”,而视图信赖于数据库表文件,结果

保存在数据库中

(2

温馨提示

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

评论

0/150

提交评论