相关文章推荐
忐忑的眼镜  ·  Got (401) ...·  1 周前    · 
瘦瘦的海龟  ·  C++ Undefined ...·  1 年前    · 
乖乖的鸵鸟  ·  javascript - ...·  1 年前    · 
成熟的番茄  ·  HttpUtility.UrlEncode ...·  1 年前    · 
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语句中获得的。