第一节查询向导.docx
- 文档编号:17391739
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:23
- 大小:151.34KB
第一节查询向导.docx
《第一节查询向导.docx》由会员分享,可在线阅读,更多相关《第一节查询向导.docx(23页珍藏版)》请在冰点文库上搜索。
第一节查询向导
第一节:
查询向导
当我们建立的表中只有几个、十几个记录时,利用“浏览”窗口可以较快地查找先符合一定条件的记录,但是,当我们的表较大,例如有几百、上千甚至上万个记录时,用浏览的方式就相当困难了。
这样的效率和不建立表几乎没有什么两样。
我们建立数据库存储数据不是目的,真正的目的是利用数据库管理技术来操作这些数据信息。
表的查询是数据处理工作中的重要工作之一,它能在大量的记录中找出符合一定条件的记录。
下面,我们利用示图来看一下如何用向导建立查询。
从“工具”菜单中选取“向导”,单击其中的“查询”,就会进入“向导选取”。
这里有五个向导选项,光标点取哪个向导时,就会在就会在“说明”中出现有关向导用途的说明。
这里我们选取“查询向导”。
在查询向导的每一步骤中,都有一些文字说明,它帮助我们理解这一步骤的用法。
作为初学者,应该仔细阅读。
下面是“查询向导”的“步骤1-字段选取”。
从步骤下拉框中可以选取步骤。
在新建查询时,其他步骤都是不可用的(暗灰色字体)。
在“数据库和表”中选择我们要用的职工表,在“可用字段”中选取字段。
选取的字段将移到“选定字段”中。
选取或移去字段可以双击该字段,也可用“可用字段”右边的四个按钮。
这四个按钮由上到下依次代表选定、全部选定、移去、全部移去。
当我们对此步骤不了解时,可以单击“帮助”按钮寻求帮助,下同。
单击“下一步”按钮。
进入步骤3-筛选记录。
在这一步骤中,我们来设置查询条件,创建查询表达式。
这些表达式是符合VisualFoxPro6.0规则的,即它能“读懂”并执行的。
这里我们设置的查询条件是:
出生年月在1960年1月1日以后的副教授。
技术职务是字符型,其查询条件的“值”(副教授)的格式可以带引号也可以不带。
(注意:
如果带引号则必须为半角的,否则会出错,在VisualFoxPro6.0条件、命令中使用的引号都是这样)。
日期型数据的“值”的格式则为{^yyyy-mm-dd},其中的“^”是数字“6”的上档键。
当我们不知道某种数据类型“值”的格式时,可以用试输入一个值,单击“预览”按钮,如果格式正确将显示符合条件的记录,否则将会出现错误提示,有时会提示正确格式。
为了表示两个条件同时具备,我们选取“与”单选按钮。
单击“下一步”按钮。
进入步骤4-排序记录。
这里我们从“可用字段”中选取“职工表.编号”作为排序字段,并按升序排列。
单击“下一步”按钮。
进入步骤4a-限制记录。
这里有两组单选按钮,用来设置在浏览查询结果窗口中显示记录的限制。
我们取默认值“所有记录”。
单击“下一步”按钮,进入步骤5-完成。
这里的单选按钮表示单击“完成”按钮后是保存还是运行查询,还是进入查询设计器进行修改。
我们可以选择“保存并运行查询”,按“完成”按钮,即进入保存对话框。
查询保存在扩展名为.QPR的文件中。
接着进入下面的浏览窗口,显示符合条件的记录。
我们也可以在完成查询设计后,在命令窗口中输入:
DO 60年后副教授.qpr,来执行这个查询。
返回 下一节
6.3查询设计器
为了完成查询任务,可以在命令窗口或程序中直接使用SQL命令(前面所介绍的方法),也可以利用查询设计器来实现。
查询设计器其实就是select命令的可视化设计工具,利用查询设计器可以方便地设定查询条件,并且将这些条件保存到查询文件中。
6.3.1查询设计器概述
“文件”→“新建”→“查询”→“新建文件”→出现“添加表”对话框→在该对话框中选择参与查询的表→启动查询设计器。
执行命令:
createquery<查询文件名>也可以启动查询设计器。
启动查询设计器后,在菜单中会增加“查询”菜单,“查询”菜单实际上是select命令子句的分类。
为了方便操作,系统还提供了一个“查询”工具栏。
查询设计器上面的窗格,显示查询所包含的表,并且显示了各个表的字段名。
如果查询涉及多个表,可以在“查询”菜单中选择“添加表”命令,或者单击“查询”工具栏的“添加表”按钮,将其他表添加进来。
查询设计器下面的窗格包含六个选项卡,其含义如下:
字段:
用来指定select命令要输出的字段。
双击“可用字段”列表框中的字段,可以自动添加到右边的列表框中,单击“全部添加”按钮,可以选择全部字段;
联结:
如果要查询多个表,需要在“联结”选项卡中输入联结表达式;
筛选:
用来指定选择记录的条件,对应select命令中的where子句的表达式;
排序依据:
用来指定排序条件,对应orderby子句的表达式;
分组依据:
对应groupby子句的表达式;
杂项:
用来指定是否要对重复记录进行排序。
6.3.2查询设计器的使用
下面举例说明查询设计器的使用方法。
【例6-1】查询男生的学号、姓名、年龄,并按“学号”字段排序。
1、启动查询设计器→添加学生表student.dbf→“关闭”按钮。
2、在“字段”页面中→双击字段:
sno、sname和sage→字段被放置到“选定字段”列表框中。
3、“筛选”选项卡→在“字段名”组合框中选择字段:
student.ssex。
4、在“条件”组合框中选择“=”→在“实例”文本框中输入:
"男"。
5、选择“排序依据”选项卡→双击字段:
sno→设置查询结果按“学号”排序。
6、“查询”菜单中的“运行”命令,(或者在查询设计器的空白处单击鼠标右键,在弹出菜单中选择“运行查询”命令),显示查询结果。
7、若要查看所生成的查询命令,可以从“查询”菜单中选择“查看sql”命令,可以显示出上述操作过程所创建的select语句。
显示结果如下:
SELECTstudent.sno,student.sname,student.sage;
FROMstudent;
WHEREstudent.ssex="男";
ORDERBYstudent.sno
8、若要将查询命令保存,则选择“文件”菜单中的“保存”或“另存为”命令,输入文件名,可以将上述命令保存为查询文件,查询文件的扩展名为.qpr,使用DO<查询文件名>运行查询文件。
6.3.3多表查询
多表查询涉及两个以上的表或视图,表之间需要建立联接条件。
举例说明。
【例6-1】列出“张宇飞”同学的各科成绩,要求给出学号、姓名、课程名称和成绩,并且按照“成绩”进行排序。
1、启动查询设计器→分别将学生表student.dbf和成绩表score.dbf添加到查询设计器中,这时会出现“联接条件”对话框→·在“联接条件”对话框中,默认联接条件为:
student.sno=score.sno,内部联接,单击“确定”按钮,使用默认条件→“关闭”按钮。
以下步骤同【例6-1】。
6.3.4查询结果的输出
在不关闭“查询设计器”的情况下,单击系统菜单的“查询”菜单项,选择“查询去向”命令,可以设定查询结果的输出格式。
运行查询文件后,查询结果的输出格式将按照用户的设置显示在相应的地方。
查询结果共有七种输出格式可供选择,
·浏览:
在“浏览”窗口中显示查询结果,这是查询默认设置。
·临时表:
将查询结果存储到临时表中。
·表:
将查询结果保存在表文件中。
·图形:
使用MicrosoftGraph程序将查询结果输出为图形文件显示。
·屏幕:
将查询结果直接在VisualFoxPro屏幕上输出。
·报表:
将查询结果输出到报表文件中。
·标签:
将查询结果输出到标签文件中。
6.4视图设计器
6.4.1视图简介
视图是一种数据库对象,是基于表的可更新的数据集合,视图包括本地视图、远程视图两种。
视图与查询相类似,都可以从一个或多个相关联的表中提取有用信息,但“查询”只能用于查询数据,结果是只读的,只能显示不能修改。
而视图不但可以象查询一样查阅数据,还可以更新数据并把更新结果送回到源表中。
本地视图:
是指使用当前数据库中VisualFoxPro表的视图。
远程视图:
是指使用当前数据库之外远程数据源的视图。
如果没有特别说明,所指的“视图”,均指“本地视图”。
6.4.2视图设计器
由于视图和查询有很多类似之处,创建视图与创建查询的步骤也很相似。
创建视图时,VFP会在当前数据库中保存一个视图定义,该定义包括视图中的表名、字段名以及它们的属性设置。
视图是数据库对象,启动视图设计器前,首先要打开数据库。
启动视图设计器的方法如下:
“文件”→“新建”→“视图”→“新建文件”→出现“添加表”对话框→在该对话框中选择参与视图的表→添加→关闭(出现“视图设计器”对话框,该对话框与查询设计对话框类似)。
创建视图也可以通过命令来完成,命令格式如下。
【格式】CREATEsqlview<视图名>[remote]
[connection<新建连接名>][share]|<已建连接名>
[ASselect-sql命令]
【功能】按照AS子句中的select-sql命令创建sql视图。
【说明】AS子句中的select-sql命令,用于指定视图可以从哪些数据库表中提取数据,以及设置多表查询的关联条件。
若要创建远程视图,需要使用REMOTE选项,并用connection子句创建或指定一个连接的数据源。
本地视图中不含connection子句。
【例6-1】例6-15中的学生成绩视图可以通过下面的命令来创建。
Opendatajxgl
Createsqlviewv1;
AsSELECTscore.sno,student.sname,score.cid,ame,score.score;
FROMstudent,score;
wherestudent.sno=score.sno
6.4.3视图设计器的使用
视图设计器中除新增了“更新条件”选项卡外,其余选项卡的功能与查询设计器完全相同。
利用“更新条件”选项页可以设置可更新的表和更新方式。
“更新条件”选项页中包含的内容比较多,各组成部分及其功能如下:
1.表
“表”列表框显示视图中所使用的表,通过选定其中的选项可以指定哪些表中的字段可以在“字段名”列表中显示,以便设置更新条件。
“表”列表框默认显示是“全部表”,表示选定视图中所使用的全部基表。
2.字段名
显示所选基表的字段,可以输出这些字段,并且可标记为这些字段都是可以更新的。
在“字段名”列表框中,除显示字段名外,还包含有
“关键字段”和
“可更新字段”两列内容。
关键字段可用来使视图中的修改与表中的原始记录相匹配。
如果要指定某个字段为关键字段,则单击“关键字段”栏下的相应字段行,打上符号“√”;如果要指定某个字段为可更新字段,则单击“可更新字段”栏下的相应字段行,打上符号“√”,再次单击“√”可以清除该它。
3.重置关键字
单击“重置关键字”按钮后,将清空所有关键字段和可更新字段,重新选择表的主关键字段作为视图的关键字字段。
4.全部更新
选定关键字段后,“全部更新”按钮才可选。
单击“全部更新”按钮,将当前基表中除关键字段之外的所有字段选定为可更新字段。
5.发送SQL更新
选定可更新字段后,“发送SQL更新”复选框才可选。
“发送SQL更新”选项是一个“主开关”,它指定是否将视图记录中的修改发送到原始表。
如果要将视图的更新信息传送回原始表,必须选中此项。
6.SQLWHERE子句包括
“SQLWHERE子句包括”可以用来检测更新冲突。
冲突是由视图中的原值和原始表当前值之间的比较结果决定的,如果两个值相等,则认为数据未做修改,不存在冲突;如果它们不相等,则存在冲突,数据源返回一条错误信息。
关键字段:
如果在原始表中有一个关键字段被改变,设置WHERE子句检测冲突。
对表中原始记录的其他字段进行修改时,不进行检测。
关键字和可更新字段:
如果有用户修改了关键字段或任何可更新字段,设置WHERE子句检测冲突。
关键字和已修改字段(默认设置):
如果从视图首次检索以后,关键字段或原始表记录的已修改字段中,某个字段做过修改,设置WHERE子句检测冲突。
关键字段和时间戳:
如果自原始表记录的时间戳首次检索以后,它被修改过,设置WHERE子句检测冲突。
只有当远程表有“时间戳”列时,此选项才有效。
7.使用更新
指定字段如何在后端服务器上更新。
SQLDELETE然后INSERT:
指定删除原始表记录,创建新记录。
SQLUPDATE(默认设置):
用视图字段中的变化更新原始表的字段。
6.4.4视图设计举例
【例6-1】创建学生成绩视图,要求显示学号、姓名、课程名称、成绩,并且要求只能更新“成绩”字段。
1、启动查询设计器,在“添加表和视图”对话框中,分别将学生表student.dbf和成绩表score.dbf添加到查询设计器中,这时会出现“联接条件”对话框。
2、在“联接条件”对话框中,默认联接条件为:
student.sno=score.sno,内部联接,单击“确定”按钮,然后关闭“添加表和视图”对话框。
3、在“字段”选项页选择字段:
score.sno、student.sname、score.cid、ame、score.score。
4、在“更新条件”页中的“表”组合框中选择可更新表:
score,在“字段名”列表选择score的更新关健字:
score.sno和score.cid,然后再选择更新字段:
score.score。
5、在“sqlwhere子句包括”栏中选择“关健字和可更新字段”,“使用更新”栏选择:
sqlupdate,然后选择“发送sql更新”。
6、视图设计完成后,选择“文件”菜单中的“保存”命令,系统要求输入视图名称,输入视图名称v1,单击“确定”按钮。
6.4.5视图的使用方法
视图创建后可以像使用表一样对它进行操作,下面介绍如何通过菜单方式和命令方式浏览视图。
一、使用菜单操作浏览视图
打开jxgl数据库,在“数据库设计器”窗口中用鼠标双击视图,或者先选中视图再选择“数据库”菜单中的“浏览”命令,就可以在“浏览”窗口中显示视图内容。
二、使用命令操作浏览视图
用户可以通过use命令打开视图,然后执行浏览操作。
【例6-1】浏览视图示例。
OPENDATABASEjxgl.dbc&&打开jxgl数据库
USEv1&&打开v1视图
BROWSE&&浏览视图
Use&&关闭视图
CLOSETABLES&&关闭创建视图时打开的表
在使用视图时,视图会作为临时表在自己的工作区中打开。
打开本地视图时,在工作区中除了打开视图外,它所访问的本地表也同时在其它工作区打开。
在关闭本地视图时,本地视图所访问的基表却不随视图自动关闭,因此需要单独关闭。
使用远程视图时,在工作区中打开远程视图,远程视图所访问的远程基表并不在本地工作区中打开,远程表中的数据被暂存在以远程视图名命名的临时表中。
【例6-2】创建学生成绩视图,要求显示学号、姓名、课程名称、成绩,并且要求只能更新“成绩”字段。
利用视图更改源表中的数据。
创建视图的方法同6.4.4中的例1,打开视图,更改其中某人的成绩,关闭视图窗口,再打开视图窗口,关闭该窗口(相当于运行视图),双击成绩窗口,查看更改的结果。
6.4视图设计器
6.4.1视图简介
视图是一种数据库对象,是基于表的可更新的数据集合,视图包括本地视图、远程视图两种。
视图与查询相类似,都可以从一个或多个相关联的表中提取有用信息,但“查询”只能用于查询数据,结果是只读的,只能显示不能修改。
而视图不但可以象查询一样查阅数据,还可以更新数据并把更新结果送回到源表中。
本地视图:
是指使用当前数据库中VisualFoxPro表的视图。
远程视图:
是指使用当前数据库之外远程数据源的视图。
如果没有特别说明,所指的“视图”,均指“本地视图”。
6.4.2视图设计器
由于视图和查询有很多类似之处,创建视图与创建查询的步骤也很相似。
创建视图时,VFP会在当前数据库中保存一个视图定义,该定义包括视图中的表名、字段名以及它们的属性设置。
视图是数据库对象,启动视图设计器前,首先要打开数据库。
启动视图设计器的方法如下:
“文件”→“新建”→“视图”→“新建文件”→出现“添加表”对话框→在该对话框中选择参与视图的表→添加→关闭(出现“视图设计器”对话框,该对话框与查询设计对话框类似)。
创建视图也可以通过命令来完成,命令格式如下。
【格式】CREATEsqlview<视图名>[remote]
[connection<新建连接名>][share]|<已建连接名>
[ASselect-sql命令]
【功能】按照AS子句中的select-sql命令创建sql视图。
【说明】AS子句中的select-sql命令,用于指定视图可以从哪些数据库表中提取数据,以及设置多表查询的关联条件。
若要创建远程视图,需要使用REMOTE选项,并用connection子句创建或指定一个连接的数据源。
本地视图中不含connection子句。
【例6-1】例6-15中的学生成绩视图可以通过下面的命令来创建。
Opendatajxgl
Createsqlviewv1;
AsSELECTscore.sno,student.sname,score.cid,ame,score.score;
FROMstudent,score;
wherestudent.sno=score.sno
6.4.3视图设计器的使用
视图设计器中除新增了“更新条件”选项卡外,其余选项卡的功能与查询设计器完全相同。
利用“更新条件”选项页可以设置可更新的表和更新方式。
“更新条件”选项页中包含的内容比较多,各组成部分及其功能如下:
1.表
“表”列表框显示视图中所使用的表,通过选定其中的选项可以指定哪些表中的字段可以在“字段名”列表中显示,以便设置更新条件。
“表”列表框默认显示是“全部表”,表示选定视图中所使用的全部基表。
2.字段名
显示所选基表的字段,可以输出这些字段,并且可标记为这些字段都是可以更新的。
在“字段名”列表框中,除显示字段名外,还包含有
“关键字段”和
“可更新字段”两列内容。
关键字段可用来使视图中的修改与表中的原始记录相匹配。
如果要指定某个字段为关键字段,则单击“关键字段”栏下的相应字段行,打上符号“√”;如果要指定某个字段为可更新字段,则单击“可更新字段”栏下的相应字段行,打上符号“√”,再次单击“√”可以清除该它。
3.重置关键字
单击“重置关键字”按钮后,将清空所有关键字段和可更新字段,重新选择表的主关键字段作为视图的关键字字段。
4.全部更新
选定关键字段后,“全部更新”按钮才可选。
单击“全部更新”按钮,将当前基表中除关键字段之外的所有字段选定为可更新字段。
5.发送SQL更新
选定可更新字段后,“发送SQL更新”复选框才可选。
“发送SQL更新”选项是一个“主开关”,它指定是否将视图记录中的修改发送到原始表。
如果要将视图的更新信息传送回原始表,必须选中此项。
6.SQLWHERE子句包括
“SQLWHERE子句包括”可以用来检测更新冲突。
冲突是由视图中的原值和原始表当前值之间的比较结果决定的,如果两个值相等,则认为数据未做修改,不存在冲突;如果它们不相等,则存在冲突,数据源返回一条错误信息。
关键字段:
如果在原始表中有一个关键字段被改变,设置WHERE子句检测冲突。
对表中原始记录的其他字段进行修改时,不进行检测。
关键字和可更新字段:
如果有用户修改了关键字段或任何可更新字段,设置WHERE子句检测冲突。
关键字和已修改字段(默认设置):
如果从视图首次检索以后,关键字段或原始表记录的已修改字段中,某个字段做过修改,设置WHERE子句检测冲突。
关键字段和时间戳:
如果自原始表记录的时间戳首次检索以后,它被修改过,设置WHERE子句检测冲突。
只有当远程表有“时间戳”列时,此选项才有效。
7.使用更新
指定字段如何在后端服务器上更新。
SQLDELETE然后INSERT:
指定删除原始表记录,创建新记录。
SQLUPDATE(默认设置):
用视图字段中的变化更新原始表的字段。
6.4.4视图设计举例
【例6-1】创建学生成绩视图,要求显示学号、姓名、课程名称、成绩,并且要求只能更新“成绩”字段。
1、启动查询设计器,在“添加表和视图”对话框中,分别将学生表student.dbf和成绩表score.dbf添加到查询设计器中,这时会出现“联接条件”对话框。
2、在“联接条件”对话框中,默认联接条件为:
student.sno=score.sno,内部联接,单击“确定”按钮,然后关闭“添加表和视图”对话框。
3、在“字段”选项页选择字段:
score.sno、student.sname、score.cid、ame、score.score。
4、在“更新条件”页中的“表”组合框中选择可更新表:
score,在“字段名”列表选择score的更新关健字:
score.sno和score.cid,然后再选择更新字段:
score.score。
5、在“sqlwhere子句包括”栏中选择“关健字和可更新字段”,“使用更新”栏选择:
sqlupdate,然后选择“发送sql更新”。
6、视图设计完成后,选择“文件”菜单中的“保存”命令,系统要求输入视图名称,输入视图名称v1,单击“确定”按钮。
6.4.5视图的使用方法
视图创建后可以像使用表一样对它进行操作,下面介绍如何通过菜单方式和命令方式浏览视图。
一、使用菜单操作浏览视图
打开jxgl数据库,在“数据库设计器”窗口中用鼠标双击视图,或者先选中视图再选择“数据库”菜单中的“浏览”命令,就可以在“浏览”窗口中显示视图内容。
二、使用命令操作浏览视图
用户可以通过use命令打开视图,然后执行浏览操作。
【例6-1】浏览视图示例。
OPENDATABASEjxgl.dbc&&打开jxgl数据库
USEv1&&打开v1视图
BROWSE&&浏览视图
Use&&关闭视图
CLOSETABLES&&关闭创建视图时打开的表
在使用视图时,视图会作为临时表在自己的工作区中打开。
打开本地视图时,在工作区中除了打开视图外,它所访问的本地表也同时在其它工作区打开。
在关闭本地视图时,本地视图所访问的基表却不随视图自动关闭,因此需要单独关闭。
使用远程视图时,在工作区中打开远程视图,远程视图所访问的远程基表并不在本地工作区中打开,远程表中的数据被暂存在以远程视图名命名的临时表中。
【例6-2】创建学生成绩视图,要求显示学号、姓名、课程名称、成绩,并且要求只能更新“成绩”字段。
利用视图更改源表中的数据。
创建视图的方法同6.4.4中的例1,打开视图,更改其中某人的成绩,关闭视图窗口,再打开视图窗口,关闭该窗口(相当于运行视图),双击成绩窗口,查看更改的结果。
6.2SELECT命令基本用法
SELECT命令是最常使用的SQL命令,其基本功能是把数据表中的数据检索出来,以便用户浏览和使用。
6.2.1简单查询
1、SELECT命令的基本结构如下:
【格式】SELECT[ALL|DISTINCT][TOP<数值表达式>[PERCENT]]
[<别名>.]<选项>[AS<显示别名>][,[<别名>.]<选项>[AS<显示别名>]…]
FROM<表名1>[<别名>][,<表名2>[<别名>]…]
WHERE<条件表达式>
【功能】查询记录。
【说明】在SELECT命令中,经常使用三个子句:
SELEC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第一节 查询 向导