vfp的查询和视图_第1页
vfp的查询和视图_第2页
vfp的查询和视图_第3页
vfp的查询和视图_第4页
vfp的查询和视图_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

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

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

5、理系中所有成绩在480分以上,并且各门课程的成 绩不低于70分的学生。要求在查询的结果中包含学号,姓名, 总分,均分,最低分,并按照总分从高到底排列,一部分查询的练习 查询学生的学号,姓名,系名,总分和平均分,按照系名升序排序,同一个系的学生按照总分降序排序。 查询每个系每门课程的总分和平均分,要求输出课程名,课程代号,系名,每个系的平均成绩和总成绩,按课程代号升序排序 查询各个系每位教师的课时数,要求输出系名,工号,姓名,课时数,并按系名升序排序,同一个系的教师按照工号升序排序 查询计算机科学系各位教师的课时数,要求输出工号,姓名,系名,课时数,并按工号降序排序,并且将查询信息保存为表,表名

6、为:jsjkxkss.dbf,交叉表查询:要求会用向导来建立 如同EXCEL中的数据透视表,可以综合多种条件,方便直观的显示表中的数据,可利用“查询向导”来建立交叉表查询 选中“查询”“新建”“查询向导”“交叉表查询” 选取相应的表和字段 定义布局:行和列分别放置哪些字段 加入总结信息 选择保存类型,二、视图的创建和使用,视图的概念:把分散在相关表中的数据通过联接条件把他们收集到一起,构成一张“虚表”。这张“虚表”就是视图,视图是数据库的一个组成部分,是基于表的并且可更新的数据集合 视图与查询的区别:视图除了可以用来查询数据之外,还可以当作表来使用,可以作为数据源,也可对查询出来的数据进行修改

7、并送回源表中 视图的使用:请自己阅读,只要掌握到本地视图,它与查询的操作几乎一样,“视图设计器”只比“查询设计器”多一张“更新条件”卡片。,三、SELECT-SQL语句,SQL概述:SQL结构化查询语言,一个SQL命令可以代替多个VFP命令,在VFP中应该尽量用SQL命令来代替一般的VFP命令 VFP支持的SQL命令总结: SELECT-SQL ALTER TABLE-SQL:修改表记录 CREATE CURSOR-SQL:建立一张临时表 CREATE TABLE-SQLP101:建立一张表 DELETE-SQL:为表中要删除的记录打上删除标记 INSERT-SQLP87:在表末尾追加一条新记

8、录 UPDATE-SQLP92: 更新表中的记录,查询的本质:SELECT-SQL命令 SELECT-SQL: 利用查询/视图设计器构造查询的本质就是最后生成一条SELECT-SQL命令 SELECT-SQL命令的格式:P121 SELECT all|distincttop n 字段 FROM 表1 INNER|LEFT|RIGHT|FULL JION 表2 INTO |TO WHERE 字段筛选表达式 GROUP BY 分组条件 HAVING 对分组计算的结果进行筛选 UNION 连接另外一个查询的结果 ORDER BY 排序依据,SELECT-SQL应用举例:P124P126 SELECT

9、-SQL语句可以在命令窗口中输入,但若要将做好的SELECT语句保存下来,就要打开一个程序编辑窗口在其中进行编辑(如同编辑一个程序) 单张表查询(最简单的一种)例4.44.6 基于多张表的查询(最常见)例4.74.8 含有计算字段的查询(使用分组)例4.94.10 基于视图的查询 补例 子查询(查询的嵌套)例4.11 组合查询(多个查询的连接)例4.124.13,一部分查询的练习 查询各个系男生的总分和平均分,要求输出系名,性别,总分和平均分 查询选修“中文WINDOWS95”课程并且成绩合格(=60)的学生名单,输出姓名,成绩,课程名,按成绩降序排列 查询各个学生选修课程的门数及平均分,要求

10、输出学号,姓名,课程数和平均分 查询每门课程的选修人数及平均分,按KCDH升序排列,输出去向为表,表名为qdata.dbf 请用SELECT-SQL写,查询例题,例3:查询学生的学号,姓名,性别和各门功课的成绩 例4:查询学生的学号,姓名,性别及总分,平均分 例5:查询学生的学号,姓名,所修各课程名称及成绩,并将查询的结果保存为表CX05.DBF 例6:查询每门课程的总成绩和平均成绩,输出课程名,课程代号,总分和平均分 例7:查询学生的学号,姓名,性别,总分和平均分,只输出平均分大于80的记录 例8:查询每个学生的选课门数,输出学号,姓名,课程数 例9:查询每门课程的选修人数,输出课程代号,课程名,选课人数,基于视图的查询,已知在sjk库中包含一张视图viewkcxscj,该视图包含四个字段:kc.kcm,cj.xh,xs.xm和cj.cj。现在从该视图中查询有课程不及格学生的名单,查询结果包含视图中所有的字段 如果视图不存在,可以用以下命令建立:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论