VFP总复习要点第1页共84页1第1章数据库系统基础知识复习要点查询Ep36菜单Ep77表单ep61数据库系统(DatabaseSystem,简称DBS)是实现有组织地、动态地存储大量关联数据,方便用户访问的计算机软硬件资源组成的具有管理数据库功能的计算机系统。数据库是指以一定的组织形式存放在计算机存储介质上的相互关联的数据的集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可以供各种用户共享。数据库按数据模型可分为层次数据库、网状数据库、关系数据库和面向对象数据库等。数据库管理系统(DatabaseManagementSystem,简称DBMS)是用于建立、使用和维护数据库的系统软件。数据库系统结构的三级模式:外部层(单个用户的视图)、概念层(全体用户的公共视图)和内部层(存储视图)。数据库系统结构的分级对于提高数据独立性具有重要意义。数据模型(DataModel)是在数据库领域中定义数据及其操作的一种抽象表示。长期以来,广泛使用的概念模型当属“实体—联系”模型(Entity-RelationshipModel,简称E-R模型)。E-R模型中有3个基本的概念:实体、联系和属性。P8在E-R图中,用矩形框表示实体集,菱形框表示联系,椭圆形框表示属性。关系是以二维表结构来表示实体集及其实体间的联系。一个关系就是一张二维表,关系的首行称为“属性”(在关系数据库中称为“字段”),其他各行称为“元组”(在关系数据库中称为“记录”)。P9VFP总复习要点第2页共84页2关键字一张表中的一列或若干列能够把不同的记录区分开来,或者说能够唯一地确定记录。超关键字二维表中能唯一地确定记录的一个列或几个列的组被称为“超关键字”(Super,Key)。候选关键字如果一个超关键字去掉其中任何一个字段后不再能唯一地确定记录,则称它为“候选关键字”(CmldidateKey)。主关键字从二维表的候选关键字中,选出一个可作为“主关键字”(PrimaryKey)。对于表中的每个记录来说,主关键字必须包含一个不同于其他记录的唯一的值。这就意味着主关键字的值不能为空,否则主关键字就起不了唯一地标识记录的作用。外部关键字当一张二维表(如A表)的主关键字被包含到另一张二维表(如B表)中时,它就称为B表的“外部关键字”(ForeignKey)。关系模型用二维表表示实体集,通过外部关键字表示实体间联系的数据模型称为关系模型。它一般有三个组成部分:数据结构、数据操作和完整性规则。●数据结构数据库中所有数据及其相互联系都被组织成关系(即二维表)的形式。●数据操作提供一组完备的关系运算,以支持对数据库的各种操作。●完整性规则包括域完整性规则、实体完整性规则、参照完整性规则和用户定义的完整性规则等。关系数据库的完整性规则:在关系数据库中有域完整性、实体完整性以及参照完整性等。域完整性规定了属性的取值范围;实体完整性则要求任一元组的主关键字的值不得为空值并且必须在所属的关系中唯一;参照完整性则要求当一个元组的外部关键字的值不为空值时,以该外部关键VFP总复习要点第3页共84页3字的值作为主关键字的值的元组必须在相应的关系中存在。关系是一种规范化了的二维表,一般要求满足3NF,即3范式。关系的基本运算有两类:P10一类是传统的集合运算(并、差、交等),设有关系R和关系S,它们有相同的模式结构。并操作R∪S:结果生成一个新的关系,其元组由属于R的元组和属于S的元组共同组成:R∪S={t|t∈R∨t∈S}∧∩差操作R-S:结果生成一个新关系,其元组由属于R但不属于S的元组组成:交操作R∩S:结果生成一个新关系,其元组由既属于R又属于S的元组组成:R∩S={t|t∈R∧t∈S}另一类是专门的关系运算(选择、投影、联接)。选择(限制):在关系R中选择满足给定条件(逻辑表达式)的元组组成一个新关系。选择运算是对关系的水平分解,其结果是关系R的一个子集。投影:是对关系的垂直分解,它是在关系R中选择出若干个属性列组成新的关系。经过投影运算可以得到一个新关系,它包含的属性个数通常比原关系少,或者属性的排列顺序不同。联接:根据给定的联接条件将两个关系模式拼成一个新的关系。联接条件中将出现两个关系中的公共属性名,或有相同语义的属性。第二章VisualFoxPro数据库管理系统概述VFP总复习要点第4页共84页4复习要点P30本章的总体要求:熟悉VFP的数据类型、常用函数、能正确组成各种类型的表达式及正确掌握它们的运算结果。几个常用的命令。1.1.“*”和“&&”命令2.2.“?”和“??”命令3.3.CLEAR命令4.4.DIR命令5.5.MD/RD/CD命令6.SETCENTURYON|OFF7.SETDATE[TO]AMERICAN|ANSI|MDY|DMYIYMD|LONG8.SETDEFAULTTO[路径说明]扩展名文件类型扩展名文件类型扩展名文件类型.app生成的应用程序.frx报表.pjx项目.cdx复合索引.frt报表备注.pjt项目备注.dbc.dct数据库数据库备注.fxp.idx编译后的程序独立索引.prg.fxp程序编译后的程序.dcx数据库索引.lbx标签.qpr生成的查询程序.dbf表.lbt标签备注.qpx编译后的查询程序.fpt表备注.mem内存变量保存.scx表单.err编译错误.mnx菜单.sct表单备注.exe可执行程序.mnt菜单备注.tbx备注备份.fky宏.mpr生成的菜单程序.vcx可视类库.fmt格式文件.mpx编译后的菜单程序.vct可视类库备注数据类型P39VFP总复习要点第5页共84页5类型说明大小范围字符型任意文本每个字符为1字节,最多可有254个字符任意字符(字母、数字、空格、符号等)日期型包含日期的数据8字节01/01/1000~12/31/9999日期时间型包含日期和时间的数据8字节01/01/1000~12/31/9999,00:00:00a~11:59:59p数值型整数或小数在内存中占8字节;在表中占1—20字节-0.99999999E+19~0.999999999E+20逻辑型“真”或“假”的布尔值1字节“真”(.T.)或“假”(.F.)整型*整型值4字节—2147483647-2147483646备注型*数据块引用在表中占4字节只受可用内存空间限制通用型*OLE对象引用在表中占4字节只受可用内存空间限制名称命名规则:P41数据容器、自定义函数或过程等都需要一个名称,如变量名、数组名、表的字段名、过程名和对象的属性名等。●名称中只能包含字母、下划线“_”、数字符号和汉字符号。●名称的开头只能是字母、汉字或下划线,不能是数字。系统预定义了许多系统变量它们的名称均以下划线开头,因此用户在定义名称时应尽可能地避免使用以下划线开头的名称,并且表的字段名不允许以下划线开头。●除了自由表的字段名、表的索引标识名至多只能是10个字符外,其余的名称的长度可以是1-128个字符。●应避免使用系统保留字。变量的创建:P43用store或=号创建变量控制变量访问:用LOCAL指定局部变量:用LOCAL创建的变量或数组只能在创建它们的程序VFP总复习要点第6页共84页6中使用和修改,不能被更高层或更低层的程序访问,在它们所属的程序停止运行时,局部变量和数组将被释放。用PRIVATE指定私有变量:PRIVATE关键字将调用程序中定义的变量和数组在当前程序中隐藏起来,这样,用户便可在当前程序中重新使用和这些变量同名的变量,而不影响这些变量的原始值。一旦拥有这些变量的程序停止运行,所有被声明为私有的变量和数组均可重新被访问。用PUBLIC指定全局(公共)变量:PUBLIC关键字定义全局变量和全局数组。在当前工作期中,任何运行的程序都能使用和修改全局变量和全局数组。在“命令”窗口中创建的任何变量或数组被自动赋予全局属性。数组的声明及赋值:●使用DECLARE命令,定义的是“私有数组”。●使用DIMENSION命令,定义的是“私有数组”。●使用PUBLIC命令,定义的是“全局数组”。●使用LOCAL命令,定义的是“局部数组”。函数(P46):是一种预先编制好的程序代码,可供用户或程序调用。函数名([参数1[,参数2[,…]]])常用函数P47-P581.数值函数(4)INT()函数INT()函数的功能是计算一个数值表达式的值,并返回其整数部分。INT(nExpression)(5)MOD()函数*其功能与%(模)运算符相同MOD(N1,N2)【功能:返回N1除以N2后的模。N1,n2为数值类型而且n2不能为零。VFP总复习要点第7页共84页7当N1和N2均为正数或均为负数时,函数的值为二者相除后的余数,符号与n2的符号相同。当两个参数的符号相异时(即一正一负),函数的值为二者相除后的余数的绝对值与n2的绝对值之差,符号与n2的符号相同。】(6)ROUND()函数ROUND()函数的功能是返回圆整到指定小数位数的数值表达式的值,即从该位四舍五人。ROUND(nExpression,nDecimalPlaces)(8)RAND()函数RAND()函数的功能是返回一个0--1之间的随机数。其语法格式如下:RAND()2.字符函数(1)ALLTRIM()函数ALLTRIM()函数的功能是计算指定字符表达式的值,返回删除前后空格后的字符串。ALLTRIM(cExpression)(2)TRIM()函数TRIM()函数的功能是计算指定字符表达式的值,返回删除全部后缀空格后的字符串。TRIM(cExpression)(3)LEN()函数LEN()函数的功能是返回字符表达式的值中字符的数目。其语法格式如下:LEN(cExpression)(4)AT()函数AT()函数的功能是返回一个字符表达式或备注字段在另一个字符表达式VFP总复习要点第8页共84页8或备注字段中出现的位置(从最左边开始计数)。AT(cSearchExpression,cExpressionSearched[,nOccurrence])(5)SUBSTR()函数SUBSTR()函数的功能是从给定的字符表达式或备注字段中返回一个子字符串。SUBSTR(cExpression,nStartPosition[,nCharactersReturned])(6)LEFT()函数LEFT()函数的功能是从字符表达式最左边一个字符开始返回指定数目的字符。LEFT(cExpression,nExpression)(7)RIGHT()函数RIGHT()函数的功能是从字符表达式最右边一个字符开始返回指定数目的字符。RIGHT(cExpression,nExpression)(8)SPACE()函数SPACE()函数的功能是返回由指定数目的空格构成的字符串。其语法格式如下:SPACE(nExpression)3.日期/时间函数(1)DATE()函数DATE()函数的功能是返回由操作系统控制的当前系统日期。DATE()(2)DATETIME()函数DATETIME()函数的功能是返回当前的系统日期和时间。VFP总复习要点第9页共84页9DATETIME()(3)DOW()函数DOW()函数的功能是从日期表达式或日期时间表达式返回该日期是一周的第几天(第一天为星期日)。DOW(dExpression|tExpression)(4)DAY()函数DAY()函数的功能是以数值型返回给定日期表达式或日期时间表达式的值是某月中的第几天。DAY(dExpression|tExpression)(5)MONTH()函数MONTH()函数的功能是返回给定日期表达式或日期时间表达式的值中的月份值。MONTH(dExpression|tExpression)(6)YEAR()函数YEAR()函数的功能是从指定的日期表达式或日期时间表达式的值中返回年份。YEAR(dExpression|tExpression)(7)TIME()函数TIME()函数的功能是以24小时制