《VFP查询和视课件》由会员分享,可在线阅读,更多相关《VFP查询和视课件(29页珍藏版)》请在金锄头文库上搜索。
1、第第7 7章章 查询与视图查询与视图教学目的和要求:教学目的和要求:通过本章的学习掌握如何建立与使用查询及通过本章的学习掌握如何建立与使用查询及视图,掌握查询与视图的特点。视图,掌握查询与视图的特点。教学重点:教学重点:如何建立与使用查询视图;查询与视图的区如何建立与使用查询视图;查询与视图的区别;别;教学难点:教学难点:建立与使用查询及视图;建立与使用查询及视图;7.1 查询查询查询的概念查询的概念n查询是从指定的表或视图中提取满足条件的记录,查询是从指定的表或视图中提取满足条件的记录,然后按想得到的输出类型定向输出查询结果。然后按想得到的输出类型定向输出查询结果。n建立的查询以建立的查询以
2、.qpr为文件扩展名保存在磁盘上的。为文件扩展名保存在磁盘上的。它是一个文本文件,主体为它是一个文本文件,主体为SQLselect语句。语句。n查询可以实现对数据库中数据的浏览、筛选、排序查询可以实现对数据库中数据的浏览、筛选、排序等操作;可以为其他数据库提供新的数据表;等操作;可以为其他数据库提供新的数据表;n查询可以从单个表中提取有用的数据;也可以从多查询可以从单个表中提取有用的数据;也可以从多个表中提取综合信息。个表中提取综合信息。 7.1.1 建立查询建立查询1使用向导建立查询使用向导建立查询启动向导的两种方法:启动向导的两种方法:n在项目管理器中建立:在项目管理器中建立:“数据数据”
3、选项卡选项卡“查询查询”“查询向导查询向导”n使用菜单建立查询的方法:使用菜单建立查询的方法:“文件文件”“新建新建”“查询查询”“查询向导查询向导”按钮按钮“常用工具栏常用工具栏”“新建新建”“查询查询”“向导向导”按钮按钮2用查询设计器建立查询用查询设计器建立查询n打开查询设计器的三种方法:打开查询设计器的三种方法:用用CREATEQUERY命令打开查询设计器建立命令打开查询设计器建立查询。例如输入:查询。例如输入:CREATEQUERYXSQK选择选择“文件文件”“新建新建”,或单击,或单击“常用工具常用工具栏栏”上的上的“新建新建”按钮,然后选择按钮,然后选择“查询查询”并并单击单击“
4、新建文件新建文件”打开查询设计器建立查询。打开查询设计器建立查询。在项目管理器的在项目管理器的“数据数据”选项下选择选项下选择“查询查询”,然后单击,然后单击“新建新建”按钮打开查询设计器建立按钮打开查询设计器建立查询。查询。n查询设计器及添加表及视图窗口查询设计器及添加表及视图窗口可添加当前数据库中的表或自由表及视图可添加当前数据库中的表或自由表及视图n在查询设置器中添加多个表在查询设置器中添加多个表多个表之间必须是有联系的,通过联接选项卡设置多个表之间必须是有联系的,通过联接选项卡设置n查询设计器中选项卡的设置查询设计器中选项卡的设置(1)“字段字段”选项卡选项卡“字段字段”选项卡用于指定
5、所要输出的字段。选项卡用于指定所要输出的字段。“函数和表达式函数和表达式”文本框的功能是通过输入一个函数和文本框的功能是通过输入一个函数和表达式生成一个虚拟的字段。表达式生成一个虚拟的字段。(2)“联接联接”选项卡选项卡联接选项卡是为匹配一个或多个表或视图中的记录指定联接选项卡是为匹配一个或多个表或视图中的记录指定联接条件(如字段的特定值,表间临时关系的联接条件)联接条件(如字段的特定值,表间临时关系的联接条件)连接类型:连接类型:INNERJOIN指定只有满足联接条件的记录包含在输指定只有满足联接条件的记录包含在输出结果中。此类型是默认的出结果中。此类型是默认的RIGHTOUTERJOIN指
6、定满足联接条件的记录,以指定满足联接条件的记录,以及联接条件右侧的表中记录(即使不匹配联接条件)都及联接条件右侧的表中记录(即使不匹配联接条件)都包含在输出结果中包含在输出结果中LEFTOUTERJOIN指定满足联接条件的记录,以及指定满足联接条件的记录,以及联接条件左侧的表中记录(即使不匹配联接条件)都包联接条件左侧的表中记录(即使不匹配联接条件)都包含在输出结果中。含在输出结果中。FULLJOIN指定所有满足和不满足联接条件的记录都指定所有满足和不满足联接条件的记录都包含在输出结果中。包含在输出结果中。(3 3)筛选选项卡)筛选选项卡筛选选项卡用于指定选择记录的条件。筛选选项卡用于指定选择
7、记录的条件。l l当实例与查询表中字段名相同时,用引号将其括起来当实例与查询表中字段名相同时,用引号将其括起来l l 日期必须使用严格日期格式或用日期必须使用严格日期格式或用CTOD转换函数转换函数l l 逻辑值的前后必须使用英文句点号逻辑值的前后必须使用英文句点号“.”,例如:,例如:.T.l l若想对逻辑操作符的含义取反,选中若想对逻辑操作符的含义取反,选中Not(否否)下面的按钮下面的按钮(4)“排列依据排列依据”选项卡选项卡“排序依据排序依据”选项卡用来指定字段、合计函数选项卡用来指定字段、合计函数SUM、COUNT或其他表达式,设置查询中检索记录的输出顺序或其他表达式,设置查询中检索
8、记录的输出顺序(5) “分组依据分组依据”选项卡选项卡 “分组依据分组依据”选项卡用来指定字段、选项卡用来指定字段、SUM或或COUNT之之类的合计函数,或把有相同字段值的记录合并为一组,实类的合计函数,或把有相同字段值的记录合并为一组,实现对视图结果的行进行分组。现对视图结果的行进行分组。(6) “杂项杂项”选项卡选项卡可以指定是否要输出重复记录及列在前面的记录等。可以指定是否要输出重复记录及列在前面的记录等。要指定列在前面的记录时需要在要指定列在前面的记录时需要在“排列依据排列依据”选项卡中设选项卡中设置排序依据,单击置排序依据,单击“全部全部”复选框使其为不选中,然后在复选框使其为不选中
9、,然后在输入记录个数或选中输入记录个数或选中”百分比复选框设置输出百分比。百分比复选框设置输出百分比。7.1.2 修改查询修改查询n各选项卡设置完成后,将查询保存为查询文件;也可以各选项卡设置完成后,将查询保存为查询文件;也可以再次打开查询设计器进行查询的修改。再次打开查询设计器进行查询的修改。n打开查询设计器的三种方法:打开查询设计器的三种方法:用用MODIFYQUERY命令打开查询设计器。命令打开查询设计器。例如:例如:MODIFYQUERYXSQKCJ选择选择“文件文件”“打开打开”,或单击,或单击“常用工具栏常用工具栏”上的上的“打开打开”按钮,打开按钮,打开“打开打开”对话框,然后选
10、择要修改对话框,然后选择要修改的查询文件,单击的查询文件,单击“确定确定”打开查询设计器。打开查询设计器。在项目管理器的在项目管理器的“数据数据”选项下选择选项下选择“查询查询”下面需要下面需要修改的查询文件,然后单击修改的查询文件,然后单击“修改修改”按钮打开查询设计按钮打开查询设计器。器。7.1.3 运行查询运行查询一、运行查询的方法一、运行查询的方法在项目管理器中选择查询运行在项目管理器中选择查询运行使用程序菜单中运行命令或运行按钮直接运行查询使用程序菜单中运行命令或运行按钮直接运行查询在命令窗口中使用命令来运行查询。在命令窗口中使用命令来运行查询。Do二、查询的去向二、查询的去向Vis
11、ualFoxPro执行用查询设计器产生的执行用查询设计器产生的SQL-Select语语句,并可把查询结果输送到不同的目的地,如表、报句,并可把查询结果输送到不同的目的地,如表、报表或者其他目标文件。若未选定输出目标,表或者其他目标文件。若未选定输出目标,“浏览浏览”窗窗口将作为查询结果默认的目的地。口将作为查询结果默认的目的地。 1定向输出查询结果定向输出查询结果定向输出查询结果的方法是:定向输出查询结果的方法是:“查询查询”菜单中选择菜单中选择“查询去向查询去向”在在“查查询询设设计计器器”工工具具栏栏中中选选择择“查查询询去去向向”按按钮钮,在在“查查询询去向去向”对话框中选择对话框中选择
12、2验证查询验证查询 用用“查查询询设设计计器器”生生成成的的查查询询实实际际上上是是一一条条SQL查查询询命令。运行一个查询,实际上是在执行该命令。运行一个查询,实际上是在执行该SQL查询命令查询命令查看查看SQL语句语句查看方法:单击查询设计器工具栏上的查看方法:单击查询设计器工具栏上的SQL按钮按钮选择选择“查询查询”菜单中的菜单中的“查看查看SQL”选项选项说说明:明:SQL命令将显示在一个只读窗口中,可用窗命令将显示在一个只读窗口中,可用窗口快捷菜单中设置显示字体。口快捷菜单中设置显示字体。查询总结查询总结n查询是从指定的一个或多个表及视图中提取查询是从指定的一个或多个表及视图中提取满
13、足条件的记录,然后按需要类型定向输出满足条件的记录,然后按需要类型定向输出查询结果查询结果n可以使用向导或设计器定义查询。查询可以可以使用向导或设计器定义查询。查询可以保存为扩展名为保存为扩展名为.qpr的只读文件,查询文件的只读文件,查询文件中只存放查询的定义,即一条中只存放查询的定义,即一条SQL语句,并语句,并不存放表。不存放表。n运行查询文件可以得到一个临时表或表文件,运行查询文件可以得到一个临时表或表文件,这个表与原数据表不存在任何联系这个表与原数据表不存在任何联系查询举例查询举例7.2 创建视图创建视图视图的概念视图的概念n视图兼有视图兼有“表表”和和“查询查询”的特点。的特点。与
14、查询相类似的地方是,视图也是从一个或多个与查询相类似的地方是,视图也是从一个或多个相关联的表中提取有用信息;与查询不同的地方是,相关联的表中提取有用信息;与查询不同的地方是,视图中的数据可以更新,并能将更新结果送回到基视图中的数据可以更新,并能将更新结果送回到基本表中。本表中。视图建立在数据库中,可以像表一样进行一些操视图建立在数据库中,可以像表一样进行一些操作如浏览、更改字段值。但视图中不真正存放数据,作如浏览、更改字段值。但视图中不真正存放数据,它是一个定制的虚拟表,运行时才能从基本表中提它是一个定制的虚拟表,运行时才能从基本表中提取数据。取数据。n视图分为本地视图和远程视图。视图分为本地
15、视图和远程视图。7.2.1 建立视图建立视图n打开数据库设计器打开数据库设计器无论用哪种方法创建视图,都必须打开或无论用哪种方法创建视图,都必须打开或新建一个数据库,启动数据库设计器才能建立新建一个数据库,启动数据库设计器才能建立视图。视图。n打开视图设计器打开视图设计器用命令打开视图设计器。用命令打开视图设计器。CREATE VIEWCREATE VIEW菜单操作方式菜单操作方式在项目管理器打开视图设计器。在项目管理器打开视图设计器。n向视图设计器中添加表或视图向视图设计器中添加表或视图数据库表、自由表、视图数据库表、自由表、视图n各选项卡的设置各选项卡的设置字段、联接、筛选、排序依据、分组
16、依据、杂项字段、联接、筛选、排序依据、分组依据、杂项7.2.2 视图与数据更新视图与数据更新n使用视图更新基本表使用视图更新基本表浏览或运行视图会得到一个临时表,表中数据是从浏览或运行视图会得到一个临时表,表中数据是从基本表中提取的,可以更改临时表中的数据,并将更新基本表中提取的,可以更改临时表中的数据,并将更新结果回送到基本表中,达到更改数据表的目的。结果回送到基本表中,达到更改数据表的目的。(1)指定可更新的表)指定可更新的表(2)指定可更新的字段)指定可更新的字段“钥匙钥匙”列:每个要更新的表至少要设置一个关键字列:每个要更新的表至少要设置一个关键字 ,更,更新新 过程是通过关键字进行的
17、。过程是通过关键字进行的。“铅笔铅笔”列:用于设置可更新字段,表示该字段可通过视列:用于设置可更新字段,表示该字段可通过视图图 来更新来更新(3)检查更新的合法性检查更新的合法性如果在一个多用户环境中工作,服务器上的数据也如果在一个多用户环境中工作,服务器上的数据也可以被别的用户访问,也许别的用户也在试图更新服务可以被别的用户访问,也许别的用户也在试图更新服务器上的记录。为了让器上的记录。为了让VFP检查使用视图操作的数据在更检查使用视图操作的数据在更新前是否被别的用户修改过,可使用新前是否被别的用户修改过,可使用“SQLWHERE子句子句包括包括”框中的选项帮助管理更新记录。框中的选项帮助管
18、理更新记录。(4)使用更新方式)使用更新方式“使用更新使用更新”框的选项决定向基本表发送框的选项决定向基本表发送SQL更新时的更新时的更新方式。更新方式。视图总结视图总结n视图与数据更新视图与数据更新在一次打开数据库和关闭数据库之间的一个活动周期在一次打开数据库和关闭数据库之间的一个活动周期内,使用视图时会在多个工作区分别打开视图和工作表,内,使用视图时会在多个工作区分别打开视图和工作表,默认对视图的更新不同时更新基本表,对基本表的更新默认对视图的更新不同时更新基本表,对基本表的更新不改变视图浏览窗口的显示。不改变视图浏览窗口的显示。n查询与视图的区别:查询与视图的区别:查询和视图都没有真正储存所提取的数据记录,数据查询和视图都没有真正储存所提取的数据记录,数据仍存放在原来的数据表中,查询和视图中只存放查询的仍存放在原来的数据表中,查询和视图中只存放查询的定义定义(SQL命令)。命令)。视图必须在数据库设计器环境下才能建立,并存放在视图必须在数据库设计器环境下才能建立,并存放在数据库中,建立查询不需打开数据库,并以数据库中,建立查询不需打开数据库,并以qpr为文件扩为文件扩展名存放在磁盘上;视图中的数据是可修改的,并能更展名存放在磁盘上;视图中的数据是可修改的,并能更新基本表,而查询中的数据不能修改。新基本表,而查询中的数据不能修改。