Fopro教材考点+公共基础培训讲义_第1页
Fopro教材考点+公共基础培训讲义_第2页
Fopro教材考点+公共基础培训讲义_第3页
Fopro教材考点+公共基础培训讲义_第4页
Fopro教材考点+公共基础培训讲义_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

1

全国计算机等级考试二级VF教材考点+公共基础培训讲义

全国计算机等级考试二级VF教材讲义

笔试:100分

VF教材:70分

公共基础知识:30分(选择题:20分,填空题:10分)

笔试的题型主要有两种:选择题和填空题

选择题:70分,35个选择题,每个2分

填空题:30分,15个填空题,每个2分

上机题型:

1>基本操作题:30分,一般有4个小题(7、7、8、8)

2、简单应用题:40分,一般有2个小题(20、20)

3、综合应用题:30分,一般有1个小题,中间包含若干小题

上机题型:

必须掌握的简单题型:1章、3章、5章、8章

重点掌握的题型:4章、6章、7章

难点掌握的题型:2章

第1章VisualFoxPro数据库基础

1.1数据库基础知识

1.1.1计算机数据管理的发展

1、数据与数据处理

数据的概念:可以存储在某种介质上面的符号

2、计算机数据管理

数据处理的中心问题是数据管理。计算机对数据的管理是指对数据的组织、分类、编码、存

储、检索和维护提供操作手段。

数据管理主要经历了三个阶段:(笔试考点)

①人工管理阶段

②文件系统阶段

③数据库系统阶段

数据库的概念:在计算机中的仓库

为数据库的建立、使用和维护而配置的软件称为数据库管理系统

0简称为DBMS。(笔试考点)

VF到底是什么?

VF就是一个数据库管理系统(DBMS)

1.1.2数据库系统

1

1、数据库有关概念

①数据库:DataBase,简称为:DB

②数据库管理系统:DBMS

③数据库应用系统:DBAS

④数据库管理员:DBA

DBA的职责:(笔试考点)

•参与数据库的规划、设计和建立

•负责数据库管理系统的安装和升级

•规划和实施数据库备份和恢复

•控制和监控用户对数据库的存取访问

•监控数据库的运行

•支持开发和应用数据库的技术

仓库一〉数据库

仓库管理员一〉DBA

2、数据库系统的特点

①实现数据共享,减少数据冗余(冗余就是指重复、多余)

②采用特定的数据模型

③具有较高的数据独立性

④有统一的数据控制功能

1.1.3数据模型

1、实体的描述(笔试考点)

①实体:客观存在相互之间可以区分

②实体的属性:描述实体的特性

③实体集和实体型:

2、实体间联系及联系的种类(笔试考点和上机考点)

实体间的联系有三种:

①一对一•联系:1:1

②一对多联系:1:N

③多对多联系:M:N

例如:

1:1可以表示:一个学生对应一个学号

1:N可以表示:一个班级对应多个学生

M:N可以表示:1:N加上N:1

3、数据库模型简介(笔试考点)

①层次数据模型

②网状模型

③关系数据模型(本书讲的重点内容)

VF是什么?

VF是DBMS,采用的数据模型是关系数据模型

1

1.2关系数据库

关系模型的用户界面非常简单,一个关系的逻辑结构就是一张二维表格。使用二维表格的形

式来表示实体和实体之间的联系

1、关系术语(笔试考点)

①关系:关系就是二维表、表格或称之为实体

表述关系:

例如:

学生(学号,姓名,性别,班级)

班级(班级,班级名称)

总结

黄述的♦格式为:

表的名称(字段名称1,字段名称2,...)

表的名称(列1,列2,……)

②元组:在二维表中,每一行就表示一个元组

③属性:二维表中列或称之为字段

④域:是指二维表中列或字段的取值范围

⑤关键字:属性或属性的组合,关键字可以唯一识别一个元组

⑥外部关键字:两个表有相同的列,不是关键字的那个列,就是外部关键字。

总结.

会骨体对应着关系

②关系对应二维表

③实体中的属性、关系中的属性、二维表中的字段或列是等价的

④关系(表格)与关系(表格)之间是否有联系

主要看表格之间是否有相同的属性或字段或列

2、关系的特点(笔试考点)

①关系必须规划化

②同一个关系中不能出现相同的列

③关系中不能出现完全相同的元组

④在一个关系中元组的次序无关紧要

⑤在一个关系中列的次序无关紧要

3、实际关系模型

1.2.2关系运算

1、传统的集合运算

前提条件:进行并、差、交集合运算的两个关系必须具有相同的结构

①并运算

②差运行

③交运算

1

2、专门的关系运算

①选择:找出表中满足条件的元组

注意:选择可以对单张表进行操作或多张表进行操作

②投影:找出表中需要的列或字段

注意:选择可以对单张表或多张表进行操作

③连接:连接是关系的横向结合

④自然连接:找出表之间相同的列,取其值相等的元组

总结

最加择♦运算:主要针对的是表中的元组

②投影运算:主要针对的是表中的列或字段

③自然连接:两张表中有相同的列,取其值相等的元组

1.3数据库设计基础

1.3.1数据库设计步骤

1、设计原则(笔试考点)

①,,一事一地,,的原则

②避免出现重复字段

③表中字段必须是原始数据和基本数据元素,就是具有原子性

④用外部关键字保证有联系

2、设计的步骤

了解

1.3.2数据库设计过程

了解

1.4VisualFoxPro系统概述

笔试考点:

VF中退出系统的方法:

①关闭按钮

②从“文件”下拉菜单中选择“退出”选项

③Alt+F4(考点)

④在命令窗口中输入QUIT命令,并执行(考点)

1.4.2VF的主界面

1、菜单操作

2、命令操作

注意:VF中的命令以英文格式为主

打开/隐藏命令窗口的快捷键:(笔试考点)

打开:Ctrl+F2

隐藏:Ctrl+F4

3、项目管理器窗口

1

1.4.3工具栏的使用

1、显示或隐藏工具栏

2、定制工具栏

3、修改工具栏

总结:(笔试考点)

①系统默认的工具栏,只能修改,不能删除

②自定义的工具栏,可以修改,可以删除

1.4.4VF的配置

1、使用“选项”对话框

VF的大部分配置,主要就是在“选项”对话框中设置

设置流程:

“工具”菜单下的''选项",弹出“选项”对话框

①设置日期和时间的显示格式

②更改表单的默认大小

③设置默认目录(必须掌握)

考生文件夹的位置:

C:\WEXAM\准考证号码

1.5项目管理器

项目的概念:是指文件、数据、文档和对象的集合

1.5.1创建项目(上机考点)

1、创建项目

创建流程:

①“文件”菜单

②“新建”菜单项

③选择“项目”文件类型

④新建文件

笔试考点:

VF中所创建的文件后缀名称,需要大家掌握:

项目文件的后缀名称:.PJX

2、打开和关闭项目

3、各类文件选项卡(笔试考点)

“数据”选项卡:数据库、自由表、查询和视图

“文档”选项卡:表单、报表、标签

“代码”选项卡:程序、API库、应用程序

“其他”选项卡:菜单、文本文件、其它文件

1.5.2使用项目管理器

1、创建文件

2、添加文件

1

3、修改文件

4、移去文件(考点)

移去文件对话框中,有三个按钮:

“移去”按钮:将当前选中的文件,从当前项目中排除,但是该文件仍然存在

“删除”按钮:将当前选中的文件,从当前项目中排除,并且从磁盘中彻底删除

“取消”按钮:不进行移去操作

1.5.3定制项目管理器

注意:

要把项目管理器拆分成独立的浮动窗口,必须首先折叠项目管理器

1.6向导、设计器、生成器简介

161、向导

1、启动向导

2、使用向导

3、修改用向导创建的项

1.6.2VF的设计器

需要掌握的设计器:

1、表设计器

2、数据库设计器

3、报表设计器

4、查询设计器

5、视图设计器

6、表单设计器

7、菜单设计器

8、数据环境设计器

1.6.3VF的生成器

注意:

程序文件的后缀名称:.PRG

第2章VisualFoxPro程序设计基础

2.1常量与变量

2.1.1常量

常量的概念:常量是指在程序或命令的执行过程中,其值不会发生改变的量

常量主要包括:数值型、货币型、字符型、日期型、日期时间型和逻辑型。

1、数值型常量

主要表示的是数值

例如:

1,2,3…

2、货币型常量

1

主要表示货币的数目,就是金额

注意:(笔试考点)

货币型常量,以“$”符号开头,保留4位小数,小数点4位以后有四舍五入。例如:

$123.345¥123,345

3、字符型常量

字符型

常量,就是字符串。

注意:字符型常量中,有字符定界符。定界符由:双引号、单引号和中括号组成,注意,必

须是英文状态下的。

例如:

"北斗星教育"

'北斗星教育'

[北斗星教育]

错误的格式:

“北斗星教育”

【北斗星教育】

补充:

在VF中,所有的命令,都必须是在英文状态下输入,除非汉字

或特殊情况。

4、日期型常量

日期型常量的格式分为两种:严格的日期格式和传统的日期格式

①严格的日期格式:(笔试考点)

格式为:

{八yyyy-mm-dd}

说明:

•日期格式左右两边必须要有大括号

,yyyy:表示年份

,mm:表示月份

•dd:表示天数

例如:

{△2012-08-22}

「2012-08-22]-->表示字符串

201加职2-->表示除法表达式

②传统的日期格式:

格式为:

{yy-mm-dd}或{mm-dd-yy}或{dd-mm-yy}

③影响日期格式的设置命令

•设置日期分隔符的命令

命令格式:(笔试考点)

SETMARKTO日期分隔符

1

注意:

日期分隔符是字符串

第一种用法:

将日期分隔符设置为“#"

setmarkto

第二种用法:

将日期分隔符恢复为默认的

setmarkto

错误的用法:

setmarkto#

总结:

VF中的命令不区分大小写,可以大写也可以小写,也可以大小写混合。如果命令是正确的,

则命令在命令窗口中以蓝色背景显示。

•设置日期格式:

命令格式:

SETDATE[TO]AMERICAN|ANSI|...

命令功能:设置日期格式为年月日或月日年或日月年

•设置日期世纪的命令

命令格式:(笔试考点)

SETCENTURYON|OFF|TO世纪值

功能:以4为数字的形式显示年份

说明:

ON:表示显示世纪

OFF:表示不显示世纪,默认是不显示

TO:表示设置世纪

例如:

显示世纪:setcenturyon

不显示世纪:setcenturyoff

错误的格式:

setcenturyto2

•设置是否对日期进行严格检查

命令格式:

SETSTRICTDATETO[01112]

说明:

0表示不进行严格检查

1表示进行严格检查

2与1相同

5、日期时间型常量

1

日期时间型常量的格式:

{日期时间}

6、逻辑型常量

逻辑型常量,主要有两种值:逻辑真值和逻辑假值

逻辑真值:工、.t.、.Y.、y

逻辑假值:.F.、.f.、.N.、n

逻辑真值,系统默认为工

逻辑假值,系统默认为.F.

注意:

左右两边的小数点不能省略

2.1.2变量

变量的概念:在程序或命令的执行过程中,其值会发生改变的量在VF中,主要有两种变量:

字段变量和内存变量

1、简单内存变量

向简单内存变量赋值不需要先定义

赋值格式为:

内存变量名称=表达式

STORE表达式TO内存变量名表

例如:

x=10

store10tox

store10tox,y

注意:(笔试考点)

当出现内存变量和字段变量同名时,系统默认可以访问字段变量,如果需要访问内存变量,

则需要特殊指定。指定格式为:

M.或M->

格式为:

M.内存变量名称

M->内存变量名称

字段变量和内存变量的区别:

内存变量:就是存储在内存中的临时性变量

字段变量:在VF中,打开一张表之后,表中的字段,自然就变成了字段变量

2、数组

定义数组的格式:

DIMENSION数组名称(卜标)

1

DECLARE数组名称(下标)

例如:

dimensionx(5)

x(l)=l

x(2)=2

x(3)=3

=4

x(5)=5

如何将数组中的值取出来:

V=x(l)

2.1.3内存变量常用命令

1、内存变量的赋值

格式1:STORE表达式TO内存变量名表

格式2:内存变量名称=表达式

2、显示表达式的值

格式1:?表达式

格式2:??表达式

功能:将表达式的计算结果显示在VF的屏幕中

区别:

?:显示表达式的计算结果,并有回车换行

??:显示表达式的计算结果,但是没有回车换行

例如:

?"北斗星教育"

??"做七星培训"

结果:

北斗星教育做七星培训

3、内存变量的显示(笔试考点)

格式1:LISTMEMORY[LIKE通配符]...

格式2:DISPLAYMEMORY[LIKE通配符]…

功能:将内存变量的结果显示在VF屏幕中

说明:

通配符有:*和?

*:表示任意匹配0个以上的字符

?:表示任意匹配1个字符

例如:

将以x开头的内存变量中的值显示出来

listmemorylikex*

4、内存变量的清除

格式1:CLEARMEMORY

格式2:RELEASE内存变量名表

1

格式3:RELEASEALL[EXTENDED]

格式4:RELEASEALL...

功能:将内存变量销毁

5、表与数组之间的数据传递

了解

2.2表达式

表达式的概念:是由常量、变量、运算符及函数等连接起来的式子,称之为表达式

2.2.1数值、字符与日期时间表达式

1、数值表达式

①算术运算符

主要有:()、**或八、*、/、%、+、-

重点分析%:

10%3-->1

10%-3-->-2

-10%3->2

总结:(笔试考点)

假设有正整数a和b

a%b=a与b的余数

a%(-b)=(a%b)+(-b)

(-a)%b=-(a%b)+b

2、字符表达式(笔试考点、上机考点)

+和-运算符也可以应用与字符串中

+:将两个字符串直接连接在一起

-:将第一个字符串末尾的空格放在第二个字符串尾部,再将两个字符串直接连接

例如:

假设#是空格:

x='中北斗星教育#"

y="#做七星培训#"

?x+y

结果:#北斗星教育##做七星培训#

?x-y

结果:#北斗星教育#做七星培训##

3、日期时间表达式

2.2,2关系表达式

1、关系表达式

关系表达式的格式:

表达式1关系运算符表达式2

运算符有:

>、>=^<、<=、<>或#或!=、==、=、$

1

①数值型、货币型数据比较

越大的越大,越小的越小

②日期、日期时间数据比较

过去的日期小,未来的日期大

例如:

{A2012-08-21}<{A2012-08-22}

③逻辑型数据比较

逻辑真大于逻辑假

例如:

.t.>.F.

④子串包含测试(笔试考点、上机考点)

格式为:

字符表达式1$字符表达式2

说明:

字符表达式1是字符表达式2的一个子字符串,则返回逻辑真

例如:

存在字段变量“性别”,其中存储的内容为“男”或“女”

逻辑表达式:性别$"男女"

2、设置字符的排序次序

设置字符排序的命令格式为:

SETCOLLATETO排序次序名称

•Machine

•PinYin

•Stroke

3、字符串精确比较与EXACT设置(笔试考点)

在VF中,比较运算符有两个:"==”和“=”

“==":表示精确比较

“=”:也是表示比较,但是',”的比较,与EXACT命令的设置有关

说明:

精确比较,是指左右两边的字符串必须对应一致,才是相等。

“=”:比较与EXACT命令有关

EXACT命令格式:

SETEXACTON|OFF

ON:表示先在较短的字符串尾部补空格,使两个字符串长度一致,然后再进行精确比较

OFF:表示只要右边字符串与左边字符串的前面部分内容一致,则返回逻辑真

0系统默认是OFF状态。

例如:

#表示空格

1

X

="北斗星"

y="北斗星##"

?x==y

结果:.F.

setexacton

?"北斗星"="北斗星##"

结果:工

setexactoff

?"北斗星"="北斗星##"

结果:.F.

?勺匕斗星##"="北斗星"

结果:工

4、赋值与相等比较的区别

2.3.3逻辑表达式

逻辑表达式的概念:是由逻辑运算符连接起来的式子

逻辑运算符有三种:.AND.、.OR.、.NOT.

逻辑与.AND.的规则:

真.AND.真一〉真

真.AND.假->假

假.AND.真->假

假.AND.假->假

逻辑或.OR.的规则:

真.OR.真一>真

真.OR.假->真

假.OR.真->真

假.OR.假->真

逻辑非.NOT.的规则:

,NOT.真一〉假

,NOT.假一〉真

例如:

找出18岁至20岁的男同学

条件为:年龄>=18and年龄<=20and性别="男"

说明:

逻辑运算符左右的小数点可以省略

2.3常用函数

需要掌握的内容:

①函数的调用方法

1

②函数返回值的数据类型

2.3.1数值函数

1、绝对值函数和符号函数

格式:

ABS(数值表达式)

SIGN(数值表达式)

功能:

ABS函数:返回数值的绝对值

SIGN函数:如果数值表达式大于0,则返回1;如果数值表达式等于0,则返回0;如果数值

表达式小于0,则返回-1

例如:

?abs(5)zabs(-5)

结果:55

?sign(5),sign(-5)

结果:1-1

2、求平方根函数

格式:

SQRT(数值表达式)

功能:对数值表达式进行开方

例如:

?sqrt(4)

结果:2

3、圆周率函数

格式:

PK)

功能:返回圆周率,3.14

4、求整数函数(笔试考点)

格式:

INT(数值表达式)

CEILING(数值表达式)

FLOOR(数值表达式)

功能:

INT函数:对数值表达式进行取整,即返回整数部分

CEILING函数:返回大于或等于指定数值表达式的最小整数

FLOOR函数:返回小于或等于指定数值表达式的最大整数

例如:

?int(5.9999),int(-5.9999)

结果:5-5

?ceiling(5.99),ceiling(-5.99)

结果:6-5

?floor(5.99),floor(-5.99)

结果:5-6

1

5、四舍五入函数(笔试考点)

格式:

ROUND(数值表达式1,数值表达式2)

功能:

对数值表达式1按照数值表达式2的格式进行四舍五入

例如:

?round(123.456,2)

结果:123.46

?round(123.456,0)

结果:123

?round(123.456,-2)

结果:100

6、求余数函数

格式:MOD(数值表达式1,数值表达式2)

功能:求余数,等价于%

例如:

?mod(10,3),mod(10,-3),mod(-10,3)

结果:1-22

7、求最大值和最小值函数(笔试、上机考点)

格式:

MAX(数值表达式1,数值表达式2,...)

MIN(数值表达式1,数值表达式2,...)

功能:求最大值或最小值

例如:

?MAX("2","12","05")

结果:2

总结:

MAX或MIN函数的比较规则:

数字:0<9

字符:"0"<"9"

字母:"A'Y'Z"或"a"<"z"

数字和字母:9<"a"

2.3.2字符函数

注意:在计算机中,一个汉字表示2个字符长度

1、求字符串长度函数(笔试考点)

格式:LEN(字符表达式)

功能:求字符表达式的字符长度

例如:

?len("hello")

结果:5

1

?Ien("北斗星教育VF")

结果:12

2、大小写转换函数

格式:

LOWER(字符表达式)

UPPER(字符表达式)

功能:将字母转换为大写或小写字母,其他字符不变

3、空格字符串生成函数(笔试考点)

格式:SPACE(数值表达式)

功能:返回指定数目的空格

例如:

假设空格为#

?space(5)

结果:#####

?len("北斗星教育"+space(5))

结果:15

?Ien(space(5)+space(4))

结果:9

4、删除前后空格函数(笔试考点、上机考点)

格式:

TRIM(字符表达式)

LTRIM(字符表达式)

ALLTRIM(字符表达式)

功能:

TRIM函数:删除尾部的空格

LTRIM函数:删除首部的空格

ALLTRIM函数:删除字符串两头的空格

例如:假设#表示空格

?trim("#北斗星教育#。

结果:#北斗星教育

?ltrim("#北斗星教育#")

结果:北斗星教育#

?alltrim("#北斗星教育#")

结果:北斗星教育

5、取子串函数(笔试、上机考点)

格式:

LEFT(字符表达式,长度)

RIGHT(字符表达式,长度)

SUBSTR(字符表达式,起始位置,长度)

功能:

LEFT函数:从字符串左边开始截取指定长度的字符子串

RIGHT函数:从字符串右边开始截取指定长度的字符子串

1

SUBSTR函数:从字符串指定的起始位置,开始截取指定长度的字符子用

例如:

?Ie代("201201”,4)

结果:2012

?right("201201",2)

结果:01

?substr("201201",3,2)

结果:12

?substr("北斗星教育",5,4)

结果:星教

6、计算子串出现的次数(笔试考点)

格式:OCCURS(字符表达式1,字符表达式2)

功能:返回第一个字符串在第二个字符串中出现的次数

函数的返回值:返回数值类型

例如:

?occurs("s","absdss")

结果:3

7、求子串位置函数

格式:

AT(字符表达式1,字符表达式2[,数值表达式])

ATC(字符表达式1,字符表达式2[,数值表达式])

功能:求子串出现的位置

函数的返回值:返回数值类型

注意:

AT区分大小写,而ATC不区分大小写

总结:

函数的结果为数值类型的函数有:

LEN函数、OCCURS函数、AT函数、ATC函数

2.3.3日期和时间函数

1、系统日期和时间函数

格式:

DATE。(上机考点)

TIME()(上机考点)

DATETIMEO

功能:

DATE函数返回操作系统的当前日期

TIME函数返回操作系统的当前时间

DATETIME函数返回操作系统的当前日期时间

例如:

?date()

结果:08/2^/12

1

2、年份、月份、天数函数

格式:

YEAR(日期表达式)(上机考点)

MONTH(日期表达式)

DAY(日期表达式)

功能:

例如:

?year({A2012-08-12})

结果:2012

?year(date())

结果:2012

3、时、分、秒函数

格式:

HOUR(日期时间表达式)

MINUTE(日期时间表达式)

SEC(日期时间表达式)

2.3.4数据类型转换函数

1、数值转换成字符串(笔试考点)

格式:STR(数值表达式,长度,小数位数)

例如:

?str(123.456)

结果:123.456->这里是字符串

2、字符串转换成数值(笔试、上机考点)

格式:VAL(字符表达式)

功能:将字符表达式转换成数值

例如:

?val("123")

结果:123-。这里是数值

?val("123x")

结果:123

?val("xl23")

结果:0

3、字符串转换成日期或日期时间(上机考点)

格式:

CTOD(字符表达式)

CTOT(字符表达式)

功能:将字符串转换成日期或日期时间

例如:

?ctod("2001/V12")

1

如何记忆:

C-TO-D:

C-TO-T:

4、日期或日期时间转换成字符串

格式:

DTOC(日期表达式)

TTOC(日期表达式)

5、宏替换函数(笔试考点)

格式:&字符变量名称

功能:&字符变量名称可以替换为字符变量中的具体值

例如:

M=123

N=23

K="M+N"

求&K+1的结果

&K+1->M+N+1

注意:

将&K替换为变量K中的字符串的内容

2.3.5测试函数

1、值域测试函数

格式:BETWEEN(表达式T,表达式L,表达式H)

功能:如果满足表达式L<=表达式T<=表达式H,则返回逻辑真。否则返回逻辑假

例如:

?between(5,0,10)

结果:工

2、空值(NULL值)测试函数(笔试考点)

格式:ISNULL(表达式)

功能:是判断表达式的值是否为NULL值

例如:

?isnull(NULL)

结果:工

3、“空”值测试函数(笔试考点)

格式:EMPTY(表达式)

功能:判断表达式的值是否为“空”值,注意这里的“空”值,不是NULL值。

注意:

NULL值和“空”值的区别

NULL表示什么都没有的一种状态,就是表示空

“空”值表示有值,但是为“空”

1

例如:

?empty(O)

结果:工

?empty(NULL)

结果:.F.

4、数据类型测试函数(笔试考点)

格式:VARTYPE(表达式)

功能:判断表达式的数据类型

数据类型:

C:Char

L:Logic

5、表文件尾测试函数

格式:EOF()

功能:如果文件记录指针指向文件尾部,则返回逻辑真;否则返回逻辑假

6、

表文件首测试函数

格式:BOF()

功能:如果文件记录指针指向文件首部,则返回逻辑真;否则返回逻辑假

7、记录号测试函数

8、记录个数测试函数

9、条件测试函数

格式:IIF(逻辑表达式,表达式1,表达式2)

功能:如果逻辑表达式的逻辑结果为真,则返回表达式1的结果;否则返回表达式2的结果

例如:

?iif(3>2,"3>2","3<2")

结果:3>2

10、记录删除测试函数

格式:DELETED

第3章VisualFoxPro数据库及其操作

重点放在上机

3.1VisualFoxPro数据库及其建立

3.1.1基本概念

笔试考点:

数据库文件的后缀名称:.DBC

在建立数据库文件时,VF系统同时建立了三个文件:

.dbc的数据库文件、.det数据库备注文件、.dcx数据库索引文件

1

3.1.2建立数据库

建立数据库的方法有:

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

・从“新建”对话框中建立数据库

•用命令方式建立数据库

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

2、从“新建”对话框中建立数据库

3、使用命令创建数据库

命令格式:

CREATEDATABASE数据库名称

3.1.3使用数据库

打开数据库的方法也有三种:

使用命令的方式来打开数据库:

OPENDATABASE数据库名称

关闭数据库数据库的命令为:

CLOSEDATABASEALL

在VF中,可以同时打开多个数据库,但是同一时亥IJ,只有一个数据库能为当前数据库

设置当前数据库的命令为:

SETDATABASETO数据库名称

设置当前数据库为空

SETDATABASETO

3.1.4修改数据库

修改数据库,就是将数据库设计器打开,就可以进行操作了

使用命令打开数据库设计器:

MODIFYDATABASE数据库名称

3.1.5删除数据库

使用命令方式删除数据库:

DELETEDATABASE数据库名称

[DELETETABLES][RECYCLE]

3.2建立数据库表

3.2.1在数据库中建立表

1、字段名

字段名即关系中的属性或列的名称或表的列名称

2、字段类型和宽度

字段类型是指字段名称中存储数据的类型

3、空值

1

空值,是指该字段的值是否可以为NULL值

4、字段有效性组框

5、显示组框

6、字段注释

注意:(笔试考点)

表文件的后缀名称:.DBF

在第三章中,如果需要使用表,则需要使用命令打开表;如果是其他章中,需要使用表,则

不需要打开表。

打开表的格式:

USE表的名称

例如:打开“学生”表

use学生

3.2.2修改表结构

修改表结构与建立表结构的方法基本上是一样的

①修改已有的字段

②增加新的字段

③删除不用的字段

3.3表的基本操作

3.3.1使用浏览器操作表

浏览器的作用:查看表中的记录

使用鼠标的方式浏览表:

①“文件”菜单

②“打开”菜单项

③选择需要打开的表

④点击“显示”菜单

⑤点击浏览

使用命令方式浏览表:

USE表的名称

BROWSE

如果关闭浏览器?

直接关闭或Ctrl+W

3.3.2增加记录的命令

在VF中,向表中增加记录主要有两种方式:

①在新建表的同时,向表中增加记录

②使用命令的方式,向表中增加记录

1

1、APPEND命令

命令格式:

APPEND或APPENDBLANK

说明:

①如果直接在命令窗口中执行APPEND,则会弹出一个输入数据的窗口

②APPENDBLANK是在表的尾部增加一条空白记录

注意:

表中的数据输入完成后,可以直接按Esc键或Ctrl+W快捷键保存退出

使用APPEND命令的格式:

USE表的名称

APPEND

2、INSERT命令

INSERT命令可以在表的任意位置插入新的记录

命令格式:

INSERT[BEFORE][BLANK]

3.3.3删除记录的命令

在VF中,删除数据主要有两种:逻辑删除和物理删除

逻辑删除:将表中的记录打上删除的标记,但是数据仍然存在于表中

物理删除:将表中的记录彻底删除

1、置删除标记命令

命令格式:

USE表的名称

DELETE[FOR条件表达式]

例如:将学生表中的男生的记录打上删除的标记

use学生

deletefor性别="男"

2、恢复记录的命令

命令格式:

USE表的名称

RECALL[FOR条件表达式]

例如:

use学生

recallfor性别="男"

3、物理删除有删除标记的记录

命令格式:

USE表的名称

PACK

例如:假设学生表中已经存在删除标记的记录

use学生

pack

4、物理删除表中的所有记录

命令格式:

USE表的名称

ZAP

3.3.4修改记录的命令

1、交互修改的EDIT和CHANGE命令(笔试考点)

命令格式:

USE表的名称

EDIT

USE表的名称

CHANGE

2、直接修改的REPLACE命令(笔试、上机)

命令格式:

USE表的名称

REPLACE字段名称1WITH表达式1[,字段名称2WITH表达式2...][FOR条件表达式][ALL]

一般的命令格式:

USE表的名称

REPLACE字段名称WITH表达式FOR条件表达式

例如:

有如下表:

奖牌(国家代码,金牌数,银牌数,铜牌数,总数)

use奖牌

replace总数with金牌数+银牌数+铜牌数all

注意:

replace只能修改当前记录指针指向的记录,所以,如果需要修改表中所有的记录,则需要加

±all

3.3.5显示记录的命令

显示表中记录的命令是LIST或DISPLAY

命令格式:

LIST/DISPLAY[FIELDS]字段名称列表[FOR条件表达式]

1

3.3.6查询定位命令

1、用GOTO命令直接定位

命令格式:

GOTO记录号|TOP|BOTTOM

GO记录号|TOP|BOTTOM

说明:

记录号:是指表中指定的行号

TOP:表示表的表头

BOTTOM:表示表的表尾

例如:

use学生

go1

gotop

gobottom

2、SKIP命令

命令格式:

USE表的名称

SKIP[记录位置]

功能:将表中的记录指针向前或向后移动指定的位置

例如:

use学生

gotop

skip

skip3

skip-2

3、用LOCATE命令定位(笔试、上机考点)

命令格式:

USE表的名称

LOCATEFOR条件表达式

例如:

use学生

locatefor学号=2

LOCATE命令常用的格式:

USE表的名称

LOCATEFOR条件表达式

DOWHILE循环条件

〃处理

CONTINUE

ENDDO

1

3.4索引

3.4.1基本概念

在VF中,索引分为四种:主索引、候选索引、惟一索引、普通索引

1、主索引

在表中的字段或表达式不允许出现重复或空值的索引

主索引的作用:建立主索引可以看作是主关键字

补充:

在VF中,表中的主索引只能建立一个

2、候选索引

与主索引具有相同的特性,但是候选索引可以建立多个

3、惟一索引

了解

4、普通索引

可以重复、可以为空值,也可以建立多个

索引在什么地方使用

表与表之间有联系,有一对一联系、有一对多联系和多对多联系。这些联系是通过索引来建

立的

3.4.2在表设计器中建立索引

3.4.3用命令建立索引

主索引不能使用命令来创建

①使用INDEXON创建普通索引:

USE表的名称

INDEXON索引表达式TAG索引名称OF索引文件名称.cdx

例如:

use学生

indexon学生姓名tag学生姓名of学生.cdx

②使用INDEXON创建候选索引

USE表的名称

INDEXON索引表达式TAG索引名称CANDIDATE

例如:

use学生

indexon学号tag学号candidate

③使用INDEXON创建惟一索引

USE表的名称

INDEXON索引表达式TAG索引名称UNIQUE

1

例如:

use学生

indexon学生姓名tag学生姓名unique

3.4.4使用索引

使用命令的格式:

USE表的名称

SETORDERTO索引名称

3.4.5使用索引快速定位

使用命令的格式:

SEEK表达式...

3.4.6删除索引

命令格式:

DELETETAG索引名称

3.5数据完整性

数据完整性,是为了保证数据的正确性

3.5.1实体完整性与主关键字

实体完整性是保证表中的记录惟一的特性,即在表中不允许出现重复的记录。

在VF中,实体完整性是通过主索引或候选索引来实现的

3.5.2域完整性与约束规则

域完整性与字段中域的概念是一致的,也就是对表中字段的取值范围进行约束。

域完整性的约束规则需要设置表设计器中的字段有效性:

规则:设置逻辑表达式

信息:设置字符串,使用双引号括起来

默认值:默认值的数据类型与所设置字段的数据类型一致

3.5.3参照完整性与表之间的联系

参照完整性与表之间的关联有关,当插入、删除或修改一个表中的数据时通过参照引用相互

关联的另一个表中的数据,来检查对表中数据的操作是否正确。

参照完整性规则包括更新规则、删除规则和插入规则:

更新规则:当更新了主表中的连接字段,则子表做如下操作

级联:上动,下也动

限制:下有,上不动

忽略:随意

删除规则:当删除主表中的记录时,则子表做如下操作

级联:上动,下也动

限制:下有,上不动

忽略:随意

1

插入规则:当向子表中插入记录时,是否进行完整性检查

限制:上没有,下不动

忽略:随意

建立永久性联系的步骤:

①先判断表与表之间是否有联系

流程:检查表之间是否有相同的字段,如果有相同字段,则必定有联系

②为表建立索引

流程:找出相同字段中,其值不能重复的,则为主索引;可以重复的则为普通索引或惟一索

③建立永久性联系

流程:将主表的主索引拖向子表的普通索引

3.6自由表

在VF中,表有两种:数据库表和自由表

数据库表是属于某一个数据库

自由表不属于任何数据库

3.6.1数据库表与自由表

数据库表与自由表的区别(笔试考点)

•数据库表可以使用长表名

•可以为数据库表中的字段指定标题和添加注释

•可以为数据库表的字段指定默认值和输入掩码

•数据库表的字段有默认的控件类

•可以为数据库表添加字段有效性规则

•数据库表支持主关键字

注意:

建立自由表时,必须先将所有的数据库关闭

closedatabaseall

3.6.2将自由表添加到数据库

使用命令将自由表添加到数据库中:

命令格式:

OPENDATABASE数据库名称

USE表的名称

ADDTABLE表的名称

3.6.3从数据库中移出表

使用命令将数据库表移出

命令格式:

OPENDATABASE数据库名称

USE表的名称

REMOVETABLE表的名称

1

3.7多个表的同时使用

3.7.1多工作区的概念(笔试考点)

在VF中可以同时在不同的工作区中,打开表

指定工作区的命令:

SELECT工作区号

说明:

工作区号最小从1开始,如果使用select。则表示工作区号的选择是从最小还没有使用的工作

区号开始计算

使用多工作区的步骤:

opendatabase数据库名称

select1

use表的名称1

select2

use表的名称2

3.7.2使用不同的工作区的表

使用不同工作区中的表的命令格式为:

IN工作区号

例如:

opendatabase学生数据库

select1

use学生

select2

use班级

locatefor学号=1in1

3.7.3表之间的关联(上机考点)

在VF中,可以使用SETRELATION命令建立表之间的临时联系

命令格式:

SETRELATIONTO索引表达式INTO表的名称

例如:

为学生表与班级表建立临时联系

opendatabase学生数据库

use学生in1order班级编号

use班级in2order班级编号

setrelationto班级编号into班级

3.8排序

了解

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

SQL:是结构化查询语言

SQL作用:就是用来查询数据

1

4.1SQL概述

SQL的特点:

①SQL是一种一体化的查询语言,包括数据定义、数据查询、数据操纵和数据控制。

②SQL语言是一种高度非过程化的语言

③SQL语言非常简洁

④SQL语言可以直接以命令的方式来交互使用

SQL的命令动词:

数据查询:SELECT命令

数据定义:CREATE命令、DROP命令、ALTER命令

数据操纵:INSERT命令、UPDATE命令、DELETE命令

数据控制:GRANT命令、REVOKE命令

4.4定义功能

4.4,1表的定义:CREATE命令

创建表的命令格式:

CREATETABLE|DBF表的名称

(字段名称1数据类型,

字段名称2数据类型,

字段名称n数据类型)

例如:

请使用命令定义学生表:

学生(学号C⑻,姓名C⑻,性别C⑵,班级I)

createtable学生(学号C⑻,姓名C⑻,性别C(2),班级I)

创藁表时,最容易发生的错误是,表中字段与数据类型之间至少有一个空格

创建表的复杂格式:

CREATETABLE|DBF表的名称

(字段名称1数据类型PRIMARYKEY

字段名称2数据类型,

字段名称n数据类型CHECK逻辑表达式ERROR错误提示信息)

例如:

createtable学生(学号C⑻primarykey,姓名C⑻,性别C⑵check性别$"男女"error"性别必

须是男或女',班级I)

例如:

使用SQL命令创建班级表:

班级(班级编号I,班级名称C(20))

createtable班级(班级编号Iprimarykey,班级名称C(20))

1

4.4.2表的删除

删除表的命令格式为:

DROPTABLE表的名称

例如:

droptable学生

注意:

删除表的错误命令为:

①DROP表的名称

②DELETE表的名称

③CHANGE表的名称

4.4,3表结构的修改(重点中的重点)

修改表结构有三种命令:

格式1:

ALTERTABLE表的名称ADD|ALTER[COLUMN]字段名称数据类型CHECK逻辑表达式

ERROR错误提示信息DEFAULT默认值

功能:可以修改字段的数据类型、数据宽度、字段有效性规则、错误提示信息、默认值

例如:

为班级表新增加一个“备注”字段,数据类型是字符型,宽度20

altertable班级add备注C(20)

为学生表新增加一个“年龄”字段,数据类型整型

altertable学生add年龄Icheck年龄>0and年龄<30error"你已经是超龄儿童了"

default15

修改班级表中“备注”字段的数据宽度,修改为30

altertable班级alter备注C(30)

注意:

修改表结构的第一种命令,重点注意三个方面:

①如何增加字段

②如何修改字段的数据类型或数据宽度

③如何为字段设置字段有效性规则

格式2:

ALTERTABLE表的名称ALTER[COLUMN]字段名称SETCHECK逻辑表达式ERROR错误提示

信息

功能:主要用于定义、修改和删除字段有效性规则和默认值

例如:

修改学生表中,年龄字段的有效性规则

altertable学生alter年龄setcheck年龄>=10and年龄<=20error"你已经是超龄儿童了"

1

总结:

在alter命令中,check与setcheck的区别

①只有在为表中增加字段的同时,为该字段设置字段有效性规则时;才使用check

②只有在表中已经存在该字段,并且需要修改该字段的字段有效性规则时;才使用setcheck

格式3:(一般情况只会出现在笔试)

ALTERTABLE表的名称[DROP[COLULMN]]字段名称…

功能:删除字段、修改字段名称

重点掌握:

删除字段:DROPCOLUMN字段名称

修改字段名称:RENAMECOLUMN字段名称

4.3操作功能:INSERT命令、UPDATE命令、DELETE命令

4.3.1插入数据:INSERT命令

第一种格式:

INSERTINTO表的名称(字段名称1,字段名称2,.,n)

VALUES(值1,值2n)

第二种格式:

INSERTINTO表的名称FROMARRAY数组名称

功能:

INSERT命令的功能就是将数据插入到表中,即将数据保存在表中

注意:(上机特别注意)

INSERT命令如果是正确的情况下,最多只能执行一次

例如:

向班级表中插入一条记录

insertinto班级(班级编号,班级名称)values(l,"六脉神剑班")

或者

insertinto班级values(l,"六脉神剑班")

总结.

星insert命令中,当插入数据的个数,等同于表中的列数时,表名称后面的列是可以省略的,

否则,不能省略

o建议最好不要省略

例如:

将数组中的值,插入到表中

declarebj(2)

bj(l)=2

bj(2)="网络名人班"

insertinto班级fromarraybj

命令补充:

复制表结构的命令

1

USE表的名称

COPYSTRUCTURETO新表的名称

注意:

COPYSTRUCTURE命令只能复制表的结构,不能复制表中的数据

4.3.2更新数据:UPDATE命令

命令格式:

UPDATE表的名称SET字段名称1=值1,字段名称2=

值2,...WHERE条件表达式

功能:对表中满足条件的记录进行修改

注意:

WHERE条件是可以省略,如果省略表示修改表中的所有记录

例如:

update班级set班级名称="网络达人班"WHERE班级编号=2

例如:

假设有奖牌表

奖牌表(国家代码,金牌数,银牌数,铜牌数,总数)

请计算总数的值

第…种方法:

use奖牌表

replace总数with金牌数+银牌数+铜牌数all

第二种方法:

update奖牌表set总数=金牌数+银牌数+铜牌数

例如:

假设有工资表

工资表(职工代码,工资)

请将每一个员工的工资增加10%

update工资表set工资=工资+工资*0.1

错误的写法:

update工资表set工资=工资+工资*10%

update工资表set工资=工资*0.1

4.3.3删除数据:DELETE命令

删除数据的命令格式为:

DELETEFROM表的名称WHERE条件表达式

功能:DELETE命令是逻辑删除表中的记录

说明:WHERE条件是可以省略,如果省略表示删除表中所有记录

例如:

deletefrom班级

例如:

物理删除班级表中的2班的信息

use班级

deletefrom班级where班级编号=2

pack

总结:

INSERT命令的一般使用流程:

①打开表设计器,查看字段的数据类型

查看字段的数据类型,如果是字符型,则需要英文的双引号

②回忆INSERT命令的语法格式,写INSERT命令

需要注意的问题是,如果有字符类型的值,则需要加双引号;插入值的个数是否与表中列的

个数相同,如果相同,可以考虑省略字段名称

③执行INSERT命令

注意:如果命令正确,只能执行一次

④检查结果

打开表,检查表中的记录是否有增加

UPDATE命令的一般使用流程:

①打开表设计器,查看需要修改字段的数据类型和条件字段的数据类型

如果修改字段和条件字段是字符类型,则需要加英文的双引号

②回忆UPDATE命令的语法格式,写UPDATE命令

③执行UPDATE命令

注意,如果UPDATE命令每次执行结果不一样,则只能执行一次,否则可以执行多次

④检查结果

打开表,检查表中需要修改的记录是否发生改变

DELETE命令的一般使用流程:

①打开表设计器,查询需要删除的记录的条件字段的数据类型

如果需要删除的记录的条件字段是字符型,则需要加双引号

②回忆DELETE命令的语法格式,写DELETE命令

③执行DELETE命令

④检查结果

打开表,检查表中需要删除的记录前面是否有黑色的小色块

创建索引的命令总结:

①创建普通索引的命令格式:

USE表的名称

INDEXON索引表达式TAG索引名称OF索引文件.CDX

②创建惟一索引的命令格式:

USE表的名称

INDEXON索引表达式TAG索引名称UNIQUE

③创建候选索引的命令格式:

USE表的名称

INDEXON索引表达式TAG索引名称CANDIDATE

1

注意:INDEXON不能创建主索引

④使用ALTER命令创建主索引:

ALTERTABLE表的名称ADDPRIMARYKEY索引表达式TAG索引名称

⑤使用ALTER命令创建候选索引:

ALTERTABLE表的名称ADDUNIQUE索引表达式TAG索引名称

4.2查询功能:SELECT命令

SELECT命令主要由三大部分组成:

SELECT-FROM-WHERE-

SELECT命令的语法格式:

SELECT字段名称1,字段名称2,...

FROM表1,表2,...

WHERE条件表达式

ORDERBY排序的字段名称

GROUPBY分组的字段名称HAVING分组条件

功能:SELECT命令的功能就是将表中满足条件的记录,查询出来

说明:

SELECT:SELECT后面跟的是表中的字段名称,是表示我需要查询的是表中的那些字段

FROM:FROM后面跟的是表,是表示数据来源于那个表

WHERE:WHERE后面跟条件,是指需要查询满足条件的记录

ORDERBY:是指查询出来的结果,是否需要排序

GROUPBY:是指查询出来的结果,是否需要分组

HAVING:注意,HAVING必须要和GROUPBY一起使用,是表示分

组条件

SELECT命令格式总结:

SELECT命令的顺口溜:

SELECT

后面跟列

FROM后面跟表

WHERE后面跟条件

如果需要排序

要考虑ORDERBY

如果需要分组

要考虑GROUPBY

如果见至UGROUPBY

要小心HAVING

4.2.1简单查询

简单查询,就是指只查询一张表

例4.1从职工关系中检索所有工资值

SELECT工资FROM职工

1

如果需要去掉表中查询出的重复记录,则可以使用DISTINCT

selectdistinct工资from职工

例4.2检索仓库关系中的所有元组

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

注意:

如果查询的是表中的所有字段,则可以使用*表示表中所有列

select*from仓库

例4.3检索工资多于1230的职工号

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

例4.4检索那些仓库有工资多于1210元的职工

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

例4.5给出在仓库“WH1”或“WH2”工作并且工资少于1250元的职工号

select职工号from职工where工资<1250and

(仓库号="WHl"OR仓库号="WH2")

4.2.2简单的连接查询

简单的连接查询:就是查询多张表

例4.6找出工资多于1230元的职工号和他们所在的城市

select职工.职工号,仓库.城市

from职工,仓库

where职工.仓库号=仓库.仓库号and职工.工资>1230

简单连接查询的分析流程:

第一步:确定列

职工.职工号,仓库.城市

第二步:确定表

职工,仓库

第三步:条件

连接条件:职工.仓库号=仓库.仓库号

筛选条件:职工.工资>1230

总的条件:职工.仓库号=仓库.仓库号and职工.工资>1230

排序:无

分组:无

分组条件:无

第四步:写SQL命令

select职工.职工号,仓库.城市

from职工,仓库

where职工.仓库号=仓库,仓库号and职工,工资>1230

第五步:执行并检查

在命令窗口中,执行SQL命令,并检查结果

1

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

分析流程:

第一步:确定列

职工.职工号,仓库.城市

第二步:确定表

职工,仓库

第三步:条件

连接条件:职工.仓库号=仓库.仓库号

筛选条件:仓库.面积>400

总的条件:职工.仓库号=仓库.仓库号and仓库.面积>400

排序:无

分组:无

分组条件:无

第四步:写SQL,命令

select职工.职工号,仓库.城市

from职工,仓库

where职工.仓库号=仓库.仓库号and仓库.面积>400

第五步:执行并检查

在命令窗口中执行SQL命令

4.2.3嵌套查询

嵌套查询,就是查询的条件不能一次查询出来,要经过多次查询

例4.8那些城市至少有一个仓库的职工的工资为1250元

select城市from仓库where仓库号IN

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

总结:

IN:表示在什么集合之内

NOTIN:表示不在集合之内

例4.9查询所有职工的工资都多于1210元的仓库的信息

select*from仓库where仓库号NOTIN

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

例4.10找出和职工E4同样工资的所有职工

select职工号from职工where工资=

(select工资from职工where职工号="E4")

总结:

①嵌套查询可以对一张表进行嵌套查询

②嵌套查询可以对多张表进行嵌套查询

③能使用简单连接查询,绝对不要使用嵌套查询

④如果简单连接查询不能解决查询问题,则必须使用嵌套查询

例4.8那些城市至少有一个仓库的职工的工资为1250元

1

select仓库.城市

from职工,仓库

where职工.仓库号=仓库.仓库号and职工.工资=1250

4.2.4几个特殊运算符

①BETWEEN...AND…运算符:

语法格式:

字段名称BETWEEN表达式1AND表达式2

等价于

字段名称>=表达式1AND字段名称<=表达式2

例4.11检索出工资在1220元到1240元范围内的职工信息

select*from职工where工资BETWEEN1220AND1240

等价于

select*from职工where工资>=1220and工资<=1240

②LIKE运算符:

语法格式:

字段名称UKE通配符表达式

说明:

通配符有两个:%和_

%:表示可以匹配任意多个字符

_:表示可以匹配任意一个字符

例4.12从供应商关系中检索出全部公司的信息

select*from供应商where供应商名like"%公司"

例如:查询出班中姓刘的同学

select*from学生where姓名like"刘%"

等价于

select*from学生whereleft(姓名,2)="刘"

等价于

select*from学生wheresubstr(姓名,1,2)="刘"

例如:(重点掌握)

xh="20120811"

select*from学生where学号=alltrim(xh)

4.2.5排序

排序的语法格式:

ORDERBY排序字段名称1[ASC|DESC],排序字段名称2

温馨提示

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

评论

0/150

提交评论