收藏 分销(赏)

实验二 参考答案.doc

上传人:pc****0 文档编号:6380944 上传时间:2024-12-07 格式:DOC 页数:10 大小:395.50KB 下载积分:10 金币
下载 相关 举报
实验二 参考答案.doc_第1页
第1页 / 共10页
实验二 参考答案.doc_第2页
第2页 / 共10页


点击查看更多>>
资源描述
实验二 多表查询 实验目的与要求 (1)了解查询的概念和方法; (2)掌握多表连接的方法; (3)掌握嵌套查询的基本方法; (4)掌握SELECT语句在多表查询中的应用。 实验内容: 1、利用企业管理器在数据库OrderDB中建立数据表,包括员工表,客户表,商品表,订单主表,订单明细表。这5张表的结构和数据如下: 表1 员工表Employee的结构 属性含义 属性名 数据类型 员工编号 employeeNo char(8) 员工姓名 employeeName varchar(10) 性别 sex char(1) 出生日期 birthday datetime 住址 address varchar(50) 电话 telephone varchar(20) 雇佣日期 hiredate datetime 所属部门 department varchar(30) 职务 headship varchar(10) 薪水 salary numeric(8,2) 表2 客户表Customer的结构 属性含义 属性名 数据类型 客户号 customerNo char(9) 客户名称 customerName varchar(40) 客户住址 address varchar(40) 客户电话 telephone varchar(20) 邮政编码 zip char(6) 表3 商品基本信息表Product的结构 属性含义 属性名 数据类型 商品编号 productNo char(9) 商品名称 productName varchar(40) 商品类别 productClass varchar(20) 商品定价 productPrice numeric(7,2) 表4 订单主表OrderMaster的结构 属性含义 属性名 数据类型 订单编号 orderNo char(12) 客户号 customerNo char(9) 员工编号 employeeNo char(8) 订单日期 orderDate datetime 订单金额 orderSum numeric(9,2) 发票号码 invoiceNo char(10) 表5 订单明细表OrderDetail的结构 属性含义 属性名 数据类型 订单编号 orderNo char(12) 商品编号 productNo char(9) 销售数量 quantity int 成交单价 price numeric(7,2) 表6 员工表Employee的数据 employeeNo employeeName sex birthday address telephone hireDate department headShip salary E2005001 喻自强 M 1965-04-15 南京市青海路18号 13817605008 2005-02-06 财务科 科长 5800.80 E2005002 张小梅 F 1973-11-01 上海市北京路8号 13607405016 2005-03-28 业务科 职员 2400.00 E2005003 张小娟 F 1973-03-06 上海市南京路66号 13707305025 2005-03-28 业务科 职员 2600.00 E2005004 张露 F 1967-01-05 南昌市八一大道130号 15907205134 2005-03-28 业务科 科长 4100.00 E2005005 张小东 M 1973-09-03 南昌市阳明路99号 15607105243 2005-03-28 业务科 职员 1800.00 E2006001 张辉 M 1965-11-01 南昌市青山路100号 13607705352 2006-03-28 办公室 主任 4000.00 E2006002 韩梅 F 1973-12-11 上海市浦东大道6号 13807805461 2006-11-20 业务科 职员 2600.00 E2006003 刘风 F 1973-05-21 江西财经大学5栋1-101室 15907805578 2006-11-20 业务科 职员 2500.00 E2007001 吴浮萍 M 1973-09-12 南昌市高新开发区12号 null 2007-06-28 业务科 职员 2500.00 E2007002 高代鹏 M 1973-01-02 南昌市高新开发区56号 null 2007-11-28 办公室 文员 2000.00 E2008001 陈诗杰 M 1968-01-06 江西财经大学12栋3-304室 null 2008-01-06 财务科 出纳 3200.00 E2008002 张良 M 1972-02-16 上海市福州路135号 null 2008-02-12 业务科 职员 2700.00 E2008003 黄梅莹 F 1972-05-15 上海市九江路88号 null 2008-02-12 业务科 职员 3100.00 E2008004 李虹冰 F 1972-10-13 南昌市中山路1号 null 2008-02-12 业务科 职员 3400.00 E2008005 张小梅 F 1970-11-06 深圳市阳关大道10号 null 2008-11-18 财务科 会计 5000.00 表7 客户表Customer的数据 customerNo customerName address telephone zip C20050001 统一股份有限公司 天津市 022-3566021 220012 C20050002 兴隆股份有限公司 天津市 022-3562452 220301 C20050003 上海生物研究室 北京市 010-2121000 108001 C20050004 五一商厦 上海市 021-4532187 210100 C20060001 大地商城 北京市 010-1165152 100803 C20060002 联合股份有限公司 上海市 021-4568451 210100 C20070001 南昌市电脑研制中心 南昌市 0791-4412152 330046 C20070002 世界技术开发公司 上海市 021-4564512 210230 C20070003 万事达股份有限公司 天津市 022-4533141 220400 C20080001 红度股份有限公司 北京市 010-5421585 100800 表8 商品基本信息表Product的数据 productNo productName productClass productPrice P20050001 32M DRAM 内存 80.70 P20050002 17寸显示器 显示器 700.00 P20050003 120GB硬盘 存储器 300.00 P20050004 3.5寸软驱 设备 35.00 P20050005 键盘 设备 100.60 P20060001 VGA显示卡 显示器 200.60 P20060002 网卡 设备 66.00 P20060003 Pentium100CPU 处理器 1200.00 P20070001 1G DDR 内存 256.00 P20070002 52倍速光驱 设备 200.00 P20070003 计算机字典 图书 100.00 P20070004 9600bits/s调制调解 设备 320.00 P20080001 Pentium 主板 主板 890.00 P20080002 硕泰克SL-K8AN-RL 主板 主板 1100.00 P20080003 龙基777FT纯平显示器 显示器 900.00 表9 订单明细表OrderDetail的数据 orderNo productNo quantity price 200801090001 P20050001 5 80.70 200801090001 P20050002 3 700.00 200801090001 P20050003 2 300.00 200801090002 P20060002 5 66.00 200801090002 P20080001 2 890.00 200801090002 P20080003 2 900.00 200801090003 P20050001 5 80.70 200801090003 P20060001 3 200.60 200802190001 P20060003 4 1200.00 200802190001 P20070001 2 256.00 200802190001 P20070002 5 200.00 200802190002 P20050003 2 300.00 200802190002 P20050005 3 100.60 200803010001 P20050001 8 80.70 200803010001 P20070001 4 256.00 200803020001 P20050001 2 80.70 200803020001 P20050002 1 700.00 200803020001 P20070003 3 100.00 200803090001 P20050003 4 300.00 200803090001 P20050004 5 35.00 200803090001 P20070001 2 256.00 200803090001 P20070002 5 200.00 200803090001 P20070004 3 320.00 200805090001 P20060003 8 1200.00 200805090001 P20070001 1 256.00 200805090001 P20070002 2 200.00 200805090001 P20070003 5 100.00 200806120001 P20050002 1 700.00 200806120001 P20050003 3 300.00 200806120001 P20050004 2 35.00 200806120001 P20050005 3 100.60 200901010001 P20050002 2 700.00 200901010001 P20050004 11 35.00 200901010001 P20050005 9 100.60 200901010001 P20080002 2 1100.00 201206070001 P20050003 10 300.00 201206070001 P20060002 5 66.00 201206070001 P20060003 4 1200.00 201206070002 P20060002 6 66.00 201206070002 P20070001 2 256.00 201206070002 P20070002 2 200.00 201206070002 P20080001 3 890.00 表10 订单主表OrderMaster的数据 orderNo customerNo employeeNo orderDate orderSum invoiceNo 200801090001 C20050001 E2005002 2008-01-09 3103.50 I000000001 200801090002 C20050004 E2005003 2008-01-09 3910.00 I000000002 200801090003 C20080001 E2005002 2008-01-09 1005.30 I000000003 200802190001 C20050001 E2005003 2008-02-19 6312.00 I000000004 200802190002 C20070002 E2008002 2008-02-19 901.80 I000000005 200803010001 C20070002 E2007001 2008-03-01 1669.60 I000000006 200803020001 C20050004 E2008003 2008-03-02 1161.40 I000000007 200803090001 C20070003 E2008004 2008-03-09 3847.00 I000000008 200805090001 C20060002 E2008002 2008-05-09 10756.00 I000000009 200806120001 C20050001 E2005002 2008-06-12 1971.80 I000000010 200901010001 C20050001 E2005002 2009-01-01 4890.40 I000000011 201206070001 C20050004 E2005003 2012-06-07 8130.00 I000000012 201206070002 C20070002 E2008002 2012-06-07 3978.00 I000000013 2、根据上面的数据库,完成以下查询操作: (1)查询同一天进入公司工作的员工。 select hiredate,employeeName From Employee a Where exists (select * from Employee b where a.hiredate=b.hiredate and a.employeeno!=b.employeeno) group by hiredate,employeeName (2)查询与“陈诗杰”在同一部门工作的员工姓名、性别、部门和职务。 select a.employeeName,a.department,a.headShip,a.sex From Employee a,Employee b where a.department=b.department and b.employeeName='陈诗杰' (3) 查询薪水超过员工平均薪水的员工信息。 select * From Employee where salary>(select AVG(salary)from Employee) (4) 查询有销售记录的客户编号、名称和订单总额。 select a.customerno,customerName,SUM(orderSum) '总额' From Customer a,OrderMaster b where a.customerNo=b.customerNo group by a.customerNo,customerName (5) 查询没有订购商品的客户编号和名称。 select customerno,customerName From Customer where customerNo not in(select customerNo from OrderMaster) (6) 使用子查询来统计32M DRAM的销售情况,要求显示相应的销售员的姓名、销售日期、销售数量和金额。 select employeeName,orderDate,quantity,orderSum, sex=case sex when'F'then'女' when'M'then'男' end from Employee a,OrderMaster b,OrderDetail c where employeeno=salerno and b.orderNo=c.orderNo and productNo in (select productNo from Product where productName='32M DRAM') (7) 查询OrderMaster表中订单金额最高的订单号及订单金额。 select ordersum,orderno from OrderMaster where orderSum=(select MAX(orderSum)from OrderMaster) (8) 查询订单金额大于“E2005002”业务员在2008-1-9这天所接的任一张订单的金额的所有订单信息。 select * from OrderMaster where orderSum>all(select orderSum from Ordermaster where salerNo='E2005002' and orderDate='2008/1/9') (9) 查询单价高于400元的商品编号、商品名称、订货数量和订货单价。 select a.productno,productClass,quantity,price from Product a,OrderDetail b where a.productNo=b.productNo and price>400 (10) 使用左外连接查找每个客户的客户编号、名称、订货日期、订货金额,其中订货日期不显示时间,日期格式为yyyy-mm-dd,按客户编号排序,同一客户再按订单金额降序排序输出。 select a.customerNo,a.customerName, isnull (convert(char(10),ordersum,120),'') ordersum, isnull (convert(char(10),orderdate,120),'') orderdate from Customer a left join OrderMaster b on a.customerNo=b.customerNo order by customerNo,ordersum desc (11) 查询每个员工的销售记录,要求显示销售员的编号、姓名、商品名称、数量、单价、金额和销售日期(日期使用yyyy-mm-dd格式显示)。 select salerNo,employeeName,c.productName,quantity,price,orderSum, ISNULL(CONVERT(char(10),orderdate,120),'') 日期 from Employee a,OrderMaster b,Product c,OrderDetail d where a.employeeNo=b.salerNo and b.orderNo=d.orderNo and c.productNo=d.productNo order by salerNo (12) 使用连接查询来统计32M DRAM的销售情况,要求显示相应的销售员的姓名、销售日期、销售数量和金额。 (13) (13)查询公司男业务员所接且订单金额超过2000元的订单号和订单金额。 select b.orderNo,SUM(quantity*price) ordersum from Employee a,OrderMaster b,OrderDetail c where a.employeeNo=b.salerNo and b.orderNo=c.orderNo and sex='M' group by b.orderNo having SUM(quantity*price)>'2000' (14)查询每种商品的总销售数量及总销售金额,要求显示出商品的编号、商品名称、总数量及金额,并按商品号从小到大排列。 select a.productNo,a.productName,SUM(quantity) totalquantity,SUM(quantity*price) totalsum from Product a,OrderDetail b where a.productNo=b.productNo group by a.productNo,a.productName order by a.productNo 实验要求: (1)结合相关知识,操作规范正确。 (2)认真书写实验报告,如实填写各项实验内容,尤其是执行信息。 (3)完成任务后,继续验证其它与数据库和表创建有关的任务(书或资料上的)。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服