《VisualFoxPro数据库基础》第7章:数据查询与视图设计课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《VisualFoxPro数据库基础》第7章:数据查询与视图设计课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VisualFoxPro数据库基础 VisualFoxPro 数据库 基础 数据 查询 视图 设计 课件
- 资源描述:
-
1、http:/ FoxPro的的SQL命令的使用;查询命令的使用;查询设计器各选项卡的设置与设计器各选项卡的设置与SQL_Select子句的对应关系。子句的对应关系。http:/ 查询查询n7.2 视图视图n7.3 SQL命令命令n7.4 查询程序设计实例查询程序设计实例 n7.5 上机指导上机指导 n7.6 习题习题 http:/ 查询设计器简介查询设计器简介 n7.1.2 创建单表查询创建单表查询 n7.1.3 创建多表查询创建多表查询 n7.1.4 创建交叉数据表创建交叉数据表 n7.1.5 运行查询运行查询 http:/ FoxPro的查询设计器提供了一种直观而快速的数据检索途径,使用查
2、询设计器可以从一个或多个表中检索满足条件的记录,还可以根据需要对检索到的记录进行排序和分组,并可根据检索结果创建表、报表或图表等以显示或保存检索结果。如果仅从一个表中检索记录,就称为单表查询,否则,为多表查询。所创建的查询可以保存为默认扩展名为.QPR的查询文件,以供反复调用,执行指定的数据检索任务。http:/ 查询设计器选项卡http:/ Null:表示选择字段值为空(Null)的记录;Between:与之相配合的是实例文本框中以西文逗号分隔的2个实例数值,用于限定指定字段的数值范围;In:与之相配合的是实例文本框中几个以西文逗号分隔的实例数值,它表示指定字段是否与某个实例相匹配。n实例:
3、用于输入具体的条件值。n大小写:在进行字符数据的比较时,是否区分大小写。n否:对设置的条件表达式进行非运算。n逻辑:若想使当前行条件与下行条件构成复合条件,则在下拉列表中选择相应的AND或OR来连接,如果设置只有一行的简单条件则使用默认的【无】。n插入:单击【插入】按钮,可以在当前条件行之上插入一个空行。n移去:选中一个条件行时,单击【移去】按钮可以将该条件行删除。http:/ 查询设计器工具栏http:/ 根据学生数据表建立查询文件NSNL.QPR,查询男生的学号、姓名、年龄和性别,并按年龄降序排列记录。操作步骤简述如下:(1)打开查询设计器并添加表。选择【文件】|【新建】|【查询】命令,单
4、击【新建文件】按钮,选择数据表:“学生”,单击【添加】按钮,单击【关闭】按钮。(2)选择字段。单击字段选项卡,在【可用字段】列表中,依次双击“学生.学号”、“学生.姓名”、“学生.性别”,将3个字段添加到【选定字段】列表中。在【函数和表达式】文本框中输入YEAR(DATE()-YEAR(学生.出生日期)AS 年龄,单击【添加】按钮,把该表达式添加到【选定字段】列表中。http:/ 例7.1查询结果http:/ 根据学生表创建交叉数据表,查询各专业男、女生的平均入学成绩。操作步骤简述如下:(1)打开查询设计器并添加表。选择【文件】|【新建】|【查询】命令,单击【新建文件】按钮,选择数据表“学生”
5、,单击【添加】按钮,单击【关闭】按钮。(2)选择字段。单击【字段】选项卡标签,将【可用字段】列表中的“学生.性别”、“学生.专业”,添加到【选定字段】列表中。单击【函数和表达式】文本框右侧的按钮,打开【表达式生成器】,在【数学】函数下拉列表中单击求平均值的函数AVG,在【字段】列表中双击“入学成绩”,这时,【表达式】文本框中显示“AVG(学生.入学成绩)”,单击【确定】按钮,该表达式出现在【函数和表达式】文本框中,单击【添加】按钮,把该表达式添加到【选定字段】列表中。http:/ 例7.2查询结果http:/ nsnl.qpr。http:/ 创建视图创建视图 n7.2.2 修改视图修改视图 n
6、7.2.3 删除视图删除视图 n7.2.4 打开打开/关闭视图关闭视图 http:/ FoxPro在数据库中仅保存对每个视图的定义。该定义包括视图中要引用数据所在表的表名、字段名及其属性设置等。当使用视图时,Visual FoxPro根据视图定义临时获取数据。因此,视图被称为虚表或逻辑表。仅引用一个数据表中的数据所建立的视图称为单表视图;通过引用多个数据表中的数据而建立的视图称为多表视图。使用当前数据库表中数据建立的视图称为本地视图;使用远程服务器上数据建立的视图称为远程视图。http:/ DATABASE。(2)打开视图设计器。选择【文件】|【新建】|【视图】命令,单击【新建文件】按钮,选定
7、所需的数据表,单击【添加】按钮,单击【关闭】按钮进入视图设计器窗口。方式二:(1)使用菜单打开数据库。选择【文件】|【打开】命令,选择所需数据库,进入数据库设计器窗口。(2)打开视图设计器。选择【数据库】|【新建本地视图】|【新建视图】命令,选择所需的数据表,单击【添加】按钮,单击【关闭】按钮进入视图设计器窗口。观察视图设计器窗口可以发现,视图设计器仅仅比查询设计器窗口多了一个【更新条件】选项卡标签,其余选项卡标签相同,而视图设计器工具栏比查询设计器工具栏少了一个【查询去向】按钮,其余按钮相同。http:/ 根据学生数据表建立视图“平均入学成绩”,含有每个专业学生平均入学分数,记录按平均分降序
8、排列。操作步骤简述如下:(1)打开数据库。用菜单方式或命令方式打开学生管理数据库。(2)打开视图设计器。添加学生表。(3)选择字段。单击字段选项卡,双击【可用字段】列表中的“学生.专业”,将其添加到【选定字段】列表中,单击【函数和表达式】文本框右侧按钮,打开表达式生成器,在【数学】函数下拉列表中单击AVG函数,在【字段】列表中双击“入学成绩”,在【表达式】文本框中的表达式行尾输入“AS 平均入学成绩”,单击【确定】按钮,单击【添加】按钮,把表达式“AVG(学生.入学成绩)AS 平均入学成绩”,添加到【选定字段】列表。http:/ 例7.3视图浏览(6)查看视图。单击系统菜单的【查询】|【运行查
9、询】,显示结果如图7.2.1所示。(7)保存视图。关闭视图窗口,在【保存】对话框中输入视图名“平均入学成绩”,单击【确定】按钮。打开数据库设计器窗口查看学生管理数据库,可以看到刚刚建立的视图。http:/ 根据学生表和成绩表建立视图“高等数学成绩”,含有计算机专业学生的学号、姓名、专业和高等数学成绩,记录按学号升序排列。操作步骤简述如下:(1)打开数据库。用菜单方式或命令方式打开学生管理数据库。(2)打开视图设计器。添加学生表和成绩表。(3)设置连接表达式。单击【连接】选项卡标签,设置连接条件为:学生.学号成绩.学号,连接类型为内部连接。(4)选择字段。单击【字段】选项卡标签,依次双击【可选字
10、段】列表中的“学生.学号”、“学生.姓名”、“学生.专业”、“成绩.高等数学”,将个字段添加到【选定字段】列表中。http:/ 例7.4视图浏览(7)查看视图。选择【查询】|【运行查询】命令,显示结果如图7.2.2所示。(8)保存视图。关闭视图窗口,在【保存】对话框中输入视图名“高等数学成绩”,单击【确定】按钮。http:/ 在前面例题所建立的视图中,对记录进行筛选的筛选实例都是在设计阶段就确定了的,视图中的记录是相对固定的。如上例,筛选条件为:学生.专业计算机,筛选实例“计算机”在设计阶段即已确定。如果希望在每次使用视图时临时指定记录的筛选实例,例如,打开视图时提示输入具体专业名称以筛选指定
11、专业的记录,则可以采用参数视图,如下例。例例7.5 根据学生表建立视图“专业学生”,给出用户指定专业的学生信息。操作步骤简述如下:(1)打开数据库。用菜单方式或命令方式打开学生管理数据库。(2)打开视图设计器。添加学生表。(3)选择字段。单击【字段】选项卡标签,单击【全部添加】按钮选择全部字段为选定字段。(4)设置筛选条件。单击【筛选】选项卡标签,设置筛选条件为:学生.专业=?专业。http:/ 例7.5视图浏览图7.2.3 视图参数对话框http:/ 使用视图,可以从表中提取一组记录,改变这些记录的值,并把更新结果送回到源表中,视图的这一功能是通过对视图设计器的【更新条件】选项卡进行相应设置
12、来实现的。如图7.2.5所示,更新条件选项卡的各项功能如下:(1)【表】下拉列表:指定视图使用的、可以更新数据的表。(2)【字段名】列表:显示视图的选定字段,这些字段又可分为如下3类:图7.2.5 更新条件选项卡n关键字段:在钥匙符号列有标记的是关键字段,关键字段用来使视图中的修改与源表中的原始记录相匹配。系统自动将表的主关键字标记为关键字段,用户可以根据需要另选其他字段作为关键字段,方法是点击该字段的钥匙列按钮使标记出现。n可更新字段:在笔型符号列有标记的是可更新字段。n普通字段:在钥匙和笔型符号列均无标记的字段。http:/ WHERE子句包括】单选项:在远程视图进行更新源表操作时,用于检
13、测服务器上的更新冲突,4个选项如下:n【关键字段】:当源表中的关键字段被改变时,更新失败。n【关键字和可更新字段】:当远程表中的可更新字段被改变时,更新失败。n【关键字和已修改字段】:当在本地修改的任一字段在源表中已被改变时,更新失败。n【关键字和时间戳】:当远程表记录的时间戳首次检索以后又被修改过,更新失败。(7)【使用更新】单选项:用于指定字段在服务器上的如下2种更新方式:nSQL DELETE然后INSERT:删除源表记录,再创建一个新的在视图中被修改的记录。nSQL UPDATE:用视图字段的变化来修改源表的相应字段。http:/ 根据学生表建立视图“更改专业”,包含所有学生的学号、姓
14、名、性别和专业字段,使专业字段可更新。操作步骤简述如下:(1)打开学生管理数据库。(2)打开视图设计器,添加学生表,在【字段】选项卡中选定所需的4个字段。(3)单击【更新条件】选项卡标签,如图7.2.5所示,指定关键字段和可更新字段,选中【发送SQL更新】。(4)关闭视图设计器窗口,保存视图为“更改专业”。(5)在数据库设计器窗口,双击视图“更改专业”,在打开的浏览窗口,将学生“章硕”的专业字段值由“管理”改为“计算机”,关闭该视图浏览窗口,双击学生数据表,观察到“章硕”的所学专业已改为“计算机”。http:/ DATABASE 和MODIFY VIEW ,进入视图设计器窗口。http:/ D
15、ATABASE 和DELETE VIEW ,删除指定视图。http:/ DATABASE 和USE IN,打开指定视图。2.关闭视图使用命令:USE IN,关闭在指定工作区中打开的视图。http:/ Visual FoxPro的的SQL查询命令查询命令 n7.3.2 Visual FoxPro的的SQL定义命令定义命令n7.3.3 Visual FoxPro的的SQL操纵命令操纵命令 http:/ Query Language)是一种通用的、功能强大的关系数据库标准语言,国际标准化组织已将其确定为关系数据库语言的国际标准,被绝大多数商品化的关系数据库系统所采用,它简洁易学、使用方便灵活、功能丰
16、富。前面已经提到过,在使用设计器设计查询和视图时,可随时查看所对应的SQL命令,可见Visual FoxPro也支持SQL命令。Visual FoxPro的SQL命令可实现数据定义、操纵和查询功能。http:/ FoxPro的SQL查询命令,该命令的查询功能十分丰富,使用方便灵活,可实现单表查询和相关多表查询,并可嵌套使用。1.SQL_SELECT命令 简单地讲,SQL_SELECT命令实现的是从指定表,按指定方式查找指定数据并送到指定地点的操作。该命令的可选项较多,这里仅介绍其一般格式。命令格式:SELECT ALL|DISTINCT TOPPERCENT.AS,.AS.FROM!INNER
17、|LEFT|RIGHT|FULL JOIN!ON INTO|TO FILE ADDITIVE|TO PRINTER PROMPT|TO SCREENWHERE GROUP BY ,.HAVING ORDER BY ASC|DESC,ASC|DESC.http:/ JOINON 选项用于设置多表查询的连接条件,与【连接】选项卡中的设置相对应,INNER|LEFT|RIGHT|FULL分别表示内部连接、左连接、右连接和完全连接,省略时默认为内部连接。WHERE 子句用于设置对查询结果记录的筛选条件,与【筛选】选项卡中的设置相对应。GROUP BY ,.子句用于设置分组依据,与【分组依据】选项卡中的
18、设置相对应。HAVING 选项用于对分组记录进行筛选,只有满足筛选条件的分组记录才可能被输出,HAVING子句要与GROUP BY子句配合使用。http:/ BY ASC|DESC,ASC|DESC.子句用于表示查询结果记录的排列方式,与【排序依据】选项卡中的设置相对应。若排序依据列为表达式,则通常使用该列在输出列中的序号表示。ASC/DESC分别表示升序和降序,省略时,默认为升序。ALL|DISTINCT 和TOPPERCENT选项分别与【杂项】选项卡中的“无重复记录”和“列在前面的记录”设置相对应,ALL表示输出满足条件的全部记录,是选项省略时的默认值;DISTINCT表示重复的记录只输出
19、一次,即查询结果当中无重复记录;TOP子句表示输出查询结果的前N条(无PERCENT时)或前N%条(有PERCENT时),TOP子句必须配合ORDER BY子句使用,当排序依据字段有重复值时,输出的记录可能多于TOP的设置值。INTO|TO FILE ADDITIVE|TO PRINTER PROMPT|TO SCREEN子句用于指定查询结果的去向。INTO子句的可以是:ARRAY、CURSOR、DBF 或TABLE;TO FILE子句指定将查询结果送指定的文本文件,使用ADDITIVE表示将查询结果追加到指定的文本文件中,否则,覆盖文本文件内容;TO PRINTER PROMPT子句表示将查
20、询结果送打印机输出,使用PROMPT表示打印之前弹出打印设置对话框,供用户进行打印设置;TO SCREEN子句表示在Visual FoxPro主窗口或用户自定义的当前窗口中显示查询结果。当INTO或TO子句省略时,查询结果显示在浏览窗口中。http:/ FROM,它表示在浏览窗口中显示指定表的指定列。另外,在SELECT子句中还可以使用以下函数实现统计查询:AVG():计算表达式的平均值。COUNT(/*):统计指定字段的值的个数/输出记录数。MAX():求表达式的最大值。MIN():求表达式的最小值。SUM():计算表达式的和。使用上列函数时,若配合GROUP BY子句可以实现分组统计。ht
21、tp:/ 查询学生的学号和姓名。SELECT 学生.学号,学生.姓名 FROM 学生命令执行结果如图7.3.1所示。图7.3.1 例7.7命令执行结果http:/ 查询招生专业。SELECT DISTINCT 学生.专业 FROM 学生命令执行结果如图7.3.2所示。例例7.9 查询英语专业的学生信息。SELECT*FROM 学生 WHERE 学生.专业=英语命令执行结果如图7.3.3所示。图7.3.2 例7.8命令执行结果图7.3.3 例7.9命令执行结果http:/ 查询所有王姓学生的信息。SELECT*FROM 学生 WHERE 学生.姓名 LIKE 王%命令执行结果如图7.3.4所示。
22、例例7.11 查询管理专业学生的入学成绩,并按入学成绩降序排列记录。SELECT 学生.学号,学生.姓名,学生.专业,学生.入学成绩;FROM 学生;WHERE 学生.专业=管理;ORDER BY 学生.入学成绩 DESC命令执行结果如图7.3.5所示。图7.3.4 例7.10命令执行结果图7.3.5 例7.11命令执行结果http:/ 查询学生平均入学成绩。SELECT AVG(学生.入学成绩)AS 平均入学成绩 FROM 学生命令执行结果如图7.3.6所示。例例7.13 查询各专业学生平均入学成绩。SELECT 学生.专业,AVG(学生.入学成绩)AS 平均入学成绩;FROM 学生;GRO
23、UP BY 学生.专业命令执行结果如图7.3.7所示。例例7.14 查询学生人数。SELECT COUNT(*)AS 学生人数 FROM 学生命令执行结果如图7.3.8所示。图7.3.6 例7.12命令执行结果图7.3.7 例7.13命令执行结果图7.3.8 例7.14命令执行结果http:/ 查询各专业女学生人数,结果按人数升序排列。SELECT 学生.专业,COUNT(*)AS 女生人数;FROM 学生;WHERE 学生.性别=女;GROUP BY 学生.专业;ORDER BY 2命令执行结果如图7.3.9所示。例例7.16 查询专业数量。SELECT COUNT(DISTINCT 学生.
展开阅读全文