




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第十三章查询与视图,2,1、使用查询向导2、使用查询设计器3、直接编写SelectSQL语句,VFP中用SQL进行查询主要有三种方式:,13.1查询,3,1、用查询向导进行查询,【例13-1】利用查询向导查询Xs.dbf中的所有记录。,第一步:在VFP窗口中,选文件新建查询,选“向导”第二步:字段选取第三步:筛选记录第四步:排序记录第五步:完成,4,2、用交叉表向导进行查询(见书,略),3、用图形向导进行查询,5,4、使用查询设计器进行查询,查询任务:(1)单表查询(2)多表的查询进入查询设计器的方式:(1)菜单方式进入(2)命令方式进入:CreateQueryHello其中,“CreateQuery”是命令,表示建立一个查询,“Hello”是建立的查询文件名,其扩展名为.qpr,6,【例13-4】在Xs.dbf和Xscj.dbf中查询学号,姓名,年龄,数学,英语,数学和英语的平均分,并按数学降序排列。要求查询的结果中,“数学”,“英语”,“平均分”用中文显示字段标题。,选文件新建查询新建文件,按提示输入待查的表Xs.dbf,Xscj.dbf,得到如下界面,7,查询设计器工具栏;界面的下半部分有6个选项卡,8,字段:可用来设置查询输出的字段或表达式,筛选:若对查询进行限制,只查询满足某些条件的记录,可以使用设计器中的筛选功能。,排序依据:可用来对查询输出的结果进行排序。,分组依据:将一组关键字相同的记录压缩成一条记录输出。如若按性别分组,则只输出“男”、“女”两条记录;如按系别分组,则同一个系只显示一条结果记录,本例中不分组。,杂项:用来设置一些特殊的查询输出。如选复选框“无重复记录”,则查询结果中不显示相同的记录,9,联接:设置表之间的联接条件,“联接”有4种类型。,内联接(InnerJoin):两个表中的字段都满足联接条件,记录才加入查询结果左联接(LeftOuterJoin):联接条件左边的表中的记录都包含在查询结果中,而右边的表中的记录只有满足联接条件时,才选入查询结果。右联接(RightOuterJoin):联接条件右边的表中的记录都包含在查询结果中,而左边的表中的记录只有满足联接条件时,才选入查询结果。完全联接(FullJoin):两个表中的记录不管是否满足条件都选入查询结果中。系统一般默认选内联接。,10,保存结果:(1)在文件菜单下选“保存”(2)直接按Ctrl+S(3)按工具栏中的磁盘图标出现一个对话框,你可以选择相应的文件夹和文件名来进行保存。如文件取名为Ex12_2,文件的扩展名为.qpr,系统自动加上,不必要输入。,11,察看查询结果:(1)在程序或命令窗口中用DoEx12_2.qpr(2)如果现在想看查询的结果,可用鼠标单击工具栏中的“!”或选菜单“查询”下面的“运行查询”,即可看到查询结果:,12,查询去向:从菜单“查询”下面选“查询去向”,屏幕上会出现一个对话框如下图:,13,5、用Select_SQL语句进行查询SQL具有强大的查询功能。上面我们用查询设计器得到的查询文件的内容就是一条Select_SQL语句。,该语句主要由3个关键字组成:SelectFromWhere前两个关键字是必不可少的。SelectFrom之间说明查询数据的范围,可以用一个“*”号表示选择所有的字段,FromWhere之间主要说明数据的来源及去向,显示方式等要求,多个表进行查询时,还要选联接,Where后对查询输出增加一些筛选条件,是否分组,输出时是否排序,是否与另一个查询联合。这条命令,与查询设计器中的6个选项卡相对应。下面举一些常用例题,以说明该语句的使用。,14,【例13-5】用Select_SQL语句,查询Xs.dbf中的全部数据。命令为Select*FromXs“*”表示选择所有的字段。本例中如果想使字段xh,xm,nl,xb,bj分别用汉字显示,则将上面的命令改写如下:SelectxhAs学号,xmAs姓名,nlAs年龄,xbAs性别,bjAs班级FromXs,【例13-6】查询所有李姓的学生。Select*FromXsWhere“李”$Xm,【例13-7】模糊查询姓名中含有“伟”字的学生名单。SelectXs.xmAs姓名,Xs.bjAs班级FromXsWhere“伟”$Xm,15,【例13-8】查询该班男女学生的人数。本题查询中,其目标是统计男女学生人数,因此侧重点放在分组统计中,其中需要使用到一个函数Count(),Count(*)表示对符合条件的所有记录进行统计。还需要用GroupByxb对查询结果按性别进行分组。命令如下:SelectxbAs性别,bjAs班级,Count(*)As人数FromXsGroupByxb,16,【例13-9】查询姓名,班级及各科成绩,其中要求姓名、班级、数学用中文显示标题,并且只显示平均成绩在80分以上的学生。分析:本题涉及到两个表Xs.dbf和Xscj.dbf的数据,命令如下:SelectXs.xmAs姓名,bjAs班级,Fox,sxAs数学,English,(Sx+Fox+English)/3As平均FromXs,XscjWhereXs.xh=Xscj.xhAnd(Sx+Fox+English)/380,17,18,【例13-10】查询数学成绩在6080之间的所有学生的姓名、班级、数学,且结果按数学成绩的降序排列,并将查询结果保存到数据表Myquery.dbf。,方法一、命令SelectXs.xm,Xs.bj,Xscj.sxFromXs,XscjIntoTableMyqueryWhereXs.xh=Xscj.xhAndsx=60Andsx80,21,【例13-12】查询英语成绩高于85分的学生的姓名,性别,班级。命令:,Selectxh,xmAs姓名,xbAs性别,bjAs班级FromXsWherexhIn(SelectxhFromXscjWhereEnglish85),也可以不使用嵌套查询的方法,而用一般的方法进行处理,命令如下:SelectXs.xh,Xs.xmAs姓名,xbAs性别,bjAs班级FromXs,XscjWhereXs.xh=Xscj.xhAndXscj.English85,22,常用的系统函数AVG(表达式):求平均值。COUNT(*):统计记录个数。MAX(表达式表):求最大值。MIN(表达式表):求最小值。SUM(表达式):求表达式的和。,23,【例13-13】查询男女生的各科平均成绩以及数学、英语的最高成绩和最低成绩。,SelectxbAs性别,AVG(Fox)AsFOX平均,AVG(sx)As数学平均,AVG(English)As英语平均,MAX(sx)As数学最高,MIN(sx)As数学最低,MAX(english)As英语最高,MIN(english)As英语最低FromXs,XscjWhereXs.xh=Xscj.xhGroupByxb,24,【例13-14】查询姓名,性别,FOX,数学,英语,将结果放在表单的列表框中。操作步骤:第一步,建立一个表单,在表单中加入列表框控件,在列表框上面加入5个标签,将他们的caption属性分别修改为姓名,性别,FOX,数学,英语,如图13-23:,25,第二步,将list1的属性作如下修改:columncount5columnlines.F.&若为.T.则每栏之间有线隔开rowsourceselectxs.xm,xb,sx,englishfromxs,xscjwherexs.xh=xscj.xhrowsourcetype3SQL语句,26,第三步,保存并运行,就可以得到查询结果,27,选项补充说明:ALL:表示查询的结果中可包括重复记录,系统默认。DISTINCT:表示查询结果中不包括重复记录。TOP数值表达式:表示只输出满足条件的前几个记录,输出的个数由数值表达式确定。TOP数值表达式PERCENT:表示只输出满足条件的前百分之几个记录,如TOP50PERCENT,表示只输出满足条件的前50%的记录。FORCE:表示严格按指定的联接条件来联接表,以免VFP因进行联接优化而降低查询速度。,28,INTO:其中的有3种选择:(1)INTOARRAY:表示将查询结果输出到数组。(2)INTOCURSOR:表示将查询结果放到一个只读的临时表。(3)INTODBF:由查询结果产生一个表,与例10方法一中的“intotable”结果相同。TOFILE:将查询结果输出到一个文本文件。TOPRINTER:将查询结果输出到打印机。如果有PROMPT选项,则显示打印机的选择页面。,29,PREFERENCE子句:用于记载浏览窗口的配置参数,再次使用该子句时可用5”,则表示“男”或“女”的人数要大于5才显示,30,视图与查询的区别:(1)只能在数据库中建立视图。(2)用Select_SQL查询显示的结果是只读的,不能进行修改,但用视图查询的结果可以对某些字段进行修改。,13.2视图,视图:,31,视图的创建(1)命令方式:前提是要有打开的数据库。用命令方式建立视图的一般形式为:CreateSQLView视图名AsSelect_SQL语句(2)菜单方式(主要介绍),视图分类(1)本地视图:可查询和修改本机上的表;(2)远程视图:可修改网络上其他用户的表。,32,(1)在VFP系统菜单中,选文件新建视图新建文件(或视图向导),即进入了视图设计器。注意:在上述步骤中出现“视图”为灰色不可用时,说明当前没有打开的数据库,这时是不可以建立视图的。,(2)在项目管理器中选数据库下的“本地视图”,点击命令按钮“新建”,出现“新建本地视图”的界面。如选“视图向导”,则进入本地视图向导,根据系统的提示一步一步地建立视图。,1、创建视图,33,【例13-15】建立学生成绩视图并允许更新数学成绩。,(1)打开已经建好的项目文件hello.pjx(2)从“数据”下面展开数据库student选择“本地视图”来新建视图。然后选表xs.dbf,xscj.dbf,分别添加,然后选关闭。这样,将两个有关的表添加到了数据环境中。,34,35,36,(3)视图设计器与前面介绍过的查询设计器很相似,但有一个重要的不同之处,即在视图设计器下面的选项卡中,有一个“更新条件”选项卡,能用来对查询的数据进行更新,而在查询设计器中是没有这项功能的。,xs.dbf与表xscj.dbf之间有一条连线,表示两个数据库表通过学号(xh)建立了永久关系。,37,(1)选取字段,在“字段”选项卡中,按题目的要求将xh,xm,bj,fox,sx,english等与学生成绩相关的字段加入“选定字段”框当需要对某个字段的属性进行处理时,可以选中该字段,然后选“属性”,如选xm,进入界面:,选项卡介绍,38,图标,钥匙图标对应的字段被选中为关键字段;铅笔图标对应下的字段表示可修改的字段。如图13-29,在数学(sx)前对应的铅笔图标位置下选中,表示运行视图过程中,可以修改数学成绩。这里要注意的是,必须先选关键字段,然后才能选可修改字段。最后,要选中“发送SQ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 鸡西市重点中学2025届校高三第五次月考物理试题含解析
- 南开大学滨海学院《体育休闲娱乐导论》2023-2024学年第二学期期末试卷
- 工程质量控制中的风险识别与应对策略
- 第8课 北宋的政治 教案2024-2025学年七年级历史下册新课标
- 白领上班背包使用习惯问卷
- 金湾区温室大棚施工方案
- 襄阳移动木屋施工方案
- 燃烧器改造施工方案
- 喷灰漆施工方案
- 临时用户供电施工方案
- 道路施工安全隐患及防范措施
- 新生儿鱼鳞病个案护理
- 生物质燃料的资源开发与利用
- 《积极心理学》课件
- 食管胃底静脉曲张出血的诊治指南解读
- 急性农药中毒护理查房
- 2024-2025北京高考英语作文及范文汇编
- 2024年八年级语文下册《经典常谈》第一章《说文解字》练习题卷附答案
- 特殊环境焊接防护技术
- 通用电子嘉宾礼薄
- 学校辅导员安全培训课件
评论
0/150
提交评论