VFP基础教程创建查询和视图.docx
- 文档编号:8589316
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:8
- 大小:78.69KB
VFP基础教程创建查询和视图.docx
《VFP基础教程创建查询和视图.docx》由会员分享,可在线阅读,更多相关《VFP基础教程创建查询和视图.docx(8页珍藏版)》请在冰豆网上搜索。
VFP基础教程创建查询和视图
5.1创建查询
1.查询的概念
查询:
就是向一个数据库发出检索信息的请求,从中提取符合特定条件的记录。
查询文件:
即保存实现查询的SELECT-SQL命令的文件。
查询文件保存时,系统自动给出扩展名.qpr;查询被运行后,系统还会生成一个编译后的查询文件,扩展名为.qpx。
查询结果:
通过运行查询文件得到的一个基于表和视图的动态的数据集合。
查询结果可以用不同的形式来保存。
查询中的数据是只读的。
查询的数据源:
可以是一张或多张相关的自由表、数据库表、视图。
2.用查询设计器创建查询
基本步骤:
打开查询设计器→添加创建查询所基于的数据表→定义输出内容→设置联接、筛选、排序、分组条件→选择查询结果的输出形式→保存查询文件→运行查询。
(1)打开查询设计器
方法1:
从文件菜单或工具栏上单击新建→查询→新建文件→进入查询设计器
方法2:
当所用到的数据表已在项目中时,从项目管理器窗口中单击数据→查询→新建→新建查询→进入查询设计器
方法3:
从命令窗口中输入命令:
createquery查询文件名&创建新查询
modifyquery查询文件名&修改已存在的查询
(2)定义查询的输出内容
单击字段选项卡→从可用字段列表框中单击所需字段(当输出的列不是直接来源于表中的字段时,单击函数和表达式框边的…按钮,打开表达式生成器,构造出所需的表达式)→单击添加按钮→所需字段自动出现在选定字段框中。
(3)设置查询的筛选条件
筛选条件决定将哪些记录显示出来。
在筛选框中构造筛选条件表达式时,要注意在实例框中输入不同数据类型时的格式:
1)字符串可以不带引号(当与源表中的字段名相同时才用引号);
2)日期型数值要用{}括起来;
3)逻辑型数据两侧要带.号,如.T.,.F.
(4)设置查询结果的排序依据
排序决定查询输出结果中记录显示的顺序。
设置方法:
单击排序依据→从选定字段框选中字段→选择升序或降序→单击添加。
(5)设置查询结果的分组依据
分组是指将一组类似的记录压缩成一个结果记录,目的是为了完成基于该组记录的计算,比如:
求平均值、总和、统计个数、其中的最大值、最小值等。
几个常用的统计函数
功能
求平均值
求总和
求最大值
求最小值
统计个数
名称
AVG()
SUM()
MAX()
MIN()
COUNT()
用于分组的字段不一定是选定输出的字段,但分组字段不能是一个计算字段。
可以用满足条件…来对分组结果进行进一步筛选。
(6)对查询结果的其他设置
可以排除查询结果中所有重复的行,并设置结果的记录范围。
(7)选择查询结果的输出类型
默认情况下,查询结果将输出在浏览窗口中,且其中的数据是只读的。
设置其他输出类型的方法:
打开查询菜单→选择查询去向→在查询去向对话框中选择一种。
一般多选择表或报表。
(8)运行查询
在查询设计器打开的状态下,单击常用工具栏上的!
按钮或从查询菜单中选择运行查询。
其他情况下,可从项目管理器中选中查询文件并单击运行按钮,或从程序菜单中选择执行命令,或从命令窗口中输入:
DO查询文件名。
(9)创建多表查询
打开查询设计器→将所需的多个相关表添加进来→设置联接条件→按上面
(2)至(8)步进行。
3.用查询向导创建查询
(1)创建标准查询:
打开待查询的数据表→从文件菜单中单击新建→在新建对话框中选择查询并单击向导→选择查询向导→从单张或多张相关的表中进行字段选取→设置筛选条件→设置排序次序→选择查询结果的保存方式→给出查询文件名并选择保存位置→查询结果显示在查询窗口中。
注意:
查询此时得到的数据是只读的,不可以更新。
(2)交叉表查询
打开待查询的数据表→从文件菜单中单击新建→在新建对话框中选择查询并单击向导→选择交叉表向导→从单张表中选取字段→设计布局→加入总和信息→选择查询结果的保存方式→给出查询文件名并选择保存位置→查询结果显示在查询窗口中。
注意:
不是任何表都适宜采用交叉表的形式。
(3)用SELECT-SQL命令创建查询
常用的格式:
SELECT表名1.字段名1[AS标题名1],表名1.字段名2[AS标题名2],…
FROM数据库名!
表名1[,数据库名!
表名2][,数据库名!
表名3]
[TOFILE文本文件名|intotable|intocursor表文件名]
[WHERE选定条件]
[GROUPBY分组字段名]
[HAVING分组中的满足条件]
[ORDERBY排序字段名1[ASC|DESC][,排序字段名2[ASC|DESC]...]]
示例:
浏览学生中的查询学生student.qpr:
SELECT表xs.xhas学号,表xs.xmas姓名,表xs.xbas性别,;
表xs.csrqas出生日期,表xs.bjas班级名称;
FROM数据test!
表xs;
WHERE表xs.bj=cs1;
ORDERBY表xs.xh;
INTOTABLExs
浏览成绩中的按课程查询sub_cj.qpr:
SELECT表xs.bjas班级名称,COUNT(表xs.xh)as班级人数,AVG(表cj.cj)as平均分,;
MAX(表cj.cj)as最高分,MIN(表cj.cj)as最低分;
FROM数据test!
表xs,数据test!
表cj,数据test!
表kc;
WHERE表cj.xh=表xs.xh;
AND表kc.kcm=表cj.kcm;
AND表cj.kcm=sc1;
GROUPBY表xs.bj;
ORDERBY表xs.bj;
INTOTABLEsub_cj
5.2创建视图
1.视图的特点
1)视图是存在于数据库中的一个虚表,不以独立的文件形式保存;
2)视图中的数据是可以更改的,它不仅具有查询的功能,且可以把更新结果反映到源数据表中;
3)视图打开时,其基表自动打开,但视图关闭时,其基表并不随之自动关闭;
4)视图的数据源可以是自由表、数据库表或另一个视图。
2.用视图设计器创建本地视图
从项目管理器中选择一个数据库→选择本地视图→单击新建按钮→选择新视图→添加所需的数据表→在视图设计器中按照与创建查询相同的步骤
(2)~(6)建立视图→设置更新条件→保存视图→给出视图名称→关闭视图设计器(可以先运行一下看看)。
创建参数化视图:
在筛选页面的实例框中输入:
?
参数名→从查询菜单中选择视图参数→在对话框中给出参数名并选择参数类型→确定→保存视图→给出视图名称→关闭视图设计器(可以先运行一下看看)。
3.用视图向导创建本地视图
从项目管理器中选择一个数据库→选择本地视图→单击新建按钮→选择视图向导→选取字段→关联表→记录操作范围→筛选记录→排序记录→选择保存方式→完成。
4.用CREATESQLVIEW命令创建视图
打开数据库,用命令来创建视图:
OPENDATABASE数据库名
CREATESQLVIEW视图文件名ASSQL-SELECT语句
例:
OPENDATABASESJ
CREATSQLVIEWSCOREASSELECTSJCJ.XH,SJCJ.CJ;
FROMSJ!
SJCJWHERESJCJ.KCH=”计算机基础”
5.视图的使用
用菜单方式对视图中的记录进行编辑的方法与操作数据表相同。
也可用以下命令操作。
视图操作基本命令
打开视图文件并浏览
OPENDATABASE数据库名
USE视图文件名
BROWSE
修改视图
MODIFYVIEW视图文件名
视图重命名
RENAMEVIEW原视图文件名TO新视图文件名
删除视图
DELETEVIEW视图文件名
6.利用视图更新源表数据
可在视图设计器的更新条件页面中进行如下设置来实现对源表数据的更新:
1)从表框中选择想要更新的源表;
2)在字段名框中单击一个字段前关键列和更新列?
,使其作为主关键字和可更新字段;
3)将发送SQL更新复选框选中
5.3SQL语言中的命令语句
SQL是一种日趋流行的标准的数据库系统管理语言,能使数据检索异常地方便、灵活。
VFP5.0支持的7条SQL命令一览表
命令
功能
示例
备注
CREATETABLE-SQL
创建一个指定字段的表
createtablexs(;
xhc(4)default"1201"primarykey,;
xmc(6),;
xbc
(2)checkxb="男"orxb="女"error"性别只能是男或女"default"女",;
nln
(2)null)
新表的每个字段由名称、类型、精度、比例、是否支持NULL值和参照完整性规则来定义,可从命令本身或数组中获得这些定义。
CREATECURSOR-SQL
创建一个临时表
CREATECURSORteacher;
(TeacherIDN(5),NameC(20),Address;
C(30),OfficeNoC(8)NULL,SpecialtyM)
ALTERTABLE-SQL
以编程方式修改一个已存在的表的结构。
ALTERTABLExscjADDCOLUMNkcmcC(14)
可以修改表中每个字段的名称、类型、精度、比例、是否支持NULL值和参照完整性规则。
ALTERTABLEcj;
ALTERCOLUMNcjSETCHECKcj>=0;
ERROR"成绩不能为负数"
SELECT-SQL
从一个或多个表中检索数据。
SELECT表xs.xh,表xs.xm,表xs.xb,;
FROM数据test!
表xs;
WHERE表xs.xh>'81991025';
ORDERBY表xs.xh
可以用union命令连接两个条件。
DELETE-SQL
使用SQL语句将表中的记录加上删除标记。
DELETEFROMcjWHEREcj<60
INSERT-SQL
在已存在表的末尾追加一条新记录
INSERTINTOxs(xh,xm,xb)VALUES;
("8399101","张丽","女")
新记录包含的数据列在INSERT命令中,或者来自数组。
UPDATE-SQL
更新表中的记录
UPDATEcjSETcj=cj*1.05WHEREcj>80
可以基于SELECT-SQL语句结果更新记录
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VFP 基础教程 创建 查询 视图