Visual FoxPro哈哈笔试部分.docx
《Visual FoxPro哈哈笔试部分.docx》由会员分享,可在线阅读,更多相关《Visual FoxPro哈哈笔试部分.docx(67页珍藏版)》请在冰豆网上搜索。
VisualFoxPro哈哈笔试部分
VisualFoxPro笔试部分
第一章VisualFoxPro常用命令与基本操作
一、考试大纲要求
1、基本概念:
数据库、数据模型、数据库管理系统
2、系数据库:
(1)关系数据库:
关系模型、关系模式、关系、元组、属性、域、主关键字和外部关键字。
(2)关系运算:
选择、投影、连接。
(3)数据的一致性和完整性:
实体完整性、域完整性、参照完整性。
3、VisualFoxPro系统特点与工作方式:
(1)windows版本数据库的特点。
(2)数据类型和文件主要类型。
(3)工作方式:
交互方式(命令方式、可视化操作)
4、使用项目管理器:
(1)使用“数据”选项卡。
(2)使用“文档”选项卡。
5、数据库和表的建立、修改与有效性检验:
(1)表结构的建立和修改。
(2)表记录的浏览、增加、删除和修改。
(3)建数据库,向数据库添加或移出表。
(4)设定字段级规则和记录级规则。
(5)表的索引:
主索引、普通索引、候选索引、唯一索引‘
(6)设置表间的永久联系和参照完整性。
二、讲义部分
Ø显示常用工具栏
操作:
单击显示菜单中的工具栏
单击常用,再单击确定
Ø新建项目
操作:
单击常用工具栏上的新建按钮
单击项目选项,再单击确定按钮
Ø新建数据库
⏹单独新建数据库
操作:
单击常用工具栏上的新建按钮
单击数据库选项,再单击确定按钮
输入数据库名称,再单击保存按钮
⏹在项目管理器中添加或新建数据库
操作:
单击数据旁边的加号,再选中数据库
单击添加按钮,选择一个数据库,可将该数据库添加到项目中
或单击新建按钮,再单击新建数据库按钮
输入数据库名,再单击保存按钮
Ø新建表
⏹建立数据表
操作:
单击新建数据库旁边的加号,选中表
单击新建按钮,再单击新建表
输入表的名字,再单击保存按钮
输入字段名,选择字段的类型、宽度
设置默认值、NULL(空值)、规则、信息
然后输入记录,输入完记录后单击关闭按钮
⏹建立自由表
操作:
单击项目管理器中数据库旁边的加号,
选中自由表,单击新建按钮
单击新建表,输入表名,再单击保存按钮
输入字段名,选择字段的类型、宽度
注:
没有默认值、NULL(空值)、规则、信息设置
然后输入记录,输入完记录后,点击关闭按钮
上机练习:
用CREATE[表名]建表如下
一、表结构:
学号C(3)、姓名C⑻、出生日期D、VF成绩N(6,2)、奖励否L、备注M
二、表记录
记录号
1
2
3
4
5
学号
001
002
003
004
005
姓名
郭靖
杨过
王重阳
张三丰
李寻欢
出生日期
06/01/88
05/01/89
09/09/87
08/01/99
02/14/86
VF成绩
98
89
96
88
85
奖励否
.T.
.F.
.T.
.F.
.F.
备注
Meno
Meno
Meno
Meno
Meno
建表注意
自由表最长字段名为10个字符,数据库表字段名最长为128个字符
字段名必须以字母或汉字开头
字段名可以由字母、汉字、数字和下划线组成,字段名中不能包含空格
通用型:
用于标记电子表格、文档、图片等OLE对象(对象链接与嵌入),如用于存放MicsorftExcel电子表格等。
它在表中占4个字符
空值(.NULL.)就是缺值或还没有确定值输入空值必须先在表设计器里设字段允许为空,输值用ctrl+o
Ø常用命令
操作:
单击常用工具栏中的命令窗口按钮,输入如下命令进行联系:
LIST显示所有的记录
DISPLAY只显示当前的一条记录
GO2将记录指针移到第2条记录上
GOTOP将记录指针移到首记录上
GOBOTTOM将记录指针移到尾记录上
SKIP向下移一条记录
FOR表示条件如:
LISTFOR性别=”男”
WHILE表示条件如:
LISTWHILE性别=”男”(①从当前记录开始找数据②不满足条件就退出)
ALL表范围全部记录如:
DISPLAYALL
NEXTN表范围向下N条记录如:
LISTNEXT3包含当前记录
REST表范围从当前记录开始到尾记录如:
LISTREST包含当前记录
RECORDN表范围指定第N条记录如:
DISPLAYRECORD3
MODIFYSTRUCTURE修改表结构(设计器可以修改表结构)
INSERT在当前记录的后面插入一条新记录
APPEND在表尾部添加一条新记录(APPENDFROM追加一张表的数据)
DELETE逻辑删除当前记录
RECALL恢复逻辑删除记录
PACK物理删除带星号(*)记录
ZAP清除所有的记录
BROWOSE浏览方式修改记录
EDIT编辑方式修改记录
CHANG编辑方式修改记录
REPLACE字段名WITH值替换如:
REPLACE姓名WUTH“李小明”
COPYTO表名拷贝当前打的表
COPYTO表名STRU拷贝当前打的表的结构
CREATEDATABASE数据库名建立数据库
OPENDATABASE数据库名打开一个数据库
MODIFYDATABASE数据库名修改数据库
DELETEDATABASE删除数据库
ADDTABLE表名向数据库中添加表
REMOVETABLE表名从数据库中将表移去,变成自由表
APPENFROM来源表名把来源表的全部记录追加到当前表的末尾
笔记:
表结构
表(记录号不是字段)表的扩展名:
bdf
表记录
Clear:
清除屏幕
①用向导新建表只有表结构,没有表记录
②1个汉字占两个字符,一个英文字母占一位
③不参与运算的数字定义为字符型日期型的宽度系统固定的是8位
数值型总宽度=整数位数+小数点位数+小数位数
首记录:
排在第一位
表头:
首记录上面的一条注意记录号1不是首记录
尾记录:
排在最末尾
表尾
④按shift+格式
修改屏幕字体
⑤注意for和while的区别
⑥use单独使用为关闭,后面+表名:
打开表
⑦字符型要加英文的双引号
数据完整性
数据完整性是保证数据正确的特性,它包含实体完整性、域完整性和参照完整性。
⏹设置实体完整性
实体完整性是指记录的唯一性、即字段不允许有重复值。
在VF中指主索引和候选索引。
对一个字段的
Null值或没有值是不允许的,信息那栏必须加“”
⏹设置域完整性
域完整性是指设置输入值的范围。
即设置字段的有效性规则。
注意:
“规则”是逻辑表达式,“信息”是字符表达式,“默认值”的类型与字段类型一致。
⏹
(注:
没有重复值字段建主索引或候选索引,有重复值建普通索引)
设置参照完整性
操作:
1分别对两张表的相同字段建立索引
2建立两张表的永久联系
3清理数据库(①关闭数据库表②打开数据库独占方式)
4设置参照完整性
例:
单击更新规则中的级联。
(注:
级联表示同时操作)这里之同时更新
如单击限制,表示禁止更新操作
如单击忽略,表示不作任何制约
同理设置删除、插入规则
重点索引(功能:
方便用户对数据进行查找和排序)
VisualFoxPro索引是由指针构成的文件,这些指针逻辑上按照索引关键字值进行排序。
索引文文件和表的dbf文件分别存储,使用索引还可以加速对表的查询操作
索引分类:
(两种类型)
一、VisualFoxPro按索引功能分:
主索引、候选索引、普通索引和唯一索引四种。
主索引的特性:
1、主索引字段不允许出现重复值(主索引字段不接受.NULL.)。
2、主索引只能在数据库表中建立,自由表不能建主索引。
3、一张表只能建一个主索引。
候选索引的特性:
1、候选索引字段不允许出现重复值(候选索引字段不接受.NULL.)。
2、数据库表和自由表都可以建立候选索引。
3、一张表可以建立多个候选索引。
唯一索引的特性:
1、隐藏相同字段值,只显示第一次出现值。
2、一张表可以建立多个唯一索引。
普通索引的特性:
1、字段值允许出现重复值。
2、一个表可以建立多个普通索引。
二、VisualFoxPro按索引文件类型分:
文件扩展名是.idx(非结构但索引文件)
文件扩展名是.cdx(复合索引)分为:
1、结构复合索引2、非结构复合索引
结构复合索引和非结构复合索引的区别:
1、结构复合索引文件名和表名同名,非结构文件名和表名不同名
2、结构复合索引文件特性:
在打开表时自动打开;在同一个索引文件中包含多个索引方案;在添加,更改或删除记录自动维护索引
索引命令
⏹单索引(用TO参数建)全书方括号代表可选参数
命令格式:
INDEXON字段名TO索引名[UNIQUE|CANDDIDATE]
Unique表示建立唯一索引,canddidate表示建立候选索引,默认不用表示建立普通索引索引名
INDEXON数学TOyt按数学字段升序索引
INDEXON-数学TOyt1按数学降序索引
INDEXON100-数学TOyt2按数学降序索引
⏹复合索引(用TAG参数建)
命令格式:
INDEXON字段名TAG索引名[OF用户索引名]
TAG参数后不跟OF建的是结构复合索引,索引存盘文件名与表名同名
TAG参数后跟OF建的是非结构复合索引,索引存盘文件名就是用户索引名
INDEXON数学TAGFSX索引名
INDEXON数学TAGFJXDESC降序索引
文件名
打开索引
SETINDEXTO单索引文件名或复合索引文件名
SETORDERTO索引标识名
⏹
Ø排序
按数学升序排序生成表PX
SORTON数学TOPX
按数学降序排序生成表PX1
SORTON数学/DTOPX1
/D表降序拍戏/A表升序
/C不区分大小写字母
多字段排序
SORTON性别,数学/DTObiao
注:
排序的结果是一个表(.dbf)
索引不会生成表,它是附属表的索引文件
多字段索引
先按性别升序排,但性别相同时再按数学升序排。
INDEXON性别+STR(数学)TOKKK
先按性别升序排,当性别相同时再按数学降序排。
INDEXON性别+STR(100-数学)TAGKKK
⏹索引查找
SEEK值
将指针定位到数学分数为80的第一条记录
SETORDERTOFSX
SEEK80(或SEEK80ORDER数学)
⏹删除复合索引
DELETETAG复合索引标识名
索引注意事项:
如果在表上建立了主索引或候选索引,则不能用以上的APPEND或INSERT命令插入记录。
索引可以提高查询速度,但是维护索引是要付出代价的,当对表进行插入、删除和修改等操作时,系统会自动维护索引,也就是说索引会降低插入、删除、修改等操作的速度。
多个表同时使用
VF规定一个工作区只能打开一张表,同时使用多张表必须打开多个工作区
VF工作区号定义:
1(最小)——32767(最大)0为特殊工作区代表最小空闲可用工作区
VF默认工作去在1区查看当前所在工作区可用函数?
SELE()
选择工作区命令select工作号如:
select2
VF工作区别名有三种:
系统别名:
一、1——10可用A——J代替;11——32767可用W11——W32767代替
二、打开表的表名可作当前工作区别名
例:
SELECT2
USE学生表
这样SELECTB和SELECT学生表都等价SELECT2功能
用户定义别名:
三、USE学生表IN2ALILSYT(注:
在2区打开学生表对它定义别名为YT)
注意:
如果用户使用ALILS定义别名,打开表的表名就不能再作别名使用
互访与关联区别
本例详表间书15页,互访后发现城市字段值
不正确,原因在于互访不能使两表指针同步移动
工作区互访:
SELECT1
USE仓库表
SELECT2
USE职工表
LIST职工号,a城市
关联作用:
保证两表的指针同步移动
关联公式:
1、判断两表的父子关系
2、分别在两个工作社区打开两张表(子表先打开)
3、对字表建索引(按两表的相同字段建)
4、用SELECTTO建关联
关联:
SELECT1
USE仓库表
INDEXON仓库号TOYT
SELECT2
USE职工表
SETRELATIONTO仓库号INTOA
LIST职工号,a城市
关联指针运动原理:
只能是父表的指针驱动子表的指针移动,取消关联应在父区用SETRELATIONTO
三、笔试总结
数据是指存储在某一媒体上能够识别的物理符号。
其一是描述事物的数据内容;其二是存储在某一种媒体上的数据形成。
数据处理是指将数据转变成信息的过程,数据处理的中心问题是数据管理。
数据管理经历五个阶段:
1、人工管理2、文件系统3、数据库系统4、分布式数据库系统5、面向对象数据库系统
数据库(database)是存储计算机存储设备上,结构化的相关数据集合。
数据库管理系统DBMS可以对数据库的建立、使用和维护进行管理。
数据库系统五部分组成:
硬件系统、数据库集合、数据库管理系统及相关软件、数据库管路员和用户
数据库系统的特点:
1、实现数据共享,减少数据冗杂2、采用特定的数据模型
3、具有较高的数据独立性4、有统一的数据控制功能
客观存在并且可以相互别的事物称为实体。
描述实体的特性称为属性。
实体之间的对应关系称为联系。
为了反映事物本身和事物之间的各种联系,数据库中的数据必须有一定的结构,这种结构用数据模型来表示。
数据模型分为三种:
层次模型、网状模型、关系模型
用树形结构表示实体及其之间联系的模型称为层次模型。
用网状结构表示实体及其之间联系的模型称为网状模型。
用二维表结构表示实体及其之间联系的模型称为关系模型。
关系模型是以关系数学理论为基础的额,在关系模型中,操作的对象和结果都是二维表,这种二维表就是关系。
关系模型与层次模型、网状模型的本质区别在于数据描述的一致性、模型概念单一。
每一个关系都是一个二维表。
元组:
在一个二维表中(一个具体关系),水平方向的行称为元组,每一行是一个元组。
元组对应存储文件中的一个具体记录。
属性:
二维表中垂直方向的列称为属性。
每一列有一个属性名。
域:
属性的取值范围。
关键字:
属性或属性的组合,其值能够唯一地标识一个元组
关系必须规范化。
在同一个关系中不出现相同的属性名。
关系中不允许有完全相同的元组,即冗杂。
在一个关系中元组的次序无关紧要。
公共字段名往往起着“桥梁“的作用。
在关系数据库中,基本的数据结构是二维表,表之间的联系常通过不同表中的公共字段来体现。
一个数据库(.dbf)就是一个实际关系模型,它是一个或多个表(.dbf)或视图信息的容器。
关系的基本运算有两类:
一类是传统的集合运算(并(
)、差(-)、交(
)
等)另一类是专门的关系运算,(选择(
投影(
)、连接(∞))
两个相同结构关系的并是由属于这两个关系元组组合的集合。
设有两个相似结构的关系R和S,R差S的结果是由属于R但不属于S的元组组成的集合,即差运算的结果是从R中去掉S中也有的元组。
两个具有相同结构的关系R和S,它们的交是由既属于R又属于S的元组组成的集合。
交运算的结果是R和S的共同元组。
联接是关系的模向结合。
联接运算将两个关系模式拼接成一个更宽的关系模式,生成的新关系中包含满足联接条件的元组。
在联接运算中,按照字段值对应相等为条件进行的联接操作成为等值联接。
自然连接是去掉重复属性的等值联接。
1、需求分析
1信息需求
2处理需求
3安全性和完整性要求。
所创建的第三个表包含两个表的主关键字,在两表之间起着纽带的作用,称之为“纽带表”
VisualFoxpro6.0采用了可视化的操作界面、面向对象的程序与设计方法,使用Rushmore查询化即使提高了系统性能。
利用菜单系统或工具栏按钮执行命令;在命令窗口直接输入命令进行交互式操作;利用各种生成器自动产生程序,或者编写Foxpro程序(命令文件)
有三种操作方法来显示与隐藏命令窗口:
单击命令窗口右上角的关闭按钮可关闭它,单击常用工具栏上的“命令窗口”按钮。
按ctrl+F4组合键隐藏命令窗口;按ctrl+F2组合键显示命令窗口。
项目管理器是VisualFoxpro中各种数据和对象的主要组织工具。
一个项目是文件、数据、文档和对象的集合,项目文件以扩展名pjx及pjt保存。
“项目管理”窗口时系统的“控制中心”。
所谓项目是指文件、数据、文档和VisualFoxpro对象的集合。
未包含任何文件的项目称为空项目。
“项目管理器”窗口时VisualFoxpro开发人员的工作平台,共有6个选项卡,其中“数据”、“文档”、“类”、“代码”、“其他”
“数据”选项卡,包含了一个项目中的所有数据——数据库、自由表、查询和视图。
“文档”徐香香卡,包含了处理数据时所能的三类文件,输入和查看数据所用的表单印表和查询结果所用的报表及标签。
向导是一种交互程序。
向导超过20个。
VisualFoxproR设计器是创建和修改应用系统各种组件的可视化工具。
生成器是带有选项卡的对话框,用于简化表单、复杂控件和参照完整性码的创建域与修改过程。
参照完整性规则包括更新规则、删除规则和插入规则
在VisualFoxpro中将主关键字称作主索引,将候选关键字称作候选索引。
VisualFoxpro中主索引和候选索引有相同的作用。
在建立参照完整性之前必须首先清理数据库。
所谓清理数据库是物理删除数据库各个表中所有带有删除标记的记录。
以在“数据库”菜单下选择“清理数据库”,该操作与命令PACKDATABASE功能相同。
相应的数据库名称实际是扩展名为dbc的文件名,与之相关的还会自动建立一个扩展名为dct的数据库备注(meno)文件盒一个扩展名为dcx的数据库索引文件。
在浏览器中置删除标记和取消删除标记的命令式ctrl+T.
第二章表达式与常用函数
一、考试大纲要求
(1)常量、变量、表达式。
(2)常用函数:
字符处理函数、数值计算函数、日期时间函数、数据类型转换函数、测试函数。
二、将于部分
Ø常量
常量是指值不会发生变化的量。
注:
每种常量的表示。
⏹数值常量
1数值型(N):
取值约为-0.99E+19到0.99E+20
2浮点型(F):
取值约为-0.99E+19到0.99E+20
3双精度(D):
取值约为-0.94E+324到8.9E+307
4整型(I):
取值约为-2.1E+9到2.1E+9
如:
12、63.5、1.2E-2
注:
123可以用科学技术法表示为1.23E2即1.23乘以10的二次方。
⏹货币型
货币型(Y):
取值约为-9.2E+14到9.2E+14
如:
$168.1234
注:
自动保留4位小数。
⏹字符型
字符型(C):
定界符可用双引号、单引号、方括号任一种表示,左右定界符必须一致。
如:
“abc”=’abc’=[abc]
注:
[abc[abc]此种表示是错误的。
原因:
所有符号不能与最外层重复。
但可这样表示[abc’abc”123”]
特例:
不包含任何字符的字符串(””)叫空串,空串与包含空格的字符串(”“)不同。
⏹日期型
日期型(D):
取值{^0001-01-01}到{9999-12-31}
如:
2002年8月16日可以写为
中国日期格式(年/月/日){^2002/08/16}美国日期格式(月/日/年){08/16/02}
⏹日期时间型
日期时间型(T):
同时表示日期和时间(AM为上午,PM为下午)
如:
2002年8月16日上午9点30分16秒
写为:
{^2002/8/16,9:
30:
16a}或{^2002-8-169:
30:
16a}
⏹逻辑型
逻辑型(L)表示真、假。
注:
必须定界符,点(.)
如:
.T..F..Y..N.
Ø变量
变量的值是随时可以更改。
⏹字段变量就是指的字段名。
⏹内存变量用于临时保存每个值。
①常用类型有C、N、Y、L、D、T
②内存变量的命名规则
变量名可由字母(A-Z)、数字(0-9)、下划线(_)、汉字构成。
如:
a_1、易通、x
但不能以数字开头。
如:
1v是错误的命名。
③赋值方式
直接赋值如:
x=3、y=”abc”、d={^2002/8/16}、金额=$99
命令赋值如:
STORE3TOX
注:
命令可将一个值同时赋给多个变量。
如:
STORE3TOX,Y,Z
④显示内存变量的命令
DISPMEMO
⑤字段变量与内存变量同名时的区分
系统默认使用字段变量,如要使用内存变量,表示方法为:
M,姓名或M→姓名
⑥数组的使用
数组可以理解为多个同名内存变量的组合。
主要用于需要内存变量很多的时候。
⊙创建一维数组:
DIMENISONW(6)或DECLAREW(6)
⊙创建二维数组:
DIMENISONH(2,3)或DECLAREH(2,3)该数组有2行3列。
注:
数组在创建完后,默认值是逻辑假(.F.).
⊙使用一维数组:
表示方式数组名加下标
如:
W
(1)=7,W(3)=”abc”这里W是数组名,1或3都是下标。
⊙使用二维数组:
表示方式数组名加下标
如:
H(1,2)=33,H(2,3)=”中国人民”
⊙二维数组转化为一维数组
如:
W(2,3)可改写为W(6)
⊙数组与记录之间的交换
操作:
在命令窗口中输入如下命令
USE学生表
GO2
SCATTERTOK将第2条记录传输到数组K中。
APPENDBLACK添加空白记录
GAHTHERFROMK将K数组的值重新传输到记录中。
LIST
⑦清除内存变量
CLEREMEMO
⑧?
号的作用
?
号的作用是显示或计算
显示作用如:
?
姓名、?
M.姓名或M→姓名
计算作用如:
?
63+9
?
与?
?
的区别
?
显示完后自动换行。
?
?
在同一行显示,至此本行结束。
Ø表达式
表达式是由常量、变量、函数通过特定的运算符连接的式子。
⏹数值表达式
进行算术运算的式子。
结果为数值型。
操作:
在命令窗口中输入
?
2+3进行加运算
?
9-8进行减运算
?
2*3进行乘运算
?
9/5进行除运算
?
3^2或3**2进行乘方运算
?
3^(1/2)进行开方运算
?
10