第5章查询与视图课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第5章查询与视图课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 查询 视图 课件
- 资源描述:
-
1、第第 5 章章 查查 询询 与与 视视 图图1感谢你的观看2019年7月19主要内容:1、结构化查询语言SQL2、查询设计器的使用3、视图及视图设计器4、查询与视图的区别重点:1、结构化查询语言SQL 的查询语句2、查询设计器的使用难点:1、结构化查询语言SQL 的查询语句 2、查询与视图的区别要求:1、掌握结构化查询语言SQL的数据定义、数据操纵 及数据查询语句2、掌握使用查询设计器设计查询的方法3、掌握视图的概念及其和查询的区别4、掌握使用查询设计器设计查询的方法2感谢你的观看2019年7月19 5.1 查询与统计命令 数据查询通常包括对数据表中原始数据的直接检索和对原始数据做特定的统计和
2、计算两类。3感谢你的观看2019年7月19 5.1.1 数据“筛选过滤”“筛选过滤”分为横向和纵向两种。前者叫做记录筛选,它能够屏蔽掉不满足条件的记录集;后者叫做字段筛选,它能够屏蔽我们不感兴趣的字段集。记录筛选实现了关系运算中的选择运算(Selection),字段筛选实现了关系运算中的投影运算(Projection)。1记录筛选命令:记录筛选命令:SET FILTER (1)格式 SET FILTER TO (2)功能 设置当前表中可以被访问的记录必须满足的条件。2设置字段筛选命令:设置字段筛选命令:SET FIELDS (1)格式 SET FIELDS TO/ALL LIKE/EXCEPT
3、 字段名通配式 (2)功能指定当前表中可以被访问的字段。4感谢你的观看2019年7月19 (3)参数说明 :逐一列出当前表中可被访问的字段的名称。ALL:表示允许访问当前表中的所有字段。ALL LIKE 字段名通配式:表示当前表中所有与字段名通配式相匹配的字段均为可被访问字段。ALL EXCEPT 字段名通配式:表示当前表中所有不与字段名通配式相匹配的字段均为可被访问字段。例子:设置STUDENT表中只有“计算机”专业学生的学号、姓名、出生日期三个字段可被访问。5感谢你的观看2019年7月19在命令窗口输入如下命令:USE STUDENTBROWSESET FILTER TO 专业=“计算机”
4、SET FIELDS TO 学号,姓名,专业BROWSE显示结果如图所示。6感谢你的观看2019年7月19 5.1.2 顺序查询与索引查询 VFP提供了顺序查询和索引查询两种查询定位方法,前者是按照记录的物理排列顺序依次查询并定位于满足指定要求的第一条记录;后者是利用索引文件根据索引关键字的值基于二分算法进行查询定位。1.顺序查询命令:LOCATE (1)格式 LOCATE FOR (2)功能 执行该命令,系统在指定的记录范围(缺省表示所有记录)内,顺序查询满足条件的第一个记录。提示:顺序查询不需对表事先建立索引。若要继续查找满足条件的下一个记录,应使用CONTINUE。VFP默认EXACT
5、OFF,在此状态下用LOCATE命令查找字符型数据时,进行的是不精确匹配,若要进行精确匹配查找,请使用“”。7感谢你的观看2019年7月19 例子例子 在STAFF表中查询职称是讲师的教师记录。USE STAFF 记录:1/5 (状态行上显示)LOCATE ALL FOR 职称“讲师”记录:2/5 (状态行上显示)?RECNO(),FOUND()2 .T.(屏幕上显示)CONTINUE 记录:4/5 (状态行上显示)?RECNO(),FOUND()4 .T.(屏幕上显示)CONTINUE?RECNO(),FOUND()6 .F.8感谢你的观看2019年7月192.索引查询命令:索引查询命令:S
6、EEK(1)格式SEEK(2)功能执行该命令,系统查找主控索引关键字的值与命令中的值相匹配的第一条记录,若找到,指针指向该记录,FOUND()返回.T.;若没找到,指针指向表的eof标志,FOUND()和EOF()将分别返回.F.和.T.。9感谢你的观看2019年7月19 提示:使用SEEK命令之前,要求数据表已按要查询的字段建立过索引,并被设置为主控索引。SEEK命令只能查询主控索引关键字字段,对于字符型关键字段,必须加字符串定界符;对于日期型关键字段,必须加日期定界符。例子:例子:STUDENT表中索引查询学号为“04006”的学生姓名。USE STUDENT INDEX ON 学号 TA
7、G XH&按学号字段建立索引,索引名是XH,并自动被系统作为主控索引 SEEK 04006?姓名 周文敏 (屏幕上显示)10感谢你的观看2019年7月19顺序查询索引查询查询内容表中各字段主控索引关键字字段对表的要求无论是否建立索引文件均可方便地查询必须建立索引文件,并被设为主控索引命令特点可使用子句限定查询范围,可与CONTINUE配合使用,查出表中全部符合条件的记录在整个表中查询,找出符合条件的第一条记录查询速度慢快11感谢你的观看2019年7月19 5.1.3 统计命令 1记录个数统计命令:记录个数统计命令:COUNT (1)格式COUNT FOR/WHILE TO (2)功能 统计当前
8、数据表中内满足的记录个数,若命令中含有,则将结果送入指定内存变量中保存。否则将统计结果显示在屏幕上。提示:如果SET DELETE是ON,已做了删除标记的记录将不被COUNT命令统计,但仍被RECCOUNT()函数统计。12感谢你的观看2019年7月19 2计算总和命令:计算总和命令:SUM (1)格式 SUM FOR/WHILE TO (2)功能 对当前数据表中内满足的记录,按指定数值字段进行纵向求和,若命令中含有,则将结果送入对应的内存变量中保存。3计算平均数命令:计算平均数命令:AVERAGE (1)格式 AVERAGE FOR/WHILE TO 13感谢你的观看2019年7月19 (2
9、)功能 对当前数据表中内、满足指定条件的记录的指定数值字段进行纵向求平均值,若命令中含有,则将结果送入对应的内存变量中保存。提示提示:1.COUNT/SUM/AVERAGE命令中缺省时表示所有记录。2.SUM/AVERAGE命令中指定求和/求平均字段,缺省表示对所有数值型字段求和/求平均值。14感谢你的观看2019年7月19 例子 统计STUDENT表中男生人数、所有男生的奖学金总额和平均值。USE STUDENT COUNT FOR 性别=.T.TO 男生人数 SUM 奖学金 FOR 性别=.T.TO 奖学金总额 AVERAGE 奖学金 FOR 性别=.T.TO 平均奖学金?男生人数,奖学金
10、总额,平均奖学金 4 685.00 171.2515感谢你的观看2019年7月19 5.1.4 多表操作命令 1工作区及其选择工作区及其选择 共有三种标识工作区的方法:区号:分别用数字132767表示。区名:对于前10区,用字母AJ表示。从11区往后用W11W32767表示。别名:打开在工作区上的表的别名(由USE命令的ALIAS子句指定)。若不指定别名,则系统自动以表名为别名选择当前工作区命令:SELECT SELECT命令来重新选择当前工作区:SELECT/0 16感谢你的观看2019年7月19 (3)非当前工作区字段的引用 访问当前工作区中打开表的字段时,可以直接引用字段名,而访问非当前
11、工作区中打开表的字段时,应使用如下格式:/.或者:/-2.建立表之间的临时关系命令:建立表之间的临时关系命令:SET RELATION (1)格式 SET RELATION TO INTO (2)功能 把当前工作区上的表(父表)与在另一工作区上打开的子表通过关联字段建立指针联动关系,使得当前工作区上表的指针移动时,子表的记录指针也发生相应的移动。17感谢你的观看2019年7月19 (3)参数说明 :用于关联两表的字段表达式,通常由两表共有的字段构成,该字段必须是子表的主控索引关键字。:指定子表的区号、区名或表别名。提示提示:要求建立临时关系的两个表必须具有公共属性字段,且子表已按该字段建立了索
12、引并被设置为主控索引;父表打开在当前工作区,子表打开在其它工作区。临时关系不同于永久关系,它不会永久保存,只要父表或子表关闭,或使用了取消临时关系命令SET RELATl0N TO,临时关系即随之取消。18感谢你的观看2019年7月19 例例:在表TEACH与COURSE之间建立临时关系,使浏览查看TEACH表中所有教工的授课情况时也能看到课程名、课时和学分。OPEN DATABASE 教学管理 SELECT 0 USE COURSE ALIAS COU&打开子表COURSE INDEX ON 课程号 TAG KCH&对子表按课程号建立索引 SELECT 0 USE TEACH&打开父表TEA
13、CH SET RELATION TO 课程号 INTO COU&按课程号建立临时关系 BROWSE FIELDS 教工号,课程号,COU.课程名,COU.课时,COU.学分19感谢你的观看2019年7月19取自于TEACH取自于COURSE显示结果如图:20感谢你的观看2019年7月19 5.2 使用查询设计器建立查询 VFP提供了两种方法实现结构化查询:一种是用VFP 提供的“查询设计器”或“查询向导”建立查询文件并运行;另一种是直接编写SELECT-SQL命令并执行。本节介绍用“查询设计器”建立查询的方法。21感谢你的观看2019年7月19 5.2.1 查询设计器简介 查询设计器是创建和修
14、改查询文件的有力工具,查询文件的扩展名为“.QPR”,其内容就是SELECT-SQL命令。启动查询设计器的方法:1.从项目管理器启动查询设计器(建议使用,以便文件的归类管理。)2.从“文件”菜单启动查询设计器。“查询设计器”窗口 22感谢你的观看2019年7月195.2.2 使用查询设计器建立查询文件 以实例说明使用查询设计器建立查询的操作步骤。例例:用查询设计器建立查询文件 CJCX.QPR,根据表GRADE.DBF和COURSE.DBF,查询具有3个学分的各门课程的课程号、课程名、最高成绩、最低成绩、平均成绩和选修人数,并要求按课程号升序显示。该查询涉及表GRADE.DBF和COURSE.
15、DBF,首先把表GRADE和COURSE按公共属性课程号字段建立关联。操作步骤如下:(1)启动查询设计器,添加“学生成绩”库中的STUDENT表、GRADE表和COURSE表(2)设置联接条件(图1)。(3)选定输出列(图2)。(4)设置筛选条件(图3)。(5)结果排序的依据(图4)。(6)分组所依据的字段(图5)(7)选择“杂项”选项卡(图6)(8)保存查询文件。23感谢你的观看2019年7月19图1图2图3图424感谢你的观看2019年7月19图5图625感谢你的观看2019年7月19 5.2.3 查询文件的使用(1)运行查询文件,得到查询结果(图1)。(2)选择查询结果的输出去向(图1)
16、。(3)查看生成的SELECT-SQL命令(图1)。图1图2图326感谢你的观看2019年7月19 5.3 结构化查询语言SQL SQL结构化查询语言主要特点:SQL是一种一体化的语言,它包括了数据定义、数据查询、数据操纵和数据控制等方面的功能,它可以完成数据库活动中的全部工作。SQL是一种高度非过程化的语言。SQL语言非常简洁。SQL是关系数据库系统的国际标准语言。27感谢你的观看2019年7月19 5.3.2 SELECT-SQL 命令概述 1.SELECT-SQL 命令的语法格式命令的语法格式 SELECT ALL/DISTINCTTOP nExpr PERCENT Alias.Sele
17、ct_Item AS Column_Name,Alias.Select_Item AS Column_Name FROM DatabaseName!TableName AS Local_Alias,DatabaseName!TableName ASLocal_Alias INNER/LEFTOUTER/RIGHTOUTER/FULLOUTER JOIN DatabaseName!TableName ASLocal_Alias ON JoinCondition WHERE JoinCondition AND JoinConditionAND/OR FilterCondition AND/OR F
18、ilterConidion ORDER BY Order_Item ASC/DESC,Order_Item ASC/DESC GROUP BY GroupCo1umn,GroupColumnHAVING FilterCondition TO PRINTER/FILE FileNameADDITIVE/SCREEN INTO TABLE Tablename/CURSOR Cursorname/ARRAY Arrayname 28感谢你的观看2019年7月192.SELECT-SQL 命令功能命令功能:从一个或多个表中查询指定条件的数据并输出。3.参数说明参数说明 (1)SELECT子句:指定查询
19、输出的结果。ALL:表示查询结果中包括所有满足查询条件的记录,也包括重复值。默认为ALL。DISTINCT:表示在查询结果中内容完全相同的记录只能出现一次。Alias.Select_Item:指定作为查询结果的列内容,可以是字段名、常量或表达式;Alias表示表名(或表别名),用Alias.标识来自不同表的同名字段。AS Column_Name:指定查询结果中列的标题名称。TOP nExpr PERCENT:限制查询记录的数目为前nExpr条或占记录总数的百分比为nExpr。注意:TOP参数必须与ORDER BY子句联用。29感谢你的观看2019年7月19(2)FROM子句:指定查询数据所在的
20、表以及在联接条件中涉及的表。DatabaseName!TableName AS Local_Alias:TableName表示要操作的表名;DatabaseName表示数据库名,如果TableName表不是自由表,且包含它的数据库不是当前数据库,则用DatabaseName!指定数据库;Local_Alias表示表的别名。(3)JOIN子句:指定多表之间的联接方式。INNER/LEFTOUTER/RIGHT OUTER/FULLOUTERJOIN:内部/左(外部)/右(外部)/完全(外部)联接。其中的OUTER关键字是任选的,它用来强调创建的是一个外部联接。ON 子句:与JOIN子句联用,指定
21、多表之间的联接条件(JoinCondition)。(4)WHERE子句:指定多表之间的联接条件(JoinCondition)和查询条件(FilterCondition),多个条件用AND或OR联结。30感谢你的观看2019年7月19(5)ORDER BY子句:指定对查询结果排序的依据。Order_Item:指定排序所依据的列。ASC指定查询结果以升序排列,DESC指定查询结果以降序排列。(6)GROUP BY子句:指定对查询结果分组的依据。GroupCo1umn:指定分组所依据的字段。HAVING子句:与GROUP BY子句联用,指定对分组结果进行筛选的条件(FilterCondition)。
展开阅读全文