Visual.FoxPro程序设计幻灯片第4章.ppt

上传人:re****.1 文档编号:570163257 上传时间:2024-08-02 格式:PPT 页数:43 大小:297.81KB
返回 下载 相关 举报
Visual.FoxPro程序设计幻灯片第4章.ppt_第1页
第1页 / 共43页
Visual.FoxPro程序设计幻灯片第4章.ppt_第2页
第2页 / 共43页
Visual.FoxPro程序设计幻灯片第4章.ppt_第3页
第3页 / 共43页
Visual.FoxPro程序设计幻灯片第4章.ppt_第4页
第4页 / 共43页
Visual.FoxPro程序设计幻灯片第4章.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《Visual.FoxPro程序设计幻灯片第4章.ppt》由会员分享,可在线阅读,更多相关《Visual.FoxPro程序设计幻灯片第4章.ppt(43页珍藏版)》请在金锄头文库上搜索。

1、Visual FoxPro程序设计教程讲师:徐红波E-mail: x_h_Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.l在软件开发中经常用到数据的查询,如学生成绩管理、人事档案、图书检索等软件,查询的准确性、速度直接影响软件的质量、效率、应用及维护。lVFP开发工具用三种途径解决查询问题:用查询设计器建立查询;用视图设计器建立视图;用SQL语句查询。第4章 查询与视图Evaluation only.Created

2、 with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.4.1 概念4.1.1 查询使用查询设计器,从数据库表或自由表中获取有用数据,经过对查询条件、查询要求的设置,形成一个后缀为qpr的文件,通过do命令来执行。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.用视图设计器从数据库表中获取有用

3、数据,与查询一样经过查询条件、查询要求的设置形成视图。视图是以视图名的形式存在数据库中。视图中数据的更新可以使源表相应数据更新。视图的执行要在数据库中执行。4.1.2 视图Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.SQL语言是关系数据库的标准语言。它是结构化的查询语言。它集数据定义语言、数据操纵语言、数据控制语言的功能为一体。4.1.3 SQL查询Evaluation only.Created with Asp

4、ose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.4.2 SQL语句4.2.1 SELECT查询语句1、基本语句格式:SELECT INTO DBF|TABLE FROM WHERE 功能:从表名列表的表中查询符合条件的,按的形式显示。若选INTO DBF|TABLE 子句,查询结果存入新表。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-20

5、11 Aspose Pty Ltd.说明:格式:ALL|DISTINCTTOP PERCENT别名.列名 AS 栏目名,别名.列名 AS 栏目名(1)ALL|DISTINCT子句:ALL输出结果有重复记录,是子句默认值。DISTINCT输出结果无重复记录。(2)TOP PERCENT子句: TOP 是符合条件的内容中取前个记录。PERCENT是取前面分之个记录。(3)别名.列名 AS 栏目名,别名.列名 AS 栏目名子句:列名可以是字段、含字段的表达式。指定输出结果中的字段,此子句也可用*代替此时显示表中所有字段。Evaluation only.Created with Aspose.Slid

6、es for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.例4.1 SELECT基本语句应用open database 学生select * from 学生select * from 学生 into table 学生yselect 姓名, 入学成绩 from 学生 where 入学成绩=500select distinct 性别 from 学生select 学生.学号, 学生.姓名, 学生成绩.数学 from 学生, 学生成绩 where 学生.性别=女 and 学生成绩.数学=60 and 学生.学号=

7、学生成绩.学号select top 2 * from 学生 order by 学号close database allEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2、SELECT中常用的系统函数在实际应用中经常有统计、求平均值、汇总等操作。SQL提供一些常用的系统函数。函数说明AVG()求的平均值COUNT(*)统计记录个数MIN()求的最小值MAX()求的最大值SUM()求的和Evaluation only.C

8、reated with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3、SELECT分组子句格式:GROUP BY , , HAVING 功能:对查询结果进行分组。HAVING 为指定分组必须满足的条件Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.例4.2 分组查询应用open databa

9、se 学生select avg(入学成绩) from 学生select count(*) from 学生select sum(入学成绩) from 学生 group by 性别 having 性别=女Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.4、排序子句格式:ORDER BY ASC|DESC, ASC|DESC功能:查询结果按关键字排序,ASC升序为默认值,DESC为降序Evaluation only.Cre

10、ated with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.例4.3 查询排序应用open database 学生select 学号, 姓名, 入学成绩 from 学生 order by 入学成绩 descselect 学生.学号, 学生.姓名, 学生成绩.英语 from 学生, 学生成绩 where 学生.学号=学生成绩.学号 order by 学生成绩.英语select avg(入学成绩) as “入学成绩平均分” from 学生 group by 性别 ord

11、er by 入学成绩 descclose database allEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.5、嵌套查询嵌套查询就是在SELECT语句中套用SELECT语句,被套在内的SELECT子句通常称为子查询Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 A

12、spose Pty Ltd.(1)IN等谓词及比较运算符结合使用例4.4 IN与NOT IN在嵌套查询中的应用open database 学生select * from 学生 where 学号 in (select 学号 from 学生成绩 where 英语=90)select * from 学生 where 学号 not in (select 学号 from 学生成绩 where 英语=500)close database allEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Cop

13、yright 2004-2011 Aspose Pty Ltd.(2)使用量词和谓词的嵌套查询格式: ANY|ALL|SOME (子查询) NOT EXIST (子查询)说明:ANY、ALL、SOME为量词,ANY与SOME是同义词,在查询中,只要子查询有一行能使结果为.T.,则结果就为.T.。ALL要求子查询中所有行结果为.T.时,结果才能为.T.。EXIST或NOT EXIST是检查在子查询中是否有结果返回。EXIST为有结果返回为真否则为假。NOT EXIST刚好与EXIST相反。Evaluation only.Created with Aspose.Slides for .NET 3.

14、5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.例4.6 查询数学成绩高于90分的学生的学号,姓名open database 学生select 学号, 姓名 from 学生 where exist (select * from 学生成绩 where 学号=学生.学号 and 数学=90)close database allEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Asp

15、ose Pty Ltd.例4.7 查找比所有入学成绩小于500分学生的年龄都小的学生open database 学生select * from 学生 where 出生 all (select 出生 from 学生 where 入学成绩500)close database allEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.6、几个特殊运算符(1)BETWEEN AND运算符格式:BETWEEN AND 说明:表示在

16、一个区间范围内Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.例4.8 查询入学成绩480-600分学生情况,与不在500-600之间的学生open database 学生select * from 学生 where 入学成绩 between 490 and 600select * from 学生 where 入学成绩 not between 490 and 600close database allEvaluati

17、on only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(2)LIKE运算符LIKE后含有%或_通配符的字符型表达式。%表示0个或多个字符,_表示一个字符。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.例4.9 查询姓王的所有学生情况,查询姓名前两个字为王丽的学

18、生情况open database 学生select * from 学生 where 姓名 like “王%”select * from 学生 where 姓名 like “王丽_”close database allEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.7、连接查询格式: LEFT|RIGHT|FULL JOIN ON Evaluation only.Created with Aspose.Slides f

19、or .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(1)LEFT JOIN为左连接,在满足连接条件的记录出现在结果中基础上,第一个表不满足条件的记录也出现在结果中。例4.11 用左连接查找学生表与学生成绩表open database 学生select * from 学生 left join 学生成绩 on 学生.学号=学生成绩.学号close database allEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile

20、 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(2)RIGHT JOIN为右连接,在满足连接条件的记录出现在结果中基础上,第二个表不满足条件的记录也出现在结果中例4.12 用右连接查找学生表与学生成绩表open database 学生select * from 学生 right join 学生成绩 on 学生.学号=学生成绩.学号close database allEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2

21、011 Aspose Pty Ltd.(3) FULL JOIN为全连接。即满足连接条件的记录出现在结果上,两表不满足连接条件的记录也出现在结果上4.13 用全连接查找学生表与学生成绩表open database 学生select * from 学生 full join 学生成绩 on 学生.学号=学生成绩.学号close database allEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.8、UNION子句 用

22、此子句可以将多个表的查询结果,合并成一个结果,要求查询结果具有相同字段与个数,且对应字段类型要兼容。例如: select * from 学生 where 性别=女 union all select * from 学生 where 性别=男Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.9、查询结果的存放(1)用INTO DBF|TABLE 可将查询结果存放表中(2)用INTO ARRAY 将查询结果存入数组(3)用I

23、NTO CURSOR 将查询结果存入临时表(4)用TO FILE ADDITIVE将结果存入文本文件,用ADDITIVE将结果追加到由指定的文本文件尾部。否则将覆盖原有文件Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.例4.15 关于结果存放的应用open database 学生select * from 学生 into table 新学生select * from 学生 into array aselect *

24、from 学生 into cursor 临时学生select * from 学生 to file 学生文本close database allEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.4.2.2 操作功能(插入、更新、删除)1、插入格式1:INSERT INTO 字段1,字段2, VALUES (表达式1, 表达式2)格式2:INSERT INTO FROM ARRAY 数组名 | MEMVAR功能:在表尾添加

25、一个指定字段的记录说明:(1)格式1中字段名1,字段名2是用于指定添加记录的字段名,如省略,说明所有字段,表达式1,表达式2是添加字段1,字段2的具体值。(2)格式2ARRAY数组名是从指定的数组中添加记录的值,MEMVAR是从与字段同名的内存变量中添加记录的值Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.例4.16 插入应用open database 学生use 学生成绩insert into 学生成绩 valu

26、es (“105010120”, 90, 80, 72)go 1scatter memvarinsert into 学生成绩 from memvargo 2scatter to ainsert into 学生成绩 from array aEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2、更新格式:UPDATE SET 字段名1=,字段名2= WHERE 功能:更新满足条件的记录的值,若省略WHERE,更新全部记录的

27、值Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.例4.17 更新应用use 学生成绩update 学生成绩 set 数学=数学+10 where 数学80update 学生成绩 set 英语=英语+10useEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose

28、 Pty Ltd.3、删除格式:DELETE FROM WHERE 功能:删除符合条件的记录,若省略WHERE将删除全部记录Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.例4.18 删除应用use 学生成绩delete from 学生成绩 where 英语100useEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.

29、0.0.Copyright 2004-2011 Aspose Pty Ltd.4.3 查询4.3.1 建立查询1、用向导建立查询2、用查询设计器建立查询4.3.2 执行查询1、用界面执行查询2、用命令执行查询 DO Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.4.3.3 查询设计器的局限性 用查询设计器建立的查询简单、易学,但在使用中有一定的局限性,它适用于比较规范的查询,而对较复杂的查询是无法实现的。Evalu

30、ation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.例4.22 查询入学成绩最高学生的信息open database 学生select a1.学号, a1.姓名, a1.入学成绩 from 学生 as a1 where 入学成绩=(select max(入学成绩) from 学生 as b1 where a1.学号=b1.学号)close database allEvaluation only.Created with Aspos

31、e.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.4.4 视图查询视图与查询均是从表中获取数据。视图与查询的区别:视图是一张虚表,数据库中只存放视图的定义,数据库不存放视图的对应数据,这些数据仍然存放在表中。而查询是以qpr文件形式存放在磁盘中。更新视图的数据同时更新表的数据,这一点与查询是完全不同的。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004

32、-2011 Aspose Pty Ltd.4.4.1 建立本地视图1、向导建立视图2、视图设计器建立视图Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.4.4.4 运行视图在数据库打开基础上运行视图用界面执行用命令执行use browseEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 20

33、04-2011 Aspose Pty Ltd.4.5 小结查询在数据处理中的应用是普遍的,VFP运用SELECT语句、查询、视图来完成查询,SELECT语句对于简单到复杂要求的查询都可以实现,查询与视图实质上也是基于SELECT语句的查询。查询与视图简单方便,它们很相似,但也有一定的区别,查询是以文件形式存放于磁盘中,而视图是存放在数据库中的一个虚表,视图与查询的主要区别在于视图中数据的修改可以使源表数据改变。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号