资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,商学院,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,管理学院,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Visual FoxPro 6.0,参考书目:,1.Visual FoxPro,应用基础,/,冯鉴生等编著,.-,广西师大出版,2002,1,2.Visual FoxPro,及其应用系统开发,/,史济民,汤观全编著,.-,北京,:,清华大学出版社,2000,1,第一章,数据库系统概述,数据与信息介绍,数据,:就是表示信息的物理符号,用于描述事物和传递、表示信息。,信息,:就是人与人之间传递的知识,是人们消化和理解了的数据,是对数据进行归纳、综合、比较、分类、联想或计算等一系列有效处理后的结果。,数据处理,:就是数据转换成信息的过程。,一、数据处理的演变:,1,、人工处理阶段,2,、文件系统阶段,3,、数据库系统阶段,人工管理阶段的特点:,1),数据不保存,2),没有专用的软件对数据进行管理,3),数据面向程序,不共享,4),数据不具有独立性,应用程序,1,数据集,1,应用程序,2,应用程序,n,数据集,2,数据集,n,一、数据处理的演变:,文件系统阶段的特点:,1),数据以“文件”形式可长期保存在外部存储器上,2),数据可由专门的软件(文件系统)进行管理。,3),数据共享性差,4),数据独立性低,应用程序,1,文件,1,应用程序,2,应用程序,n,文件,2,文件,n,存取,方式,一、数据处理的演变:,数据库系统阶段的特点:,1),采用数据模型来表示复杂的数据结构,2),数据的共享性好,冗余度低。,3),有较高的数据独立性,4),数据由数据库管理系统统一管理和控制,应用程序,1,应用程序,2,应用程序,n,数据库,管理系统,数据库,一、数据处理的演变:,二,、,数据库技术的基本概念,数据库:,就是长期储存在计算机内、按一定的结构和规则组织起来的相关数据的集合。按数据模型分,数据库可分为层次数据库、网状数据库和关系数据库。,数据库管理系统(,DBMS,),:,是用于建立、使用和维护数据库的软件。它对数据库进行统一的管理和控制,以保证数据的安全性、完整性、多用户对数据库的并发使用及发生故障后的数据库恢复。其功能包括数据定义、数据操纵(如查询、插入、删除、修改等)、数据库运行管理、数据库维护、数据的组织与存取等,。,数据库管理系统应具有以下一些功能:,1.,数据定义功能:用于描述数据库的结构。,2.,数据操作功能:用于对数据库中的数据进行查询、追加、插入、删除、修改、更新、统计、排序等操作。,3.,控制和管理功能:用于保障数据资源的安全。通常的措施包括对数据的备份、恢复和转储等功能,对用户的身份验证和用户权限控制,以及在多个用户同时操作数据库时进行并发控制等。,4.,数据字典:用于对数据库中数据的各种描述进行集中管理。数据字典中存放了系统中所有数据的定义和设置信息,例如:字段的属性,字段间的规律和记录间的规则,数据表之间的联系等。,数据库系统,数据库系统就是引入数据库技术的计算机系统。,1.,数据库系统的组成,计算机硬件平台、数据库集合、数据库管理系统、相关软件和人员,2.,数据库系统的特点,数据结构化、数据共享、数据独立性以及统一的数据控制功能,三、数据模型,数据库中的数据是按一定的逻辑结构存放的,这种逻辑结构通常是用数据模型来表示的。,概念结构,逻辑结构,物理结构,实体与实体之间的联系,实体:,是指客观存在并且相互区别的事物,即凡是可以互相区别而可以被人们识别的人、事、物、概念等统统可以抽象为实体。,实体的属性:,就是实体具有的若干特征。,实体的联系,:就是实体内部和实体之间的关系的抽象。,实体之间的联系分三种:,一对一联系,一对多联系,多对多联系,数据模型:是对现实世界数据特征的抽象,是用来抽象表示、处理现实世界的数据和信息的工具。在数据库中,数据模型是用于提供信息表示和操作手段的形式框架,也是将现实世界转换为数据世界的桥梁,任何一个数据库管理系统都是基于某种数据模型的。,数据模型的主要三种类型:,层次模型、网状模型、关系模型,根据数据模型的分类,数据库管理系统主要三种:,层次、网状、关系型数据库管理系统(,RDMS,),层次模型,层次模型:是使用树型结构表示各数据结点(实体)之间联系的模型。,层次模型的表示方法:数的结点表示实体集,结点之间的连线表示相连两实体之间的联系,反映的是一对一的或一对多的联系。,学院代号,学院名,负责人,学院,系号,系名,负责人,系,专业号,专业名,专业,系号,系名,负责人,教师,网状模型,网状模型:就是以记录类型为结点的网络结构表示实体类型及实体之间联系的数据模型,反映的是一种层次不清楚的一对一、一对多或多对多的联系。,教师,学生,课程,教师学生联系,教师课程联系,学生课程联系,字段,(fields),:,二维表的列,表示事物的属性,记录,(record),:二维表,的行,表示事物各属性或各事物之间的联系,也叫,元组,。,职工简况表,关系模型:就是用二维表格表示实体与实体之间的联系,即用若干行与若干列数据构成的表格来描述数据集合以及它们之间的联系,表现为一张二维表,职工工资表,职工号 基本工资,津贴 会费 公积金 水电费 应扣 实发,03021 860.50 150.00 8.60 26.00 76.80,02103 660.50 100.00 6.50 20.00 56.40,01001 760.50 120.00 7.60 23.00 60.00,02061 470.00 60.00 4.50 14.00 23.00,01045 650.50 100.00 6.50 20.00 54.00,04011 450.00 60.00 4.50 14.00 17.00,作为关系模型的数据集合应满足以下要求:,1.,表中不允许有重复的字段名,2.,表中每一列数据的类型必须相同,3.,表中不允许有内容完全相同的数据行,4.,表中行和列的次序可任意排列,不影响各数据项的关系,5.,表中任何一个属性(字段)都必须是不可再分的元素,四、关系数据库,关系数据库:就是按关系模型建立的数据库,关系数据库与层次型、网状型数据库的主要区别在于它描述数据的一致性。,关系术语:,关系:,一个关系就是一张符合一定条件的二维表格,每个关系都有一个关系名。,元组:,关系中的每一行称为一个元组,一个元组就是一条记录。,属性:,关系中的每一列称为属性,每个属性对应一个属性名和一组属性值。,域:,一个属性的取值范围,称为该属性的域。,关键字:,就是在一个关系中有一个或几个这样的属性或属性组合,其值可以唯一地标识一个元组。,主关键字与候选关键字:,如果一个关系中存在多个关键字,可以选定其中一个作为主关键字,其余为候选关键字。,外关键字:,如果关系中的某个属性或属性组合并非本关系的关键字,而是另一个关系的关键字,则称其为外部关键字。,关系模式:,是指一组被命名的相关属性的集合,是对关系的描述,一个关系模式对应一个关系结构。,关系特点:,1.,每个属性必须是不可分隔的数据单元,即表中不能再包含表。,2.,在同一个关系中不能出现相同的属性名。,3.,在一个关系中不允许有完全相同的元组。,4.,在一个关系中任意交换两行的位置不影响数据的实际含义。,5.,在一个关系中任意交换两列的位置不影响数据的实际含义。,规范化,第一范式的规则:,每列只包含一个值,所有行都要有相同数目的属性实例,每行都不一样。,Id,name,phone,1,Smith,5601234,5605678,2,Glucina,5601234,5607897,5606678,3,Doe,5602456,该表违反了第一范式的规则,因为在一列中保存了多个值,Id,name,phone1,phone2,phone3,phone4,1,Smith,5601234,5605678,2,Glucina,5601234,5607897,5606678,3,Doe,5602456,该表违反了第一范式的规则,因为该规则的第二条要求如果实体中有一个实体有,4,个电话号码,那么实体的所有实例都必须有,4,个电话号码,以上做法显然不满足。,Id(PK),name,1,Smith,2,Glucina,3,Doe,Id(PK),PHONE,1,5601234,1,5605678,2,5601234,2,5607897,2,5606678,3,5602456,要,解决这个问题最简单的方法是建立另一张表,其中,ID,和,PHONE,列为组合主键。这样增加电话号码时,只需在电话号码表中增加。,第二范式的规则:,满足第一范式的所有规则,所有非候选键的属性必须决定于候选键,只有表的主键包含多个列时才应用第二范式的规则。这个规则要求表中的所有列必须和键中的所有列对应,而不是只对应于其中的一列。,DRIVER,Driver_ID,NAME,Truck_Driver,Truck_ID,Driver_id,Drvers_license_no,Date_last_driven,Truck,Truck_ID,make,model,weight,Truck,表保存了该送货公司拥有的所有卡车的详细信息,,Driver,表保存了公司雇用的司机的信息。,Truck_driver,表保存了关于哪个司机能开哪辆卡车的信息。其中,Drvers_license_no,列,违反了第二范式的要求,因为它只部分依赖于主键即,Driver_id,列。而,Date_last_driven,满足了第二范式的要求,因为它同时依赖于司机和卡车。,DRIVER,Driver_ID,NAME,Drvers_license_no,Truck_Driver,Truck_ID,Driver_id,Date_last_driven,Truck,Truck_ID,make,model,weight,解决办法:需将,Drvers_license_no,列移动到,DRIVER,表。,第三范式的规则:,满足第一范式和第二范式的要求,所有非候选键的列依赖且只依赖于主键,它要求所有不构成主键的列必须是一个事实或者是对表的描述。,DRIVER,ID,NAME,City,State,Country,该表记录了客户所在地方的信息。第三范式要求所有的列必须是与主键有关的事实,而与非主键列无关。表中,Name,列和,city,列都依赖于,ID,但是,state,列则依赖于,city,列,而不是,ID,,,另外,country,列依赖于,state,,,也不是,id,。,因此这两列都违背了第三范式的要求。为了解决这个问题,需要创建另外的表来保存,city,、,state,、,country,的信息。,Customer,Emploee_id,NAME,City_id,city,City_id,City_name,State_id,state,State_id,State_name,Country_id,country,country_id,Country_name,关系运算:,从一个关系中访问所需的数据时,就需要对这个关系进行一定的关系运算。关系数据库支持的,3,种基本关系运算:,选择:,从一个关系中选取满足条件的记录,投影:,从一个关系中选取若干个属性组成新的关系,连接:,两个关系中的记录按一定的条件横向结合,拼接成一个新的关系,职工号 姓名 性别 职称 出生日期 婚否 基本工资 电话号码,01001,张虹 女 副教授,19580223 .T.760.50 88654230,03021,吴言 男 教授,19540412 .T.860.50 87635210,02103,朱呈 男 讲师,19680524 .T.660.50 88236711,02061,田添 女 助教,19761212 .F.470.00 88248243,01045,刘柳 女 讲师,19680621 .T.650.50 89546733,04011,林临 男 助教,19770722 .F.450.00 88344411,投 影,选 择,连接:,职工号 姓名 性别 职称 出生日期 婚否 基本工资 电话号码 津贴 会费 公积金 水电费 应扣 实发,01001,张虹 女 副教授,19580223 .T.760.50 88654230 120.00 7.60 23.00 60.00,03021,吴言 男 教授,19540412 .T.860.50 87635210 150.00 8.60 26.00 76.80,关系运算综合举例,:,基本工资介于,400500,元之间的职工的职工号、姓名和津贴,职工工资表,职工号 基本工资 津贴 会费 公积金 水电费 应扣 实发,03021 860.50 150.00 8.60 26.00 76.80,02103 660.50 100.00 6.50 20.00 56.40,01001 760.50 120.00 7.60 23.00 60.00,02061 470.00 60.00 4.50 14.00 23.00,01045 650.50 100.00 6.50 20.00 54.00,04011 450.00 60.00 4.50 14.00 17.00,职工简况表,职工号 姓名 性别 职称 出生日期 婚否 基本工资 电话号码,01001,张虹 女 副教授,19580223 .T.760.50 88654230,03021,吴言 男 教授,19540412 .T.860.50 87635210,02103,朱呈 男 讲师,19680524 .T.660.50 88236711,02061,田添 女 助教,19761212 .F.470.00 88248243,01045,刘柳 女 讲师,19680621 .T.650.50 89546733,04011,林临 男 助教,19770722 .F.450.00 88344411,职工号 姓名 津贴,02061,田添,60,04011,林临,60,关系模型的完整性规则,实体完整性,实体完整性用来确保关系中的每个元组都是唯一的,即关系中不允许有重复的元组。为了保证实体完整性,关系模型以主关键字或候选关键字作为唯一的标识,作为主关键字或候选关键字的属性不能取空值和重复值。,参照完整性,参照完整性是指两个相关联的关系(数据表)中的相关数据是否对应一致。其作用是当插入、修改或删除一个表中的数据时,通过参照引用相关联的另一个表中的数据,来检查数据操作的正确性和合法性。,域完整性,域完整性是指关系中的属性值必须满足某种特定的数据类型和约束规则,即限定某个属性的取值类型和取值范围。域完整性主要包括属性的有效性约束和元组的有效性约束两个方面。,关系完整性规则是对关系的约束,是保证关系中数据正确性的重要手段。关系模型提供了三类完整性规则:实体完整性规则、参照完整性规则、域完整性规则。其中前两个规则是关系模型必须满足的完整性的约束条件,称为关系的两个不变性。,第二章,Visual FoxPro 6.0,简介,VFP,关系数据库的进化,时间,20,世纪,80,年代初期,80,年代中期,90,年代中期,进化阶段,90,年代初期,dBASE,FoxBASE,FoxPro,Visual FoxPro,Visual FoxPro 6.0,的主要特点,1,强大的查询与管理功能,2,引入数据库表的新概念,3,扩大了对,SQL,语言的支持,4,大量使用可视化的界面操作工具,5,支持面向对象的程序设计(,OOP,)次开发,6,通过,OLE,实现系统集成,7,支持网络应用,Visual FoxPro 6.0,的主要技术指标,记录数,/,每个,1,字节记录表 ,10,亿 默认内存变量个数,1024,字节数,/,每个表 ,20,亿 最大内存变量个数,65000,字符数,/,每个记录 ,64000,字段数据类型,13,种,字段数,/,每个记录 ,255,主要有:,C N L D M G 6,种,字符数,/,每个字段 ,254,内存变量数据类型,6,种,可表示的最大数(绝对值),4.94110,324,主要有:,C N L D 4,种,可表示的最小数(绝对值),4.94110,-324,备注字段指针长度,10,数值型数据的最大宽度,20,位 备注字段内容长度 ,64K,字符串长度 ,254,索引关键字表达式长度,100,命令行长度 ,8192,报表标题长度 ,254,文件名长度 与,Windows,的文件名相同 文件类型,24,种,字段名长度 ,10,个字符 可以利用的工作区数,32767,内存变量名长度 ,254,个字符,VFP,的启动、退出、用户界面与操作,P16,一、,VFP,的启动与退出,退出命令:,quit,二、,VFP,的用户界面与操作,1,、窗口组成,菜单栏 工具栏,窗口,工作区 命令窗口 状态栏,2,、基本操作,三、,VFP,的两种操作方式,1,、交互操作方式:,命令执行方式、菜单选择方式,2,、程序执行方式,四、辅助设计工具:向导、设计器、生成器,2.3 Visual FoxPro,的环境设置,P18,一、“选项”对话框的使用,1.”,选项”对话框的使用,2.,设置日期和时间格式,3.,设置默认工作目录,二、,SET,命令的使用,P21,2.4,项目管理器,项目管理器用于组织和管理项目中的文件,即建立、修改、查看这些文件,可作为应用系统的控制中心,具有运行和连编等功能。项目是文件、数据、文档及,VFP,对象的集合,项目文件以,.,pjx,扩展名保存。,2.5 VFP6,的文件类型,.PJX .,pjt,项目文件、项目备注文件,.DBF,表文件,.FPT,表备注文件,.IDX,单索引、压缩索引,.CDX,复合索引文件,.DBC,数据库文件,.MEM,内存变量文件,.PRG,程序文件,.FXP,编译后的程序文件,.TXT,文本文件,.,scx,.,sct,表单文件、表单备注文件,.,lbx,.,lbt,标签文件、标签备注文件,.,vcx,.,vct,可视类库文件、可视类库备注文件,.,mnx,.,mnt,.,mpr,菜单、菜单备注、菜单程序文件,.app .exe,应用程序文件、可执行程序文件,P24,表2-6,第三章 数据与数据运算,主要的数据类型有:,代号,名称,长度,说 明,举 例,N,数值,型,20,存放一个整数或实数,工资、学时,C,字符,型,254,存放一串字符或汉字,姓名、职称,D,日期,型,8,存放一个日期,出生日期,L,逻辑,型,1,存放一个逻辑值,婚否,M,备注,型,4,存放大量字符或汉字,简历、摘要,G,通用,型,4,存放声音、图像等,照片、商标,还有:货币型(,Y,),,日期时间型(,T,),,长度固定为,8,位,3.1,常量与变量,3.1.1,常量,常量:在操作过程中其值不变的数据。,字符型,C,“”,三种定界符,数值型,N,整数 实数,(不能用分数),逻辑型,L,.T.t.,.Y.y.,(True,真值,),.F.,.f.,.N.n.,(False,假值,),如:,“,1234,”,Good bye,“,中国人民,”,It,s a book.,所谓的,真实,如:,100,0.2,1.123e-2,均合法,10%,1/2,不合法,日期型,D ,定界符,yyyy-mm-dd,、,yyyy/mm/dd,表示,严格的日期格式,例:,2001/02/03,无论当前系统的日期格式如何设置,此日期均为,2001,年,2,月,3,日。(或无,则因系统的日期格式设置不同而异),日期数据格式设置(,P28,),工具,选项,区域,在,日期格式,下拉列表框中选择日期格式,或,用命令,SET DATE ANSI,|,MDY,yyyy-mm-dd,mm-,dd-yyyy,日期时间型,T,例:,2004-02-09,10:25:55p,货币型,Y,在数值前添加一个货币符号(,$,),是一种特殊的数值常量。如:,$100,3.1.1,变量,变量,:,在运行过程中值发生变化的数据,.,变量可以用字母、汉字、数字或下划线及它们的组合为它们的组合为其命名,变量名中的字母不区分大小写。变量名必须以字母或汉字开头,一般情况下最多不能超过,10,个字母。,按存储方式的不同,变量分成二类:,1,、字段变量,在创建数据表时所定义的一个字段就对应一个字段变量,数据表中的字段名即为字段变量名。字段变量,是一个多值变量。常用的数据类型有:,C,、,N,、,Y,、,D,、,T,、,L,、,M,、,G,等。,2,、内存变量,独立于表,在命令窗口或程序中定义,用来存放数据处理过程中的一些有关数据。常用的数据类型有:,C,、,N,、,Y,、,D,、,T,、,L,等。,内存变量,1,、内存变量的创建与赋值,格式,1,:,STOR,e,TO,允许把同一表达式的值赋给用逗号分隔的多个变量,格式,2,:,=,给一个变量赋值,表达式的值决定了内存变量的数据类型,例,3-1,STORE 15 TO A,B,C,姓名,=,韩豪,工资,=300.5,STORE,工资,+15 TO,工资,?姓名,工资,,A,,,B,,,C,主窗口显示:,韩豪,315.5 15,15,15,2,、内存变量的保存与恢复,内存变量的保存:,将内存变量保存到一个扩展名为,.MEM,的内存变量文件中。,格式:,save to all like|all except,注:此处,是一个可包括,通,配符“?”,(,可代表任一字符,),或“”,(,可代表任意个字符,),的标识符。,like,表示“形如”,except,表示“除,之外”,all,表示当前级别能见到的全部内存变量,内存变量的恢复,:,将保存在内存变量文件中的变量恢复到当前内存中。,格式:,restore from,additive,说明:缺省,additive,参数时,调入的内存变量将覆盖当前内存的内存变量。否则会附加到原有内存变量之后。,3,、内存变量的显示,?,换行后输出,?,直接输出,LIST,MEMOry,LIKE,DISPlay,MEMOry,LIKE,说明:,LIST,MEMOry,命令为一次性不分屏显示所有指定的内存变量;而,DISPlay,MEMOry,命令为分屏显示所有指定的内存变量,显示满一屏后暂停,按任意键继续显示。,注:此处,是一个可包括,通,配符“?”,(,可代表任一字符,),或“”,(,可代表任意个字符,),的标识符。,4,、,内存变量的清除(释放),release,release all like|except,clear memory,或,clear all,5,、,有关内存变量的几点说明,内存变量允许和字段变量同名,数组也是一种内存变量,内存变量根据其作用域的不同,可分为全局变量、私有变量和局部变量。,系统变量,由,VFP,提供,它们都以下划线开头,分别用于控制外部设备、屏幕输出格式或处理有关计算器、日历、剪贴板等方面的信息。,3.2,运算符与,表达式,表达式:将常量、变量(包括字段变量与内存变量)、函数等数据用运算符按一定规则连接起来的一个有意义的式子。,表达式经过运算,将得到一个具体的结果,根据该结果的值的数据类型来划分,可将各种表达式分为数值表达式、字符表达式、日期表达式和逻辑表达式。,一般情况下,表达式中的各个数据应具有同一数据类型。当数据类型不匹配时,系统将弹出警告消息框。,3.2.1,、数值表达式(,P32,),优先级,运算符,1,(高),(),2,或*,3,*、,/,、,%,4,(低),+,、,-,数值表达式:是由算术运算符将各类数值型数据连接而成的,其运算结果为一个常数。,运算符:,(),(,或*,)*/%+-,算术运算符的优先级如下:,3.2.2,、字符表达式,字符表达式是由字符运算符把各类,C,型数据连接起来,而成的,其运算结果为一个字符串。,运算符:,+-,(连接),表示两字符串完全连接,如:“,abc,“+”de”,结果为:“,abc,de”,-,表示两字符串相连,将前一字符串的尾部空格移至结果字符串尾部,如,“,abc,”-“de”,结果为:“,abcde,“,3.2.3,、日期表达式(,p34,),日期表达式是运算结果为某个具体日期的式子。,运算符:,+-,-,结果为数值型,(,相差天数,),如:,2003/9/16-2003/9/10,结果为,6,。,数值,结果为日期型,(,日期后或前,N,天的日期,),数值,结果为日期时间型,(,时间后或前,N,秒数,),3.2.4,、逻辑表达式(,p34,),逻辑表达式是运算结果为逻辑真值,.T.,或逻辑假值,.F.,的式子,常在各种命令中充当“条件”。,1,、关系运算符,运算符:,=(!=,#)=,$=,P35,,表,3,2,,关系运算符及说明,说明:,日期与日期比较时,老的日期比新的日期要小,关系运算符只能在两个,N,型数据、两个,C,型数据或两个,D,型数据之间进行,两个,C,型数据是通过自左向右逐个比较其字符的排列顺序来决定其大小的,排列在前者为小,排列在后者为大。,Visual FoxPro,规定了“,Machine”,、“,PinYin,”,、“,Stroke”3,种字符排列顺序。,$,、,=,只适用于字符型数据比较,$,当左边是右边的子,(,字符,),串时,值为,.T.,否则为,.F.,=,精确比较,必须当两个字符包含的所有字符与顺序都完全相同时,值才为,.T.,否则为,.F.,例如,:A1=ASDF ,A2=ASDF,则,:,表达式,A1$A2,表达式,A2$A1,表达式,A1=A2,表达式,A1=A2,注,:,表达式,A2=A1,值为,.F.,值为,.T.,值为,.T.,值为,.F.,值为,.F.,说明:可用,set exact on/OFF,对,=,设置是否精确比较,当处于系统默认的,set exact off,状态时,比较时以右字符串为准,当右边字符串比较结束就终止比较。,当设置为,set exact on,状态时,则先在较短字符串的未必增加空格,使两个字符串长度相同后再比较。,该设置对,=,无效,运算符:,NOT,(,!,),AND OR,真值表:,A B,NOT,A A,AND,B A,OR,B,.F.F.T.F.F.,.F.T.T.F.T.,.T.F.F.F.T.,.T.T.F.T.T.,运算优先级由高到低:,not and or,运算优先级别 由高到低:(举例,1,,举例,2,),(),算术运算,字符运算,日期运算,关系运算,逻辑运算,2,、逻辑运算式,注:逻辑运算符的操作数类型只能是逻辑型,.,逻辑运算符的前后应加圆点(小数点)或空格与其他内容分开,3.2.5,、表达式输出命令(,p38,),格式,1,:?,功能:计算,中各表达式的值,并在屏幕的下一行开始输出其计算结果。,格式,2,:?,功能:计算,中各表达式的值,并从当前屏幕光标所在的行列位置开始输出其计算结果。,说明,:以上两条命令中的都可以是一个或多个相同类型或不同类型的表达式,若为多个表达式时,各表达式间需要用,逗号分隔,。此外,对于“?”命令,若缺省,,则将输出一个空行。,表达式运算举例,:,例,1,:计算下面表达式的值,12*4+5223%5 and not,abb,$,ddabbb,例,2,:执行如下命令组,写出运算结果,X=15,Y=10,Z=20,?X+y/Zy and 100=z*2,参考答案:均为,.f.,3.3,常用函数,(P39),1,数学运算函数,SQRT(N)INT(N)ROUND(N1,n2)MOD(n1,n2),2,字符处理函数,SUBSTR(C,n1,n2)LEN(C)SPACE(N),AT(c1,c2),TRIM(c)LTRIM(C)RTRIM(C)ALLTRIM(C),3,日期与时间函数,DATE()YEAR(D)MONTH(D)DAY(D),4,类型转换函数,STR(N1,n2,n3)VAL(C),CTOD(C)DTOC(D),5,宏替换函数(,&),6,测试函数,TYPE(,“,E,”,)FILE(,文件名,),函数括号内的,N,、,D,、,C,表示自变量的数据类型,,E,为,“,表达式,”,3.4 VFP,的,命令格式,P47,3.4.1,命令结构,VFP,命令,一般都由两部分组成:前面是一个命令动词,表示应执行的某种特定操作;后面是若干个命令短语,用来对所执行的操作做进一步的说明。,FOR,WHILe,FIELds,范围,短语,(,字句,),(,用来限定该命令处理的数据表记录范围),ALL,所有记录,NEXT,n,从当前记录起连续,n,个记录,(,包括当前记录),RECOrd,i,记录号为,i,的记录,REST,从当前记录到表文件末尾(包括当前记录),条件短语 (用来限制仅对符合指定条件的记录进行操作。,FOR,|,WHILE,(,用,FOR,与用,WHILE,有何不同?,),注:条件由关系表达式或逻辑表达式构成,FIEL,ds,(或,),(用来限制仅对指定的若干个字段进行操作),说明,1,:同时缺省范围和条件子句时,记录的范围由命令本身所决定;,例如,:,同为显示命令的,list,则显示,all,,而,display,,,则显示,next 1,2,:,有,for,子句而缺省范围子句时,默认范围为,all,;,3,:,缺省,fields,字段时,一般指所有字段;,命令书写规则,命令动词与字句、字句与字句、字句内的各部分间必须用空格隔开,各字句的次序允许任意排列。,保留字、函数名可以简写为前,4,个字符,英文大小写等效。,一条命令的长度可达,8192,个字符。一行写不下时可在行尾加分号(,;,)作继行符,换行后继续书写;,除汉字文字外,,命令中的所有符号应使用半角符号,不能使用中文标点符号,;,第四章 数据表基本操作,本章,主要学习表的创建维护,通过本章的学习,能够熟练地进行表结构的建立、修改、表数据的输入、修改、删除等操作;理解索引的概念和分类,掌握索引的运用。,4.1,数据表的建立,例:建立一个自由表,职工简况表如下:,职工号 姓名 性别 职称 出生日期 婚否 基本工资 电话号码,01001,张虹 女 副教授,19580223 .T.760.50 88654230,03021,吴言 男 教授,19540412 .T.860.50 87635210,02103,朱呈 男 讲师,19680524 .T.660.50 88236711,02061,田添 女 助教,19761212 .F.470.00 88248243,01045,刘柳 女 讲师,19680621 .T.650.50 89546733,04011,林临 男 助教,19770722 .F.450.00 88344411,表的分类:,数据库表、自由表,两步,走:,1,、建立表结构,2,、输入表数据(记录),职工简况表,职工号 姓名 性别 职称 出生日期 婚否 基本工资 电话号码,01001,张虹 女 副教授,19580223 .T.760.50 88654230,03021,吴言 男 教授,19540412 .T.860.50 87635210,02103,朱呈 男 讲师,19680524 .T.660.50 88236711,02061,田添 女 助教,19761212 .F.470.00 88248243,01045,刘柳 女 讲师,19680621 .T.650.50 89546733,04011,林临 男 助教,19770722 .F.450.00 88344411,8,字符型,电话号码,7.2,数值型,基本工资,1,逻辑型,婚,否,8,日期型,出生日期,10,字符型,职称,2,字符型,性别,8,字符型,姓名,5,字符型,职工号,宽度,类型,字段名,职 工 简 况 表 结 构,例:建立一个自由表(,Table,),4.1.1,表结构的建立,表结构的建立,1.,菜单方式建立表的结构,文件,新建,表、新建文件,输入表名、保存,弹出表设计器框,创建 职工表,(,zgda.dbf,),编号,C7,姓名,C8,性别,C2,出生日期,D,年龄,N2.0,职称,C10,基本工资,N7.2,婚否,L,利用,表设计器,可以方便的进行表结构的创建与修改。,表设计器的相关说明:,P53,1,、,字段名命令规则:,库表字段名长度不能超过,128,位,自由表字段名长度不超过,10,位,由汉字或英文字母开头,由英文字母、汉字、数字、下划线组成。,2,、字段类型:,共,13,种,主要有,C,、,N,、,D,、,L,、,M,、,G,3,、,字段宽度,:整个记录的宽度由所有字段的宽度总和加,1,4,、索引:,对表中的记录数据按某个字段值的大小进行逻辑排序。(在第,3,节详细讲解),5,、,.Null.,:,空值,表示无明确的值。既不是数值,0,,也不是空字符或空格。,表结构的修改,表设计器的使用:,显示表设计器,注意:只能修改,当前打开,的表的结构。,要求掌握:,字段,的插入与删除,字段顺序的交换,例:在职工简况表(,zgda.dbf,),中插入两个字段:备注,M,、,照片,G,说明:,1,、如果在一个表结构中有备注或者通用字段,系统将自动产生一个同名的,.,fpt,文件,(,表的备注文件,),,用以存放备注或通用字段的值。,2,、如果要修改表结构的内容,表必须以独占方式打开,否则只能查看表结构,而不能修改。,4.1.2,数据(表记录)的输入,1,、直接方式:,在建好表结构且关闭表设计器后,在弹出“现在输入数据记录吗?”对话框后,回答“是”,则进入数据输入。,2,、追加方式,在表浏览状态下有两种方式:,连续追加记录:显示,追加方式,追加一条记录:表,追加新记录,注:,输入结束,,按,Ctrl+W,或,单击,窗口的,关闭按钮,存盘返回到,命令,窗口(若放弃操作则可按,Esc,或,Ctrl+Q,不存盘返回),数据输入时的注意事项:,1,、字符型的数据在输入时不能加定界符;,2,、日期型:要注意系统日期格式的设置,输入时要与其相一致,否则会因“无效日期”的错误而无法继续输入。(如果不习惯该日期格式可参照,P19,的方法进行设置),备注字段值的输入、编辑,等,方式,1,:,在浏览窗口中:双击欲编辑的备注字段,在弹出的窗口中进行编辑。,方式,2,:,命令:,MODI MEMO,功能:编辑当前记录的备注字段,注意:,当备注型字段有值时,浏览状态下,该字段显示的值为“,Meno,”,,,否则为“,meno,”,,,后面学到的通用字段类型也有类似的情况(,Gen,或,gen,)。,通用字段值的输入、编辑等,方式,1,:在浏览窗口中,双击欲编辑的通用字段后,执行菜单:,编辑,插入对象,方式,2,:,命令:,MODI,GENE,ral,功能:编辑当前记录的通用字段,如何删除通用字段的值?,双击需删除的字段后,显示,清除,链接:,数据存储在源文件中,即当源文件更新时,表中数据自动更新,嵌入:,将数据存储到表中,即当源文件更新时,不影响表中数据,链接,/,嵌入复选 框,链接,/,嵌入说明,插图:链接与嵌入,如果选择“新建”,那么新数据会以链接还是嵌入的方式进行存储呢?,答案:只能是嵌入。,4.1.3,表数据的浏览与维护,P56,表的打开方法:,文件,打开,文件类型:表,.,表打开的方式:,以只读方式打开,(R),、,环境,(M),、,独占,(Exclusive),(,另外,还有共享(,Shared,),的打开方式),说明:如何需要对一个表的结构或记录进行修改,必须以独占的方式打开,否则只能浏览,不能修改。,数据表(表记录)的查看,1,、,浏览窗口的操作,显示,浏览(等同于命令,BROWse,),2,、两种记录显示方式,浏览方式,(,横向显示,一个记录一行,),编辑方式,(,纵向显示,),3,、一窗两区,窗口分割器(浏览窗口左下角黑色小方块),活动分区,链接与解除链接(表,链接分区),数据表(
展开阅读全文