2022年2022年罗斯文数据库的查询设计 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年2022年罗斯文数据库的查询设计 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年罗斯文数据库的查询设计 .pdf(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 罗斯文数据库的查询设计一般的在表设计完成阶段以后就可以进行窗体的设计,然后再根据需要完善报表功能。在窗体与报表设计过程中会较多的使用到查询,一般的可以要据需要随时建立。不过为了先让大家都查询有个系统的了解,所以我们把罗斯文数据库中的查询放到前面来看。查询一般可以分为五种基本类型:选择查询, 参数查询, 交叉表查询, 操作查询和SQL 查询。用得最多的应是选择查询。可以结合罗斯文中的实例一起来学习一下。罗斯文数据库中共有个查询,这些查询分别为窗体和报表提供了数据源,我们挑选其中的一些来学习。订单查询:订单查询是为“订单”窗体提供数据的,包含订单表中的全部字段和客户表中的部分字段。一般我们在设
2、计查询时用的最多的是用设计视图创建查询。由于订单查询是一个比较简单的查询,所以我们通过该查询来学习一下怎样通过简单查询向导来创建最简单的查询,然后再利用设计视图来查看和修改。在数据库的查询对象窗口,双击“使用向导创建查询”或者单击“新建”按钮,在跳出的“新建查询”的窗口中选择“简单查询向导”在“表 /查询”中选择“表:订单”,选中该表中的所有字段加入到“选定的字段”中名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 16 页 - - - - - - - - - 2 再从“表
3、:客户”中选择字段公司名称,地址,城市,地区,邮政编码,国家单击“下一步” ,选择“明细”;如果要在查询中实现将记录进行分组,计数、求和、求平均值等计算,则要在这一步选择“汇总”进入“汇总选项”进行相应的设置。选择“下一步” ,给查询起名“订单查询” ,单击“完成” ,自动打开查询,显示查询结果。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 16 页 - - - - - - - - - 3 如果要对查询进行查看或修改可以进入设计视图中,从菜单“视图”中选择“设计视图”,
4、即可进入设计视图界面。当然工具栏也有“视图”按钮设计视图分为上下两上窗口,在上面显示查询中要用到的数据源来自于哪些表或查询,在下面列出的是查询结果中需要用到的字段,该字段来自哪个表,哪个字段需要设置排序方式,是否需要显示该字段,以及查询条件等。很多查询只需查询出满足条件的记录,并不需要全部的记录,这样就需要在 “条件” 中输入条件,一般用表达式来表示,只有满中表达式的记录才被显示出来。因此我们需要了解一下表达式。表达式 : 表达式是许多Microsoft Access 运算的基本组成部分。表达式是可以生成结果的运算符号和操作数的组合。例如,可以在窗体或报表的控件中使用下列表达式来显示“ 小计”
5、 和“ 运货费 ” 控件的数值总和: = 小计 + 运货费 常见的运算符如算术运算符“=” , “+” , “-” , “ *” , “ /” ;比较运算符“” , “=” , “=” ,“” , “=” ;逻辑运算符“and” , “or” , “not” ;连接运算符“&” , “ +” ;及常用的!和.(点)运算符。常见的操作数如字符串,日期/时间值,常量,变量,函数及引用窗体或报表中的字段值,控件值或属性等。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 16 页
6、 - - - - - - - - - 4 常见表达式示例:数学及比较运算表达式表达式说明=数量 * 价格 计算数量与价格的乘积,可以得出总价=到货日期 - 发货日期 计算两个日期之间的天数2500比 2500 大的数日期表达式表达式说明Between #1997-01-01# And #1997-12-31#在 1997-01-01 各 1997-12-31 之间的数据#2007-12-30#2007-12-30 以前的数据30大于 30 岁的男性数据= “ 中国 ” & “ 北京 ”值为“ 中国北京 ”通配符表达式表达式说明Like “ 张* ”以张开头的数据Like “ 张?”以张开头后面
7、还有一个字的数据聚合函数表达式表达式说明Sum(数量 * 价格 )求数量和价格相乘后的和Avg( 费用 )求费用的平均值Count(*)计算记录条数“ 当前产品列表 ” 查询当前产品列表统计出未被中止的产品。在数据库的查询对象窗口,双击“ 在设计视图中创建查询” 或单击 “ 新建” 按钮,在跳出的“ 新建查询 ” 的窗口中选择 “ 设计视图 ” ,进入设计视图界面,从显示表中添加“ 产品 ” 表。选中 “ 产品 ID” ,“ 产品名称 ” , “ 中止 ” 三个字段(注:选中字段可以把字段从设计视图界面的上方拖到下方,也可以双击字段名称),去掉“ 中止 ” 下面 “ 显示 ” 的勾,在条件一栏
8、输入“no”,代表只查询出未被中止的产品,但只要显示产品的ID 和名称就行了,是否中止的状态不用显示出来。我们还想将输出的结果按照产品名称进行排序,在“ 产品名称 ” 下面的 “ 排序 ” 栏里选中升序。这样查询就完成了,点保存,给查询起个名字就可以了。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 16 页 - - - - - - - - - 5 我们打开罗斯文数据库中的当前产品列表查询,会发现数据源是“ 产品列表 ” ,不是 “ 产品 ”表,这里是用到了表的别名,一般
9、的我们在查询中为了方便,经常会给比较长的表名取个短一些的名称,更方便引用表。方法是在显示的表上点击鼠标右键,选择属性,在别名中填上合适的别名就行了。本例中其实完全没有这个必要,可能只是想让大家了解这样一个用法而已. “ 各类产品 ” 查询各类产品查询为各类产品报表提供数据源,在查询对象中选中“ 各类产品 ” , 单击“ 设计 ” 按钮,我们发现默认的是按SQL 视图显示的, 这时从 “ 视图 ” 中选择 “ 设计视图 ” 即可显示设计视图,当然要再切换到SQL 视图,再从 “ 视图 ” 中选择 “SQL视图 ” 即可。通过在 “ 设计视图 ” 中设计查询,再切换到 “SQL视图 ” 中查看 S
10、QL 语句也是我们学习SQL 语句的方法。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 16 页 - - - - - - - - - 6 查询的数据来自“ 类别 ” 表和 “ 产品 ” 表, “ 类别名称 ” 字段和 “ 产品名称 ” 字段的 “ 排序 ” 都是升序,查询结果将先按类别名称排序,当类别名称相同时再按照产品名称排序。中止条件为“no”,结果只包含未被中止的产品。“按汉语拼音顺序的产品列表”查询这个查询是为“按汉语拼音顺序的产品列表”报表提供数据源的。双击查
11、询即可运行并显示查询的结果,在查询结果中并未按拼音顺序来排列,这个功能是在报表中实现的。进入设计视图这个查询的数据来自两个表,“类别”表和“产品”表。查询的结果中只包含未被中止的产品,因此在产品字段上设置了条件,这里代表“否”,在ACCESS 中用代表“否”,FALSE,“假”,而用-1 代表“是”, TRUE ,“真”十种最贵的产品进入设计视图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 16 页 - - - - - - - - - 7 查询的数据来自于表“产品”,
12、选用的字段只有产品名称和单价两个,如果要给选择的字段另外取个名称,可以给这个字段前面添加名称,中间用英文状态的冒号“:”隔开,如上图。要查询出十种最贵的产品,只要将产品按产品单价降序来排列再取前十种即可。在单价字段上设好“降序”排列,在工具栏上的上限值列表框中输入 10 即可。双击查询查看运行结果,体会在设计视图中设置的作用。季度订单这个查询列出了在1997 年度有订单的客户, 不是某个季节的记录,而是含盖了全年度的记录,这个结果用于给“季度订单”窗体提供数据源,在窗体中再具体实现按四个季度显示统计结果。进入设计视图:这个查询的数据来自于“客户”表和“订单”表,“订单”表中用到的订购日期只是作
13、为一个条件项,不用被显示出来,条件里是一个表达式,代表的含义是订购日期介于1997 年 1月 1日到 12 月 31 日之间的,这里用到“betweenand ”这种语法。日期型的数据应该在两侧加上“#”号。接下来我们还要考虑到有些客户可能在1997 年度有多次订货,而我们希望的结果是每个客户只出现一次。这时可以在查询视图的上半部分窗口的空白处右击鼠标,从浮动菜单中选择“属性”,也可直接在工具栏上选择“属性”名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 16 页 - -
14、 - - - - - - - 8 设置查询属性中的“唯一值”属性为“是”即可。设置了这个属性就能保证每组中的重复数据只会列出一个。在这里还要提一下的是要注意一下选择表的联接类型,在联接线上双击可以显示联接属性,联接属性分为三种,可以根据要求选择。一般默认的联接类型为,只包含两个表中联接字段相等的行,在本例中改成联接类型为,包含订单表中的所有记录,在SQL 语句方面分别体现为内联接,左联接和右联接,这是有区别的,可以参考运行结果体会联接的作用。扩展订单明细扩展订单明细为窗体“客户订单子窗体2”提供数据源,查询中带有计算字段,查询出每个订单每种产品的一些明细信息。进入设计视图:名师资料总结 - -
15、 -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 16 页 - - - - - - - - - 9 查询的数据来自于“产品”表和“订单明细”表,查询结果按订单ID 升序排列。查询中的字段总价是个计算字段,总价为该字段的名称,计算表示用 “订单明细” 表中的 “单价”乘以“数量”后再乘以(1-折扣 ),相当于算出了打过折后的总价。字段中用到一个CCur()转换函数,它的作用是将数据转换为货币类型,另外表达式中用了先除以100,再乘以 100,相当把数据还原,同时小数点后面保留两位小数。不过我试了
16、直接用CCur( 订单明细 .单价 * 数量 *(1- 折扣 ),得到的结果也是两位的?欢迎共同讨论。订单小计订单小计统计出每个订单上各种产品的销售金额的总计金额,为汇总销售额等多个查询提供数据。进入设计视图:查询的数据来自于“订单明细”表,选用的字段只有一个“订单ID”,小计字段是个计算字段,小计是这个字段的名称,后面是计算表达式。计算方法同 “扩展订单名细”查询中的 “总价”字段,这里由于只有一个表,所以订单明细 . 单价 可以直接写成单价 ,该字段为:小计: CCur(单价 * 数量 *(1- 折扣 )/100)*100 。本例到这里只是计算出了每个订单ID 中每种产品的总价,而我们要统
17、计出的是每个订单ID 中所有产品总价的和,所以我们要对订单ID 进行分组,要用到“总计” 行的功能,“总计” 行默认是不显示的,可在设计窗体的下半部分右击鼠标,选择“总计” ,或者单击工具栏上的按钮,这样都会多出一行总计来,在总计行,可从下拉框中对每个字段选择相应的操作,可以作为分组依据或条件字段也可以选择聚合函数或其他函数来对字段名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 16 页 - - - - - - - - - 10 进行计算,如果要自己写表达式,则选择表达式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年罗斯文数据库的查询设计 2022 罗斯 数据库 查询 设计
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内