罗斯文数据库的查询设计

  • 格式:doc
  • 大小:973.00 KB
  • 文档页数:16

下载文档原格式

  / 16
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

罗斯文数据库的查询设计

一般的在表设计完成阶段以后就可以进行窗体的设计,然后再根据需要完善报表功能。在窗体与报表设计过程中会较多的使用到查询,一般的可以要据需要随时建立。不过为了先让大家都查询有个系统的了解,所以我们把罗斯文数据库中的查询放到前面来看。

查询一般可以分为五种基本类型:选择查询,参数查询,交叉表查询,操作查询和SQL查询。用得最多的应是选择查询。可以结合罗斯文中的实例一起来学习一下。罗斯文数据库中共有21个查询,这些查询分别为窗体和报表提供了数据源,我们挑选其中的一些来学习。

1.订单查询:

订单查询是为“订单”窗体提供数据的,包含订单表中的全部字段和客户表中的部分字段。一般我们在设计查询时用的最多的是用设计视图创建查询。由于订单查询是一个比较简单的查询,所以我们通过该查询来学习一下怎样通过简单查询向导来创建最简单的查询,然后再利用设计视图来查看和修改。

在数据库的查询对象窗口,双击“使用向导创建查询”

或者单击“新建”按钮,在跳出的“新建查询”的窗口中选择“简单查询向导”

在“表/查询”中选择“表:订单”,选中该表中的所有字段加入到“选定的字段”中

再从“表:客户”中选择字段公司名称,地址,城市,地区,邮政编码,国家

单击“下一步”,选择“明细”;如果要在查询中实现将记录进行分组,计数、求和、求平均值等计算,则要在这一步选择“汇总”进入“汇总选项”进行相应的设置。

选择“下一步”,给查询起名“订单查询”,单击“完成”,自动打开查询,显示查询结果。

如果要对查询进行查看或修改可以进入设计视图中,从菜单“视图”中选择“设计视图”,即可进入设计视图界面。当然工具栏也有“视图”按钮

设计视图分为上下两上窗口,在上面显示查询中要用到的数据源来自于哪些表或查询,在下面列出的是查询结果中需要用到的字段,该字段来自哪个表,哪个字段需要设置排序方式,是否需要显示该字段,以及查询条件等。

很多查询只需查询出满足条件的记录,并不需要全部的记录,这样就需要在“条件”中输入条件,一般用表达式来表示,只有满中表达式的记录才被显示出来。因此我们需要了解一下表达式。

表达式:

表达式是许多Microsoft Access 运算的基本组成部分。表达式是可以生成结果的运算符号和操作数的组合。例如,可以在窗体或报表的控件中使用下列表达式来显示“小计”和“运货费”控件的数值总和:= [小计] + [运货费]

常见的运算符如算术运算符“=”,“+”,“-”,“*”,“/”;比较运算符“>”,“<”,“>=”,“<=”,“<>”,“=”;逻辑运算符“and”,“or”,“not”;连接运算符“&”,“+”;及常用的!和.(点)运算符。

常见的操作数如字符串,日期/时间值,常量,变量,函数及引用窗体或报表中的字段值,控件值或属性等。

我们打开罗斯文数据库中的当前产品列表查询,会发现数据源是“产品列表”,不是“产品”表,这里是用到了表的别名,一般的我们在查询中为了方便,经常会给比较长的表名取个短一些的名称,更方便引用表。方法是在显示的表上点击鼠标右键,选择属性,在别名中填上合适的别名就行了。

本例中其实完全没有这个必要,可能只是想让大家了解这样一个用法而已.

3.“各类产品”查询

各类产品查询为各类产品报表提供数据源,在查询对象中选中“各类产品”,单击“设计”按钮,

我们发现默认的是按SQL视图显示的,这时从“视图”中选择“设计视图”即可显示设计视图,当然要再切换到SQL视图,再从“视图”中选择“SQL视图”即可。通过在“设计视图”中设计查询,再切换到“SQL视图”中查看SQL语句也是我们学习SQL语句的方法。

查询的数据来自“类别”表和“产品”表,“类别名称”字段和“产品名称”字段的“排序”都是升序,查询结果将先按类别名称排序,当类别名称相同时再按照产品名称排序。中止条件为“no”,结果只包含未被中止的产品。

4.“按汉语拼音顺序的产品列表”查询

这个查询是为“按汉语拼音顺序的产品列表”报表提供数据源的。双击查询即可运行并显示查询的结果,在查询结果中并未按拼音顺序来排列,这个功能是在报表中实现的。

进入设计视图

这个查询的数据来自两个表,“类别”表和“产品”表。查询的结果中只包含未被中止的产品,因此在产品字段上设置了条件,这里0代表“否”,在ACCESS中用0代表“否”,FALS E,“假”,而用-1代表“是”,TRUE,“真”

5.十种最贵的产品

进入设计视图:

查询的数据来自于表“产品”,选用的字段只有产品名称和单价两个,如果要给选择的字段另外取个名称,可以给这个字段前面添加名称,中间用英文状态的冒号“:”隔开,如上图。

要查询出十种最贵的产品,只要将产品按产品单价降序来排列再取前十种即可。在单价字段

上设好“降序”排列,在工具栏上的上限值列表框中输入10即可。双击查询查看运行结果,体会在设计视图中设置的作用。

6.季度订单

这个查询列出了在1997年度有订单的客户,不是某个季节的记录,而是含盖了全年度的记录,这个结果用于给“季度订单”窗体提供数据源,在窗体中再具体实现按四个季度显示统计结果。

进入设计视图:

这个查询的数据来自于“客户”表和“订单”表,“订单”表中用到的订购日期只是作为一个条件项,不用被显示出来,条件里是一个表达式,代表的含义是订购日期介于1997年1月1日到12月31日之间的,这里用到“between…and…”这种语法。日期型的数据应该在两侧加上“#”号。接下来我们还要考虑到有些客户可能在1997年度有多次订货,而我们希望的结果是每个客户只出现一次。这时可以在查询视图的上半部分窗口的空白处右击鼠标,从浮动菜单中选择“属性”,也可直接在工具栏上选择“属性”

设置查询属性中的“唯一值”属性为“是”即可。设置了这个属性就能保证每组中的重复数据只会列出一个。

在这里还要提一下的是要注意一下选择表的联接类型,在联接线上双击可以显示联接属性,联接属性分为三种,可以根据要求选择。

一般默认的联接类型为1,只包含两个表中联接字段相等的行,在本例中改成联接类型为3,包含订单表中的所有记录,在SQL语句方面分别体现为内联接,左联接和右联接,这是有区别的,可以参考运行结果体会联接的作用。

7.扩展订单明细

扩展订单明细为窗体“客户订单子窗体2”提供数据源,查询中带有计算字段,查询出每个订单每种产品的一些明细信息。

进入设计视图: