vfp的查询和视图.ppt

上传人:bao****ty 文档编号:144357446 上传时间:2020-09-07 格式:PPT 页数:21 大小:169KB
返回 下载 相关 举报
vfp的查询和视图.ppt_第1页
第1页 / 共21页
vfp的查询和视图.ppt_第2页
第2页 / 共21页
vfp的查询和视图.ppt_第3页
第3页 / 共21页
vfp的查询和视图.ppt_第4页
第4页 / 共21页
vfp的查询和视图.ppt_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《vfp的查询和视图.ppt》由会员分享,可在线阅读,更多相关《vfp的查询和视图.ppt(21页珍藏版)》请在金锄头文库上搜索。

1、Visual FoxPro,讲授 钟 丹,江苏省普通高校计算机等级考试教程,第 五 章,查询和视图,一、查询的创建和使用,基本概念: 定义:是指向一个数据库发出检索信息的请求,它使用一些条件提取特定的记录。查询的运行结果是一个基于表和视图的动态的数据结合 数据源:创建查询必须创建数据源 类型:自由表、库表、视图 数量:单张表、多张表(一般是关联的多张表) 查询的本质:一条SELECT-SQL语句,我们对数据库的使用往往是只用到其中的一部分数据如何从数量庞大的数据中找出我们所需要的,这就要使用查询;在VFP中有查询和视图2种办法可以得到我们所需要的数据,而视图更可以改变查找出来的记录,更新后送回

2、源表。,使用查询设计器创建查询 创建查询的方法: 使用create query打开“查询设计器”窗口创建查询 用“文件”“新建”/“新建”按钮打开“查询设计器” 在“项目管理器”“数据”卡片,用“新建”按钮打开“查询设计器” 用select-SQL命令直接编写(需要达到的要求) 前三个是界面窗口操作模式,后一个是真正的命令格式,用一个例子来说明查询设计器要怎样使用例1:找出CJ表中成绩大于80分的记录 学习的要求: 会使用设计器来创建查询 要脱离设计器直接用SELECT命令构造 基本步骤: 根据给出的要求判断需要使用到哪几张表,审视这些表,判断出联接条件 打开设计器,添加表,设定联接条件 设定

3、查询的输出内容 设定查询的筛选条件 设定查询的排序依据 设定分组依据:例2查询每个学生的总分、均分 设定查询结果的输出类型 运行查询,分组依据: 分组:对表中记录取重复值的记录进行压缩,形成一个结果记录,以完成基于一组记录的计算或统计 选中“分组依据”卡片,设定分组字段 注意:由分组定义可以知道,只有当选定输出内容时用到了计算的情况下才需要进行分组;若要对分组的查询结果进行筛选,则需要使用“满足条件”按钮。,多表查询的一些基本概念 联接: 联接定义:指查询或视图的一个数据库操作;两张表联接的结果是一张新表。通过比较指定字段的值联接2张或多张表(视图)中的记录,字段相同的记录形成一张新表 联接条

4、件:在联接产生新记录时,必须限定在符合什么条件时,才构成一个新记录,所谓联接条件便是这样的限定条件 联接的原因:减少数据的冗余 联接的类型:内联接,左联接,右联接,完全联接 表5-1,多表查询的创建:步骤 若有2张以上的表,在添加时一定要注意先后次序,“纽带表”要放在两张“父表”之间 若已进行了永久性关系的设置,则无须进行联接 修改联接条件可在“查询设计器”“联接”卡片中进行 联接条件和筛选条件类似,都是选出符合条件的记录;不同的是筛选是将字段值和筛选值进行比较,而联接条件是将一张表中的字段值与另外一张表中的字段值进行比较 多表查询的一些例题 最后一条例题,这样的筛选是我们要掌握的最难的程度,

5、需要设置分组条件,还要在分组的基础上再进行筛选,请特别注意,一部分查询的练习 查询学生的学号,姓名,系名,总分和平均分,按照系名升序排序,同一个系的学生按照总分降序排序。 查询每个系每门课程的总分和平均分,要求输出课程名,课程代号,系名,每个系的平均成绩和总成绩,按课程代号升序排序 查询各个系每位教师的课时数,要求输出系名,工号,姓名,课时数,并按系名升序排序,同一个系的教师按照工号升序排序 查询计算机科学系各位教师的课时数,要求输出工号,姓名,系名,课时数,并按工号降序排序,并且将查询信息保存为表,表名为:jsjkxkss.dbf,二、视图的创建和使用,视图的概念:把分散在相关表中的数据通过

6、联接条件把他们收集到一起,构成一张“虚表”。这张“虚表”就是视图,视图是数据库的一个组成部分,是基于表的并且可更新的数据集合 视图与查询的区别:视图除了可以用来查询数据之外,还可以当作表来使用,可以作为数据源,也可对查询出来的数据进行修改并送回源表中 视图的使用:请自己阅读,只要掌握到本地视图,它与查询的操作几乎一样,“视图设计器”只比“查询设计器”多一张“更新条件”卡片。,三、SELECT-SQL语句,SQL概述:SQL结构化查询语言,一个SQL命令可以代替多个VFP命令,在VFP中应该尽量用SQL命令来代替一般的VFP命令 VFP支持的SQL命令总结: SELECT-SQL ALTER T

7、ABLE-SQL:修改表记录 CREATE CURSOR-SQL:建立一张临时表 CREATE TABLE-SQL:建立一张表 DELETE -SQL:为表中要删除的记录打上删除标记 INSERT-SQL:在表末尾追加一条新记录 UPDATE-SQL: 更新表中的记录 DROP TABLE:删除一张表(在库中操作),查询的本质:SELECT-SQL命令 SELECT-SQL: 利用查询/视图设计器构造查询的本质就是最后生成一条SELECT-SQL命令 SELECT-SQL命令的格式: SELECT ALL|DISTINCT 字段 FROM 表1 INNER|LEFT|RIGHT|FULL JI

8、ON 表2 INTO |TO WHERE 字段筛选表达式 GROUP BY 分组条件 HAVING 对分组计算的结果进行筛选 UNION 连接另外一个查询的结果 ORDER BY 排序依据,SELECT-SQL应用举例: SELECT-SQL语句可以在命令窗口中输入,但若要将做好的SELECT语句保存下来,就要打开一个程序编辑窗口在其中进行编辑(如同编辑一个程序) 单张表查询(最简单的一种):例13 基于多张表的查询(最常见):例45 含有计算字段的查询和查询的嵌套:例68 组合查询(多个查询的连接)视图:例911,一部分查询的练习 查询各个系男生的总分和平均分,要求输出系名,性别,总分和平均

9、分 查询选修“中文WINDOWS95”课程并且成绩合格(=60)的学生名单,输出姓名,成绩,课程名,按成绩降序排列 查询各个学生选修课程的门数及平均分,要求输出学号,姓名,课程数和平均分 查询每门课程的选修人数及平均分,按KCDH升序排列,输出去向为表,表名为qdata.dbf 请用SELECT-SQL写,联接类型,多表查询的例题,查询学生的学号,姓名,性别和各门课程的成绩 查询学生的学号,姓名,性别,总分和平均分 查询每门课程的总成绩和平均成绩,输出课程名,课程代号,总分和平均分 查询学号,姓名,课程名及各门课程的成绩 查询学生的学号,姓名,性别,总分并且为平均分大于80分的记录,将查询的结

10、果保存为表xscjtj.dbf 查询每个学生的选课门数,输出学号,姓名,课程数 查询每门课程的选修人数,输出课程代号,课程名,选课人数 查询信息管理系中所有成绩在480分以上,并且各门课程的成绩不得低于70分的学生。要求在查询的结果中包含学生的学号,姓名,总分,平均分和最低分,并按照总分从高到低排列,基于单张表的查询例子,例1:显示JS表中所有教师的工号和姓名 例2:显示XS表中学号以“99”开头的学生的情况 例3:从高到低显示CJ表中代号为“01”的课程的学生的学号和成绩,基于多张表的查询例子,例4:显示XS和ZY两张表中三个字段XH、XM、ZYMC的内容,并根据ZYDH字段联接两张表 例5

11、:显示CJ表中有不及格课程成绩的学号和姓名,有多门课程不及格的学生只显示一次,含有计算字段的查询和查询的嵌套,例6:显示CJ表中课程代号及最高分 例7:查询每门课程的课程代号和名称以及最高分,并把查询结果保存到KC_MAXCJ.DBF表文件中 例8:显示JS表中已担任课程的教师的姓名和系名,组合查询和视图,例9:查询全校师生名单。要求如果是教师必须注明“教师”,结果中包含四个列:系名、类别、姓名和性别,并按系名排序。 例10:基于成绩表,查询各个分数段的学生的得分人数。要求结果中包含两个列:分数段类型和数量,并按分数段类型降序排序 例11:在数据库中建立一张视图viewkcxscj,该视图包含四个字段KC.KCM,XS.XH,XS.XM,CJ.CJ,

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

最新文档


当前位置:首页 > 高等教育 > 大学课件

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