Northwind(罗斯文商贸)是Access自带的示例数据库,也是一个很好的学习教程。本节实验希望同学们通过对罗斯文数据库的学习,能对数据库的表、关系、查询、报表、窗体、切换面板等内容有个初步的了解。
罗斯文公司是一个虚构的商贸公司,该公司进行世界范围的食品的采购与销售,就是通常所讲的买进来再卖出去,赚取中间的差价。罗斯文公司销售的食品分为几大类,每类食品又细分出各类具体的食品。这些食品由多个供应商提供,然后再由销售人员售给客户。销售时需要填写订单,并由货运公司将产品运送给客户。
按"F1"键或者点击菜单“帮助”栏,可以出现罗斯文商贸的相关教程,依据教程进行操作。你可能需要备份罗斯文示例数据库,然后使用备份副本执行以下示例。
如果你的机器中有罗斯文商贸示例,可直接操作;如果未找到,可在此下载Access 2007版本示例
Northwind2007.zip
实验步骤:
一、Access查询的实现
使用查询向导来构建一个查询,以显示订单列表、每个订单的运费、税款、数量以及处理每个订单的雇员的姓名。
Tips: 按F1键或双击“?”可打开Access Help, 内有数据库设计操作说明。
简单查询演示:
打开罗斯文示例数据库。关闭登录窗体。
在“创建”选项卡上的“其他”组中,单击“查询向导”。
在“新建查询”对话框中,单击“简单查询向导”,然后单击“确定”。
在“表/查询”组合框中,单击“表: 订单”。
在“可用字段”列表中,双击“订单ID”以将该字段移动到“选定字段”列表中。双击“运费”以将该字段移动到“选定字段”列表中。
然后依次单击“表:订单明细”—“字段:数量”、“表:发票”---“字段:税款”、“表:雇员”---“字段:姓氏”。在表查询组合框中得到如下图(Access 2007)。 思考问题:下图中的各个箭头与符号代表什么意义?然后单击“下一步”。
用SQL查询,可以单击右键查询窗体,在出现的选择栏中选择“SQL视图”,结果如下图
由于要创建所有订单的列表,因此需要使用明细查询。如果按雇员汇总运费或执行某些其他的聚合函数,则应使用汇总查询。单击“明细(显示每个记录的每个字段)”,然后单击“下一步”。
单击“完成”以查看结果。
该查询会返回一个订单列表,包含我们所得到的查询结果。
二、Access下SQL查询的实现
快速进入SQL视图的方法:
左侧导航窗格分为两部分"浏览类别"和"按组筛选"。选择"浏览类别"中的“对象类型”,然后选择“按组筛选”中的“查询”类即可看到示例中已有查询供参考,单击右键查询窗体,在出现的选择栏中选择“SQL视图”。
Tips: 按F1键或双击“?”可打开Access Help, 内有"导航窗格的功能和控件
“查询设计”也可以加快查询设计和进入SQL视图的过程。选择“查询设计”,可以在“显示表”窗口选择查询相关表格,设计ER,然后在“查询1”窗体点击右键,选择“SQL视图”,即可进入SQL视图
三、上机练习作业:
按照以上方法进入SQL视图,输入对应的SQL语句,完成下列查询,并将查询结果写入实验报告中。
1. 罗斯文商贸
画出罗斯文商贸示例的E-R图。
用SQL完成下列任务:
计算Northwind数据库中所有订单的平均折扣金额。
列出所有产品种类名称,并找出其供应商的公司名(提示:INNER|LEFT|RIGHT JOIN)。
列出所有供应商,并找出其提供的产品种类名称。
找出2006年总销售额大于1万元的雇员和其总销售额。
2006年产品的销售总额。
嵌套查询参考:还原“产品事务”查询中的子查询,恢复出完整嵌套查询并写下来。
嵌套查询练习: 先将所有库存信息合并(提示:参考查询中的已订库存,已购库存和已售库存,结合库存事务表格),然后计算未来已订货物入库后所有苹果汁的库存量。
双击左侧“所有Access对象”的“记录集封装程序”模块,查看VBA嵌套SQL的使用方法,比如“OpenRecordset”函数。
2. 用Oracle Live SQL或者自己下载安装Oracle Database完成下列查询:
登陆Oracle Live SQL网站
https://livesql.oracle.com
,将数据
data.sql
通过"Schema"或"My Scripts"中的"Upload Scripts"上传,
然后在"SQL Worksheet"中完成下列查询:
Find sids of sailors who've reserved a red and a green boat
Find the names of sailors who’ve reserved boat 103
Find name and age of the oldest sailor(s)
For each rating, find the age of the youngest sailor
Update Boats, set all boats' color to green if their bid number is 103
上机课完成以上练习
评分标准:1) 结果结论正确,并有对结果的讨论,每个查询结果都有截图;2) 实验报告格式规范;3)对所涉及知识点的论述;4)分步实验步骤;5)实验课当天的签到记录。
实验报告样本:
实验报告.pdf
Due Date(作业上交截止日期): May 7th, 作业提交网站
online submission instruction
注意! 实验报告应该按照科技报告的写法,在实验步骤中注意联系课堂知识点!按照数据库设计方法和流程,基本知识点:1) conceptual design, logical design;
2) relational algebra and calculus, from algebra to SQL;3) SQL语句的种类,怎样选择合适的SQL语句。加分点:查询优化
Access数据库窗体
浏览罗斯文商贸示例中的窗体。
Access的窗体是用户与数据库进行交互的界面,通过窗体,可以输入、编辑数据,可以将查询到的数据以适当的形式输出。
Tips: 有关各种窗体的说明和使用方法,按F1键或双击“?”可打开Access Help, 内有操作说明。
Access数据库报表
浏览罗斯文商贸示例中的报表。
Tips: 有关各种窗体的说明和使用方法,按F1键或双击“?”可打开Access Help, 内有操作说明。
在Access中如果要以打印格式来显示数据,使用报表是一种有效的方法。因为报表为查看和打印概括性的信息提供了最灵活的方法。可以在报表中控制每个对象的大小和显示方式,并可以按照所需要的方式来显示相应的内容,例如,可以在报表中增加多级汇总,统计和比较,甚至加上图片和图形。报表中的大部分内容是从基表、查询和SQL语句中获得的。