VF笔试重点考核知识点
第一章 Visual FoxPro基础
一、基本概念
1.数据库(DB)、数据库管理系统(DBMS 数据库系统的核心)、数据库系统(DBS)
数据库(DB)、数据库系统(DBS)、数据库管理系统(DBMS)三者之间的关系是:数据库系统包括数据库和数据库管理系统,即DBS包括DB和DBMS。
2..实体联系
常见的实体联系有3种:一对一联系、一对多联系和多对多联系。
(1)一对一联系(1:1)
若两个不同型实体集中,任一方的一个实体只与另一方的一个实体相对应,称这种联系为一对一联系。
(2)一对多联系(1:n)
若两个不同型实体集中,一方的一个实体对应另一方若干个实体,而另一方的一个实只对应本方一个实体,称这种联系为一对多联系。
(3)多对多联系(m:n)
若两个不同型实体集中,两实体集中任一实体均与另一实体集中若干个实体对应,称这种联系为多对多联系。
3.数据模型 数据库管理系统常用的数据模型有下列三种:层次模型、网状模型、关系模型。
(1)层次模型是用树型结构来表示实体类型以及实体间联系的模型。
(2)网状模型是用图结构来表示实体类型以及实体间联系的模型。
(3)关系模型是用二维表格结构来表示实体以及实体联系间模型。
二、关系数据库:
1.关系数据库基本概念
(1)一个关系就是一张二维表,每个关系有一个关系名。在Visual FoxPro中,一个关系存储为一个文件,
其扩展名为.dbf,称为“表”。
2.关系的特点:
(1)关系必须规范化,属性不可再分割;
(2)在同一关系中不允许出现相同的属性名(字段);
(3)关系中不允许有完全相同的元组(记录);
(4)在同一关系中元组(行)的顺序无关紧要;
(5)在同一关系中属性(列)的顺序无关紧要;
3.关系运算关系的基本运算有两类:一类是传统的集合运算,包括并、差、交;另一类是专门的关系运算,包括选择、投影和联接。
(1)选择 是指从关系中出满足指定条件的元组的操作。
(2)投影 是指从一个关系模式中选择若干个属性组成新的关系的操作。
(3)联接 是从两个关系模式选择符合条件的元组或属性组成一个新的关系。
选择和投影的操作对象是一个表,而联接的操作对象是两个表。
选择、投影和联接这三种专门的关系运算,运算的结果依然是关系。
三、项目管理器
项目管理器一共有六张选项卡,分别是“全部”、“数据”、“文档”、“类”、“代码”和“其它”。
1.数据:数据库、自由表、查询、视图。
2.文档:表单、报表、标签。
3.代码:程序。
4.其他:菜单文件、文本文件、其他文件和图片文件等。
第二章 数据和数据运算
一
、常量变量
1.正确书写常量,尤其注意日期常量的书写格式。
2.变量分为:字段变量和内存变量。
(1)在表中,指针所指向的行即此字段当前的值,当输出这个字段变量时,就会在主窗口显示当前行的值。
(2)若字段变量名和内存变量名重名的现象时,优先输出字段变量的值;若想输出内存变量的值,则需在变量名前加上前缀M.(或M->)。
3.数组
(1)定义时数组时,系统自动会给每个元素赋值为逻辑假(.F.).
(2)可以用一维数组的形式访问二维数组
二、表达式
1.数值表达式
2.字符表达式 字符运算符:用于字符串连接运算,结果是一个新的字符串。
(1)+ 将+号前后字符串连接起来组成一个新的字符串
(2)- 删除-号前面字符串的尾部空格后再与右侧的字符串组成新的字符串
3.日期时间表达式
(1)+ 日期+天数 得到 新日期 (日期型数据)
时间+秒数 得到 新时间 (日期时间型数据)
(2)- 日期-日期 得到 间隔天数 (数值型数据)
时间-时间 得到 间隔秒数 (数值型数据)
4.关系表达式
(1)“=”运算符
注意:“=”在什么时候表示赋值运算符,什么时候表示比较相等运算符!
当使用“=”运算符时,两个字符串是否进行精确比较与SET EXACT OFF/ON的设置有关。
如果设置为OFF状态(默认),则不进行精确比较,只要右边字符串与左边字符串的开头部分相同,则表达式的值为.T.;
如果设置为ON状态,则先在短字符串的末尾加上若干个空格,使两个字符串等长,如果此时两个字符串完全一致,则表达式的值为.T.。
(2)“= =”运算符
当使用“==”运算符时,两个字符串进行精确比较,即只有当两个字符串完全一致时,表达式的值才为.T.,否则为.F.。
5.逻辑表达式
(1)逻辑非:NOT或 .NOT. 或 !
其运算结果为逻辑表达式的否定值。
(2)逻辑与:AND或 .AND.
只有当AND两边的逻辑值都为.T.时,其运算结果才为.T.,只要有一个逻辑值为.F.,其运算结果即为.F.。
在实际应用中,要表示两个条件同时成立,则使用逻辑与。
(3)逻辑或:OR或 .OR .
只要OR两边有一个逻辑值为.T.,其运算结果即为.T.。
在实际应用中,要表示两个条件成立一个即可,则使用逻辑或。
三、常考函数:
1.子串位置函数
【格式】AT(<cExp1>,< cExp 2>)
【功能】返回串cExp1在串cExp2中的起始位置。函数值为整数。如果串cExp2不包含串cExp1,函数返回值为零。
2.取左子串函数LEFT( )
【格式】LEFT(<cExp>,<nExp>)
【功能】返回从cExp串中第一个字符开始,截取nExp个字符的子串。
3.取右子串函数RIGHT( )
【格式】
RIGHT(<cExp >,< nExp>)
【功能】返回从cExp串中右边第一个字符开始,截取nExp个字符的子串。有关说明同LEFT( )函数。
4.取子串函数SUBSTR( )
【格式】SUBSTR (<cExp>,<nExp1> [,< nExp2>] )
【功能】返回从串cExp中第nExp1个字符开始,截取nExp2个字符的子串。
5.字符串长度函数LEN( )
【格式】LEN(<cExp>)
【功能】返回cExp串的字符数(长度)。函数值为N型。
6.删除字符串前导空格函数LTRIM( )
【格式】LTRIM(<cExp>)
【功能】删除cExp串的前导空格字符。
7.删除字符串尾部空格函数RTRIM( ) | TRIM( )
【格式】RTRIM | TRIM(<cExp>)
【功能】删除cExp串尾部空格字符。
8.字符串替换函数STUFF( )
【格式】STUFF(<cExp1>,<nExp1>,<nExp2>,<cExp2>)
【功能】从nExp1指定位置开始,用cExp2串替换 cExp1串中nExp2个字符。
9.字符串匹配函数 LIKE()
【格式】LIKE(<cExp1>,<cExp2>)
【功能】若第一个参数与第二个参数相匹配则函数返回.T.,否则返回.F.。只有第一个参数中的*?表示通配符,*表示多个字符,?表示一个字符.
10.宏替换函数 &
【格式】& < cVar >[.< cExp >]
【功能】替换出字符型变量cVar中字符。
11.不确定值(.NULL.)测试函数
【格式】ISNULL(<;表达式>)
【功能】判断一个表达式是为空值.NULL.。
【说明】这里空值.NULL.的含义是不确定的意思。
12.“空”值测试函数
【格式】EMPTY(<;表达式>)
【功能】判断一个表达式是否为“空”值。
【说明】此处的空值是指字符型的为空格或空串,数值型的为0,逻辑型的为.F.。
13.条件测试函数
【函数】IIF(<L型表达式>,<;表达式1>,<;表达式2>)
【功能】L型表达式的值若为真,返回表达式1的值,否则返回表达式2的值。
14.时间函数
【格式】TIME()
【功能】返回系统的当前时间。注意:返回结果为字符型。
15.日期函数
【函数】DATE()
【功能】返回系统的当前日期。
第三章 表和数据库的基本操作
一、表的操作
1.表分为自由表(不属于任何数据库的表)和 数据库表(包含在一个数据库中的表)。
2.关于表操作的几个基本命令
CREATE 表文件名 创建一个新的自由表的结构
USE 表文件名 打开指定的表文件
USE 关闭当前表文件
MODIFY STRUCTURE 调出表设计器,修改当前表的结构。
3.表记录基本操作
(1)添加记录
INSERT [BLANK][BEFORE]
(2)修改记录
CHANGE [FIELDS 字段名1,…][FOR 条件] [LEDIT] [REDIT] 在编辑窗口显示要修改的字段
EDIT:调出浏览窗口
REPLACE 字段1 WITH 表达式1 [, 字段名2 WITH 表达式2] [范围] [FOR 条件] 把字段值用指定的表达式进行替换。 默认范围是当前记录
(3)删除记录
DELETE [ 范围 ][FOR 条件] 对当前表中指定范围内满足条件的记录加上删除标记 *
默认范围是当前记录
PACK 将所有带删除标记的记录从表中删除(不能再恢复)
ZAP 删除当前表中所有记录,只留下表的结构
(4)记录的定位
绝对定位 GO
相对定位 SKIP <n> 将记录指针从当前记录向上或向下移动n个 。n为正值则向下移动,n为负值则向上移动 无n向下移动 1个
条件定位 LOCATE FOR <;条件> [ 范围 ] 按顺序搜索表, 直到到满足指定条件的第一个记录,若没有到,则记录指针移到表尾部。
4.索引
(1)索引文件是一个由指向.dbf文件的记录指针构成的文件,使用索引还可以加速对表的查询操作。索引不改变表中记录的物理顺序。表文件中的记录被修改或删除时,索引文件可自动更新。
(2)主索引: 组成主索引关键字的字段或表达式,在表的所有记录中不能有重复的值。主索引只适用于数据库表的结构复合索引中。自由表中不可以建立主索引;数据库中的每个表可以且只能建立一个主索引。
候选索引: 在指定的关键字段或表达式中不允许有重复值的索引。在数据库表和自由表中均可为每个表建立多个候选索引。
普通索引: 也可以决定记录的处理顺序,但是允许字段中出现重复值。在一个表中可以加入多个普通索引。
唯一索引: 参加索引的关键字段或表达式在表中可以有重复值,但在索引对照表中,具有重复值的记录仅存储其中的第一个。
(3)结构复合索引文件与表文件同名,扩展名为.CDX。当Visual FoxPro打开一个表时,便自动查一个结构复合索引文件,如果到便自动打开,该索引文件随表文件同时打开和同时关闭。
二、数据库的操作
三、数据完整性
数据完整性包括:实体完整性 、域完整性和参照完整性
(1)实体完整性是保证表中记录唯一的特性,即在一个表中不允许有重复的记录。在VFP中利用主关键字或候选关键字来保证表中记录的唯一性。
(2)域完整性 字段有效性 “规则”是逻辑表达式,“信息”是字符表达式
(3)参照完整性的三大规则(更新规则、删除规则、插入规则)
四、数据工作区
1.VFP有32767个工作区, VFP可以在32767个工作区中打开和操作表。
2.Select 0 选择空闲的最小号工作区
第四章 关系数据库标准语言SQL
SQL语句有四大功能:数据定义功能、数据操纵功能、数据查询功能(SQL语言的核心部分)和数据控制功能
一、数据定义功能
1.命令动词 CREATE 、DROP、ALTER
2.表的定义(create)
3.表的删除(drop) drop table 表名
4.表结构的修改(alter)
(1)增加字段
alter table
表名 add 字段名数据类型 [(宽度[,小数位数])[ PRIMARY KEY|UNIQUE]]
[check 规则 [error 信息]][default 默认值]
(2)修改字段有效性
alter table 表名 alter 字段名 set check 规则 [error 信息]
alter table 表名 alter 字段名 set default 默认值
(3)删除字段有效性
alter table 表名 alter 字段名 drop check
alter table 表名 alter 字段名 drop default
(4)更改字段名,即字段重命名
alter table 表名 rename 原字段名 to 新字段名
二、数据操纵功能
1.命令动词 INSERT、UPDATE、DELETE
2.插入记录 插入一条记录
语句格式:INSERT INTO 表名 [(字段名表)] VALUES(字段值列表)
语句功能:将新记录插入指定表中。
3.更新记录
语句格式:UPDATE表名SET 字段名=表达式 [WHERE 条件表达式]
语句功能:将表中符合条件的记录的某些字段的值用表达式的值替代。
字段字符串去重复4.删除记录
语句格式:DELETE FROM表名[WHERE 条件表达式]
三、数据查询功能(SQL语言的核心部分)
1.命令动词 SELECT SELECT 字段名表 FROM 表名
2.DISTINCT短语功能是去掉重复值
3.HAVING<;条件表达式>用来筛选满足条件的分组HAVING子句总是跟在GROUP BY子句之后,不可以单独使用。HAVING和WHERE子句不矛盾。
4.使查询结果排序用短语ORDER BY
5.SELECT语句中与INTO TABLE等价的短语是INTO DBF
6.将查询结果存储到临时表中使用 into cursor短语。
7.SQL语句中,like是字符串匹配运算符,通配符“%”表示0个或多个字符,通配符“_” 表示一个字符。
8.查询空值时要使用IS NULL,而 = null是无效的,因为空值不是一个具体的值,所以不能用“=”预算符进行比较。
9.Top短语要和order by短语同时使用才有效。
10.Sql的集合并运算符是UNION。
第五章 查询和视图
一、查询
1.运行查询文件的命令 : Do 查询文件名.QPR
二、视图
1.新建视图命令: CREATE VIEW 视图名 AS 查询语句
2.视图是存在于数据库中的一个虚表,不以独立的文件形式保存;视图中的数据是可以更改的,它不仅具有查询的功能,且可以把更新结果反映到源数据表中; 视图打开时,其基表自动打开,但视图关闭时,其基表并不随之自动关闭;视图的数据源可以是自由表、数据库表或另一个视图。
3.删除视图命令: DELETE VIEW 视图文件名
三、查询与视图的区别
1.查询的结果只能阅读,不能修改,查询是作为文本文件以扩展名.qpr存储,且查询是完全独立的,不依赖数据库的存在而存在。
2.视图不仅具有查询的功能,还可以修改记录数据并使源表随之更新,但视图只能存在于数据库中,它不是独立的文件。
3.与查询设计器相比,在视图设计器中多了一个“更新条件”选
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论