用户名: 密码: 验证码: gdcode 注册

VFP基础教程第五章创建查询和视图

时间:2007-06-15 来源: 作者: 【字体: 减小 增大点击: 收藏 | 投稿
  
5.1创建查询 财 管家园 fs119.net

1.查询的概念

财管家园.fs119.net

查询:就是向一个数据库发出检索信息的请求,从中提取符合特定条件的记录。 财管 家园 fs119.net

查询文件: 财软联盟.fs119.net

即保存实现查询的SELECT-SQL命令的文件。查询文件保存时,系统自动给出扩展名.qpr;查询被运行后,系统还会生成一个编译后的查询文件,扩展名为.qpx

财软 联盟 fs119.net

查询结果:

财软.联盟.fs119.net

通过运行查询文件得到的一个基于表和视图的动态的数据集合。查询结果可以用不同的形式来保存。查询中的数据是只读的。

财软联盟,fs119.net

查询的数据源:可以是一张或多张相关的自由表、数据库表、视图。

财,管家园,fs119.net

2.用查询设计器创建查询

财软联,盟,fs119.net

基本步骤

财管家 园 fs119.net

打开查询设计器添加创建查询所基于的数据表→定义输出内容→设置联接、筛选、排序、分组条件选择查询结果的输出形式→保存查询文件→运行查询。

财软联,盟,fs119.net

1)打开查询设计器

财管,家园,fs119.net

方法1 财管家园,fs119.net

文件菜单或工具栏上单击新建查询新建文件→进入查询设计器

财管家.园.fs119.net

方法2 财管家园.fs119.net

当所用到的数据表已在项目中时,从项目管理器窗口中单击数据查询新建新建查询→进入查询设计器 财管家园 fs119.net

方法3从命令窗口中输入命令: 财软,联盟,fs119.net

createquery查询文件名&创建新查询

财软联盟 fs119.net

modifyquery查询文件名&修改已存在的查询 财软联盟.fs119.net

财软联盟.fs119.net

财管 家园 fs119.net

财管家.园.fs119.net


财软联 盟 fs119.net

财软,联盟,fs119.net

(2)定义查询的输出内容

财,管家园,fs119.net

单击字段选项卡→从可用字段列表框中单击所需字段(当输出的列不是直接来源于表中的字段时,单击函数和表达式框边的…按钮,打开表达式生成器,构造出所需的表达式)→单击添加按钮→所需字段自动出现在选定字段框中。

财管 家园 fs119.net

(3)设置查询的筛选条件 财.管家园.fs119.net

筛选条件决定将哪些记录显示出来。

财管家园,fs119.net

在筛选框中构造筛选条件表达式时,要注意在实例框中输入不同数据类型时的格式: 财,软联盟,fs119.net

1)字符串可以不带引号(当与源表中的字段名相同时才用引号); 财软联盟.fs119.net

2)日期型数值要用{}括起来; 财管家,园,fs119.net

3)逻辑型数据两侧要带.号,如.T.,.F. 财管家,园,fs119.net

(4)设置查询结果的排序依据 财软 联盟 fs119.net

排序决定查询输出结果中记录显示的顺序。 财管家园 fs119.net

设置方法: 财管家园.fs119.net

单击排序依据→从选定字段框选中字段→选择升序降序→单击添加财管,家园,fs119.net

(5)设置查询结果的分组依据

财软联 盟 fs119.net

分组是指将一组类似的记录压缩成一个结果记录,目的是为了完成基于该组记录的计算,比如:求平均值、总和、统计个数、其中的最大值、最小值等。

财管家园 fs119.net

几个常用的统计函数 财软联.盟.fs119.net

功能 财管家园 fs119.net

求平均值

财管家园,fs119.net

求总和 财软联,盟,fs119.net

求最大值
财,软联盟,fs119.net

求最小值
财 软联盟 fs119.net

统计个数 财管家,园,fs119.net

名称
财管家园.fs119.net

AVG() 财,管家园,fs119.net

SUM()
财管家园,fs119.net

MAX()
财 软联盟 fs119.net

MIN() 财软.联盟.fs119.net

COUNT() 财软.联盟.fs119.net

用于分组的字段不一定是选定输出的字段,但分组字段不能是一个计算字段。 财软联.盟.fs119.net

可以用满足条件…来对分组结果进行进一步筛选。

财软联 盟 fs119.net

6)对查询结果的其他设置 财管.家园.fs119.net

可以排除查询结果中所有重复的行,并设置结果的记录范围。 财管家园 fs119.net

7)选择查询结果的输出类型

财管家园.fs119.net

默认情况下,查询结果将输出在浏览窗口中,且其中的数据是只读的。 财软联.盟.fs119.net

设置其他输出类型的方法: 财软联盟.fs119.net

打开查询菜单→选择查询去向→在查询去向对话框中选择一种。一般多选择报表 财管 家园 fs119.net

8)运行查询 财,管家园,fs119.net

在查询设计器打开的状态下,单击常用工具栏上的按钮或从查询菜单中选择运行查询。其他情况下,可从项目管理器中选中查询文件并单击运行按钮,或从程序菜单中选择执行命令,或从命令窗口中输入:DO查询文件名。

财软联 盟 fs119.net

(9)创建多表查询

财 软联盟 fs119.net

打开查询设计器将所需的多个相关表添加进来设置联接条件按上面(2)至(8)步进行。 财软联盟,fs119.net

3.用查询向导创建查询 财软,联盟,fs119.net

1)创建标准查询: 财软联 盟 fs119.net

打开待查询的数据表→从文件菜单中单击新建→在新建对话框中选择查询并单击向导→选择查询向导→从单张或多张相关的表中进行字段选取→设置筛选条件→设置排序次序→选择查询结果的保存方式→给出查询文件名并选择保存位置查询结果显示在查询窗口中。

财软联,盟,fs119.net

注意:查询此时得到的数据是只读的,不可以更新。 财软联.盟.fs119.net

2)交叉表查询 财软 联盟 fs119.net

打开待查询的数据表→从文件菜单中单击新建→在新建对话框中选择查询并单击向导→选择交叉表向导→从单张表中选取字段设计布局→加入总和信息→选择查询结果的保存方式→给出查询文件名并选择保存位置→查询结果显示在查询窗口中。 财.管家园.fs119.net

注意:不是任何表都适宜采用交叉表的形式。

财,管家园,fs119.net

(3)用SELECT-SQL命令创建查询 财软联盟 fs119.net

常用的格式:

财软,联盟,fs119.net

SELECT表名1.字段名1[AS标题名1],表名1.字段名2[AS标题名2],… 财,软联盟,fs119.net

FROM数据库名!表名1[,数据库名!表名2][,数据库名!表名3]

财软联.盟.fs119.net

[TOFILE文本文件名|intotable|intocursor表文件名]

财软联盟 fs119.net

[WHERE选定条件]

财管.家园.fs119.net

[GROUPBY分组字段名] 财.软联盟.fs119.net

[HAVING分组中的满足条件] 财 软联盟 fs119.net

[ORDERBY排序字段名1[ASC|DESC][,排序字段名2[ASC|DESC]...]] 财 管家园 fs119.net

示例: 财软联盟 fs119.net

浏览学生中的查询学生student.qpr: 财 软联盟 fs119.net

SELECT表xs.xhas学号,表xs.xmas姓名,表xs.xbas性别,;

财软联 盟 fs119.net

表xs.csrqas出生日期,表xs.bjas班级名称;

财软,联盟,fs119.net

FROM数据test!表xs; 财管家园.fs119.net

WHERE表xs.bj=cs1;

财软联盟 fs119.net

ORDERBY表xs.xh;

财软联盟 fs119.net

INTOTABLExs 财管 家园 fs119.net

浏览成绩中的按课程查询sub_cj.qpr:

财管.家园.fs119.net

SELECT表xs.bjas班级名称,COUNT(表xs.xh)as班级人数,AVG(表cj.cj)as平均分,; 财 软联盟 fs119.net

MAX(表cj.cj)as最高分,MIN(表cj.cj)as最低分; 财 管家园 fs119.net

FROM数据test!表xs,数据test!表cj,数据test!表kc;

财.管家园.fs119.net

WHERE表cj.xh=表xs.xh;

财管,家园,fs119.net

AND表kc.kcm=表cj.kcm;

财软联.盟.fs119.net

AND表cj.kcm=sc1; 财软联盟,fs119.net

GROUPBY表xs.bj;

财,软联盟,fs119.net

ORDERBY表xs.bj;

财,管家园,fs119.net

INTOTABLEsub_cj

财管家.园.fs119.net

 

财管家园 fs119.net

财管家 园 fs119.net

财软联盟 fs119.net

财管家.园.fs119.net


财软,联盟,fs119.net

财管家园 fs119.net

5.2创建视图
财管家园 fs119.net

1.视图的特点 财软联.盟.fs119.net

1)视图是存在于数据库中的一个虚表,不以独立的文件形式保存; 财,软联盟,fs119.net

2)视图中的数据是可以更改的,它不仅具有查询的功能,且可以把更新结果反映到源数据表中; 财软联盟 fs119.net

3)视图打开时,其基表自动打开,但视图关闭时,其基表并不随之自动关闭;

财软联,盟,fs119.net

4)视图的数据源可以是自由表、数据库表或另一个视图。

财软联盟.fs119.net

2.用视图设计器创建本地视图
财管家园,fs119.net

从项目管理器中选择一个数据库→选择本地视图→单击新建按钮→选择新视图→添加所需的数据表→在视图设计器中按照与创建查询相同的步骤(2)~(6)建立视图→设置更新条件→保存视图→给出视图名称→关闭视图设计器(可以先运行一下看看)。 财管,家园,fs119.net

创建参数化视图:

财管,家园,fs119.net

在筛选页面的实例框中输入:参数名→从查询菜单中选择视图参数→在对话框中给出参数名并选择参数类型→确定→保存视图→给出视图名称→关闭视图设计器(可以先运行一下看看)。 财,管家园,fs119.net

3.用视图向导创建本地视图

财软联,盟,fs119.net

从项目管理器中选择一个数据库→选择本地视图→单击新建按钮→选择视图向导→选取字段→关联表→记录操作范围→筛选记录→排序记录→选择保存方式→完成。

财管,家园,fs119.net

4.用CREATESQLVIEW命令创建视图

财软联.盟.fs119.net

打开数据库,用命令来创建视图: 财,管家园,fs119.net

OPENDATABASE数据库名 财软联 盟 fs119.net

CREATESQLVIEW视图文件名ASSQL-SELECT语句

财软联盟,fs119.net

例:OPENDATABASESJ 财软.联盟.fs119.net

CREATSQLVIEWSCOREASSELECTSJCJ.XH,SJCJ.CJ; 财管家,园,fs119.net

FROMSJ!SJCJWHERESJCJ.KCH=”计算机基础”

财,管家园,fs119.net

5.视图的使用

财管家园.fs119.net

用菜单方式对视图中的记录进行编辑的方法与操作数据表相同。也可用以下命令操作。

财软,联盟,fs119.net

视图操作基本命令

财软联.盟.fs119.net

打开视图文件并浏览 财软联,盟,fs119.net

OPENDATABASE数据库名

USE视图文件名 财 管家园 fs119.net

BROWSE

财管家园.fs119.net

修改视图
财,管家园,fs119.net

MODIFYVIEW视图文件名 视图重命名
财,管家园,fs119.net

RENAMEVIEW原视图文件名TO新视图文件名 删除视图 财管家园,fs119.net

DELETEVIEW视图文件名

财软 联盟 fs119.net

财软联.盟.fs119.net

财软联.盟.fs119.net


财软联 盟 fs119.net

财管家园 fs119.net

6.利用视图更新源表数据

财,管家园,fs119.net

可在视图设计器的更新条件页面中进行如下设置来实现对源表数据的更新: 财管家园.fs119.net

1)从表框中选择想要更新的源表; 财管家.园.fs119.net

2)在字段名框中单击一个字段前关键列B和更新列!,使其作为主关键字和可更新字段;

财.管家园.fs119.net

3)将发送SQL更新复选框选中

财软联盟 fs119.net

 

财 软联盟 fs119.net

5.3SQL语言中的命令语句

财,软联盟,fs119.net

SQL是一种日趋流行的标准的数据库系统管理语言,能使数据检索异常地方便、灵活。

财管 家园 fs119.net

VFP5.0支持的7条SQL命令一览表 财管.家园.fs119.net

命令 财管 家园 fs119.net

功能

财管家 园 fs119.net

示例 财管.家园.fs119.net

备注
财软联 盟 fs119.net

CREATETABLE-SQL 创建一个指定字段的表 createtablexs(;

xhc(4)default"1201"primarykey,; 财软联.盟.fs119.net

xmc(6),; 财,软联盟,fs119.net

xbc(2)checkxb="男"orxb="女"error"性别只能是男或女"default"女",;

财软联盟.fs119.net

nln(2)null) 财,软联盟,fs119.net

新表的每个字段由名称、类型、精度、比例、是否支持NULL值和参照完整性规则来定义,可从命令本身或数组中获得这些定义。 CREATECURSOR-SQL 创建一个临时表 CREATECURSORteacher;

(TeacherIDN(5),NameC(20),Address;

财 软联盟 fs119.net

C(30),OfficeNoC(8)NULL,SpecialtyM)

财软联盟,fs119.net

ALTERTABLE-SQL 以编程方式修改一个已存在的表的结构。 ALTERTABLExscjADDCOLUMNkcmcC(14) 可以修改表中每个字段的名称、类型、精度、比例、是否支持NULL值和参照完整性规则。 ALTERTABLEcj;

ALTERCOLUMNcjSETCHECKcj>=0; 财管家 园 fs119.net

ERROR"成绩不能为负数"

财管,家园,fs119.net

SELECT-SQL 从一个或多个表中检索数据。 SELECT表xs.xh,表xs.xm,表xs.xb,;

FROM数据test!表xs;

财管家园 fs119.net

WHERE表xs.xh>'81991025'; 财软联,盟,fs119.net

ORDERBY表xs.xh 财管家园.fs119.net

可以用union命令连接两个条件。 DELETE-SQL 使用SQL语句将表中的记录加上删除标记。 DELETEFROMcjWHEREcj<60   INSERT-SQL 在已存在表的末尾追加一条新记录

INSERTINTOxs(xh,xm,xb)VALUES;

财管家.园.fs119.net

("8399101","张丽","女") 财管.家园.fs119.net

新记录包含的数据列在INSERT命令中,或者来自数组。 UPDATE-SQL 更新表中的记录 UPDATEcjSETcj=cj*1.05WHEREcj>80 可以基于SELECT-SQL语句结果更新记录 财软联盟,fs119.net

财软 联盟 fs119.net


文章摘自网络,如有侵权,请与我们联系.
数据统计中!!
上一篇:VFP基础教程第六章面向对象的程序设计
下一篇:VFP基础教程第四章数据库的创建和使用

精品课程推荐



用户名: 密码: 匿名? 注册