VFP复习讲义5

合集下载

VFP讲义

VFP讲义

二、表结构的修改6、删除字段的有效性规则命令格式:(1)删除规则和信息alter table 表名;Alter 字段名;Drop check(2)删除默认值alter table 表名;Alter 字段名;Drop default7、建立候选索引命令格式:alter table 表名;add unique 索引表达式tag 索引名8、删除候选索引命令格式:alter table 表名;Drop unique tag 索引名第二节数据操作功能(表记录的修改)一、增加记录---insert into1、给表全部字段增加一条记录命令格式:insert into 表名value(记录内容,用分隔符,隔开)2、给表部分字段增加一条记录命令格式:insert into 表名(字段名)values(字段值) 3、从数组中给表追加记录命令格式:Insert into 表名from array 数组名二、删除记录(1)逻辑删除全部记录命令格式:delete from 表名(补充:恢复:recall all)(2)逻辑删除符合条件的记录命令格式:delete from 表名where 条件三、修改记录(update)(1)给表全部替换记录命令格式:Update 表名set 字段=表达式(2)替换符合条件的记录命令格式:Update 表名set 字段=表达式; where 条件第三节数据查询一、简单查询(select)--内容和条件都来自于同一张表。

1、查询表中部分字段的值命令格式:select 字段名from 表名例:查询学生表中学生姓名补充:去掉重复值命令格式:select distinct 字段名from 表名2、查询表中全部字段的值(1)命令格式:Select 字段1,字段2(全部字段,中间用,隔开)from 表名(2)采用通配符*来代替全部字段命令格式:Select * from 表名3、带条件的查询---where命令格式:select 字段名from 表名where 条件4、带排序的查询---order by命令格式:Select 字段名(*)from 表名order by 排序字段desc(降序)5、简单计算的查询Count( )---统计记录的个数Sum( )---求和Max( )---最大值Min( )---最小值Avg( )---平均数命令格式:Select count(*) as 查询结果名(自定义)from 表名6、分组查询---group by题目特征:每个、每门、各个等出现了“汇总”意图时,采用分组查询命令格式:Select 字段名from 表名group by 分组字段二、嵌套查询和连接查询(已建立联系)1、嵌套查询特点:查询的内容来自于一张表,涉及的条件是另外一张表,并且这两张表有公共字段。

vfp第五章

vfp第五章

建立视图: 方法一:“文件”菜单“新建” 选择“视图”[新建文 常用工具栏[新建] 件] 方法二:命令 格式:CREATE VIEW 功能:打开视图设计器建立视图。 方法三:编辑SQL命令CREATE VIEW …… AS ……
视图设计器:
说明:1)视图保存在数据库中,没有文件扩展名。 2)视图没有查询去向的设置。
例1:根据订货管理数据库中的职工表和仓 库表建立查询文件:职工查询.qpr (1)要求查询职工的职工号、仓库号、城 市和工资。 (2)要求只查询在上海或北京的职工信息。
例2:修改查询文件“职工查询.qpr”: (1)增加查询所有职工的年工资 (2)查询年工资最高的三个职工 (3)将查询结果显示在屏幕上
2、建立连接 方法一:“文件”菜单“新建” 选择“连接”[新建文 常用工具栏[新建] 件] 方法二:命令 格式:CREATE CONNECTION 功能:打开连接设计器。
3、设计远程视图 建立远程视图与建立本地视图方法基本一致,只是在打开视 图设计器前需要先选择“连接”或“数据源”。
注:建立远程视图时,要符合远程数据库的语法。
查询去向默认为:浏览
运行查询: 1)查询设计器打开时: 快捷键:Ctrl+Q 常用工具栏[运行]按钮 “查询”菜单“运行查询” 2)查询设计器关闭时: 命令:DO 查询文件名 说明:文件名必须带扩展名qpr 查看SQL SELECT语句: 查询设计器工具栏[查看SQL窗口]按钮 “查询”菜单“查看SQL” 查询设计器的局限性:只能设计比较简单的查询,嵌套查询 不能利用查询设计器实现,编辑了嵌套查询命令的.qpr文 件也不能运行。
1、数值转换成字符串:STR(N1[,N2[,N3]]) 功能:将N1的值转换成字符串,转换时根据需要自动进行四 舍五入。N2为转换后的总长度,N3为转换时保留的小数位 数。 说明: 1)N2默认值为10,N3默认值为0,当N3为负值时,表示对 整数位进行四舍五入。 2)设L为N1的四舍五入后的总长度,K为N1的整数部分长度。 3)若N2>L,则字符串加前导空格以满足长度N2。 4)若N2<L ①N2>=K,则优选满足整数部分而自动 调整小数位数。 ② N2<K,则返回N2个“*”。 例:N=1234.567 ?STR(N),STR(N,11),STR(N,10,2),STR(N,6,4) ?STR(N,5,-1),STR(N,5),STR(N,3)

vfp5

vfp5

24
例:随机产生一个70~80之间的数:
x=0 do while .T. x=RAND()*100 if x>70 and x<80 exit endif enddo ?x
25
输出借阅表 中还书日期 从2011年开 始的读者的 借书证号、 条形码和还 书日期,并 统计这些读 者的人数。
USE 借阅 STORE 0 TO n DO WHILE !EOF() IF hsrq<{^2011/1/1} SKIP LOOP ENDIF ?jszh,txm,hsrq n=n+1 SKIP ENDDO ?"还书日期从2011年开始的 读者有:"+STR(n,3)+"人" USE
store 0 to n0,n1,n2,n3,n4,n5,n6,n7,n8,n9
35
过程与用户自定义函数

自定义函数或过程可存放在独立的程序文 件(.PRG)中或数据库文件(存储过程) 中。
自定义函数: FUNCTION myfunc [PARAMETERS] 代码区 [RETURN] ENDFUNC
28
死循环
x=1 do while x>0 x=x+1 enddo
按ESC键退出
29
SCAN---ENDSCAN
只适用于对表记录的操作 设教师(js)表中有100条记录,运行
下列程序后,屏幕上显示的记录有 _____条
30
clear use js scan ?recno() endscan use
26
store 0 to m,n do while m<10 n=n+2 m=m+n enddo ?m,n

VFP程序设计复习提纲[chap05-chap06]

VFP程序设计复习提纲[chap05-chap06]

五、chap05程序设计基础(5.1-5.2)1.程序描述方式包括:面向过程编程(OPP)和面向对象编程(OOP)2.结构化程序概述(1)打开程序窗口(命令窗口):modify command(2)新建或编辑程序(命令窗口):modify command 程序文件名(3)运行程序(命令窗口): DO 程序名[WITH 参数列表](4)程序文件:程序文件扩展名为.PRG;运行时生成”伪编译”程序(FXP)3.基本结构(1)顺序结构①输入语句:ACCEPT [<提示符>] TO <内存变量> &&从键盘输入文本到指定内存变量中②输入语句:INPUT[<提示符>] TO <内存变量> &&从键盘输入数值、日期到指定内存变量中③输出提示语句:WAIT WINDOWS<提示符> &&屏幕显示提示信息(2)分支结构①单分支语句:IF <条件表达式>。

ENDIF②双分支语句:IF <条件表达式><语句组1>ELSE &&&&必须单独一行,否则就犯语法错误<语句组2>ENDIF &&end和if之间不能加空格注意:IF和ENDIF必须成对出现③多分支语句:DO CASE。

ENDCASE(3)循环结构①“计数”型循环(已知循环次数)【语句格式】FOR <循环变量>=<初值> TO <终值> [STEP <步长>]<循环语句组>ENDFOR|NEXT②DO WHILE 循环语句(未知循环次数)【语句格式】DO WHILE <条件表达式><循环语句组>ENDDO*DO WHILE循环结构中,必须确保循环体执行有限次后,条件表达式的值为.F.,否则会造成“死循环”(即无限地执行循环体语句)。

VFP复习要点_复威品客习资料

VFP复习要点_复威品客习资料

注:1.本资料是课本重点知识点的凝结,一定会有很多的疏漏之处,用运此资料主要是帮助梳理知识点,掌握知识点。

因此用此资料进行VFP二级考试得到优秀基本不可能。

在本资料全部掌握会背的情况下考一个合格还是有可能的。

2.本资料中所有出现的用草绿色的注释全部非原资料所有。

是我个人的经验而已。

希望还是将资料全部看掉。

不要只是局限于我所写的要求记忆的部分。

第一章数据库系统基础知识1.1 数据库系统概述1. 数据处理数据:是对事实、概念或指令的一种特殊表达形式,可以用人工的方式或自动化的装置进行通信、翻译转换或者进行加工处理。

它包括两类:一类是能参与数字运算的数值型数据;一类是不能参与数字运算的非数值型数据,如文字、图画、声音、活动图像等。

数据处理:是对各种类型的数据进行收集、存储、分类、计算、加工、检索与传输的过程。

包括:收集原始数据、编码转换、数据输入、数据处理、数据输出。

2. 数据库系统(1) 数据库(DataBase)定义:是以一定的组织形式存放在计算机存储介质上的相互关联的数据的集合。

特点: 具有最小的冗余度、具有数据独立性、实现数据共享、安全可靠、保密性能好(2)数据库管理系统(DataBase Management System)定义:是操纵和管理数据库的系统软件。

Visual FoxPro 属于一种关系型数据库管理系统。

数据语言:数据定义语言(DDL):用来建立所需的数据库。

数据操作语言(DML):用来对数据库进行查询和维护操作。

关系型数据库使用的标准语言是结构化查询语言(Structured Query Language,SQL)。

(3)数据库系统(DataBase System)定义: 是以数据库应用为基础的计算机系统。

组成:数据库硬件(计算机硬件设备)软件(数据库管理系统、操作系统)用户(应用程序设计员、终端用户、数据库管理员)分类:层次型数据库、网状型数据库、关系型数据库分代:第一代非关系型数据库系统,60年代末问世,包括层次型和网状型。

VFP程序设计复习ppt课件

VFP程序设计复习ppt课件
湖南省计算机等级考试一级 VFP程序设计复习资料
一 求某范围内满足某种条件的问题(整除)
精选课件ห้องสมุดไป่ตู้PT
1
例:求出[10,1000]以内同时满足除以7余5,除以5 余3,除以3余1的所有整数的个数。
源程序如下: Set talk off S=0 *为求个数设立一个变量 For I=10 to 1000 If I%7=5 and I%5=3 and I%3=1 S=s+I Endif ? s *在屏幕上显示出结果
A5=int(i/10000)
A4=int(i/1000%10)
A3=int(i/100%10)
A2=int(i/10%10)
A1=I%10
If a5**2+a4**2+a3**2+a2**2+a1**2=100
?I
break 出
&&因为循环是从大到小,找到第一个即可跳
endif
endfor
n=0
for fy=0 to 10
for ty=0 to 25
for oy=0 to 50
精选课件PPT
29
五 穷举 鸡兔同笼
精选课件PPT
30
例1:30个学生一起买小吃,共花钱100元,其中每个大 学生花5元,每个中学生花3元,每个小学生花1元,问
大、中、小学生的人数分配共有多少种不同的解(去掉 某类学生为0的解)?
n=0
for a=1 to 30
for b=1 to 30
5050个小学生按1至个小学生按1至5050序号顺时针围成一圈序号顺时针围成一圈做出局游戏老师站在圈外逆时针从最后一个人做出局游戏老师站在圈外逆时针从最后一个人数起每数到数起每数到55时这人从圈里出来继续数时这人从圈里出来继续数12345数到第数到第55个学生时他就出局已个学生时他就出局已出局的位置不再参加计数直至所有的学生出局出局的位置不再参加计数直至所有的学生出局为止问最后一个出局的学生序号是多少号

VFP复习总结(5-9章)

VFP复习总结(5-9章)

第6章 SQL语言的应用
SQL(Structured Query Language,结构 化查询语言)语言是集数据定义、数据查 询、数据操纵和数据控制功能于一体的语 言。
一、数据定义
数据定义语言由CREATE、DROP和 ALTER命令组成。这3个命令关键字针对不 同的数据库对象分别有3个命令。例如针对 表对象的3个命令是建表结构命令CREATE TABLE、修改表结构命令ALTER TABLE和 删除表命令DROP TABLE。
1.格式输出语句(@ 语句)
语句格式: @ <行,列> Say <表达式> 语句功能: 在指定的<行,列>位置输出<表达式>的值。 2.清屏语句 语句格式:Clear
单向分支
• 语句格式: IF <条件表达式> <命令行序列> ENDIF
双向分支
语句格式: IF <条件表达式> <命令行序列1> ELSE <命令行序列2> ENDIF
查询和视图的主要区别是:
(1)视图必须在数据库中建立,离开数据库 就失去了数据来源,脱离数据库的视图是 没有意义的;而查询可以脱离数据库以独 立的文件形式存在。 (2)查询的结果可以以多种的形式输出,而 视图只能以虚拟表的形式浏览和使用。 (3)查询只能从数据库中读取数据,不能修 改原始数据;而视图可以修改更新数据库。
பைடு நூலகம்
第9章 结构化程序设计
• 程序文件的执行
1.用DO命令调用 格式:Do <程序文件名> 2.用菜单调用 操作:程序运行选文件运行
3.用工具按钮调用
操作:打开程序文件单击工具栏的“运行”按钮

全国计算机等级考试培训二级VFP讲义

全国计算机等级考试培训二级VFP讲义

全国计算机等级考试二级VFP培训谢利东培训概况培训对象:XXX部员工培训内容:全国计算机等级考试(NCRE)二级VFP培训时间:15天目录第一阶段考点串讲 (2)第1章数据结构与算法 (2)第2章程序设计 (4)第3章软件工程基础 (5)第4章数据库设计基础 (7)第5章VFP基础知识 (10)第6章数据库基本操作 (15)第7章SQL (20)第8章报表设计、菜单设计、表单设计及程序设计 (27)第二阶段练习提高及实战总结 (32)第一阶段考点串讲第1章数据结构与算法考试重点:算法定义、数据结构定义、栈和树分值预测:10分考试题型:选择、填空考点:(附:分值预测原理:试题库中,试题内容+附加信息(难度、权重、标志……)通过若干试卷比照分析,可大致推测出附加信息)一、算法定义:求解问题的方法、解题方案的描述特性:(1)有穷性(注:不是无穷性);(2)确定性(3)可行性(4)拥有足够的情报或(4)0个或多个输入;(5)1个或多个输出复杂度:时间复杂度--指令执行的次数次数空间复杂度--指令的条数条数二、数据结构数据结构的内容:逻辑结构定义:又称为外部结构,反映数据间的逻辑关系特点:与数据存储无关类型:线性如同排队特点是除第1个元素外,其他元素都有一个前驱除最后1个元素外,其他元素都有一个后继非线性如同部队的层次管理可能有多个前驱和多个后继存储结构定义:又称为物理结构,逻辑结构在计算机中的表示特点:一个逻辑结构可有多种存储结构,会影响数据处理的效率类型:顺序映射、链式映射、索引映射、散列映射数据操作三、常用数据结构1、线性表定义:最常用的一种数据结构特点:具有线性逻辑结构的特点长度可变(L>=0,长度为0称为空表)顺序存储结构:特点:存储空间连续随机存取插入-删除效率低链式存储结构:特点:存储空间不连续顺序存取插入-删除效率高形式:单链表--加入头结点,便于运算(如同让第一名士兵举旗示意队伍开头)循环链表双向链表注:“有序线性表”如何理解?线性表:线性逻辑结构,线性即“顺序性”,这里的顺序是指除第1个外所有元素有前驱,最后1个外所有元素有后继,如同士兵站成一排,只要站成一排即可,不分高矮有序线性表:士兵站成一排,并且按高矮顺序排队2、栈和队列概念:栈和队列一种特殊的线性表特点:栈--先进后出(先出后进)如同箱子存取队列--先进先出如同羽毛球筒存取3、树定义:是一种非线性结构,如同部队的层次管理特点:有且仅有一个根结点相关术语:结点:包含若干子树分支的元素度:子树分支的数目叶子:度为0的结点,如同战士深度:树的层数二叉树定义:每个结点至多具有两棵子树性质:性质1:在第i层上至多有2^(i-1)个结点性质2:深度为k,至多有2^k-1个结点性质3:叶子结点数=度为2的结点数+1顺序存储结构链式存储结构遍历:定义:每个结点都访问一次类型:先序遍历--中左右中序遍历--左中右后序遍历--左右中四、常用算法查找:顺序查找:长为n的线性表,最坏情况下需比较n次二分查找:只能查找顺序存储的有序线性表排序:直接插入排序:长为n的线性表,最坏情况下需比较n*(n-1)/2 次冒泡排序:长为n的线性表,最坏情况下需比较n*(n-1)/2 次快速排序:长为n的线性表,最坏情况下需比较n*(n-1)/2 次第2章程序设计考试重点:结构化程序设计、面向对象的程序设计分值预测:4分+2分(2分是第3章整合过来的)考试题型:选择(*)、填空考点:一、程序设计发展:机器语言--汇编语言--面向过程--面向对象(结构化程序设计)风格:标识符命名:不能用关键字;见名知义;不能以数字开头;注释:序言性注释--模块说明、接口说明、数据描述源程序文档化:功能性注释--程序段功能、语句功能、数据状态编辑风格数据说明语句结构输入和输出二、结构化程序设计提出:“软件危机”--强调程序的易读性(易理解)整齐划一概念:采用自顶向下、逐步求精的策略,使用顺序、选择、循环三种控制结构实现单入口、单出口的程序基本控制结构:顺序、选择、循环设计原则(设计要点、设计特征、设计方法):自顶向下,逐步求精模块化限制使用goto语句一个程序只有一个入口和一个出口三、面向对象的程序设计基本思想:“软件危机”---运用人类的自然思维基本特征:类:定义:是对具有相似结构和行为的对象的抽象组成:属性+方法与对象的关系:类--抽象,对象--具体类是对象的抽象,对象是类的实例对象:定义:类的实例,属性和方法的封装体数据和数据操作的封装特征:静态特征--属性、动态特征---方法封装性:对象是对数据和操作的封装类内部信息对用户隐蔽,信息隐蔽通过封装实现软件内部实现和外部可访问性的分离继承性:多态性:消息:对象间的沟通靠消息第3章软件工程基础考试重点:基本概念、软件设计、软件测试分值预测:8分-2分(归入第2章)考试题型:选择(*)、填空考点:一、基本概念软件:一种逻辑实体,程序+数据+文档软件工程:提出:“软件危机”--应用工程化的方法开发软件基本思想:整个软件开发过程中,应用工程化原则软件生命周期(开发模型):问题定义可行性分析定义(计划)阶段需求分析-----------------------------------------------软件设计软件编码开发阶段软件测试-----------------------------------------------软件维护维护(运行维护)阶段-----------------------------------------------软件开发环境:一组软件工具的集合二、需求分析阶段功能:确定系统的功能“做什么”方法:结构化分析方法(SA)基本思想;分解+抽象常用工具:数据流图(DFD)、数据字典、判定树、判定表产品:软件需求规格说明书--合同、编程依据、验收依据三、软件设计1、功能:确定系统实现方案“如何做”2、重要性:决定软件质量的好坏和开发的成败3、步骤:(1)概要设计(总体设计)功能:确定模块及模块关系即软件系统总体结构图形工具:层次图、HIPO图、结构图方法:模块化:模块划分要求高内聚、低耦合(内聚、耦合是独立性的指标)结构化设计方法(SD)-将数据流图(变换型、事务型)映射为软件结构(2)详细设计(过程设计)功能:确定模块算法及数据结构图形工具:流程图、盒图(N-S图)、PAD图、PDL图方法:结构化程序设计方法(SP)--见第2章四、软件测试1、目的:发现错误检错(注:不是证明程序正确,无错)2、方法:(1)静态测试:静态结构分析、代码检查、代码质量度量(2)动态测试:白盒法(结构法)--考虑程序内部结构和处理过程,要过程,也要结果黑盒法(功能测试、数据驱动测试)--不考虑程序内部结构和处理过程,不管过程,只要结果(3)步骤:单元测试--发现编程错误,白盒为主,黑盒为辅,需设计驱动模块和桩模块集成测试--发现接口问题验证测试--软件功能是否与用户要求一致系统测试五、程序调试目的:纠错方法:静态调试动态调试:强行排错法、回溯法、原因排除法六、软件维护特点:持续时间最长、花费代价最大的一个阶段类型:改正性、适应性、完善性、预防性第4章数据库设计基础考试重点:基础知识、关系模型分值预测:8分+2分(教材第1章)考试题型:选择、填空考点:一、基础知识1、数据管理技术的发展:人工管理--文件系统--数据库系统2、计算机数据管理的发展:人工管理--文件系统--数据库系统--分布式数据库系统--面向对象数据库系统3、数据库系统(DBS)(1)定义:引进数据库技术后的计算机系统(2)特点:采用特定的数据模型数据独立性较高含义:数据结构(逻辑结构)、存储方法与应用程序独立指标:逻辑独立性--逻辑结构与应用程序相互独立物理独立性--存储的数据与应用程序相互独立实现数据共享,冗余较少(不等于没有冗余)统一的数据控制,便于扩展(3)根本目标:实现数据共享(4)数据库(DB)数据:数据库中存储的基本对象,包括两方面内容:描述事物特性的数据内容;存储在某种媒体上的数据形式;数据库:存储在计算机上、结构化的相关数据的集合,包括两方面内容:描述事物的数据本身;相关事物间的联系;特点:与数据库系统的特点相同(5)数据库管理系统(DBMS)概念:完成数据管理的系统软件地位:核心功能:数据定义、数据操作、运行和控制、建立和维护(6)数据库应用系统(DBAS)概念:面向特定应用的应用软件系统(7)数据库管理员(DBA)(8)用户(9)小结:DBS=DB+DBMS+DBAS+DBA -简化- DBS=DB+DBMS+DBASDBS是数据库系统,去掉一个S是数据库,加上一个M是管理,加上一个A是应用二、数据模型概念:对现实世界的模拟和抽象(如同模子)抽象过程:现实世界-----信息世界----机器世界(--加入数据--表/库)概念模型数据模型组成要素:数据结构、数据操作、完整性约束类型:概念模型定义:又称为信息模型特点:与计算机系统表示无关常用模型:实体联系模型数据模型定义:又称为基本数据模型、数据结构模型特点:面向数据库逻辑结构,与计算机表示相关常用模型:层次模型(树型)、网状模型、关系模型三、实体联系模型定义:又称为E-R模型E-R术语:实体:客观存在并有区别的事物如:张连长、王战士实体集:实体的集合如:连长、战士属性:实体的某种特性如:姓名、年龄联系:事物间的关联如:领导与被领导实体集联系的类型(*):一对一联系(1:1):连队和连长一对多联系(1:m):连队和战士多对多联系(m;n):战士和比武项目E-R图表示:实体集--矩形、属性--椭圆、联系--菱形小结:推断联系类型的技巧(1)1:1:连队(1)--连长(1)正看是1;1连长(1)--连队(1)反看是1:11:m:连队(1)--战士(m)正看是1;m战士(1)--连队(1)反看是1:1m:n:战士(1)--比武项目(m)正看是1;m比武项目(1)--战士(m)反看是1:m (2)绝大多数(80%)联系都是一对多联系四、关系模型定义:用二维表表示实体和实体间联系的模型关系术语:关系:二维表元组:记录,行属性:字段,列域:属性取值范围码(主码):码--关键字,主码--主关键字,唯一标识一个元组外部关键字关系模式:对关系的描述如:战士情况(编号,姓名,年龄)关系特点:关系必须规范化,每个属性不可再分割属性名必须唯一不允许有完全相同的元组,即冗余元组的次序、属性的次序无关紧要组成:数据结构:二维表数据操作:查询、插入、删除、修改完整性约束:实体完整性、域完整性、参照完整性、用户定义完整性操作:关系运算五、关系运算功能:实现数据操作需进行关系运算特点:关系运算(操作)的特点是集合运算(操作)关系运算的结果仍是一个关系内容:传统的集合运算:并、交、差:条件:两表R、S,两表结构一致(列一致,行数可不同)规则:并:R与S的记录合并在一起,去掉重复的记录交:既在R中,又在S中的记录差:在R中,但不在S中的记录结果:一张新表T,和原表(R、S)结构一致表达式:笛卡儿积:条件:两表R、S,两表结构可不一致(列可不一致,行数可不同)规则:R与S交错结果:一张新表T,和原表(R、S)结构不一致,新表的行数为两表行数的乘积表达式:专门的关系运算:选择:条件:一张表R规则:找出表中满足条件的所有记录(一行一行的找)结果:一张和原表(R)结构一致的新表投影:条件:一张表R规则:找出若干列组成新表(一列一列的找)结果:一张新表,列数可能少于原表(即结构可能不一致)连接:条件:两表R、S,两表结构部分一致(部分列一致)类型:等值连接:按字段值对应相等为条件进行的操作自然连结果:一张新表小结:“三表求运算”类题的解题技巧(1)只会考传统集合运算,不会考专门关系运算(2)先看参与运算的两表:如果参与运算的两表结构不一致,一定是笛卡儿积;(3)再看运算结果表:如果所得表的行数为两表行数的积,可能是笛卡儿积;否则一定不是笛卡儿积六、数据库设计重要性:数据库应用的核心设计步骤(应用软件工程的原理和方法):需求分析:功能:做什么工具:数据流图、数据字典产品:用户需求概念设计:功能:用户需求--概念模型(ER图)工具:数据流图、数据字典产品:概念模型(ER图)逻辑结构设计(*):功能:概念模型(ER图)--数据模型(关系模型)地位:数据模型是数据库设计的核心依据:规范化理论--解决数据冗余、插入\更新\删除异常产品:建立数据模型,形成逻辑模式(外模式)物理结构设计(*):功能:设计存储结构和存取方法产品:存储结构和存取方法(内模式)第5章VFP基础知识考试重点:常量(日期型)、内存变量(命令)、表达式、函数(字符)分值预测:14分-2分考试题型:笔试(选择、填空)参考章节:教材-第三章考点:一、Visual Foxpro简介系统特点:增强的项目与数据库管理提高应用程序开发的生产率互操作性和支持Internet充分利用已有数+据界面简介:菜单工具栏:默认情况下,界面包括常用、表单设计器工具栏显示区命令窗口状态栏工作方式:交互工作方式:菜单/工具栏、命令窗口输入命令自动化工作方式:利用生成器产生程序或编写命令文件文件类型:pjx:项目、pjt:项目备注、dbc:数据库、dct:数据库备注、dcx:数据库索引dbf:表、fpt:表备注scx:表单、sct:表单备注frx:报表、frt:报表备注mnx:菜单、mnt:菜单备注、mpr:生成的菜单程序、mpx:编译后的菜单程序qpr:查询程序、qpx:编译后的查询程序prg:程序app:生成的应用程序、exe:可执行程序cdx:复合索引二、常量定义:程序运行过程中值不改变的量类型:数值型、货币型、字符型、日期型、日期时间型表示:数值型:如12、3.14、0.15e10,三种表示--整数、小数、科学记数货币型:需加定界符$,保留4位小数,如$12.1234字符型:需加定界符""、''、[],如"RuiLi"、'RuiLi'、[RuiLi]日期型:传统格式:{10/21/08},只能在set strictdate to 0状态下使用,且受日期设置格式影响,需加定界符{},分隔符可以是“/ - 空格.”四种严格格式:{^2008/10/21},在set strictdate to 0 状态下也可使用,不受日期设置格式影响,需加定界符{^}日期时间型:{日期,时间}日期:与上述日期型表达相同时间:表示为时:分:秒am/pm,如11:30:00 am,其中am表示上午,pm 表示下午逻辑型:真--.T.、.t.、.Y.、.y. 表示对、是,需加定界符..假--.F.、.f.、.N.、.n. 表示错、非,需加定界符..日期格式设置:set strictdate to 0 --不进行严格日期检查{08/14/04}:对的{^2004/08/14}:对的1 --严格日期检查{08/14/04}:错的{^2004/08/14}:对的2 --严格日期检查,对ctod(),ctot()的格式也有效set mark to "." --设置分隔符为. 即显示为08.14.04,与输入无关,只与显示有关set mark to --恢复系统默认设置,系统默认显示为/此命令相当于:工具/选项/区域-日期分隔符set date to 短语/格式--设置日期输入、显示格式,与输入、显示均有关短语/格式列表见P56例如:set date to ymd--则显示为年/月/日04/08/14此命令相当于:工具/选项/区域-日期格式set century on--显示世纪,即{08/14/04}显示为08/14/2004off--不显示世纪,即{08/14/04}显示为08/14/04三、变量定义:运行过程中值会改变的量类型:字段变量内存变量:简单的内存变量、数组字段变量:定义:表中的字段名特点:字段名就是变量名,字段值就是变量值,数据类型与字段类型一致引用:例如,学生(编号,姓名……)?编号,姓名当内存变量和字段变量重名时:?编号,姓名--字段变量? m.编号,m->姓名--内存变量-}+-简单的内存变量:定义:存储在内存中的数据数据类型:字符型(C)、数值型(N)、货币型(Y)、逻辑型(L)、日期型(D)日期时间型(T)声明(定义):直接使用,无需声明,数据类型由存储的值决定引用:使用变量名,如:x赋值:格式1:x=12,y=1.34 --只能对1个变量赋值格式2: store 12 to x,y--可对多个变量赋相同的值,相当于x=12,y=12 显示值:? x --换行后显示?? x--当前行显示(不换行)显示变量信息:list memory --显示不完时自动滚动display memory --显示不完时暂停清除内存变量:release x,y--清除指定的变量,清除后不能再引用release all/release memory--清除所有数组:定义:存储在内存空间上的一组数据声明(定义):格式1:dimension x(5),y(3,4)格式2:declare x(5),y(3,4)引用:x(1)、y(2,3)或y(7)赋值:单个元素赋值x(1)=16,y(2,3)=16或y(7)=16整个数组赋值store 10 to x,y默认值为.F. ,元素存放的值的数据类型可不一致显示值:? x(1),y(2,3),y(7)转换:表记录--数组:scatter 编号,姓名to x数组--表记录:gather from x四、表达式定义:由常量、变量、函数通过运算符连接起来的式子类型:数值表达式、字符表达式、日期时间表达式、关系表达式数值表达式:运算符:()、**或^、*、/、%、+、-运算结果:数值型规则:%字符表达式:运算符:+、-运算结果:字符型规则:“瑞丽”+“你好”--“瑞丽你好” 首尾相连,不删空格“瑞丽”-“你好”--“瑞丽你好” 首尾相连,删空格日期时间表达式:运算符:+、-运算结果:数值型或日期时间型形式:{^2008-08-10}+2 或2+{^2008-08-10}:{^2008-08-12}{^2008-08-10}-2 :{^2008-08-08}{^2008-08-10}-{^2008-08-08} :2{^2008-08-10,10:00:00}+10 或10+{^2008-08-10,10:00:00}:{^2008-08-10,10:00:10} {^2008-08-10,10:00:00}-10 :{^2008-08-10,09:59:50} {^2008-08-10,10:00:00}-{^2008-08-10,09:59:50}: 10规则:日期加整数x,后推x天,结果为日期型日期时间加整数x,后推x秒,结果为日期时间型日期减整数x,前推x天,结果为日期型日期时间减整数x,前推x秒,结果为日期时间型日期相减,相差的天数,结果为数值型(日期不能相加)日期时间相减,相差的秒数,结果为数值型(日期时间不能相加)----日期运算是“天”的运算日期时间运算是“秒”的运算关系表达式:运算符:<、<=、>、>=、=、<>或!=或#等于不等于字符串专用:==、$形式及规则:数值型:按值大小货币型:按值大小日期时间型比较:相当于数值比较(记时起点)逻辑型:.T.相当于1、.F.相当于0字符比较:排序:<、> :空格< 大写字母< 小写字母32 65、66……97、98、……相等比较:== 精确比较,完全相同(包括空格)才相等= 一般比较,受set exact on/off的影响set exact on:短字符加空格,等长后比较set exact off:右字符串在左字符串中出现即为真子串包含:x$y:x在y中出现过,为.T.x在y中没有出现过,为.F.注意:= (set exact off)检测的是右在左$ 检测的是左在右运算结果:逻辑型五、函数(考纲要求53个)数值函数:int(x) :求整,如int(3.14) 返回3字符函数:len(str): 串长,如str="abcd",返回4space(n):产生空格,如space(4),返回4个空格trim(str):去掉str尾部空格,如str="abc ",返回"abc"at(str1,str2,n):str1在str2中第n次出现的位置,n可省,如at("ab","abcdABefab",2),返回9atc(str1,str2,n):功能同上,只是不区分大小写如atc("ab","abcdABefab",2),返回5left(str,n):从str左端开始取出n个字符如left("abcd",2),返回"ab"substr(str,m,n):从str中第m个字符开始处取出n个字符,若省n,则全部取完如substr("abcde",2,2)返回"bc",而substr("abcde",2)返回bcdelike(str1,str2):str1与str2比较,若对应字符相同则为真,str1可含通配符通配符:*代表任意多个字符,?代表1个字符如like("abcd*","abcdef")返回真like("abcd?","abcdef")返回假日期时间函数:date():当前日期time():当前时间datetime():当前日期及时间year(dt):求年,如dt={^2008-10-21} 返回2008 或08 受set century on影响month(dt):求月,如dt={^2008-10-21} 返回10day(dt):求日,如dt={^2008-10-21} 返回21转换函数:数值--字符串:str(n,m,t) n为数字,m为长度,t为小数位数,m、t可省如str(3.14)返回"3.14"字符串--数值:val(str) str为字符串如val("123ab456")返回123,后半部分不会转日期时间--字符串:dtoc(dt,1)如dtoc({^2008/10/21}),结果不定,受set date to、set centuryon/off的影响而dtoc({^2008/10/21},1)固定格式,返回"20081021"共8个字符字符串--日期:ctod(str)如ctod("08/10/21"),结果不定,受set century on/off的影响测试函数:isnull(exp):判断exp的结果是否为空值(null)如isnull(.null.)返回真,isnull(" ")返回假(空格不等于空值) empty(exp):判断exp的结果是否为“空”,空的标准见P76如empty(.null.)返回假,empty(" ")返回真vartype(exp):判断exp的数据类型如vartype(exp),若exp=10返回N,若exp="abc"返回C宏替换:&: 如职工表中有字段“姓名”,使name="姓名"则? name,&name 显示的是:姓名张三(表中的记录)第6章数据库基本操作笔试重点:数据库表操作、索引、完整性笔试分值预测:14分笔试题型:选择、填空机试重点:建项目,库入项目;建库,自由表入库;建表;建索引(主、候选、普通);建永久联系;修改表内容(可能会与SQL结合)修改表结构:增加字段、设置默认值机试题型:基本操作题简单应用题(部分出现)一、VFP数据库的管理层次项目:相当于住宿小区,由若干幢楼组成||数据库:相当于每一幢楼||表:相当于一幢楼的每一层查询、视图相当于楼层分布图菜单、表单及程序代码相当于电梯报表相当于简介二、创建1、创建项目文件/新建---选类型为“项目”--新建文件--选择保存路径、项目名--项目管理器2、创建数据库项管/数据--单击“数据库”节点--新建--新建数据库--选路径、输库名--数据库设计器3、创建表数据库设计器中右键/新建表--新建表--选路径、输表名--表设计器4、设计表所有操作均在表设计器中完成设计字段:字段名、字段类型、宽度(小数位数)显示组框:输入掩码、标题、显示格式注释:对字段的解释说明设计索引(见后)设计数据完整性(见后)5、录入内容所录数据仅供测试,正式数据一般是通过表单录入的三、浏览表内容项管中选择相应的表,单击“浏览”数据库设计器中相应表上右键\浏览四、维护1、维护项目--项管打开项管:打开项目会自动打开项管,方法是“文件/打开-选路径、选类型、单击项目名”库入项目:项管\数据--单击“数据库”节点--添加--选定要加入的数据库完成后,项管中显示出添加的数据库库出项目:项管\数据--单击“数据库”节点--选定要移出的数据库--移出2、维护数据库--数据库设计器打开数据库设计器:项管\数据--单击选择相应的数据库--修改表入库:数据库设计器中右键\添加--选择要加入的表表出库:数据库设计器中,右击相应的表--删除3、维护数据库表--表设计器(修改表结构)打开表设计器:项管\数据--单击选择相应的数据库表--修改数据库设计器中,右击相应的表--修改修改表结构:增加字段删除字段修改字段:字段名、宽度、字段类型修改索引修改数据完整性4、维护数据库表--浏览器(修改表内容)打开表浏览器:项管\数据-单击选择相应的数据库表-浏览数据库设计器中,右击相应的表-浏览修改表内容:定位:鼠标定位:单击相应记录的字段,状态栏会显示出当前记录号m / n表\转到记录:第一个、最后一个、下一个、上一个、记录号增加:表\追加新记录:在最后一条记录后追加新记录,输入内容即可表\追加记录:从另一个表中导入数据修改:直接修改删除:概念:逻辑删除--加删除标记,可恢复(放入回收站)物理删除--彻底删除,不可恢复(清空回收站)vfp命令、SQL Delete 语句都是逻辑删除方法:逻辑删除:单击记录前的删除块,可加标记或撤标记表\切换删除标记物理删除:表\彻底删除,将删除所有打了标记的记录五、设计索引概念:索引就是排序,是逻辑排序,不改变记录的物理顺序,索引文件和表文件是分开存放的目的:主要目的是提高查询速度,但会降低增、删、改的速度类型:主索引:即主关键字,字段值不能重复,一个表只能有一个主索引候选索引:即候选关键字,字段值不能重复,一个表可以有多个候选索引普通索引:字段值可以重复,一个表可以有多个普通索引唯一索引:字段值可以重复,一个表可以有多个唯一索引(注:主索引和候选索引除了排序外,还有其他功能,但普通索引就只起排序作用,目的就是提高查询速度)组织形式:非结构单索引、结构复合索引(cdx)、非结构复合索引创建:打开表设计器“索引”页面中设计索引选项:“索引名”:可以任定“类型”:选择索引类型“表达式”:不可以任定,必须是字段表达式,可用生成器生成“排序”:选择升序或降序修改:打开表设计器修改索引名、类型、表达式、排序删除:打开表设计器选择相应的索引,单击删除打开:打开表时会自动打开两表间建联系:基本概念:联系、联系的类型创建:(1)确定父表和子表,联系类型、联系字段、索引字段(即联系字段)联系类型父表子表1:1 主索引主索引1:m 主索引普通索引(外部关键字)(2)根据规则,在父表和子表中分别建好索引(3)打开数据库设计器,将父表中的连接字段拖放到子表中的连接字段上即可,此时会出现连接线,在连接线上右键/编辑关系可查看联系类型六、数据完整性1、实体完整性概念:保证记录唯一,不允许重复实现:建立主索引或候选索引2、域完整性概念:定义字段的取值范围实现:均在表设计器中完成(1)字段类型、宽度。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

表单 FORM
单文档界面:整个应用程序由一个窗口组成 多文档界面:整个应用程序由多个窗口组成
顶层表单:独立的、无父表单、无模式的表单 浮动表单:由子表单变化来的,包含于父表单,但可以不位 于父表单中 子表单:包含在其他表单中的表单,它不能移出父表单
showwindow:当属性值为2时,该表单为顶层表单 desktop: .t. 表示该表单可位于屏幕任何位置(浮动表单) .f. 表示该表单只能位于父表单中(子表单)
列表框(listbox)和组合框(combobox)
事件 interactivechange:当数据项选定被改变 click:此事件在interactivechange之前发生 方法: additem(cstr要添加进去的字符串,n位置信息):当行数据源类型 为0和1时 removeitem(n数据项的序号):当行数据源类型为0和1时 注意:当用该控件来实现一对多表单的数据访问时,要在数据环境中 为两张表建立临时关系 组合框特殊属性: style: 为2时,表示是下拉列表框 等同于列表框,数据不能修改 为0时,表示是下拉组合框 等同于文本框+列表框,数据可以修改
Click Dbclick Rightclick
When Valid Gotfocus Lostfocus Interactivechange(当对象的value属性值发生改变时)
Keypress(键盘击键产生)
Error Timer(计时器控件特有事件) Activate 注意keypress事件中的keycode(按下键的键值)参数的作用 事件驱动:当某个事件发生,从而导致跟事件同名的方法程序的运行 建立事件循环: Read Events 取消事件循环: Clear Events
面向对象基本知识
引用对象: 绝对引用:从容器的最高层次来描述对象的位置。 相对引用:描述出相对于该对象的位置信息。
相对引用的关键字:Thisformset Thisform This(当前对象) 相对引用的属性:Activeform Activepage Activecontrol Parent(该对象的直接容器)
VFP讲稿 第8~9章
2012
面向对象基本知识
面向对象设计:自底向上、功能综合;由事件驱动 过程化程序设计:自顶向下,功能分解;由过程驱动 类的定义: 面向对象程序设计的核心。将具有相同的结构、操作,并遵守相同规则 的对象集合到一起,这组对象就称为类。是某一组对象的模版. 对象的定义: 对象是类的实例,对象包含数据(对象的属性值)和过程(对象的方法 程序)。 类和对象之间的关系: 类是静态的(设计状态下),对象是动态的(运行状态下) 类的特点: 继承性:子类沿用父类特征的能力,提高了代码的可重用性 封装性:主要体现为类中信息的隐藏(设计类时指定的代码,在通过类 创建对象时不可见) 多态性:同一个类的同名事件,可能完成不同的操作,不同类的同名事 件也可完成不同操作 抽象性:设计类时,只需要提取该类的某些属性,而不是所有属性
标签:label
用来显示说明文字的,不能接受光标,也不能修改其数据, 但可以通过代码修改 它是非数据绑定型控件 属性:
caption:标签中显示的说明文字 autosize:决定该控件是否自动根据内容的多少来调节其大小 borderstyle: 决定其边框样式 backstyle: 决定其背景是否透明 wordwrap: 决定标题文字是否支持多行显示
面向对象基本知识
常用方法: Addobject(向容器中添加对象) Additem (Ctring[,n])向 列表框添加数据项 Clear(清除列表框中的数据项,且只有当其数据源类型为 “0—无”时有效) Hide Refresh 当对象值发生改变,则需要刷新 Release Setfocus(可接受焦点对象设置焦点) Show Quit(终止程 序运行)
文本框:textbox
显示、输入或编辑保存在表中的非备注型(1~254个字符)字段的数据 属性 controlsource:数据来源与去向 绑定字段 value: 当前值,给value赋初值,将决定文本框数据的类型 inputmask: 输 入 掩 码,同数据库表的字段输入掩码 X、A、 9、#、 $、.、, format:显示格式。同数据库表显示格式 A、D、K、L、T、! passwordchar:口令字 aligement:对齐方式 事件 keypress:键按下时发生,先发生 nkeycode 参数系统自动返回键值 interactivechange:当value属性值改变时发生,后发生 gotfocus:此事件之前发生when事件 lostfocus:此事件之前发生valid事件 Click 编辑框:editbox 方法 用来显示、输入或编辑大量文字 setfocus:表示将光标移到文本框 属性:scrollbar:滚动条 其余属性同文本框
表单 FORM
表单的运行: do form 表单文件名 向表单传递参数: 1.给表单添加新的属性(将作为全局变量,在各控件代码 中传递) 2.在表单的INIT事件中,输入代码: parameters 参数列表 &&表单需要从外部接受参数 表单的新属性=参数 &&将参数值传递给表单的属性 3.在运行表单时,使用命令 do form 表单名 with 参数列表
面向对象基本知识
基类:由VFP系统提供的类 子类:用户通过基类或其他类重新定义出来的新类。此新类就称为子 类,而产生该子类的基类或其他的类就称为父类。 类的类型: 容器类:可以包含其他控件的类。例如:表单、命令按钮组、页框 非可视容器类:表单集Formset、页框Pageframe 容器类的组成部分:表单集(表单、工具栏) 页框(页面)表格 (列)列(标题、控件) 选项按钮组(选项按钮)只能包含在组 中,不能添加到表单 控件类:不可以包含其他控件的类。 例如:命令按钮类、文本框类 非可视控件类:用户自定义类Custom,计时器Timer
列表框(listbox)和组合框(combobox)
用来显示一组预定的数据 数据绑定型控件 属性 rowsourcetype:决定该控件的行数据源类型 rowsource: 行数据源,数据来源 controlsource:数据的保存去向 columncount:显示数据的列数,默认值为0,表示只有一列,如要增加一 列,必须设置为2 boundcolumn:决定第几列数据和其value属性绑定 value:该控件被选定的行的值 multiselect:该属性决定该控件是否支持多行同时选定 columnwidth:指定每一列的宽度,数字之间用逗号分隔 list:该控件所有数据项的集合,可通过list(n)来引用它的第n项,为字符型 数据 listindex:返回当前选定数据项在列表框中的位置(序号) listcount:数据项的个数(总行数) sorted:决定该控件中的数据是否自动排序
面向对象基本知识
属性:对象某一方面的特征 最小属性集:每个对象都具有的属性集合。Class Baseclass Classlib Parentclass 事件:对象能够识别的一个动作,该动作可由用户或系统产生 如鼠 标单击 最小事件集:所有VFP基类都能识别的事件。 Init Destroy Error 方法:当用户的某个事件作用于对象上时,对象所产生的操作。实际 上是一段过程代码 注意:对于一个对象,它的事件集合是固定不变的,用户不能定 义新的事件。但其属性集合和方法集合是可以无限扩充的。用户 可以定义新的属性和方法。 例如:写CLICK事件代码,实际是创建与CLICK同名的方法程序, 当该事件发生时,则执行与该事件同名的方法程序。
当调用show方法时,同时会产生activate事件
Setall(可以对容器中的所有对象或某一类对象的某个属性 进行设置)
数据环境
数据环境的作用: 表单运行时,自动打开表单所基于的表,在表单退出时,自动关闭表 设置表和视图的属性:Alias,Readonly,Order,Filter,Exclusive 数据环境对象的名称:dataevironment、relation、cursor 通过数据环境创建对象:(直接通过拖放实现) 拖放数据 对象 整个表 表格 逻辑字段 复选框 备注字段 编辑框+标签 通用字段 图象框+标签 其他类型字段 文本框+标签
微调控件: spinner
用来显示、输入或修改数值型数据或字段 数据绑定型控件,且只能和数值型字段绑定 属性 controlsource:和它绑定的字段或变量 value:该控件的当前值 keybordhighvalue:由键盘输入的最大值 keybordlowvalue:由键盘输入的最小值 spinnerhighvalue:由鼠标输入的最大值 spinnerlowvalue:由鼠标输入的最小值 increment:由鼠标改变时的变化步长;默认为1.0 事件 click: interacti束后,如果违反规则,光标仍旧会位于原 来的对象中
选项按钮组:optiongroup
它用来实现从固定选项中选择单个结果,(单选) 是数据绑定型控件,可以和数值型字段或字符型字段建立关系 组中的选项按钮不能单独出现在表单中 属性 buttoncount: optionbutton(选项按钮)的个数 controlsource:绑定字段 value:具有两种数据类型,由value属性的初值决定采用哪种数据 类型
对象容器的层次关系:是我们引用对象的依据 设置对象的属性:属性窗口、在代码中设置
引用对象.属性名称=属性值
调用对象的方法程序:
引用对象.方法程序的名称[(方法程序所必须的参数列表)] VFP中,部分方法没有参数,可以直接写方法名称。
相关文档
最新文档