Visual FoxPro程序设计实用教程_第1页
Visual FoxPro程序设计实用教程_第2页
Visual FoxPro程序设计实用教程_第3页
Visual FoxPro程序设计实用教程_第4页
Visual FoxPro程序设计实用教程_第5页
已阅读5页,还剩184页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

E-Mail:yangliu4575@VisualFoxPro程序设计实用教程第1章VisualFoxPro基础第2章数据与数据运算第3章数据库操作第4章查询与视图第5章程序设计基础第6章面向对象程序设计第7章表单第8章报表第9章菜单第10章项目与项目管理器第11章管理系统开发实例目录★数据库基础★关系数据库★VisualFoxPro基础★VFP可视化设计工具★学生管理应用系统实例★上机实战第1章VisualFoxPro基础★本章小结返回1.1数据库基础返回1.数据处理(1)数据数据是数据库存储的基本对象。按通常的理解,数据只表现为数字形式,这是一种传统和狭义的理解。广义的理解是,数字只是数据的一种表现形式,在计算机中可表示的种类很多,文字、图形、图像、声音等都可以数字化,所以都是数据。(2)信息信息是现实世界中的各种事物、事物的特征及其联系等在人脑中的反映,是经过处理、加工提炼并用于决策制定或其他应用活动的数据。对信息可以从两方面来理解,一方面信息是数据的内涵;另一方面信息是经过处理的数据。数据和信息是两个既有联系又有区别的概念,数据是信息的载体,信息是数据的内涵。同一信息可以有不同的数据表现形式,而同一数据也可以有不同的信息解释。1.1数据库基础返回(3)数据处理由于客观世界的事物都是普遍联系的,因此从已有的数据出发,根据事物之间的联系,经过一定的处理步骤,就可以产生新的数据。这些新的数据又可以表示新的信息,通常用作决策的依据,这种从已知原始的或杂乱无章的数据中推导出对人们有用的数据或信息的过程称为数据处理。(4)数据管理数据管理是指数据的收集、整理、组织、存储、查询和传送等各种操作,是数据处理的基本环节,是任何数据处理任务的共性部分。数据库技术就是一种数据管理技术。1.1数据库基础返回数据管理技术的发展经历了人工管理阶段、文件管理阶段和数据库管理阶段。(1)人工管理阶段(20世纪50年代中期以前)计算机发展的初期主要应用于科学计算,这一阶段计算机的软、硬件的发展也处于初级阶段,计算机的硬件上只有磁带、卡片、纸带,没有磁盘等直接存取的存储设备;软件上没有操作系统实现对计算机数据的统一管理和调度,数据是由程序员自行设计,交给应用程序进行管理。(2)文件管理阶段(20世纪50年代后期至60年代中期)随着软、硬件技术的发展,计算机不仅用于科学计算,还用于信息管理。这时硬件方面已有了磁盘、磁鼓等直接存取存储设备。软件方面出现了高级语言和操作系统。数据处理有批处理方式,也有联机实时处理方式。(3)数据库管理阶段(20世纪60年代末以后)这一阶段,计算机用于管理的规模越来越大,数据量急剧增加,对数据管理技术提出了更高要求。此时开始提出计算机网络系统和分布式系统的概念,出现了大容量的磁盘,以文件系统为数据管理手段已不能再胜任多用户、多应用共享数据的需求,一个新的数据管理技术──数据库管理系统(DBMS)应运而生,它标志着数据管理技术的飞跃。1.1数据库基础返回2.数据库系统数据库系统是以数据为中心的计算机系统,主要应用于大量数据的管理,例如商场、银行、事业单位的行政管理等。作为计算机系统,数据库系统是由软件、硬件和从事数据库系统管理的人员组成。

DBMS的主要功能如下:①定义功能。②数据操作功能。③数据库的运行管理。④数据库的建立和维护功能。

数据库管理员(DBA):DBA是数据资源管理机构的一组成员。总的来说,负责全面地管理和控制数据库。具体职责包括:决定数据库的信息内容和结构;决定数据库的存储结构和存取策略;定义数据的安全性要求和完整性的约束条件;监督和控制数据库的使用和运行;数据库的改进和重组。1.1数据库基础返回3.数据模型的相关概念(1)实体实体是客观世界中存在的且可以相互区分的事物。实体可以是人也可以是物;可以是具体事物,如,学生王、教师张、数学课,也可以是抽象的事件,如教师张讲授了哪门课程,读者的一次借阅活动等。(2)属性属性是实体或联系所具有的性质。通常一个实体由若干个属性来描述。如学生实体可以描述为:学生(学号、姓名、性别、出生日期、专业、简历)。属性是个变量,属性值是变量所取的值,而域是变量的取值范围。(3)联系客观世界中的事物彼此间往往是有联系的。例如,教师与课程间存在“教”的联系,而学生与课程间则存在“学”的联系。联系可分为三类:①一对一联系(1∶1)②一对多联系(1∶N)③多对多联系(M∶N)1.2关系数据库返回关系模型(1)关系:一个关系的逻辑结构就是一张二维表。(2)元组:在一个二维表(一个具体关系)中,水平方向的行称为元组,每一行是一个元组。元组对应存储文件中的一个具体记录。(3)属性:二维表中垂直方向的列称为属性,每一列有一个属性名,与前面讲的实体属性相同,在VisualFoxPro中表示为字段名。每个字段的数据类型、宽度等在创建表的结构时规定。(4)域:属性的取值范围,即不同元组对同一属性的取值所限定的范围。(5)关键字:属性或属性的组合,其值能够惟一地标识一个元组。在VisualFoxPro中,可以起到惟一标识一个元组作用的关键字称为候选关键字,从候选关键字中选择一组作为主关键字。(6)外部关键字:如果表中的一个字段不是本表的主关键字或候选关键字,而是另外一个表的主关键字或候选关键字,这个字段(属性)就称为外部关键字。

1.2关系数据库返回关系的性质(1)关系必须规范化。所谓规范化是指关系模型中的每一个关系模型都必须满足一定的要求。最基本的要求是每个属性必须是不可分割的数据单元,即表中不能再包含表。(2)在同一关系中不能出现相同的属性名,VisualFoxPro不允许同一个表中有相同的字段名。(3)关系中不允许有完全相同的元组,即冗余。(4)在同一关系中元组的次序无关紧要。也就是说,任意交换两行的位置并不影响数据的实际含义。(5)在同一关系中列的次序无关紧要。任意交换两列的位置也不影响数据的实际含义。1.2关系数据库返回2.关系运算

关系关系是由元组组成的集合,可以通过对关系的运算来检索满足条件的数据。关系的基本运算分两类:一类是传统的集合运算;另一类是专门的运算。传统的集合运算:(1)并:两个相同结构关系的并是由属于这两个关系的所有元组共同组成的集合。(2)交:两个具有相同结构的关系R和S,它们的交是由既属于R又属于S的元组组成的集合。交运算的结果是由R和S的共同拥有的元组组成。

(3)差:设有两个相同结构的关系R和S,R差S的结果是由属于R但不属于S的元组组成的集合,即差的运算结果是从R中去掉S中相同的元组。专门的关系运算:(1)选择:从关系中找出满足给定条件的元组的操作称为选择。(2)投影:从关系模式中指定若干个属性组成新的关系称为投影。(3)联接:联接是关系的横向结合。联接运算将两个关系模式连接成一个更大的关系模式,生成的新关系中包含满足联接条件的元组。1.3VisualFoxPro基础返回1.VisualFoxPro发展

1995年微软公司推出了VisualFoxPro3.0版,VisualFoxPro3.0是一个可运行于Windows3.x、Windows95和WindowsNT环境的数据库开发系统。与FoxPro2.5、FoxPro2.6相比,它是一个革命性的软件产品,引进了可视化编程和面向对象的概念。

1997年,微软公司推出了VisualFoxPro5.0。

1998年,微软公司发布了可视化编程语言集成包VisualStudio6.0,VisualFoxPro6.0就是其中的一个成员。

2000年,微软公司在推出VisualStudio.NET中,将VisualFoxPro纳入其中。后来,微软公司对其VisualStudio.NET战略进行调整,将VisualFoxPro7.0从其VisualStudio.NET中独立出来,形成一个仍基于.NET构架的独立的软件产品。VisualFoxPro8.0是微软公司推出的VisualFoxPro系列的新版本,也是本书所要讲解的内容。为叙述方便,本书将VisualFoxPro8.0简称为VFP。1.3VisualFoxPro基础返回2.VFP的环境启动VFP:①使用Windows系统菜单:用鼠标单击“开始”按钮,选择“程序”中的“MicrosoftVisualFoxPro8.0”命令。②双击桌面上的VFP图标:建议常使用VFP的用户在Windows桌面上建立它的快捷方式。③双击与VFP关联的文件:打开“我的电脑”,找到VFP创建的用户文件,如表文件、项目文件、表单文件等,用鼠标双击这些文件都能启动VFP系统,同时打开这些文件。退出VFP:①单击VisualFoxPro8.0标题栏右上角的“关闭”按钮。②从“文件”菜单中选择“退出”命令。③单击主窗口左上方的狐狸头图标,从控制菜单中选择“关闭”按钮,或者按Alt+F4键。④在“命令”窗口中键入QUIT命令,按Enter键。1.3VisualFoxPro基础返回图1-7VFP8.0主窗口界面1.3VisualFoxPro基础返回3.VFP的系统配置

VFP可以使用“选项”对话框或SET命令进行配置,还可以通过配置文件进行设置。选择“工具”菜单的“选项”选项,弹出“选项”对话框。1.4VFP可视化设计工具返回1.向导向导是一种快捷设计工具。它通过一组对话框依次与用户对话,引导用户分步完成VFP的某项任务,例如创建表单、表、创建查询和创建报表等。

VFP有20余种向导工具。从创建表、视图、查询等数据文件,到建立报表、标签、图表、表单等VFP文档,直至创建VFP的应用程序,SQL服务器上的数据库等操作,均可使用相应的向导工具来完成。

启动向导有以下四种途径。(1)在“项目管理器”中选择要创建的文件类型,然后单击“新建”按钮。打开相应的新建对话框,单击相应的向导就可以启动相应的向导。(2)选择“文件”菜单的“新建”选项,或者单击工具栏的“新建”按钮,打开“新建”对话框,选择待创建文件的类型。然后单击“向导”按钮就可以启动相应的向导。(3)选择“工具”菜单的“向导”选项,也可以直接访问大多数的向导。(4)单击工具栏的“向导”按钮可以直接启动相应的向导。1.4VFP可视化设计工具返回2.设计器

设计器具有强大的功能,可以用来创建或者修改应用程序所需要的组件。可以使用下面三种方法之一打开设计器。(1)在“项目管理器”中打开利用“项目管理器”可以快速访问VFP的各种设计器。在“项目管理器”窗口中选择相应的选项卡。选中要创建的文件类型,然后单击“新建”按钮,系统弹出相应对话框,单击相应的按钮即可打开相应的设计器。(2)菜单方式打开从选择“文件”菜单的“新建”选项,或者单击工具拦的“新建”按钮,打开“新建”对话框。选择待创建文件的类型,然后单击“新建”按钮,系统将自动打开设计器。同样道理,当打开不同的文件时,系统将打开不同的设计器。(3)从“显示”菜单中打开当打开某种类型的文件时,在“显示”菜单会出现相应的设计器选项。例如,当打开或创建表单、报表或标签时,选择“显示”菜单的“数据环境”选项,打开“数据环境设计器”窗口。当浏览表时,在“显示”菜单中会出现“表设计器”选项。1.4VFP可视化设计工具返回3.生成器生成器是带有选项卡的对话框,用于简化对表单、复杂控件和参照完整性代码的创建和修改过程。每个生成器显示一系列选项卡,用于设置选中对象的属性。生成器名称功能表单生成器增加字段作为新控件到表单表格生成器构造一个表格,表格控件允许显示和操作表或页中的数据行和列编辑框生成器构造一个文本编辑框,编辑框用于显示长字段或Memo字段,并允许编辑文本列表框生成器构造一个列表框,列表框提供给一个滚动条和若干个选项及信息,在列表框中各个信息始终可见文本框生成器构造一个文本框,文本框允许用户增加和编辑存储在表中的字符、数字或日期字段组合框生成器构造一个组合框,组合框类似一个列表框加上一个文本框命令组生成器构造一个命令按钮组,它包括一组相似的命令按钮。当单击一个按钮时,将执行一个命令选项组生成器构造一个选项组按钮,这些按钮允许选择若干互斥选项中的一个自动格式生成器将一个格式集应用于一种同类选定控件参照完整性生成器帮助设置触发器,以控制如何在相关表中插入、删除或修改记录表达式生成器构造一个表达式1.5学生管理应用系统实例返回1.系统开发的基本过程(1)系统分析系统分析包括可行性分析和需求分析两个方面。这一阶段主要对系统开发进行可行性论证,分析应用系统的开发目的及要达到的目标要求。在分析阶段,信息收集是决定系统开发的可行性的重要环节,通过所需信息的收集,确定应用系统的总体目标、总体开发思路。(2)系统设计系统设计包括数据设计和功能设计两个方面。数据设计主要是指完整的数据模型,建立数据库。根据系统分析结果,将系统数据分解、归纳,并规范化为若干个数据表,同时还要确定每个表中的字段属性,以及数据表的索引、关联等。功能设计是指系统的具体实现,包括程序设计、表单、菜单及报表等可视化设计,输入/输出设计。(3)系统实施及测试该阶段完成主程序设计及安装调试。利用项目文件,将设计完成的各文件组装在一个项目文件中统一管理,并在项目中设置主程序,设置系统运行环境并进行系统的整体调试。系统投入运行后,进行系统维护工作。1.5学生管理应用系统实例返回2.系统的功能要求学生管理系统的开发目的是实现学生成绩信息的计算机管理,主要功能包括数据存储、检索和输出三部分,系统的基本要求是:良好的用户界面设计;稳定的数据存储和维护功能;数据查询功能;合理的输入/输出设计。1.5学生管理应用系统实例返回3.学生管理系统的结构及功能(1)应用系统的主要界面系统的界面主要包括系统登录界面、数据维护界面、信息查询界面和数据统计界面等。(2)系统菜单利用菜单控制输入、查询和统计等模块的操作,系统全部的应用模块均通过菜单调用。(3)报表功能报表是数据输出的常用形式,VFP提供的报表不仅可以输出数据,还可以方便地进行数据统计计算、优化报表布局等。1.5学生管理应用系统实例返回4.数据库及相关数据表

学号姓名性别出生日期年龄党员否专业简历照片200501001王小岩男10/12/8720F计算机200501002赵军男03/16/8720T计算机200402001张新女07/10/8819F中文200403001李华女09/20/8918F数学200403002陈丽萍女11/15/8621T数学课程号课程名学分学时0101数据库原理与应用3480102数据结构2320201数学分析3480202高等数学2320301当代文学232学号课程号成绩200501001010196200501002010187200501001010276200501002010267200403001020254200403002020182表1-13学生信息表1-14课程信息表1-15成绩本章小结数据处理的概念:数据库、数据库系统、数据库管理系统的概念和区别,以及数据管理的发展历程。实体是现实世界中的客观事物,实体之间的联系包括三种:一对一联系、一对多联系和多对多联系。数据模型是反映实体和实体之间联系的模型,分为层次模型、网状模型和关系模型。关系运算包括传统的集合运算:并、交和差,专门的关系运算:选择、投影和联接。VFP提供了多种可视化设计工具,包括各种向导、设计器和生成器,可以更简便、快速、灵活地进行应用程序开发。系统开发的基本过程包括系统分析、系统设计和系统实施及测试。返回1.7上机实战1.目的和要求熟悉VFP环境,并能对环境进行配置。2.实战内容设置VFP日期的显示为年月日格式,默认的工作目录为D:\XSGL。请同学们上机练习。返回★数据类型★常量与变量★表达式★函数★上机实战第2章数据与数据运算★本章小结返回2.1数据类型返回(1)字符型(Character)数据是描述非数值计算的文字数据,是常用的数据类型之一,用字母C表示。字符型数据由ASCII字符集中的可打印字符(英文字母、数字、空格、标点符号等)和汉字构成,最大长度为254个字符。(2)数值型数据一般用于计算,是一种量化数据,也是常用的数据类型之一,用字母N表示。在VFP中,数值型数据被分为以下5种类型:数值型、浮点型、双精度型、整型、货币型。(3)逻辑型(Logical)数据是描述客观事物真假的数据,用字母L表示,用于进行逻辑判断,常用于程序设计中。逻辑型数据只有表示真和假两个值,长度固定为1个字符。(4)日期型(Date)数据是一种表示日期的数据,用字母D表示,长度固定为8个字符。日期型数据包括年、月、日三个部分,每个部分以规定的分隔符隔开。由于年、月、日的顺序可以不同,分隔符也可以自行设定,所以,日期型数据有多种格式。2.1数据类型返回(5)日期时间型(DateTime)数据是一种描述日期和时间的数据,长度固定为8个字符。日期时间型数据除包括年、月、日外,还包括表示时间的时、分、秒以及上午(AM)和下午(PM)。(6)通用型(General)数据是一种保存OLE对象的数据,用字母G表示。其中,OLE对象可以是电子表格、文档、图片等。通用型数据没有长度的限制,它只用于定义数据表中的字段。其字段长度固定为4个字符,用来存储一个指向固定对象的指针。(7)备注型(Memo)数据是一种用于存储较长文本的字符型数据,用字母M表示,是字符型数据的延伸。备注型数据没有长度的限制,只用于定义数据表中的字段。其字段长度固定为4个字符,由这4个字符表示的指针指向存放内容的地址,其备注型文本内容存储在相应的备注文件中。2.2常量与变量返回1.常量

常量就是在程序运行期间其值不能被改变的量。在VFP中,常量可以是一个数据项,也可以是在程序或命令中直接引用的实际值。常量类型有如下6种。(1)字符型常量是由ASCII表中的可打印字符(英文字母、数字、标点符号等)和汉字组成的由定界符括起来的串。字符型定界符有三种:(“”)、(‘’)或([])。(2)数值型常量由数字、小数点和正负号构成。例如,-123.89、80、+42.37等都是合法的数值型常量。为了表示很大或很小的数值型常量,可以使用科学计数法表示。例如,6.23E-12表示6.23×10-12。(3)逻辑型常量由代表真或假的符号及定界符“..”构成。逻辑真的表示有:.t.、.T.、.y.、.Y.;逻辑假的表示有:.f.、.F.、.n.、.N.。逻辑真、假值常用于条件判断。2.2常量与变量返回(4)常用的日期型常量的系统输出格式为:mm/dd/yy,常用的日期型常量的系统输入格式为:{^yyyy/mm/dd},其中,mm代表月份值,dd代表日值,yy或yyyy代表年份值。例如,04/20/81是合法的日期输出常量、{^1981/04/20}是合法的日期输入常量。(5)常用的日期时间型常量的系统输出格式为:mm/dd/yy

hh:mm:ssAM|PM,常用的日期型常量的系统输入格式为:{^yyyy/mm/dd

hh:mm:ssAM|PM},其中,第一个mm代表月份值,dd代表日值,yy或yyyy代表年份值,hh表示小时值,第二个mm表示分钟值,ss表示秒值,AM表示上午,PM表示下午。例如,tt={^1981/3/220:30:50},则输出tt值为03/02/8108:30:50PM(6)货币型常量在存储和计算时采用4位小数,并且没有科学计数法表示。例如,$124.56是一个货币型常量。2.2常量与变量返回2.变量

所谓变量就是在程序运行期间其值可以被改变的量。每个变量都有一个名称来标识,称为变量名。变量名最长可包含254个字符,是由字母、数字和下划线组成,并由字母、下划线开头。其中,字母不分大小写。在给变量起名时,应尽量做到见名知义。在VFP中,有两类变量,分别为内存变量和字段变量。如果内存变量与字段变量重名,则字段变量优先识别。若想改变这种优先关系,可在内存变量名前加识别前缀“m.”或“m->”来标识与字段变量同名的内存变量名。2.2常量与变量返回3.内存变量的常用命令(1)赋值命令格式1:STORE<表达式>TO<内存变量表>格式2:<内存变量>=<表达式>功能:计算表达式的值并将表达式的值赋给内存变量,格式1一次可以给多个内存变量赋相同的值,格式2一次只可以给一个内存变量赋值。(2)变量及表达式的输出命令格式:?|??<表达式表>功能:计算<表达式表>中各个表达式的值,并在输出设备上输出。?是先有回车换行操作,再输出结果。若省略<表达式表>,则能在输出设备上输出一个空行;??是在当前输出位置上输出结果,没有回车换行操作。显示内存变量的命令还有LIST|DISPLAYMEMORY,用于显示内存中的全部内存变量。(3)释放内存变量命令格式1:CLEARMEMORY格式2:RELEASE<内存变量名表>功能:格式1清除用户定义的所有的内存变量。格式2清除指定的内存变量。2.2常量与变量返回4.数组数组是一组有序内存变量的集合。其中每一个内存变量是这个数组的一个元素。每一个数组元素在内存中独占一个内存单元。为了区分不同的数组元素,每一个数组元素都是通过数组名和下标访问的。数组必须先定义后使用。(1)数据的定义格式:DIMENSION<数组名1>(下标1[,下标2])[,<数组名2>(下标1[,下标2])],…功能:定义一维或二维数组及其下标的上界。(2)数组元素赋值数组一旦定义,它的初始值为逻辑值.F.,下标从1开始,在VFP系统中,同一个数组元素在不同的时刻可以存放不同类型的数据,在同一数组中,每个元素的值可以是不同的数据类型,它的类型由它接受的数据的类型所决定。数组必须先定义后使用。例如,给数组A,B元素赋值,A(3)=100,B(2,1)=.T.,或B(4)=.T.等。未经赋值的数组元素,系统将自动赋与逻辑假值(.F.)。2.3表达式返回将常量、变量和函数用运算符连接起来的式子称为表达式。根据运算对象的数据类型不同,表达式可以分为算术表达式、字符表达式、日期和日期时间表达式、关系表达式和逻辑表达式等。1.算术表达式算术表达式是由算术运算符将数值型常量、变量和函数连接起来的式子。算术表达式的结果为数值型常数。算术运算符有**或^(乘方)、*(乘)、/(除)、%(取余)、+(加)、-(减或取负)。其优先级由高到低的排列顺序为:**,^、*,/,%、+,-。2.字符表达式字符表达式可由字符运算符连接的字符型常量、变量和函数组成。字符表达式的结果为字符型常数或逻辑型常数。字符运算符有+(连接)、-(连接)和$(包含)。3.日期和日期时间表达式日期和日期时间表达式是指包含日期或日期时间型数据和日期运算符的表达式。日期和日期时间表达式的结果是日期时间常量或数值型常数。运算符包括“+”和“-”两种。2.3表达式返回4.关系表达式关系表达式是由关系运算符将字符表达式、算术表达式和日期时间连接起来的式子。关系运算符两端必须为可比较的同类型的表达式,关系表达式的结果为逻辑常量。关系运算符包括:<(小于)、>(大于)、=(等于)、<=(小于等于)、>=(大于等于)、==(恒等于)和<>、#、!=(不等于)。5.逻辑表达式逻辑表达式是由逻辑运算符将逻辑型常量、变量、函数和关系表达式连接起来的式子。逻辑表达式的结果为逻辑常数。逻辑运算符包括:.NOT.(逻辑非)、.AND.(逻辑与)和.OR.(逻辑或)。优先级由高到底的顺序为.NOT.、.AND.、.OR.。6.表达式生成器

在VFP系统中任何可以写表达式的地方单击鼠标右键,在弹出的快捷菜单中选择“生成表达式”选项,即可弹出“表达式生成器”对话框。在“表达式生成器”对话框中,用户可以直接输入表达式,也可以利用对话框提供的函数(包括运算符)、字段和变量组成表达式。当输入完成时,用户还可以通过“检验”按钮检验表达式的有效性。2.4函数返回函数是实现特定功能的程序段。它通过函数调用会出现在表达式中,函数的运算结果称为返回值。函数调用的形式为:

函数名([参数列表])在VFP中函数可分为系统函数和用户自定义函数两大类。用户自定义函数将在后面介绍,在此,主要介绍部分常用的系统函数,其他函数的功能请查阅相关资料。1.数值函数2.字符串函数

3.日期和时间处理函数

数据类型转换函数测试函数

本章小结数据类型是存储数据的类型。数据类型包括字符型、数值型、日期型、逻辑型、备注型和通用型等。常量就是在程序运行期间其值不能被改变的量。在使用常量时要注意加定界符。变量就是在程序运行期间其值可以被改变的量。有两类变量,分别为内存变量和字段变量。函数是实现特定功能的程序段。函数分为系统函数和用户自定义函数两大类。表达式是由运算符将数据、变量、函数连接起来的一个运算式。有算术表达式、字符表达式、日期和日期时间表达式、关系表达式和逻辑表达式。返回2.6上机实战1.目的和要求熟悉变量的赋值和表达式的生成及运算规则,并能通过表达式生成器生成表达式。2.实战内容设置两个变量a和b,它们的值分别为3、5。通过表达式生成器生成表达式a+b,并输出a和b的和。请同学们上机练习。返回★数据库的建立★数据库的操作★在数据库中加入和移去表★数据库表的建立★上机实战第3章数据库操作★本章小结返回★表的基本操作★索引与排序★数据完整性★多工作区操作3.1数据库的建立

VFP中的数据库(DataBase)是基于数据库文件建立的,文件的扩展名为.DBC,被用于提供对数据库表的引用、建立数据库表之间的关联、建立与数据库表相关的数据视图、建立与远程数据源的连接和建立存储过程等。(1)通过菜单方式建立数据库(2)通过命令方式建立数据库格式:CREATEDATABASE[<数据库文件名>]功能:创建一个数据库文件。若未指定数据库文件名,将弹出“创建”对话框,等待用户选定保存数据库文件的文件夹和输入数据库文件名。例如:CREATEDATABASED:\XSGL\学生管理说明:使用该命令建立数据库后打开的仅仅是数据库,不打开“数据库设计器”窗口。如果想打开“数据库设计器”窗口,应在命令窗口输入:MODIFYDATABASE命令。返回3.2数据库的操作1.打开和关闭数据库对数据库进行操作之前,应先打开数据库。(1)打开数据库菜单方式选择“文件”菜单的“打开”选项,弹出“打开”对话框,在文件类型下拉列表框内,选择文件类型为“数据库”,然后选择数据库文件名,单击“确定”按钮后进入“数据库设计器”窗口。命令方式格式:OPENDATABASE[<数据库文件名>|?][NOUPDATE][EXCLUSIVE|SHARED]功能:打开指定的数据库。说明:?表示系统会弹出“打开”对话框。

NOUPDATE指定以只读方式打开数据库。

EXCLUSIVE指定以独占方式打开数据库,SHARED指定以共享方式打开数据库。返回3.2数据库的操作(2)关闭数据库菜单方式选择“文件”菜单的“关闭”选项,关闭正在使用的数据库。命令方式格式1:CLOSEDATABASES功能:关闭所有打开的数据库和数据表。格2:CLOSEALL功能:关闭所有打开的数据库和数据表,同时关闭除主窗口之外的各种窗口。2.修改数据库格式:MODIFYDATABASE[<数据库文件名>|?]功能:打开当前数据库的“数据库设计器”窗口,修改数据库。3.删除数据库格式:DELETEDATABASE<数据库文件名>|?[DELETETABLES]功能:从磁盘上删除数据库文件。说明:DELETETABLES表示删除数据库的同时数据库中的数据表都将被删除;否则只删除数据库文件,原数据库表变成自由表。返回3.3在数据库中加入和移去表1.自由表添加到数据库中(1)菜单方式打开“数据库设计器”,选择“数据库”菜单中选择“添加表”命令,然后从“打开”对话框中选择要添加到当前数据库的自由表。(2)

命令方式格式:ADDTABLE<数据库文件名>|?[NAME<长数据库表名>]功能:将自由表变成数据库表。说明:其中<数据库文件名>给出了要添加到当前数据库的自由表表名,如果使用“?”则弹出“打开”对话框,从中选择要添加到数据库中的自由表。

<长数据库表名>则为数据库表指定了一个长名,最多可以有128个字符。使用长名在程序中可以提高程序的可读性。当数据库不再使用某个表,而其他数据库要使用该表时,必须将表从当前数据库中移出,使之成为自由表,再添加到其他数据库中。返回3.3在数据库中加入和移去表2.数据库表移出数据库(1)菜单方式在“数据库设计器”窗口,选择要移去的表,然后选择“数据库”菜单中“移去”选项,或者单击鼠标右键从快捷菜单中选择“删除”命令,最后从提示的对话框中选择“移去”即可说明:从数据库中移出表,使被移出的表成为自由表,应该选择“移去”;如果选择“删除”,则不仅从数据库中将表移出,而且还从磁盘上删除该表。一旦某个表从数据库中移出,那么与之联系的所有主索引、默认值及有关的规则都随之消失,因此,将某个表移出的操作会影响到当前数据库中与该表有联系的其他表。如果移出的表在数据库中使用了长表名,那么表一旦移出,长表名将不能再使用。返回3.3在数据库中加入和移去表(2)命令方式。格式:REMOVETABLE<数据库表名>|?[DELETE][RECYCLE]功能:将数据库表删除或变成自由表。说明:

<数据库表名>给出了要从当前数据库中移去的表名,如果使用问号“?”,则弹出“移去”对话框,从中选择要移去的表。如果使用选项DELETE,则在把所选表从数据库中移出之外,还将其从磁盘中删除。如果使用选项RECYCLE,则把所选表从数据库移出之后,放在Windows的回收站中,并不立即从磁盘上删除。返回3.4数据库表的建立1.表的基本概念

VFP有两种形式的数据表,即自由表和数据库表。不属于任何数据库而独立存在的表称为“自由表”。当把自由表加入到数据库时,自由表就变成了数据库表,数据库表和自由表相比,具有一些自由表所没有的属性,如主关键字、触发器、默认值、表的关系等。反之,当将数据库表从数据库中移去时,数据库表就变成自由表,数据库表所具有的某些属性也同时消失。此外,在VFP中,任何一个数据表都只能属于一个数据库,如果要将一个数据库表移到其他数据库中,必须先将该数据库表变为自由表,再将其加入到另一个数据库中。返回3.4数据库表的建立2.建立表的结构(1)表的结构在学习如何创建数据表之前,必须先了解表的结构。无论是数据库表还是自由表,在形式上都是一个二维表结构,表文件以.DBF为扩展名存储在磁盘上。每一列称为一个字段,字段有字段名和字段值,所有字段名的集合构成了表的第一行(表头),叫做数据表的结构;每一行称为一条记录。表的结构与记录是表的两大组成部分,在表能够存放数据前,必须先定义表结构。定义表结构时,它需要描述数据表所有字段的名称、数据类型、宽度、小数位数以及能否接收NULL值等。(2)建立表的结构有两种方式建立表的结构:菜单方式和命令方式。返回字段名字段类型字段宽度小数位数学号字符型9课程号字符型4成绩数值型33.4数据库表的建立返回3.向表中输入数据定义好表结构后就可以向表中输入记录了,VFP提供以下两种数据输入方式:浏览方式和编辑方式。(1)备注型字段的数据输入:在记录输入窗口中,将光标移到备注型字段的“memo”处,用鼠标双击,弹出备注型字段编辑窗口,输入结束后,按“×”按钮或组合键Ctrl+W,即可将备注型数据存盘,关闭备注型字段的编辑窗口。按Ctrl+Q则放弃本次输入,关闭备注型字段的编辑窗口。注意,此时“memo”变成“Memo”,表示已经输入数据。(2)通用型字段的数据输入:在记录输入窗口中,将光标移到通用型字段的“gen”处,用鼠标双击,弹出通用型字段编辑窗口,选择“编辑”菜单的“插入对象”选项.注意,此时“gen”变成“Gen”,表示已经输入数据。3.5表的基本操作返回1.表的打开与关闭当前正在操作的表称为当前表。故对表进行操作前必须先打开,使之成为当前表。打开表是指将表文件调入内存,并成为当前表,并不打开“表设计器”;而关闭表是相反的操作,即将表文件写回磁盘。(1)

打开数据表菜单方式:选择“文件”菜单下的“打开”选项,弹出“打开”对话框,选择表文件,打开表文件。命令方式:格式:USE<表名>[ALIAS<别名>][EXCLUSIVE|SHARED]功能:打开指定的数据表文件。(2)关闭数据表对表操作完成后,应及时关闭表,以保证更新后的内容能写入相应的表中。格式1:USE功能:关闭表文件。格式2:CLOSEALL功能:关闭包括表在内的所有文件。3.5表的基本操作返回2.修改表的结构在VFP中,数据表结构的修改包括增加或删除字段,修改字段名、类型、宽度,增加、删除或修改索引。对于数据库表,还可以修改或删除有效规则等,选择“显示”菜单的“表设计器”选项,弹出“表设计器”对话框,查看表结构,将鼠标移到相应的地方进行修改表结构。修改表结构的命令是:MODIFYSTRUCTURE3.表中记录的浏览和显示浏览表的内容可以分为“编辑”和“浏览”两种方式,对应的命令是EDIT和BROWSE。利用“显示”菜单也可以方便地实现表的浏览和编辑操作。在此方式下,还可以修改表中的数据。可以将表的全部或部分记录显示在主窗口中。命令的格式为:LIST|DISPLAY[[FIELDS]<字段名表>][范围][FOR<条件表达式>]范围子句指定对哪些记录进行操作,包括:ALL:指定全部记录,REST:指定从当前记录开始的其余全部记录,NEXTn指定从当前记录开始的n条记录,RECORDn:第n条记录。3.5表的基本操作返回4.记录的定位在VFP中,数据表中的记录是由指针管理的,称为记录指针。每一个打开的数据表都有一个自己的记录指针,记录指针所指的记录称为当前记录。(1)菜单方式:打开“浏览”窗口;选择“表”菜单的“转到记录”选项;在子菜单选择“第一个”、“最后一个”、“下一个”、“上一个”、“记录号”或“定位”;如果选择“记录号”,在“转到记录”对话框中输入待查看记录的编号;如果选择了“定位”,在“定位记录”对话框中输入指定条件,然后单击“确定”按钮。(2)GO|GOTO命令格式:GO|GOTO<记录号>|TOP|BOTTOM功能:将记录指针移动到指定的位置。(3)SKIP命令相对移动指针命令SKIP的功能是以当前记录指针为基准,向前或向后移动指针。格式:SKIP<记录数>功能:使记录指针在表中向前或向后移动。3.5表的基本操作返回5.记录的删除表中记录的删除分为逻辑删除和物理删除两种操作。逻辑删除是对要删除的记录加上删除标记,记录仍然存在,以后还可以恢复;而物理删除则是将带删除标记的记录从表中彻底删除,以后不能恢复。(1)逻辑删除菜单方式命令方式逻辑删除格式:DELETE[<范围>][FOR<条件>]功能:逻辑删除当前表中指定范围内满足条件的记录,即对这些记录作删除标记。说明:省略<范围>和<条件>子句时,默认对当前记录进行逻辑删除,即对当前记录添加删除标记。3.5表的基本操作返回(2)恢复记录被逻辑删除的记录可以恢复。恢复的命令为:格式:RECALL[<范围>][FOR<条件>]功能:恢复当前表中指定范围内满足条件的被逻辑删除的记录,即取消这些记录的删除标记。说明:省略<范围>和<条件>子句时,默认恢复当前记录,即取消当前记录的删除标记。恢复记录也可以选择“表”菜单的“恢复记录”选项来完成。(3)物理删除记录物理删除就是把逻辑删除的记录彻底从磁盘上删除,释放磁盘空间。彻底删除记录必须先逻辑删除,然后再物理删除。物理删除的命令是PACK,被删除的记录将不能恢复。物理删除也可以通过选择“表”菜单的“彻底删除”选项来完成。ZAP命令是一次性物理删除表中全部记录的命令,该命令执行后,只保留表的结构。3.5表的基本操作返回6.表中数据的替换如果表中有大量数据需要有规律地修改时,可以选择“表”菜单的“替换字段”选项。批量数据替换操作也可通过REPLACE命令完成,命令格式为:REPLACE[范围]<字段名1>WITH<表达式1>[,<字段名2>WITH<表达式2>,…][FOR<条件表达式>]说明:范围和FOR省略,表示只替换当前记录。例如,将“学生信息”表中的学生的年龄增加1岁。

REPLACEALL年龄WITH年龄+13.6索引与排序返回1.索引的概念(1)索引的概念

VFP索引是由指针构成的文件,这些指针逻辑上按照索引关键字值进行排序。索引文件和表文件分别存储,并且不改变表中的物理顺序。实际上创建索引是创建一个由指向表文件记录的指针构成的文件。如果要根据特定顺序处理表记录,可以选择一个相应的索引。使用索引不仅可以重新安排数据表中处理记录的顺序,还可以加速对表的查看和访问。(2)索引文件的类型根据索引文件包含索引的个数和索引文件的打开方式不同,索引文件可分为独立索引文件和复合索引文件。复合索引文件又分为非结构复合索引和结构复合索引文件。(3)索引类型数据库中用来作为索引顺序的字段或字段表达式,可以是表中的单个字段,也可以是表中几个字段组成的表达式。在VFP中,索引类型可分为4类:主索引、候选索引、惟一索引和普通索引3.6索引与排序返回2.建立索引

(1)在“表设计器”中建立索引(2)通过命令方式建立索引格式:INDEXON<索引表达式>TAG<索引名>[UNIQUE|CANDIDATE][ASCENDING|DESCENDING][FOR<条件>]功能:建立结构复合索引说明:<索引表达式>可以是单个字段,也可以是多个字段组合。

TAG<索引名>表示在复合索引文件中建立一个指定的索引标识。

UNIQUE表示建立惟一索引,CANDIDATE表示建立候选索引。不带这两个选项表示建立普通索引。

ASCENDING|DESCENDING表示索引关键字以递增或递减的方式建立索引,默认为升序。

FOR<条件>表示仅对数据表中满足条件的记录建立索引。使用INDEX命令只能建立普通索引、惟一索引和候选索引。

3.6索引与排序返回3.索引的使用(1)打开和关闭索引文件格式1:SETINDEXTO[<索引文件表>][ADDITIVE]功能:打开当前表的一个或多个索引文件并确定主控索引文件。说明:索引文件表中第一个索引文件为主控索引文件。若缺省ADDITIVE选项,则用本命令打开索引文件时,除结构复合索引文件以外的索引文件均被关闭。若缺省所有选项,SETINDEXTO命令将关闭当前工作区中除结构复合索引文件以外的所有索引文件,同时取消主控索引。关闭表的同时也关闭与它有关的所有索引。格式2:USE<表文件名>INDEX<索引文件表>功能:在打开表的同时打开索引文件。3.6索引与排序返回(2)确定主控索引菜单方式命令方式格式:SETORDERTO<索引名>|<索引序号>[ASCENDING|DESCENDING]]功能:确定主控索引。说明:SETORDERTO或SETORDERTO0命令取消主控索引文件及主控索引,表中记录将按物理顺序输出。(3)删除索引格式:DELETETAGALL|<索引名1>[<,索引名2>...]功能:删除打开的结构复合索引文件的索引名。说明:ALL子句用于删除结构复合索引文件的所有索引名。(4)索引的更新自动更新当表中的数据发生变化时,所有当时已打开的索引文件都会随数据的改变自动改变记录的逻辑顺序,实现索引文件的自动更新。重新索引格式:REINDEX功能:重新建立索引。3.6索引与排序返回4.排序(1)排序的定义排序就是把数据表中的记录按照某个字段值的大小顺序重新排列,作为排序依据的字段称为“关键字”。排序操作的结果是创建一个新的数据表文件。排序可以按照关键字值从小到大的顺序进行升序排序,也可以按照关键字值由大到小的顺序进行降序排序。(2)数据比较大小的依据在VFP中,数据大小的比较规则为:数值型数据按其数值的大小进行比较。字符型数据按其机内码顺序比较,对于西文字符是ASCII码的值,对于汉字是汉字国标码的值;常用的一级汉字是按照拼音顺序排列的,也就是字典顺序。日期型数据按年、月、日的顺序进行比较。3.6索引与排序返回(3)排序的实现格式:SORTTO<文件名>ON<字段名1>[/A][/D][/C][,<字段名2>[/A][/D][/C]…][<范围>][FOR<条件>][FIELDS<字段名表>]功能:将当前数据表中指定范围内满足条件的记录,按指定字段的升序或降序重新排列,并将排序后的记录按FIELDS子句指定的字段写入新的表文件中。说明:

ON子句中字段名1、字段名2等为排序关键字,不包括逻辑型字段、备注型字段和通用型字段。其中,字段名1为主要排序关键字,字段名2为次要关键字,依此类推;排序时先比较主关键字的值,当主关键字值相同时,再比较次关键字的值,依此类推。

FIELDS子句指定排序以后的新表所包含的字段个数;若无此选项,则新表中包含原表中的所有字段。选项/A表示按字段值升序排列,可以省略不写;/D表示按字段值降序排列;/C表示按指定的字符字段排序时,不区分字母的大小写。/C可以与/D或/A合用,如/AC或/DC

排序后,原来的表文件仍存在,记录顺序和数据内容不改变。3.7数据完整性返回1.实体完整性与主关键字实体完整性是保证表中记录惟一的特性,即在一个表中不允许有重复的记录,在VFP中利用主关键字或候选关键字来保证表中的记录惟一,即保证实体完整性。2.域完整性与约束规则域完整性是根据应用环境的要求和系统的实际需要,对某一具体引用所涉及的数据提出约束条件。数据类型的定义属于域完整性的范畴,域约束规则也称作字段有效性规则,在插入或修改字段值时被激活,主要用于数据输入正确性的检验。只有数据库表可以建立字段有效性规则,自由表不能建立字段有效性规则。3.7数据完整性返回3.记录有效性和触发器(1)记录有效性记录有效性规则用来控制用户输入到记录中的信息的有效性检查,实际上也是设置一个逻辑条件。记录有效性规则通常比较同一记录中的两个或多个字段值,以确保它们遵守在数据库中建立的规则。例如:可以使用记录有效性规则,来保证一个字段的值总是比同一记录中的另一个字段值大。(2)设置触发器触发器是在某些事件发生时触发执行的一个表达式或一个过程。这些事件包括插入记录、修改记录和删除记录。当发生这些事件时,将引发触发器中所包含的事件代码。触发器有三种:插入触发器、删除触发器和更新触发器。3.7数据完整性返回4.参照完整性与表之间的联系(1)建立表之间的关系表之间的联系是基于索引建立的一种永久关系。这种联系作为数据库的一部分保存在数据库中。表之间的联系在“数据库设计器”中显示为表索引之间的连接线。在数据库的两个表之间建立联系时,要求两个表的索引中至少有一个是主索引或候选索引。一般地,父表建立主索引,而子表中的索引类型决定了要建立的联系类型。如果子表中的索引类型是主索引或候选索引。则建立起来的就是一对一联系。如果子表中的索引类型是普通索引,则建立起来的就是一对多联系。(2)设置参照完整性约束在数据库中建立数据表之间的联系后,可以设置管理联系记录的规则。VFP使用用户自定义的字段级和记录级规则完成参照完整性规则。“参照完整性生成器”可以帮助用户建立规则,控制记录如何在相关表中被插入、更新或删除。3.8多工作区操作返回1.多工作区的概念为了同时打开多个表,并对多个表进行操作,VFP引入了工作区的概念。工作区使用来保存表及相关信息的一片内存空间,每个工作区可以打开一个表文件。VFP提供了32767个工作区,选择不同的工作区后,可以使用USE命令打开不同的表。即不同的表可以在多个工作区同时打开。格式:SELECT<工作区号>|<别名>功能:选择工作区。说明:工作区号的取值范围是1~32767之间的正整数。工作区的别名可以是系统定义的别名:1~10号工作区的别名分别为字母A~J,也可以将表名作为工作区的别名。用户也可以用命令重新定义别名。例如,USE学生信息ALIASXS默认情况下,VFP工作在1号工作区,工作区的区号还可以是0,含义是选择当前未被使用的最小工作区。一个工作区同一时刻只能打开一个表。3.8多工作区操作返回2.表之间的关联为了方便在多个表之间进行数据互访,需要在表之间建立临时联系。格式:SETRELATIONTO<表达式>INTO<工作区号>|<别名>功能:建立父表与子表的临时联系。说明:

<表达式>指定建立临时联系的索引关键字,用工作区号或别名说明临时联系是当前工作区的表(父表)到哪个表(子表)的关联,被关联的表(子表)要求必须按关联关键字建立索引,并将其设置为当前索引名。不带参数的SETRELATIONTO命令取消两个表间的关联。本章小结数据库的概念和建立方式,数据库的相关操作。表的概念,建立表结构和向表中输入数据。表的基本操作,包括打开和关闭,修改表结构和表数据,表中记录的定位、删除和替换。索引包括主索引、候选索引、惟一索引和普通索引。数据完整性包括实体完整性、域完整性和参照完整性。表之间永久联系是一种对象,存在于数据库中。可以在多个工作区同时打开多个数据库,建立表之间临时联系使用SETRELATIONTO命令。返回3.10上机实战1.目的和要求掌握数据库的操作,包括建立表、设置域完整性、建立索引、表之间的联系、设置参照完整性。2.实战内容在数据库“学生管理”中,添加“教师”表,设置职称的默认值为“讲师”。主索引:教师号,普通索引:课程号。与“课程信息”表建立联系,设置参照完整性:删除为:级联。显示李红老师的信息。请同学们上机练习。返回★查询命令★查询设计器★创建查询★视图★上机实战第4章查询与视图★本章小结返回★视图的其他操作★SQL语言4.1查询命令1.顺序查询命令格式:LOCATE[<范围>]FOR<条件>功能:查找满足条件的第一条记录。若找到,记录指针就指向该记录;若表中无此记录,则在状态栏中显示“已到定位记录末尾。”,表示记录指针指向文件结尾处。说明:范围缺省表示ALL。查到满足条件的记录后,如果要继续查找满足条件的记录必须用CONTINUE命令。查询的表可以索引也可以不索引。

2.索引查询命令索引查询依赖二分算法,查询速度比顺序查询快。但它要求表的记录是有序的,这就需要事先对表进行索引或排序。格式:SEEK<表达式>功能:在已确定的主控索引的表中按索引关键字查找满足条件的第一条记录。若找到,记录指针就指向该记录;若找不到满足条件的记录则在状态栏中显示“没有找到。”。返回4.2查询设计器选择“文件”菜单的“新建”选项,弹出“新建”对话框,选择“查询”选项,单击“新建”按钮,弹出“添加表或视图”对话框,添加查询的表或视图。当添加多表时,如果表之间没建立联接,系统会提示是否对表进行联接,单击“确定”按钮,会自动建立联接。如果数据库中已经建立了联系,则保留联系,单击“关闭”按钮,打开“查询设计器”窗口。返回4.2查询设计器“查询设计器”分为上部窗格和下部窗格两部分,上部窗格用来显示查询或视图中的表,下部窗格则包含字段等6个选项卡。“查询设计器”打开后,VFP还在“查询”菜单、快捷菜单和“查询设计器”工具栏中提供相关的功能。(1)上部窗格上部窗格显示已打开的表或视图,每个数据表用一个可调整大小和位置的方框框起来,其中容纳了该数据表中的字段及其索引信息。将表或视图添入上部窗格的方法为:选择“查询”菜单(或快捷菜单)中的“添加表”选项,或选择“查询设计器”工具栏的“添加表”按钮,弹出“添加表或视图”对话框,即可在此对话框中选取要添加的表或视图。若在分属于两个表的字段之间出现连线,表示它们之间设置了联接条件。联接条件除了可在添加表时设置外,也可在表间拖动已索引的字段来创建。若要显示联接条件对话框来修改联接条件,只要双击某条连线,或选择“查询设计器”工具栏的“添加联接”按钮即可。(2)下部窗格下部窗格包含了以下6个选项卡。①“字段(Fields)”选项:该选项卡允许指定要在查询结果中显示的字段、函数或其他表达式。返回4.2查询设计器②“联接(Join)”选项:如果查询结果来自于多个表,可以添加表之间的联接或修改已有的联接,以控制查询的结果。它提供的联接类型有:

InnerJoin(内联接)

LeftOuterJoin(左联接)

RightOuterJoin(右联接)

FullJoin(完全联接)

CrossJoin(交叉联接)③“筛选(Filter)”选项:用来指定选择记录满足的条件。④“排序依据(OrderBy)”选项:指定查询记录的输出顺序。⑤“分组依据(GroupBy)”选项:用来把具有相同字段值的记录合并为一组,生成查询结果的一条记录。⑥“杂项(Miscellaneous)”选项:用来指定是否对重复记录进行检索,是否限制返回的记录数。可以设置输出去向为交叉表、报表或标签。返回4.3创建查询利用查询可以从一个或多个表中检索需要的数据,而且还可以对查询结果进行分组和排序。查询结果将产生一个独立的数据文件,扩展名为.QPR,但它仅作为输出使用。也就是说,不能修改查询结果,查询结果也不影响原来的数据文件,这正是查询与视图的差别。创建查询的步骤如下:(1)选择出现在查询结果中的字段;(2)设置选择条件来查找符合条件的记录;(3)设置排序或分组选项来组织查询结果;(4)选择查询结果的输出类型:表、报表或浏览等;(5)运行查询,查看查询结果。返回4.3创建查询1.利用向导创建查询使用“查询向导”可以快速创建查询。只需按照向导提示的步骤,逐一回答向导的问题,就可以正确地建立查询。在“向导选取”对话框中,列出各种形式的向导:(1)查询向导:创建一个标准的查询。(2)交叉表向导:以电子数据表的格式显示数据。(3)图形向导:以图形的方式显示查询结果。2.利用“查询设计器”创建查询

返回4.3创建查询3.查询文件的操作(1)修改查询文件菜单方式。若要修改查询文件中的内容,用户选择“文件”菜单的“打开”选项,选择需要修改的查询文件。命令方式。在命令窗口输入:MODIFYQUERY<查询文件名>,打开“查询设计器”窗口,然后进行修改。(2)查看文件内容查询文件建立并存盘后,在默认文件夹内会看到增加了一个扩展名为.QPR的文本文件,它里面存储的是查询对应SQL命令。选择“查询”菜单的“查看SQL”命令。单击“查询设计器”工具栏的“显示SQL窗口”命令右击鼠标,选择快捷菜单的“查看SQL”命令,屏幕上就会列出文件的内容。返回4.3创建查询(3)查询文件的备注可以为查询文件加上一些注释,来说明此查询文件的查询目的。添加查询文件的备注的方法是:选择“查询”菜单的“备注”选项,弹出“备注”对话框,加入需要的说明文字。给查询文件加上的备注,会作为说明以绿色形式显示在查询文件SQL的第一行。(4)运行查询文件①在“查询设计器”中运行查询。按Ctrl+Q键运行查询;单击工具栏中的“!”按钮运行查询;选择“查询”菜单的“运行查询”命令运行查询;右击鼠标,选择快捷菜单的“运行查询”命令运行查询。②如果已完成查询文件的存储,可采用命令方法运行查询文件:

DO<查询文件名>,扩展名.QPR不能省略。

返回4.3创建查询(5)查询去向说明建立查询文件后,选择“查询”菜单的“运行结果”选项所得到的查询结果还可以按多种不同的方式输出。查询去向的选择方法为:选择“查询”菜单的“查询去向”选项,在弹出的“查询去向”对话框中选择需要输出的方式。返回4.3创建查询4.创建交叉表查询

交叉表查询是以电子表格形式显示数据的查询。它对于快速汇总大量数据是很有用的。可以利用“交叉表向导”或“查询设计器”来建立交叉表查询。(1)利用“交叉表向导”建立交叉表查询(2)利用“查询设计器”建立交叉表查询在“查询设计器”中选择三个字段设计查询。然后选择“Miscellaneous”选项中的“Crosstabulate”按钮,按提示进行设计即可。注意:交叉表查询只能选择三个字段:一个用于行标题,一个用于列标题,一个用于单元格中数字计算的依据。返回4.4视图1.视图含义视图是一个虚拟表。这里所说的虚拟,是因为视图的数据是从已有的表(数据库表和自由表)或其它视图中选取出来的。视图一经定义,就成为数据库中的一个组成部分,可以像数据库表一样让用户查询数据。查询与视图之间的区别:(1)查询的结果可以存储成多种数据格式,如图表、表、报表等。(2)查询的结果仅供输出查看,不具备被数据回存的性质。而视图中数据则可以修改,并且能回存到源数据表中。所以,在“视图设计器”中多了一个“更新条件”选项卡。(3)视图定义于数据库中,其文件也仅存在于数据库中。视图并不真正含有数据,当关闭数据库后视图不会包含数据;查询是可以独立于数据库存在的.QPR文件。返回4.4视图2.本地视图的创建

VFP中,可以使用视图向导、视图设计器和SQL命令创建视图。“视图设计器”中有七组选项,其中字段、连接、筛选、排序依据、分组依据、杂项与“查询设计器”相同,这里就不再多说。下面将着重说明更新条件该选项用来设定视图中哪些字段可以修改。①“字段名”区域中列出了此视图文件中使用的字段,在字段名前有两个符号。

钥匙

图形表示字段为关键字字段。

若要设定某字段为关键字字段,可在此字段前单击使其出现√符号,而再单击一下则可取消设定。在视图文件中修改某项数据时,VFP会根据关键字字段修改原始数据,因此若要通过视图文件修改原数据表,就必须在视图文件中将其设定为关键字字段。而且设为关键字字段的数据必须是惟一的,若有重复数据则必须为一个源数据文件选取多个关键字字段来避免重复。铅笔图形表示字段为可修改的字段。若选取某字段为可修改字段,则视图数据修改后可自动传回源数据表中。注意:必须先为数据表设定关键字字段,才能选取可修改字段。返回4.4视图②“表”列表框可用来选取视图文件中要更改的数据表,若仅选取其中一个数据表,则中间的字段名将出现此数据表的字段,这里选“全部表”。③“重置关键字”按钮用来设定数据表的关键字字段和可修改字段为未选定状态,以便重新设定。④“全部更新”按钮用来将关键字字段以外的所有字段设定为可更新的字段。⑤“发送SQL更新”用来设定是否用视图文件中修改的数据更改源数据表中的对应数据。⑥“SQLWHERE子句”用来设定如何检测修改时发生的冲突。当视图文件同时由多个用户使用时,若在修改一个数据的同时,该数据已经被另外一个用户改变过,此时将发生冲突问题,在此就是设定对此类冲突的检测。⑦“使用更新”用来设定使用修改的方法。“SQLDELETEthenINSERT”表示修改源数据表时,先删除要修改的数据,再插入新的数据。“SQLUPDATE”表示利用SQL的修改记录功能,直接将此数据修改。返回4.5视图的其他操作(1)打开视图打开视图的命令格式为:

USE<视图名>

只有先打开数据库,才能进行打开视图操作,此操作不打开“视图设计器”。(2)修改视图打开“视图设计器”窗口修改视图的命令格式是:

MODIFYVIEW<视图名>(3)删除视图删除视图的命令格式为:

DELETEVIEW<视图名>(4)参数化视图视图查询记录满足的条件是在“视图设计器”的“筛选”选项卡中一次性设置好,然后进行查询得到满足条件的记录。查询满足不同条件的记录,则必须重新打开“视图设计器”窗口,在“筛选”选项卡中重新进行设置。为了克服上述不足,VFP提供了参数化视图。参考例题4-6。返回4.6SQL语言1.SQL概述

SQL是英文StructuredQueryLanguage的缩写,已被国际标准化组织(ISO)认定为关系数据库标准语言,它的核心是数据查询。所有的关系数据库管理系统都支持SQL。SQL主要具有以下特点:(1)SQL是一种高度非过程化的语言,它无需一步一步地告诉计算机“如何去做”,而只需要告诉计算机“做什么”。(2)SQL是一种一体化的语言,它包括了数据定义、数据查询、数据操纵、数据控制等方面的功能,它可以完成对数据库的全部操作。(3)SQL非常简洁,虽然只有为数不多的几条命令(见表4-1),但SQL的功能非常强大。另外,由于SQL非常接近英文自然语言,所以容易学习和使用;(4)SQL既可以直接以命令方式交互使用,也可以嵌入程序设计语言中以程序方式使用。无论SQL以何种方式使用,SQL的语法基本是一致的。返回4.6SQL语言2.数据定义(1)表的定义格式:CREATETABLE<表名>(字段名类型(宽度,小数,…))功能:创建表结构。(2)修改表结构格式1:ALTERTABLE<表名>ADD<字段名1><类型>[(长度[,小数位数])]格式2:ALTERTABLE<

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论