资源描述
公共基础知识
1、数据结构与算法
l 算法的特征:可行性、确定性、有穷性、拥有足够的情报
l 基本运算和操作:算术运算、逻辑运算、关系运算、数据传输
l 算法的基本控制结构:顺序结构、选择结构、循环结构
l 算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术、回溯法
l 算法复杂度:时间复杂度和空间复杂度
l 数据结构研究的3方面:
1) 逻辑结构:要素—数据元素的集合D;D上的关系R 数据结构的表示:B=(D,R)
2) 存储结构
3) 对各种数据结构进行运算
l 数据结构可分为线性结构(栈、队列,串)和非线性结构(数组,广义表,树、图)
线性表的运算:查找、插入、删除
栈:只限定在一端进行插入和删除的线性表;按照先进后出的原则组织数据;有入栈,退栈,读栈顶元素三种运算
队列:在队头删除,在队尾插入的顺序表;按照先进先出的原则进行
链表:要求每个结点由数据域和指针域组成;链式存储方式即可表示线性结构也可表示非线性结构
二叉树:在K层上(即深度为K),最多只有2k-1个结点;度为0的结点(叶子结点)总是比度为2的结点多一个;具有N个结点的二叉树其深度至少为【㏒2n】(取整数)+1
查找:若线性表为无序表或是有序线性表但采用链式存储结构只能用顺序查找
二分法查找的条件:顺序存储结构;线性表是有序表
二分法查找最多查找【㏒2n】次,而顺序查找要N次
排序:交换类排序法(冒泡排序法,快速排序法);插入排序法(简单插入排序法,希尔排序法);选择类排序法(简单选择排序法,堆排序法)除希尔排序法,堆排序法的时间复杂度最小
循环队列个数=循环队列的容量-头指针+尾指针
当前栈中所有元素的个数=栈底指针-栈顶指针
2、程序设计基础
l 结构化程序设计方法的原则:自顶向下、逐步求精、模块化和限制使用goto语言
l 结构化程序的基本结构:顺序结构、选择结构和循环结构(先判断后执行—当性循环结构反之为直到性)
l 面向对象方法的要素:对象、对象属性与方法、类和实例、继承、消息、多态性
l 对象的特征:标志唯一性、分类性、多态性、分装性、模块独立性
l 对象是属性和方法的分装体
l 类描述的是具有相似属性与操作的一组对象
3、软件工程基础
l 软件包括程序、数据和相关文档的完整集合;分为应用软件(教务管理系统)和系统软件(操作系统)、支撑软件(工具软件)(编译程序和汇编程序)
l 软件工程的要素:方法(完成软件工程项目的技术手段)、工具(支持软件的开发、管理、文档生成)、过程(支持软件开发的各个环节的控制、管理)
l 软件生命周期分3个时期8个阶段:
a) 软件定义期:问题定义、可行性研究、需求分析
b) 软件开发期:概要设计、 详细设计、实现和测试 c)运行和维护期:使用和维护
l 常见的需求分析法:结构化分析法和面向对象分析法
l 结构化分析法的常用工具:
a) 数据流图DFD(主要图形元素—加工 ,数据流 ,存储文件或数据源=,源 )
b) 数据字典DD(4种类型项目:数据流,数据项,数据存储和加工)
c) 判定表和判定树
l 软件规格说明书的特点:正确性、无歧义性、完整性、可验证性、一致性、可理解性、可修改性、可追踪性
l 软件设计按技术观点分:结构设计、数据设计、接口设计、过程设计
l 按工程管理角度分:概要设计和详细设计
l 软件设计的原理就是抽象、模块化、信息隐藏和模块独立性(评价设计好坏的标准)
l 衡量模块独立性使用耦合性和内聚性。内强耦弱则独立性强
l 概要设计的任务:设计软件系统结构、确定数据结构、数据库设计、编写概要设计文档、概要设计文档评审
l 软件测试方法:静态和动态测试;白盒测试(逻辑覆盖测试和基本路径测试)和黑盒测试(价类划分法、边界值分析法、错误推测法)
l 软件测试4步骤:单元测试、集成测试、验收测试和系统测试
l 软件调试方法:强行排错法、回溯法和原因排除法
l 软件测试的目的是发现程序中的错误;软件调试是为了更正程序中的错误
4、数据库设计基础
l 数据库管理系统DBMS是数据库系统DBS的核心
l 数据库系统由硬件系统、数据库集合、数据库管理系统和相关文件、数据库管理员、用户组成
l 数据库系统的发展:
①人工管理:依赖性大,冗余大 ②文件系统:具有一定独立性 ③数据库系:共享性,冗余小,独立性
l 实体:客观存在并且可以相互区别的事物称为实体。 实体的属性:描述实体的特性称为属性。
l 两个实体间的联系可以归结为三种类型
①一对一联系 1:1 ②一对多联系 1:N ③多对多联系 M:N
l E-R模型的表示:实体集(矩形表示),属性(椭圆形),联系(◇)
l 数据模型分3种类型:
① 层次模型:用树形结构表示,一对多 ② 网状模型:用网状结构表示
③ 关系数据模型:用二维表结构来表示,一张二维表就是一个关系
l 关系模型:
一个关系就是一张二维表,但是一张二维表不一定是一个关系
VFP中,一个关系存储为一个文件,文件扩展名为.dbf,称为“表”。
元组:水平方向的行称为元组每一行是一个元组,元组对应一个存储文件中的一个具体记录。
属性:二维表中垂直方向的列称为属性。每一列有一个属性名,在VFP中表示为字段名。
域:属性的取值范围
关键字:属性或属性的组合,其值能够惟一的标识一个元组。
关系的特点:① 规范化性。② 属性名唯一性 ③ 元组唯一性 ④ 元组和列的次序无关紧要。
关系运算: 1. 传统的集合运算:① 并 ② 差 ③ 交
2. 专门的关系运算:选择(行);投影(列);联接;自然联接(有公共域)
数据库系统的3模式:内模式(物理模式)反应数据在计算机物理结构中的实际存储方式
概念模式(逻辑模式)反应设计者的数据全部逻辑要求
外模式(子模式)反应用户对数据的要求
l 数据库设计阶段:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段
l E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的概念设计阶段
l 数据库管理系统是在操作系统支持下的系统软件 数据库应用系统中的核心问题是数据库设计
l 数据库设计包括概念设计、逻辑设计和物理设计 在二维表中,元祖的分量不能再分成更小的数据项
l 数据模型的3要素:数据结构、数据操作、数据约束条件
数据库基础
l DB2、VF、Qracle属于数据库管理系统,Excle是数据库软件
l VF是关系数据库,支持的数据模型是关系数据模型
l 数据时存储在某一种媒体上能识别的物理符号;数据处理是指将数据转换成信息的过程
l 数据模型不仅表示反应事物本身的数据还表示数据之间的联系
l 数据库是按照一定的规则存储在计算机中的数据集合,它能被各种用户共享
l 对关系进行选择和投影运算后,得到的结果是一个关系
l 对关系中找到满足选择符合条件的元祖或属性组成一个新的关系的操作称为连接
l 把两个关系中相同属性值的元祖连接到一起,并去掉重复属性形成新的二维表的操作称为自然连接
l 数据库设计的概念设计阶段,表示概念结构的常用方法和描述工具是实体-联系法和实体-联系图
l 数据库文件不存储用户数据
l 数据库设计原则
① 关系数据库的设计应遵从概念单一化“一事一地”的原则。 ② 避免在表之间出现重复字段。
③ 表中的字段必须是原始数据和基本数据元素。 ④ 用外部关键字保证有关联的表之间的联系。
l 数据库设计的步骤 / 利用VFP来开发数据库应用系统,可以按照以下步骤来设计:
① 需求分析。② 确定需要的表。③ 确定所需字段。 ④ 确定联系。 ⑤ 设计求精。
l 系统概述:
1.使用“选项”对话框;单击“工具”菜单下的“选项”,设置系统环境
①设置日期和时间的显示格式 在“区域”选项卡中,可以设置日期和时间的显示方式。
③设置默认目录
项目管理器:一个扩展名为.pjx的项目文件。
2、“项目管理器”共有6个选项卡。
①“数据”:包含文件—数据库、自由表、查询和视图。 ②“文档”:包含文件—表单、报表和标签
③“类”:vf的基类和自定义类 ④“代码”:,程序文件.prg、API函数库和应用程序.app
⑤“其他”:文本文件、菜单文件和其他文件 ⑥全部选项卡:用于显示应用程序中的所有的文件
l 项目是指文件、数据、文档和对象的集合
l 在项目管理器中可以将应用系统编译成一个扩展名为.exe的可执行文件或.app的应用文件
l 对项目中的数据文档等进行集中管理,并可以对项目进行创建和维护的是项目管理器
l 运行按钮:执行选定的查询、表单或程序
l 项目管理器可创建文件、添加文件、修改文件和移去文件
l 向导是一种交互式程序,帮助用户快速完成一般性的任务
l 生成器用于简化表单、复杂空间和参照完整性代码的创建和修改的过程
l 设计器用于修改数据库、表单、报表等的可视化工具
程序设计基础
l 常量类型:
1. 数值型常量(常数)N:由0~9、小数点和正负号构成,科学记数法形式书写:如1.23E10=1.23*1010
2. 货币型常量:加前置的符号$。在存储和计算时,采用4位小数,小数位四舍五入,内存占8个字节
3. 字符型常量(字符串):表示方法是用半角单引号、双引号或方括号即定界符把字符串扩起来。
4. 日期型常量D:定界符是一对花括号。包括年、月、日三部分内容,各部分内容之间用分隔符【斜杠(/)、连字号(-)、句点(.)】分隔
日期型常量的格式有两种:
①传统的日期格式 系统默认的型数据为美国日期格式“mm/dd/yy”(月/日/年)
②严格的日期格式{^yyyy-mm-dd},
注意:花括号内第一个字符必须是脱字符(^);年份必须用4位;日期型数据用8个字节表示。
5. 日期时间型常量:日期和时间两部分内容:{<日期>,<时间>}。日期时间型数据用8个字节存储。时间部分的取值范围:00:00:00AM~11:59:59PM
6. 逻辑型常量:只有逻辑真和逻辑假两个值。逻辑真表示:.T.、.t.、.Y.、和.y.。逻辑假:.F.、.f.、.N.、.n.。前后两个句点作为逻辑型常量的定界符是必不可少的,逻辑型数据只占用一个字节。
VFP的变量分为字段变量和内存变量两大类,表中的字段名就是变量称为字段变量。
内存变量的数据类型包括字符型(C)、数值型(N)、货币型(Y)、逻辑型(L)日期型(D)和日期时间型(T)。
1. 简单内存变量
如果当前表中存在一个同名的字段变量,则在访问内存变量时,必须在变量前加上前缀M.(或M->),否则系统将访问同名的字段变量。
变量的赋值命令有以下两种格式:<内存变量名>=<表达式>、STORE<表达式> TO<内存变量名表>
功能注释:等号一次只能给一个内存变量赋值。STORE命令可以同时给若干个变量赋予相同的值,各内存变量名之间必须有逗号分开。
2. 数组
创建数组的命令格式为: DIMENSION<数组名> 和 DECLARE<数组名>
数组创建以后,系统自动给每个数组元素赋以逻辑假.F.。
① 在赋值和输入语句使用数组名时,表示将同一个值同时赋给该数组的全部数组元素。
3.内存变量常用命令
4. 表中数据与数组数据之间的交换
① 将表的当前记录复制到数组
格式1:SCATTER[FIELDS<字段名表>]TO <数组名>
功能是将表的当前记录从指定字段表中的第一个字段内容开始,依次复制到数组名中的从第一个数组元素开始的内存变量中。如果不使用FIELDS短语指定字段,则复制除备注型M和通用型G之外的全部字段。
如果事先没有创建数组,系统将自动创建;如果已创建的数组元素个数少于字段个数,系统自动建立其余数组;如果已创建的数组元素个数多于字段数,其余数组元素的值保持不变。
② 将数组复制到表的当前记录
格式1:GATHER FROM<数组名>[FIELDS<字段名表>]
格式1的功能是将数组中的数据作为一个记录复制到表的当前记录中。如果缺省FIELDS选项,则依次向各字段复制。
P49
l 表达式
1.数值表达式由算术运算符将数值型连接起来形成,其运算结果仍然是数值型数据。
优先级
运算符
说明
1
( )
形成表达式内的子表达式
2
** 或^
乘方运算
3
*、/、%
乘、除运算、求余运算
4
+、-
加、减运算
② 运算%和取余函数MOD ()的作用相同。余数的正负号与除数一致。
2.字符表达式:由字符运算符型数据连接起来形成,结果仍是字符型数据。
字符串运算符有以下两个,的优先级相同:
+:前后两个字符串首尾连接形成一个新的字符串。
-:连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部。
3. 日期时间表达
格式
结果及类型
格式
结果及类型
<日期>+<天数>
日期型
<日期时间>+<秒数>
日期时间型
<日期>-<天数>
日期型
<日期时间>-<秒数>
日期时间型
<日期>-<日期>
数值型
<日期时间>-<日期时间>
数值型
1.关系表达式
关系表达式由关系运算符将两个运算对象连接起来形成,其运算结果是逻辑型数据
关系运算符
<
小于
<=
小于等于
>
大于
>=
大于等于
=
等于
==
字符串精确比较
<>、#或!=
不等于
$
子串包含测试
1) 数值型和货币型数据比较:按数值的大小比较
2) 日期和日期时间型数据比较:越早的日期或时间越小,越晚的日期或时间越大
3) 逻辑型数据比较:.T.大于.F.
4) 子串包含测试:关系表达式<前字符型表达式>$<后字符型表达式>为子串包含测试,如果前者是后者的一个子字符串,结果为逻辑真(.T.),否则为逻辑假(.F.)。
5) 字符串精确 比较与EXACT设置
在用双等号符==比较两个字符串时,只有当两个字符串完全相同时,运算结果才会是逻辑真.T.,否则为逻辑假.F.。在用单等号运算符=比较两个字符串时,运算结果与SET EXACT ON|OFF设置有关,
① 系统默认OFF状态。当处于OFF状态时,只要右边的字符串与左边字符串的前面部分内容相匹配,即可得到逻辑真.T.的结果。
② 当处于ON 状态时,比较到两个字符串全部结束。
6) 运算符==和$仅适用于字符型数值
2.逻辑表达式:由逻辑运算符将逻辑型数据连接起来而形成,结果仍是逻辑型数据。
逻辑运算符有三个:.NOT.或!(逻辑非)、.AND.(逻辑与)以及.OR.(逻辑或)。优先级:非,与,或
3.运算符优先级:先执行算术运算符、字符串运算符和日期时间运算符,其次执行关系运算符,最后执行 逻辑运算符。圆括号作为运算符,可以改变其他运算符的运算次序。
函数P59
程序与程序文件P69
多模块程序设计P77
Visual FoxPro数据库及其操
l 数据库是扩展名为.dbc的文件名,还会自动建立一个数据库备注文件.dct和一个数据库索引文件.dcx。
l 建立数据库的常用立法有以下三种
1.在项目管理器中建立数据库
在项目管理中首先在“数据”选项卡中选择“数据库”,然后单击“新建”按钮并选择“新建数据库”
2.通过“新建”对话框建立数据库
单击工具栏上的“新建”按钮或者选择“文件”菜单下的“新建”,在“新建文件”按钮建立数据库。
3.使用命令交互建立数据库
CREATE DATABASE <数据库文件名>
使用数据库 打开数据库的命令是OPEN DATABASE <数据库文件名> 可以缺省数据库文件扩展.dbc
修改数据库 打开数据库设计器的命令是MODIFY DATABASE<数据库文件名>
删除数据库 删除数据库的命令是DELETE DATABASE<数据库文件名>
l 建立数据库表
一个表对应于磁盘上的一个扩展名为.dbf的文件,若有备注或通用型大字段则磁盘上还会有一个对应扩展名为.fpt的文件。
建立数据库表P87
表的基本操作P91
l 索引
VFP索引是由指针构成的文件,不改变表中记录的物理顺序。创建索引是创建一个由指向.dbf文件记录的指针构成的文件。
VFP中的索引分为主索引、候选索引、唯一索引和普通索引四种。
1.主索引:在指定字段表达式中不允许出现重复值的索引,这样的索引可以起到主关键字的作用。一个表只能创建一个主索引。字段值唯一
2.候选索引:候选索引和主索引具有相同的特性,建立候选索引的字段可以看作是候选关键字,一个表可以建立多个候选索引。字段值唯一
3.唯一索引:在一个表中可以建立多个唯一索引。字段值不唯一
4.普通索引:普通索引不仅允许字段中出现重复值,并且索引项中也允许出现重复值。在一个表中可以建立多个普通索引。字段值不唯一
l 在表设计器中建立索引
1.单项索引:在表设计器界面有“字段”、“索引”和“表”有三个选项卡,在“字段”选项卡中有三个选项:无、升序和降序(默认是无)。如果选定了升序或降序,则在对应的字段上建立了一个普通索引。
2.复合字段索引:索引可提高查询速度,系统会自动维护索引,也会降低插入、删除和修改等操作的速度。
用命令建立索引
格式一:INDEX ON <字段名> TO <索引文件名> [FOR <条件>][UNIQUE]
建立了一个扩展名为.idx的索引文件
格式二:INDEX ON <字段名> TAG <索引名> OF <索引文件名> [FOR <条件>][ASCENDING/DESCENDING][UNIQUE]
建立了一个扩展名为.cdx的索引文件
格式三:INDEX ON <字段名> TAG <索引名>[FOR <条件>][ASCENDING/DESCENDING][UNIQUE][CANDIDATE]
建立了一个与表文件同名扩展名为.cdx的索引文件
ASCENDING/DESCENDING说明建立升序/降序索引,默认升序。
UNIQUE说明建立唯一索引。 CANDIDATE说明建立候选索引 TAG用来建立结构符合索引文件
与表同名的.cdx索引是一种结构复合压缩索引,它是在VFP数据库中最普通也是最重要的一种索引,结构复合压缩索引文件具有如下特性:
l a.在打开表时自动打开; l b.在同一索引文件中能包含多个索引方案,或索引关键字;
l c.在添加、更改或删除记录时自动维护索引。
l 使用索引
1、 打开索引文件:与表名相同的结构索引在打开表时都能够自动打开,但是对于非结构索引必须在使用之前打开索引文件。
SET INDEX TO <索引文件名表> 可以.idx索引和.cdx索引。
执行该命令后,索引文件列表中的第一个索引文件成为主控索引文件。
2.设置当前索引 SET ORDER TO <N>/[TAG]<索引名> 其中可以按索引序号或索引名指定索引项。
3.使用索引快速定位 SEEK <表达式>
4.删除索引 DELETE TAG <索引名> 如果要删除全部索引可以使用命令DELETE TAG ALL
索引文件不改变表中的物理顺序
为表建立主索引或候选索引可保证数据的实体完整性
使用索引的主要目的是提高查询的速度
在表设计器中设置的索引包含在结构符合索引文件中
在表设计器的字段选项卡中可以创建的索引是普通索引
在表设计器中建立的索引都存放在扩展名为.cdx的索引文件中
l 数据完整性
数据完整性一般包括实体完整性、域完整性和参照完整性等,VFP提供了实现这些完整性的方法和手段。
实体完整性与主关键字:实体完整性是保证表中记录惟一的特性,即在一个表中不允许有重复的记录。在VFP中利用主关键字或候选关键字来保证表中的记录惟一,即保证实体惟一性。
在VFP中将主关键字称作主索引,将候选关键字称作候选索引。
域完整性与约束规则:域约束性也称作字段有效性规则,建立字段有效性规则,在表设计器的“字段”选项卡中,它们是“规则”、“信息”、“默认值”三项。
注意:“规则”是逻辑表达式,“信息”是字符串表达式,“默认值”的类型则以字段的类型确定。
l 参照完整性与表之间的关联
1.建立表之间的联系
在数据库设计器中设计表之间的联系时,要在父表中建立主索引,在子表中建立普通索引,然后通过父表的主索引和子表的普通索引建立起两个表之间的联系。
规则
级联
限制
忽略
更新规则
用新的连接字段自动修改子表中相关所有记录
若字表中有相关记录,则禁止修改父表中的连接字段值
不做参照完整性检查,可随意更新父表中的连接字段值
删除规则
自动修改子表中相关所有记录
若···删除····值
不~查,删除父表的记录时与子表无关
插入规则
无
若父表中没有相匹配的连接字段值则禁止插入子记录
不~查,可随意插入子记录
l 数据库表与自由表
所谓自由表就是那些不属于任何数据库的表,可以将自由表添加到据库中,使之成为数据库表;也可以将数据库表从数据库中移出,使之成为自由表。自由表不能建立字段级规则和约束等。
将自由表添加到数据库: ADD TABLE <表文件名>
从数据库中移出: REMOVE TABLE <表文件名>
如果使用选项DELETE,则在把所选表从数据库中移出之外,还将其从磁盘上删除。
自由吧与数据库表相比,自由表中不能建立主索引
l 多个表的同时使用
系统默认总是在第1个工作区中工作,
指定工作区的命令是: SELECT <区名>/<区号>/<别名>/0
最小的工作区号是1,最大的工作区号是32 767,即同一时刻最多允许打开32 767个表。如果这里指定为0则选择编号最小的可用工作区,即尚未使用的工作区。
每个表打开后都有两个默认的别名,一个是表名自身,还可以在USE命令中用ALIAS短语指定别名。
在前10个工作区中指定的默认区名是工作区字母A到J
使用不同工作区的表: IN <工作区号>︱<表名或表的别名>
在一个工作区中还可以直接利用表名或表的别名引用另一个表中的数据,具体方法是在别名后加上点号分隔符“.”或“->”操作符,然后再接字段名。
表之间的关联: SET RELATION TO <字段名> INTO <区名>/<别名>
l 一般是子表的普通索引。
当临时联系不再需要时可以取消,命令SET RELATION OFF INTO将取消当前表到所有表的临时联系。
在每个工作区可以打开一个表,若同一时刻打开多个表,就要将多个表在不同的工作区打开
排序P111
第五章 关系数据库标准语言SQL
SQL是一种一体化的语言,它包括了数据定义、数据查询、数据操纵的数据控制等方面的功能。
SQL语言是一种高度非过程化的语言 SQL语言非常简洁。
SQL语言可以直接以命令方式交互使用,也可以嵌入到程序设计语言中以程序方式使用。
SQL的核心是查询。SQL的查询命令也称作SELECT命令,它的基本形式由SELECT-FROM-WHERE查询块组成。SQL SELECT语句功能是查询
HAVING必须与GROUP BY使用,用来限定分组必须满足的条件
ORDER BY用来对查询结果进行排序
DISTINCT短语的作用是去掉查询结果中的重复值。
其中"*"是通配符,表示所有属性,即字段。
这里用WHERE短语指定了查询条件,查询条件可以是任意复杂的逻辑表达式。
SQL查询功能建立P115
l 操作功能
SQL的操作功能是,主要包括数据的插入、更新和删除三个方面的内容。
A. 插入:VFP支持两种SQL插入命令的格式,第一种格式是标准格式,第二种格式是VFP的特殊格式。
第一种格式: INSERT INTO <表文件名>[(字段名表)]VALUES (表达式表)
第二种格式: INSERT INTO <表文件名> FROM ARRAY <数组名>
其中:INSERT INTO <表文件名>说明向由<表文件名>指定的表中插入记录,当插入的不是完整的记录时,可以用 表文件名1,表文件名2…指定字段;
VALUES(表达式表)给出具体的记录值; FROM ARRAY <数组名>说明从指定的数组中插入记录值。
B. 更新:UPDATE <表文件名> SET <字段名>=<表达式>[WHERE <条件>]
如果不使用WHERE子句,则更新全部记录。
C. 删除:DELETE FROM <表文件名>[WHERE <条件>]
WHERE指定被删除的记录所满足的条件,如果不使用WHERE子句,则删除该表中的全部记录。
注意:在VFP中SQL DELETE命令同样是逻辑删除记录,如果要物理删除记录需要继续使用PACK命令。
l 定义功能
l 表的定义: CREATE TABLE |DBF <表文件名> [FREE](字段名表达式表[NULL|NOT NULL]
[CHECK <规则>[ERROR <信息>]]
[DEFAULT <默认值>]
[PRIMARY KEY|UNIQUE]
[FOREIGN KEY <字段名> TAG <索引名>]
REFERENCES <表文件名>)
用CREATE TABLE命令建立表,除了建立表的基本功能外,它还包括满足实体完整性的主关键字(主索引)PRIMARY KEY、定义域完整性的CHECK约束及出错提示信息ERROR、定义默认值的DEFAULT等。FREE:建立的表不添加到当前数据库中,即建立一个自由表。
NULL或NOT NULL:说明字段允许可不允许为空值。
UNIQUE:说明建立候选索引(注意不是惟一索引)。
表的删除:DROP TABLE <表文件名>
DROP TABLE直接从磁盘上删除 表文件 所对的dbf文件。
l 表结构的修改
向表中添加新的字段和新的索引
格式1:ALTER TABLE <表文件名> ADD|ALTER[COLUMN]<字段名表>
该格式可以添加(ADD)新的字段或修改(ALTER)已有的字段。
修改表的结构和字段名:
格式2:ALTER TABLE <表文件名> ALTER[CONUMN]<字段名表>
[SET DEFAULT <默认值>][SET CHECK <规则>[ERROR <提示>]]
[DROP DEFAULT][DROP CHECK]
删除表中的字段、缺省值、合法值限定和索引
格式3:ALTER TABLE <表文件名>[DROP[COLUMN]<字段名表>]
[ADD PRIMARY KEY <字段名表> TAG <索引名>]
[DROP PRIMARY KEY]
[ADD UNIQUE <字段名表> TAG <索引名>]
[RENAME COLUMN <字段名表> TO <表达式表>]
该格式可以删除字段(DROP[COLUMN])、可以修改名(RENAME COLUMN0)。
视图的定义:CREATE VIEW <视图名> AS <子查询>
其中 子查询 可以是任意的SELECT查询语句。
视图的删除:DROP VIEW <视图名>
第六章 查询与视图
1、查询的概念
实际上,查询就是预先定义好的一个SQL SELECT语句,查询是以扩展名为.qpr的文件保存在磁盘上的,这是一个文本文件,它的主体是SQL SELECT语句。
2、查询设计器
① 可以用CREATE QUERY命令打开查询设计器建立查询。
② 如果读者熟悉SQL SELECT,还可以直接编辑.qpr文件建立查询。
l "字段"选项卡对应于SELECT短语,指定所要查询的数据。
l "联接"选项卡对应于JOIN ON短语,用于编辑联接条件。
l "筛选"选项卡对应于WHERE短语,用于指定查询条件。
l "排序依据"选项卡对应于ORDER BY短语,用于指定排序的字段的排序方式。
l "分组依据"选项卡对应于GROUP BY短语和HAVING短语,用于分组。
l "杂项"选项卡可以指定是否要重复记录(对应于DISTINCT)及列在前面的记录(对应于TOP短语)等。
3、建立查询:CREATE QUERY
4、运行查询:DO <查询文件名.QPR>
查询可以保存在查询文件中
可以根据数据库表,自由表和视图建立查询
若建立的查询是基于多个表的,则这些表之间必须有联系
视图
视图是操作表的一种手段,通过视图可以查询表,也可以更新表。
在关系数据库中,视图依赖于表,不独立存在
为了通过视图更新基本表中的数据,需要在视图设计器界面的左下角选中发送SQL更新复选框
1.建立视图的方法
用CREATE VIEW…… AS……命令打开视图设计器建立视图。
视图设计器中包含:字段、联接、筛选、排序依据、分组依据、更新条件和杂项
视图设计器和查询设计器的区别:
① 查询设计器的结果是将查询以.qpr扩展名的文件保存在磁盘中;而视图设计完后,在磁盘上找不到类似的文件,视图的结果保存在数据库中。
② 由于视图是可以用于更新的,为此在视图设计器中多了一个"更新条件"选项卡。
③ 在视图设计器中没有"查询去向"的问题。
使用USE命令打开或关闭视图
在文本框、表格控件、表单或报表中使用视图作为数据源
2、 远程视图与连接
为了建立远程视图,必须首先建立连接远程数据库的"连接"。
当远程视图被激活时,视图连接讲成为通向远程数据源的通道
利用CREATE CONNECTION 命令打开连接设计器建立连接
视图只能在数据库中建立,随数据库打开而打开,随数据库的关闭而关闭,并不存在视图文件
表单设计与应用
l 面向对象的概念
属性用来表示对象的状态 方法用来表示对象的行为
事件集是固定的,用户不可以定义新的事件
同一个方法,由不同的对象去执行,一般会产生不同的结果
把新类称为现有类的子类,把现有类称为新类的父类
类只是实例对象的抽象,类并不进行任何行为的操作
类是对象的集合,对象是类的实例
l VF中的类
生成表单对象的格式:CREATEOBJECT()
生成表单对象时,表单不会自动显示在屏幕上,可通过调用SHOW方法显示表单
表单文件的扩展名:.scx
在容器对象的嵌套层次中,事件的处理遵循独立性原则,该独立性原则不适合命令按钮和选项按钮组
容器对象的调用顺序,从高到低依次引用各个对象,即表单、表单中的容器控件、容器所包含的基本型控件
l 表单的创建与运行
创建表单的命令格式:CREATE FORM<报表文件名>
运行表单的命令格式:DO RORM<表单文件名>
NAME子句的作用是在系统中建立指定名字的变量,并使它指向表单对象,加上LINKED关键字时,表单对象将随指向它的变量的清除而关闭
l 容器层次中的对象引用属性或关键字
属性或关键字
引用
Parent(属于命令属性按钮)
当前对象的直接容器对象
This
当前对象
ThisForm
当前对象所在的表单
l 创建新属性
属性
描述
默认值
Movable
确定表单是否能够移动
.T.
l 表单设计器
可以用数据环境设计器来设置表单的数据源(包括设置表和视图以及表之间的关系)
数据环境中的表或视图会随着表单的打开或运行而打开,可以修改,并随着表单的关闭或释放而关闭,可以用数据环境设计器来设置表单的数据环境
对于大多数属性,其数据类型是固定的
利用布局工具栏中的按钮,可以方便的调整表单窗口中被选控件的相对大小或位置
数据环境是一个对象,有自己的属性和方法、事件
a) 运行时事件: 1.Load事件 在表单对象建立之前引发,即运行表单时
2.Init事件 在对象建立时引发
b) 关闭事件 1.Destroy事件: 在对象释放时引发
2.Unload事件: 在表单对象释放时引发,是表单
展开阅读全文