李-VF各章知识点总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章Visual FoxPro数据库基础
大纲要求
一、Visual FoxPro基础知识。
数据库、数据库系统、数据库管理系统以及三者之间的关系;数据库系统的特点;数据模型。
二、关系数据库。
关系中的关系、元组、属性、域、关键字、外部关键字;关系的特点:关系模型。
三、关系运算。
传统的集合运算:并、差、交;专门的关系运算:选择、投影、联接。
最近两年还有考到:笛卡尔积、除法
四、掌握项目管理器中的6个选项卡,记住各选项卡中创建的文件类型。
历年考点
1.1.1计算机数据管理的发展
1.计算机在数据管理方面的几个阶段
(1)人工管理阶段:数据与程序不存在独立性,数据存在大量冗余。
(2)文件系统阶段:提供了简单的数据共享与数据管理能力,但是它无法提供完整的、统一的、管理和数据共享能力。
(3)数据库系统及分布式数据库系统阶段:提高数据的共享性,使多个用户能够同时访问数据库中的数据;减小数据的冗余度,以提高数据的一致性和完整性;提供数据与应用程序的独立性
1.1.2数据库系统
1.数据库有关概念
(1)数据库系统(DBS):由数据库(数据)、数据
库管理系统(软件)、数据库管理员(人员)、硬件
平台(硬件)、软件平台(软件)五个部分构成的运
行实体。
(2)数据库(DB):是存储在计算机上结构化的相
关数据集合,它不仅包括描述事物的数据本身,而
且还介绍数据库管理系统所支持的各种数据模型。
(3)数据库管理系统(DBMS):一种系统软件,
负责数据库中的数据组织、数据操纵、数据维护、
控制及保护和数据服务等,是数据库的核心。
VF是数据库管理系统。
(4)数据库管理员(DBA):对数据库进行规划、设计、维护、监视等的专业管理人员。
(5)数据库应用系统:由数据库系统、应用软件及应用界面三者组成。
2. 数据库系统的特点
数据库系统的基本特点:
(1) 数据的集成性
(2) 数据的高共享性与低冗余性(数据不一致性)
(3) 数据独立性(物理独立性与逻辑独立性)
(4) 数据统一管理与控制(完整性/安全性/并发控制)
1.1.3数据模型
1. 实体的描述
(1)实体:客观存在并且可以相互区别的事物,实体可能是实际的事物,也可能是抽象的事件。
(2)实体的属性:描述实体的特性。
(3)实体集和实体型:属性值的集合表示一个实体,而属性的集合表示一种实体的类型,称为实体型。
同类型的实体的集合,称为实体集。
在Visual FoxPro中,用“表”来存放同一类实体,即实体集。
Visual FoxPro的一个“表”包含若干个字段,“表”中所包含的“字段”就是实体的属性。
字段值的集合组成表中的一条记录,代表一个具体的实体,即每一条记录表示一个实体。
2. 实体间联系及联系的种类
实体间的联系:一对一、一对多、多对多
3. 数据模型
数据库管理系统(DBMS)所支持的数据逻辑模型分为三种:层次模型、网状模型、关系模型。
●层次数据模型:用树形结构表示实体及其之间联系的模型。
●网状数据模型:用网状结构表示实体及其之间联系的模型。
●关系数据模型:用二维表结构来表示实体以及实体之间联系的模型。
1.2关系数据库
1.2.1关系模型
1. 关系模型中的关系术语
(1)关系:一个关系就是一张二维表,每个关系有一个关系名。
在Visual FoxPro中,一个关系存储为一个文件,文件扩展名为.dbf,称为“表”。
(2)元组:在一个二维表中,水平方向的行称为元组,每一行是一个元组。
元组对应存储文件中的一个具体记录。
(3)属性:二维表中垂直方向的列称为属性,每一列有一个属性名,在Visual FoxPro中表示为字段名。
(4)域:属性的取值范围,即不同元组对同一个属性的取值所限定的范围。
(5)关键字:属性或属性的组合,其值能够惟一标识一个元组。
(6)外部关键字:表中的一个字段不是本表的主关键字或候选关键字,而是另一个表的主关键字或候选关键字。
2. 关系的特点
(1)关系必须规范化。
(2)在同一个关系中不能出现相同的属性名,Visual FoxPro中不允许同一个表中有相同的字段名。
(3)关系中不允许有完全相同的元组,即冗余。
(4)在一个关系中元组的次序无关紧要。
(5)在一个关系中列的次序无关紧要。
1.2.2 关系运算
关系模型的基本运算:
(1)并运算R∪R‟(2)交运算R∩R‟(3)差运算R-R‟
(4)查询(包括投影、选择、自然连接、笛卡尔积运算R×S、除法运算R÷S)
注意:(1)投影、选择运算只针对一个关系。
(1)并、交、差运算要求两个关系的结构完全一致。
(2)自然连接要求两个关系中有相同的字段。
查询实例:
1. 投影对关系R中系部编号、姓名两列做投影:
SQL语句:select系部编号,姓名from R
2.选择选出关系S中系部编号=1的元组:
SQL语句:select * from S where系部编号=”1”
3. 关系R和S的笛卡尔积(R×S):N+M元的关系元组个数p×q
4. 关系并运算:R∪R‟
5. 关系交运算:R∩R‟
6. 关系差运算:R-R‟
7. 关系差运算:R‟-R
8. 除法是笛卡尔积的逆运算:理解“在被除的关系中找出满足除数关系中的所有条件的元组”;在实际操作中可用笛卡尔积验算。
9. 连接:连接可分为三种:内连接、外连接和交叉连接。
内连接又分为等值连接、自然连接和不等值连接三种。
外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN)、右外连接(RIGHT OUTER JOIN 或RIGHT JOIN)和全外连接。
自然连接是一种特殊的等值连接,相连接的表之间存在相同的属性。
1.4Visual FoxPro系统概述
1. 项目管理器共有6个选项卡,其中“数据”、“文档”、“类”、“代码”、“其他”5个选项卡分别用于分类显示各种文件,“全部”选项卡用于集中显示该项目中的所有文件。
●“数据”选项卡:包含了一个项目中的所有数据——数据库、自由表、查询和视图。
●“文档”选项卡:包含了处理数据时所用的三类文件,即输入和查看数据所用的表
单、打印表和查询结果所用的报表及标签。
●“类”选项卡:使用VisualFoxPro的基类就可以创建一个可靠的面向对象的事件驱
动程序。
●“代码”选项卡:包括三大程序:即扩展名为.prg的程序文件、库文件.api和应
用程序文件.app.
●“其他”选项卡:包括文本文件、菜单文件和其他文件。
●“全部”选项卡:以上各类文件的集中显示窗口。
2VF中常用文件扩展名
项目文件:.pjx程序文件:.prg编译程序文件所生成的备注文件:.fxp
数据库文件:.dbc 数据库表文件或自由表文件:.dbf可视类库:.vcx
备注型或通用型字段所存放的文件:.fpt 查询文件:.qpr
表单文件:.scx菜单文件:.mnx菜单程序文件:.mpr
报表文件:.frm 连编项目所生成的文件:.app或.exe
3VF中创建文件的命令:
创建项目文件:create project
创建程序文件(命令文件):modify command
创建数据库文件:create database
创建数据库表文件:VF中:在打开数据库的情况下使用create
SQL语言:create table表名(属性名表…)
创建自由表文件:VF中:在不打开数据库的情况下使用create
SQL语言:create table表名free (属性名表…)
创建普通索引:打开表文件的情况下使用Index on索引表达式tag索引名
创建惟一索引:打开表文件的情况下使用Index on索引表达式tag索引名unique
创建候选索引:VF中:打开表文件的情况下使用Index on索引表达式tag索引名candidate SQL中:Alter table表名add unique索引表达式tag索引名
创建查询文件:create query
创建视图文件:VF中:打开数据库的情况下使用create view
SQL中:打开数据库的情况下使用create view…as select…
创建表单文件:create form
创建菜单文件:create menu
创建报表文件:create report
4VF中修改文件的命令
修改项目文件:modify project
修改程序文件:modify command
修改数据库文件:modify database
修改表文件:modify structure
修改查询文件:modify query
修改视图文件:打开视图所在数据库的情况下使用modify view
修改表单文件:modify form
修改菜单文件:modify menu
修改报表文件:modify report
5VF中运行文件的命令
运行程序文件:do程序文件名.prg (.prg可省略)
运行查询文件:do查询文件名.qpr
运行表单文件:do form表单文件名.scx (.scx可省略)
运行菜单文件:do菜单程序文件名.mpr
预览报表文件:report form报表文件名.frm preview(.frm可省略)
第二章程序设计基础
一、历年考点
1.基础知识(要想读懂一个程序必须掌握的一些知识)
2.1 常量和变量
1.常量类型包括:数值型(12)、货币型($12)、字符型(”A”)、日期型({^2011-03-15})、
日期时间型和逻辑型(.T.)
字符型常量的定界符有三种:单引号…abc‟、双引号”A”或方括号[ABX]
日期型常量的分隔符可以设置:set mark to “;”&& 分隔符设置为分号
日期型常量的年月日显示顺序可以设置:set date to MDY/DMY/YMD
日期型常量的世纪显示:set century on/off
Set century to A rollover B
当A>=B,世纪值=A;当A<B,世纪值=A+1。
例如:SET CENTURY TO 19 ROLLOVER 10
因为19>10,所以世纪值为19,即现在是19XX年。
2.变量:变量是指在内存中所开辟的一块存储空间,可以存放各种类型的数据。
变量命名规则:以字母、数字、下划线开头,后接字母、数字。
变量类型包括:数值型、货币型、字符型、日期型、日期时间型和逻辑型,一个变量的类型取决于它所存放的内容。
如:A=12,此时变量A就是数值型的。
3.变量的分类:内存变量(A)、数组(DIMENSION ss(3) 或DECLARE ss(3),数组
是在内存中开辟的多个连续的存储空间,刚刚定义好的数组,数组元素的默认值
是.F.)、字段变量(仓库.仓库号)。
4.对变量进行赋值:在程序中要使用变量之前必须赋初值,赋初值的方法有两种:
①A=12
②Store 12 to A,B,C && 对A,B,C三个变量同时赋值为12
5.变量的显示:①用?命令,如:?A && 显示变量A的值
②显示内存变量:LIST MEMORY LIKE A* &&显示所有字母A开头的内存变量
6.变量的删除:①CLEAR MEMORY
②RELEASE<内存变量名表>
2.2 表达式
1.定义:表达式是由常量、变量和函数通过特定的运算符连接起来的式子。
例如:A=12
A>2 AND …人‟>‟人民‟ OR INT(A/10)=0 && 当前行是一个表达式
2.表达式的类型:数值表达式、字符表达式、日期表达式和逻辑表达式,具体各种表
达式所用到的运算符号及运算规则请看书中(P56~P60)。
(1)数值表达式
数值表达式是由算术运算符将数值型数据连接起来形成的,其运算结果仍然是数值型数据,数值型数据可以是数值型常量或者变量。
算术运算符的含义和优先级如下:1.()2.**/^ 3.* 、/、% 4.+、-
(2)字符表达式
字符表达式是由字符串运算符与字符型数据连接起来形成的,其运算结果仍然是字符型数据。
字符串运算符有以下两个,它们的优先级相同。
●+:前后两个字符串首尾连接形成一个新的字符串。
●-:连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部。
(3)日期时间表达式
日期时间表达式中可以使用的运算符也有“+”和“一”两个。
日期时间表达式的格式有一定限制,不能任意组合。
不能用运算符“+”将两个日期连接起来。
合法的日期时间表达式格式如表
┏━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┓┃<日期>+<天数> ┃日期型。
指定日期若干天后的日期┃┣━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━┫┃<天数>+<日期> ┃日期型。
指定日期若干天后的日期┃┣━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━┫┃<日期> - <天数> ┃日期型。
指定日期若干天前的日期┃┣━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━┫┃<日期>-<日期> ┃数值型。
两个指定日期相差的天数┃
┣━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━┫┃<日期时间>+<秒数> ┃日期时间型。
指定日期时间若干秒后的日期时间┃┣━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━┫┃<秒数>+<日期时间> ┃日期时间型。
指定日期时间若干秒后的日期时间┃┣━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━┫┃<日期时间>-<秒数> ┃日期时间型。
指定日期时间若干秒前的日期时间┃┣━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━┫┃<日期时间>-<日期时间> ┃数值型。
两个指定日期时间相差的秒数┃┗━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━┛符号“+”和“-”既可以作为日期时间运算符,也可以作为算术运算符和字符串连接运算符。
到底作为哪种运算符使用,要根据它们所连接的运算对象的数据类型而定。
(4)关系表达式
关系表达式通常也称为简单逻辑表达式,它是由关系运算符将两个运算对象连接起来形成的,关系运算符的作用是比较两个表达式的大小或前后,其运算结果是逻辑型数据,它们的优先级相同。
< > = <> 、#、!= <= >= ==(字符精确比较)$(子串包含)注意:==和=的区别
1)== 左右字符串完全一致时,结果为逻辑真,其他均为逻辑假
2)= 跟set exact on/off的设置有关
ON在较短字符串尾部加上若干空格,使左右两个字符串长度相等,再进行精确比较。
OFF(默认设置)以右串为结束标志。
(5)逻辑表达式
逻辑表达式是由逻辑运算符将逻辑型数据连接起来形成的,其运算结果仍然是逻辑型数据。
逻辑运算符有三个:.NOT.或!(逻辑非)、.AND.(逻辑与)以及.OR.(逻辑或)。
也可以省略两端的点,其优先级顺序依次为NOT、AND、OR。
表达式中用到多种运算符时,要考虑运算符的优先级,由高到低为:算术运算符、字符串运算符、日期时间运算符、关系运算符、逻辑运算符。
2.3 常用函数
书中介绍了很多种函数,这里大家重点记住以下一些常用的函数:
1.数值函数:ABS、SQRT、SIGN、PI、INT、CEILING、FLOOR、MOD
2.字符函数:LEN、LOWER、UPPER、TRIM、LEFT、RIGHT、SUBSTR、OCCURS、
AT、STUFF、LIKE
3.日期和时间函数:DATE、TIME、YEAR、MONTH、DAY
4.数据类型转换函数:STR、V AL、DTOC、TTOC、&
5.测试函数:BETWEEN、ISNULL、EMPTY、V ARTYPE、EOF、BOF、RECNO、
RECCOUNT、IIF
2.4程序的使用
1.使用程序的步骤:创建程序文件—编写程序代码—保存—运行
2.交互式赋值语句:INPUT、ACCEPT、WAIT
INPUT[<字符表达式>] TO<内存变量>
ACCEPT[<字符表达式>] TO<内存变量>
WAIT [<字符表达式>] [WINDOW] [TIMEOUT <数值表达式>]
3.三种程序结构:顺序结构、选择结构、循环结构
4.选择结构:IF…ELSE…ENDIF;DO CASE … ENDCASE
(1)条件语句的语句格式:
IF<条件>
<语句序列1>
ELSE
<语句序列2>
ENDIF
(2)多分支语句的语句格式:
DO CASE
CASE <条件1>
<语句序列1>
CASE <条件2>
<语句序列2>
……
CASE <条件n>
<语句序列2>
[OTHERWISE
<语句序列>]
ENDCASE
5.循环结构:DO WHILE…ENDDO;FOR…ENDFOR/NEXT;SCAN…ENDSCAN
6.DO WHILE循环结构的组成:初始化(S=0、I=1)、条件(I<=100)、循环体(S=S+I 、
I=I+1)、循环控制变量(I)
例:S=0
I=1
DO WHILE I<=100
S=S+I
I=I+1
ENDDO
?S
7.LOOP和EXIT语句的区别:LOOP是终止本次循环,一旦循环过程中遇到该语句
会返回到DO WHILE <条件>这里判断条件是否成立,如果成立执行下次循环。
EXIT是跳出循环,一旦遇到该语句会立刻终止循环,而去执行ENDDO后面的语
句。
2.6 多模块程序设计
2.6.1 模块的定义和调用
1. 模块的定义
语法格式如下:
PROCEDURE <过程名> 例如:PROCEDURE p1 &&定义过程p1 <命令序列> ?”过程p1被调用”
ENDPROC ENDPROC
2. 模块的调用
格式1:DO <过程名> 例如:格式1:DO p1&&调用过程p1
格式2:<过程名>() 格式2:p1()
3. 参数传递(P84-P85)
模块程序可以接收调用程序传递过来的参数。
格式:PARAMETERS <形参变量1> [,<形参变量2>,…]
4.调用模块程序并传递参数的格式为:
格式1:DO <过程名> with <实参1>[,<实参2>,…]
格式2:<过程名>(<实参1>[,<实参2>],…)
5. 参数传递的两种形式:
(1)按值传递:把实参变量存放的值赋值给相应的形参变量。
(2)引用传递:实参和形参指向同一个变量。
以上两种传递方式的区别:
(1)按值传递:实参和形参指向两块不同的存储区域,只是这两块区域里存放数据的值相等,形参的改变,不会对实参产生任何影响。
(2)引用传递:实参和形参指向相同的存储区域,形参改变,实参也会跟着改变。
6. 格式1:DO <过程名> with <实参1>[,<实参2>,…]
(1)实参的传递形式不受其他任何语句设置的影响。
(2)只写实参变量名:引用传递
(3)实参变量名加括号:按值传递
例如:do p1 with x1,(x2) && x1引用传递,(x2)按值传递。
7. 格式2:<过程名>(<实参1>[,<实参2>],…)
(1)实参变量名加括号:按值传递,不受其他设置影响。
(2)只写实参变量名:默认状态下,按值传递。
当使用set udfparms to reference 时,会按照引用传递。
历年真题:0609(11)、0804(26)、0909(19)
2.6.3 变量的作用域
从作用域角度分,内存变量分为三类:全局变量、私有变量和局部变量。
1. 全局变量(公共变量):在任何模块中都可以使用。
通过命令public <内存变量表> 来建立。
例如:public x,y && x和y是全局变量,且他们初值均为.F.
在命令窗口中直接使用的变量也是全局变量。
2. 私有变量
在程序文件中直接使用(没有通过public和local声明)的变量是私有变量。
私有变量的作用域是建立它的模块及其下属的各层模块。
3. 局部变量:只能在建立它的模块中使用,不能在上层或下层模块中使用。
使用命令local <内存变量表> 来建立。
例如:LOCAL x1 && 建立局部变量x1,初值为.F.
4. PRIV ATE命令
格式:PRIVATE <内存变量表>
该命令并不建立内存变量,它的作用是隐藏上层模块中可能已经存在的内存变量,使得这些变量在当前模块及其下属模块中暂时无效。
历年真题:0903填(13)
二、对应题型:
程序这里考试的题型三种:1. 给出一个完整的程序,让我们判断程序执行后的结果。
2.给出一段程序代码,修改这段程序代码中的错误部分,修改之后使程序能够正常执行。
3.给出不完整的程序代码,让我们补完程序。
1.第六套中的二(1)题
第三章VF数据库及其操作
大纲要求
一、Visual FoxPro数据库及其建立。
数据库基本概念、建立数据库、使用数据库、修改数据库、删除数据库。
二、建立数据库表。
在数据库中建立表、字段名、字段类型和宽度、空值、字段有效性组框、修改表结构。
三、表的基本操作。
使用浏览器操作表、增加记录的命令、删除记录的命令、修改记录的命令、显示记录的命令、查询定位命令。
四、索引。
索引的基本概念(主索引、候选索引、惟一索引、普通索引)、在表设计器中建立索引(单项索引、复合字段索引)、用命令建立索引。
五、数据完整性。
实体完整性与主关键字、域完整性与约束规则、参照完整性与表之间的关联是重点。
六、自由表。
数据库表与自由表、将自由表添加到数据库、从数据库中移出表。
七、多个表的同时使用。
多工作区的概念、使用不同工作区的表、表之间的临时关联。
八、排序。
索引可以使用户按照某种顺序浏览或查找表中的记录,这时的顺序是逻辑的,是通过索引关键字实现的,物理排序的命令是SORT。
历年考点
(1) 建立数据库:在项目管理器“数据”选项卡中新建数据库、添加已有数据库;或者直接用新建按钮来建立数据库;命令方式create database。
(2) 打开数据库:open database
(3) 建立数据库表:在数据库中建立数据库表或把考生文件夹下已有的自由表添加到数据库中。
在表设计器中依次输入或选择字段、类型和宽度等,这些是建立表所需要的最基本内容。
(4) 字段的类型和宽度:
●字符型:C(宽度)宽度可从1设置到254
●数值型:N(宽度,小数位数)
●整型:I整型数据宽度固定为4位。
●日期型:D日期型宽度固定为8位。
●逻辑型:L逻辑型宽度固定为1位。
●备注型或通用型:存放在和表文件名同名,但扩展名是.fpt的文件中。
●空值:.NULL.在表设计器中将允许空值按钮选中,在记录输入空值时可使用ctrl+0。
(5) 对表的基本操作:
1)修改表结构:MODIFY STRUCTURE
2)浏览表:BROWSE
3)增加记录:VF中,APPEND或INSERT
SQL中,INSERT INTO表名values(各字段赋值)
4)逻辑删除记录:
●VF中,delete只删除当前记录,带条件的删除delete for<条件表达式>
●SQL中,delete from表名删除全部记录,带条件的删除delete from 表
名where <条件表达式>
5)物理删除:
●pack所有被逻辑删除的记录都会被彻底删除。
●ZAP所有记录会被彻底删除,表结构仍然保留。
6)修改记录:替换记录值,例如:将职工表中所有记录的工资字段的取值改为
1020
●VF中,replace all工资with 1020
●SQL中,update职工set 工资=1020
7)带条件的修改:例如:将职工表中所有女职工的工资改为1020。
●VF中,replace工资with 1020 for性别=”女”
●SQL中,update职工set工资=1020 where性别=”女”
8)显示记录:LIST /DISPLAY LIST和DISPLAY ALL等价。
有条件的显示LIST FOR<条件表达式>
9)查询定位命令:
●用GO命令:可直接定位。
●SKIP命令:确定了当前记录位置之后,可以用SKIP命令向前或向后移动
若干条记录位置。
●LOCATE命令:LOCATE是按条件定位记录位置的命令。
该命令执行后将
记录指针定位在满足条件的第一条记录上,如果没有满足条件的记录则指
针指向文件结束位置。
如果要使指针指向下一条满足LOCATE条件的记
录,可使用CONTINUE命令。
(6) 建立索引:
●为保证实体完整性建立主索引或候选索引;
●为实现数据库表之间的参照完整性在父表中建立主索引,而在子表中按相同的字段
建立普通索引。
●建立索引语句:Index on索引表达式tag 索引名[unique | candidate],该语句不能
建立主索引。
●建立复合字段索引:例如在选课表中以学号和课程号两个字段作为索引表达式:
Index on学号+课程号tag ttt &&索引名为ttt
(7) 域完整性设置:打开数据库设计器为表中某个字段设置有效性规则、出错提示信息和默认值。
(8) 参照完整性:
1)分别在要设置参照完整性的两个表中建立索引,具体建立方法见“建立索引”中的第2点;
2)建立两个表之间的永久联系,用鼠标从父表的主索引上拖拽到子表相同表达式的普通索引上;
3)在两个表之间的连线上,点击鼠标右键选择“编辑参照完整性”,在“数据库”菜单项中选择“清理数据库”后,打开“编辑参照完整性”对话框,按照题目要求进行设置。
4)参照完整性规则包括更新规则、删除规则和插入规则。
●更新规则规定了当更新父表中的连接字段值时,如何处理相关的子表中的记录。
如
果选择“级联”,则用新的连接字段值自动修改子表中的所有记录;如果选择“限
制”,若子表中有相关的记录,则禁止修改父表中的连接字段值;如果选择“忽略”,则不作参照完整性检查,可以随意更新父记录的连接字段值。
●删除规则当删除父表中的记录时,如果选择“级联”,则自动删除子表中的所有相
关记录:如果选择“限制”,若子表中有相关的记录,则禁止删除父表中的连接字
段值;如果选择“忽略”,则不作参照完整性检查,可以随意删除父记录的连接字
段值。
插入规则规定了当插入子表中的记录时,如果选择“限制”,若父表中没有相匹配的连接字段值则禁止插入子记录;如果选择“忽略”,则不作参照完整性检查,可
以随意插入子记录。
(9) 自由表:不属于任何数据库的表称为自由表。
自由表中只能建立候选索引、普通索引、惟一索引,不能建立主索引。
自由表中的实体完整性规则需要建立候选索引来实现。
自由表中不能进行字段有效性规则的设置。
(10) 多表同时使用:select n&& 选择工作区,VF中工作区号1~32767
每个工作区中最多能打开一张表。
Select 0&& 选择编号最小的尚未使用的工作区
Set relation to索引名into表名&&建立临时关联,实现记录指针联动。
第4章SQL语句
一、考点
1.SQL(结构化查询语言)的三大功能:查询功能(SELECT)、操纵功能(INSERT、UPDATE、DELETE)、定义功能(CREATE、DROP、ALTER)
2.SQL的查询功能:(如果编写SQL查询语句困难的话,这部分题目可使用查询设计器作答)
(1) 用到的短语:SELECT 字段名说明要查询的数据
FROM表名说明要查询的数据来自于哪个或哪些表
WHERE说明查询条件
GROUP BY对查询结果进行分组
HA VING跟在GROUP BY短语后,保留满足条件的分组
ORDER BY对查询结果进行排序
INTO CURSOR将查询结果保存到临时文件中
INTO TABLE/DBF将查询结果保存到表中
INTO ARRAY将查询结果保存到数组中
TO FILE将查询结果保存到文本文件中
(2) 四种基本查询语句:(简单、连接、嵌套、分组)
简单查询(SELECT短语和WHERE条件短语所用字段均来自于一张数据库表)
简单查询书写步骤:
1)打开要查询的数据库
2)根据题意先确定where条件表达式
3)再确定select要查询的字段
4)最后根据where和select中用到的字段确定from所使用的表名。
例:SELECT 职工号FROM 职工WHERE 工资>1230
连接查询(SELECT短语所用字段来自于多张数据库表,注意WHERE条件这里要写等值连接条件)
连接查询的书写步骤:
1)打开要查询的数据库。