下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 Visual FoxPro程序设计幻灯片.徐红波.第4章

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

Visual FoxPro程序设计幻灯片.徐红波.第4章

xzymoe_yhiwm
2010-12-25 0人阅读 举报 0 0 暂无简介

简介:本文档为《Visual FoxPro程序设计幻灯片.徐红波.第4章ppt》,可适用于IT/计算机领域

VisualFoxPro程序设计教程讲师:徐红波Email:xhbtomcomVisualFoxPro程序设计教程第章查询与视图第章查询与视图在软件开发中经常用到数据的查询如学生成绩管理、人事档案、图书检索等软件查询的准确性、速度直接影响软件的质量、效率、应用及维护。VFP开发工具用三种途径解决查询问题:用查询设计器建立查询用视图设计器建立视图用SQL语句查询。概念查询概念查询使用查询设计器从数据库表或自由表中获取有用数据经过对查询条件、查询要求的设置形成一个后缀为qpr的文件通过do命令来执行。视图视图用视图设计器从数据库表中获取有用数据与查询一样经过查询条件、查询要求的设置形成视图。视图是以视图名的形式存在数据库中。视图中数据的更新可以使源表相应数据更新。视图的执行要在数据库中执行。SQL查询SQL查询SQL语言是关系数据库的标准语言。它是结构化的查询语言。它集数据定义语言、数据操纵语言、数据控制语言的功能为一体。SQL语句SELECT查询语句SQL语句SELECT查询语句、基本语句格式:SELECT<行列限制表达式>INTODBF|TABLE<新表名>FROM<表名列表>WHERE<条件>功能:从表名列表的表中查询符合条件的按<行列限制表达式>的形式显示。若选INTODBF|TABLE<新表名>子句查询结果存入新表。说明:<行列限制表达式>格式:ALL|DISTINCTTOP<数值表达式>PERCENT别名列名AS栏目名,别名列名AS栏目名……ALL|DISTINCT子句:ALL输出结果有重复记录是子句默认值。DISTINCT输出结果无重复记录。TOP<数值表达式>PERCENT子句:TOP<数值表达式>是符合条件的内容中取前<数值表达式>个记录。PERCENT是取前面分之<数值表达式>个记录。别名列名AS栏目名,别名列名AS栏目名……子句:列名可以是字段、含字段的表达式。指定输出结果中的字段此子句也可用*代替此时显示表中所有字段。例SELECT基本语句应用例SELECT基本语句应用opendatabase学生select*from学生select*from学生intotable学生yselect姓名,入学成绩from学生where入学成绩>=selectdistinct性别from学生select学生学号,学生姓名,学生成绩数学from学生,学生成绩where学生性别=‘女’and学生成绩数学>=and学生学号=学生成绩学号selecttop*from学生orderby学号closedatabaseall、SELECT中常用的系统函数、SELECT中常用的系统函数在实际应用中经常有统计、求平均值、汇总等操作。SQL提供一些常用的系统函数。、SELECT分组子句、SELECT分组子句格式:GROUPBY<表达式>,<表达式>,……HAVING<筛选条件>功能:对查询结果进行分组。HAVING<筛选条件>为指定分组必须满足的条件例分组查询应用例分组查询应用opendatabase学生selectavg(入学成绩)from学生selectcount(*)from学生selectsum(入学成绩)from学生groupby性别having性别=‘女’、排序子句、排序子句格式:ORDERBY<关键字表达式>ASC|DESC,<关键字表达式>ASC|DESC……功能:查询结果按关键字排序ASC升序为默认值DESC为降序例查询排序应用例查询排序应用opendatabase学生select学号,姓名,入学成绩from学生orderby入学成绩descselect学生学号,学生姓名,学生成绩英语from学生,学生成绩where学生学号=学生成绩学号orderby学生成绩英语selectavg(入学成绩)as“入学成绩平均分”from学生groupby性别orderby入学成绩descclosedatabaseall、嵌套查询、嵌套查询嵌套查询就是在SELECT语句中套用SELECT语句被套在内的SELECT子句通常称为子查询()IN等谓词及比较运算符结合使用()IN等谓词及比较运算符结合使用例IN与NOTIN在嵌套查询中的应用opendatabase学生select*from学生where学号in(select学号from学生成绩where英语>=)select*from学生where学号notin(select学号from学生成绩where英语<)closedatabaseall例比较运算符在嵌套查询中的应用例比较运算符在嵌套查询中的应用opendatabase学生select*from学生awhere入学成绩=(select入学成绩from学生awherea学号=a学号and入学成绩>=)closedatabaseall()使用量词和谓词的嵌套查询()使用量词和谓词的嵌套查询格式:<表达式><比较表达式>ANY|ALL|SOME(子查询)NOTEXIST(子查询)说明:ANY、ALL、SOME为量词ANY与SOME是同义词在查询中只要子查询有一行能使结果为T则结果就为T。ALL要求子查询中所有行结果为T时结果才能为T。EXIST或NOTEXIST是检查在子查询中是否有结果返回。EXIST为有结果返回为真否则为假。NOTEXIST刚好与EXIST相反。例查询数学成绩高于分的学生的学号姓名例查询数学成绩高于分的学生的学号姓名opendatabase学生select学号,姓名from学生whereexist(select*from学生成绩where学号=学生学号and数学>=)closedatabaseall例查找比所有入学成绩小于分学生的年龄都小的学生例查找比所有入学成绩小于分学生的年龄都小的学生opendatabase学生select*from学生where出生>all(select出生from学生where入学成绩<)closedatabaseall、几个特殊运算符、几个特殊运算符()BETWEENAND运算符格式:BETWEEN<表达式>AND<表达式>说明:表示在一个区间范围内例查询入学成绩分学生情况与不在之间的学生例查询入学成绩分学生情况与不在之间的学生opendatabase学生select*from学生where入学成绩betweenandselect*from学生where入学成绩notbetweenandclosedatabaseall()LIKE运算符()LIKE运算符LIKE后含有或通配符的字符型表达式。表示个或多个字符表示一个字符。例查询姓王的所有学生情况查询姓名前两个字为王丽的学生情况例查询姓王的所有学生情况查询姓名前两个字为王丽的学生情况opendatabase学生select*from学生where姓名like“王”select*from学生where姓名like“王丽”closedatabaseall、连接查询、连接查询格式:<表名>LEFT|RIGHT|FULLJOIN<表名>ON<连接条件>()LEFTJOIN为左连接在满足连接条件的记录出现在结果中基础上第一个表不满足条件的记录也出现在结果中。()LEFTJOIN为左连接在满足连接条件的记录出现在结果中基础上第一个表不满足条件的记录也出现在结果中。例用左连接查找学生表与学生成绩表opendatabase学生select*from学生leftjoin学生成绩on学生学号=学生成绩学号closedatabaseall()RIGHTJOIN为右连接在满足连接条件的记录出现在结果中基础上第二个表不满足条件的记录也出现在结果中()RIGHTJOIN为右连接在满足连接条件的记录出现在结果中基础上第二个表不满足条件的记录也出现在结果中例用右连接查找学生表与学生成绩表opendatabase学生select*from学生rightjoin学生成绩on学生学号=学生成绩学号closedatabaseall()FULLJOIN为全连接。即满足连接条件的记录出现在结果上两表不满足连接条件的记录也出现在结果上()FULLJOIN为全连接。即满足连接条件的记录出现在结果上两表不满足连接条件的记录也出现在结果上用全连接查找学生表与学生成绩表opendatabase学生select*from学生fulljoin学生成绩on学生学号=学生成绩学号closedatabaseall、UNION子句、UNION子句用此子句可以将多个表的查询结果合并成一个结果要求查询结果具有相同字段与个数且对应字段类型要兼容。例如:select*from学生where性别=‘女’unionallselect*from学生where性别=‘男’、查询结果的存放、查询结果的存放()用INTODBF|TABLE<表名>可将查询结果存放表中()用INTOARRAY<数组名>将查询结果存入数组()用INTOCURSOR<临时表名>将查询结果存入临时表()用TOFILE<文件名>ADDITIVE将结果存入文本文件用ADDITIVE将结果追加到由<文件名>指定的文本文件尾部。否则将覆盖原有文件例关于结果存放的应用例关于结果存放的应用opendatabase学生select*from学生intotable新学生select*from学生intoarrayaselect*from学生intocursor临时学生select*from学生tofile学生文本closedatabaseall操作功能(插入、更新、删除)操作功能(插入、更新、删除)、插入格式:INSERTINTO<表名>字段,字段,…VALUES(表达式,表达式…)格式:INSERTINTO<表名>FROMARRAY数组名|MEMVAR功能:在表尾添加一个指定字段的记录说明:()格式中字段名字段名是用于指定添加记录的字段名如省略说明所有字段表达式表达式是添加字段字段的具体值。()格式ARRAY数组名是从指定的数组中添加记录的值MEMVAR是从与字段同名的内存变量中添加记录的值例插入应用例插入应用opendatabase学生use学生成绩insertinto学生成绩values(“”,,,)goscattermemvarinsertinto学生成绩frommemvargoscattertoainsertinto学生成绩fromarraya、更新、更新格式:UPDATE<表名>SET字段名=<表达式>,字段名=<表达式>……WHERE<条件>功能:更新满足条件的记录的值若省略WHERE更新全部记录的值例更新应用例更新应用use学生成绩update学生成绩set数学=数学where数学<update学生成绩set英语=英语use、删除、删除格式:DELETEFROM<表名>WHERE<条件>功能:删除符合条件的记录若省略WHERE将删除全部记录例删除应用例删除应用use学生成绩deletefrom学生成绩where英语>use查询查询建立查询、用向导建立查询、用查询设计器建立查询执行查询、用界面执行查询、用命令执行查询DO<查询文件名qpr>查询设计器的局限性查询设计器的局限性用查询设计器建立的查询简单、易学但在使用中有一定的局限性它适用于比较规范的查询而对较复杂的查询是无法实现的。例查询入学成绩最高学生的信息例查询入学成绩最高学生的信息opendatabase学生selecta学号,a姓名,a入学成绩from学生asawhere入学成绩=(selectmax(入学成绩)from学生asbwherea学号=b学号)closedatabaseall视图查询视图查询视图与查询均是从表中获取数据。视图与查询的区别:视图是一张虚表数据库中只存放视图的定义数据库不存放视图的对应数据这些数据仍然存放在表中。而查询是以qpr文件形式存放在磁盘中。更新视图的数据同时更新表的数据这一点与查询是完全不同的。建立本地视图建立本地视图、向导建立视图、视图设计器建立视图运行视图运行视图在数据库打开基础上运行视图用界面执行用命令执行use<视图名>browse小结小结查询在数据处理中的应用是普遍的VFP运用SELECT语句、查询、视图来完成查询SELECT语句对于简单到复杂要求的查询都可以实现查询与视图实质上也是基于SELECT语句的查询。查询与视图简单方便它们很相似但也有一定的区别查询是以文件形式存放于磁盘中而视图是存放在数据库中的一个虚表视图与查询的主要区别在于视图中数据的修改可以使源表数据改变。

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/43

Visual FoxPro程序设计幻灯片.徐红波.第4章

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利