资源描述:
《数据库实验报告高级查询》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验三高级查询1实验目的(1)掌握SQL的高级查询的使用方法,如分组统计、嵌套查询、集合查询等等。2实验内容2.1掌握SQL高级查询使用方法(1)分组统计。(2)嵌套查询,包括IN查询、EXISTS查询。(3)集合查询。3实验要求(1)深入复习教材第三章SQL有关高级查询语句。(2)根据书上的例子,针对TPCH数据库模式设计分组统计查询、嵌套查询(IN、EXISTS)语句和集合查询语句,每种类型的基本查询至少要设计一个查询,描述清楚查询要求,运行你所设计的查询语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。也
2、可以按照附2所列示例查询做实验。(3)实验步骤和实验总结中要详细描述实验过程中出现的问题、原因和解决方法。4实验步骤4.1掌握SQL高级查询使用方法1不带分组过滤条件的分组统计查询。统计每个顾客订购金额。Selectsum(totalprice)FromordersO,customerCWhereO.custkey=C.custkeyGroupbyO.custkey2带分组过滤条件的分组统计查询。查询平均每个订单金额超过1000元的顾客编号及其姓名。SelectC.custkey,C.nameFromordersO,c
3、ustomerCWhereO.custkey=C.custkeyGroupbyC.custkey,C.nameHavingAVG(O.totalprice)>10003IN嵌套查询。查询订购了“海大”制造的“船舶模拟驾驶舱”的顾客。SelectO.custkeyFromordersOWhereO.orderkeyin(selectL.orderkeyFromlineitemL,WhereL.partkeyin(selectP.partkeyFrompartPWhereP.name=’船舶模拟驾驶舱’andp.mfgr=
4、’海大’))4单层EXISTS嵌套查询。查询没有购买过“海大”制造的“船舶模拟驾驶舱”的顾客。SelectO.custkeyFromordersOWherenotexists(select*FromlineitemLWhereL.orderkey=O.orderkeyandL.partkeyin(selectP.partkeyFrompartPWhereP.name=’船舶模拟驾驶舱’andp.mfgr=’海大’))5双层EXISTS嵌套查询。查询至少购买过顾客“张三”购买过的全部零件的顾客姓名。Selectdisti
5、nctC1.nameFromcustomerC1,orderO1,lineitemL1,partP1WhereC1.custkey=O1.custkeyandO1.orderkey=L1.orderkey=P1.partkeyandNotexists(select*WhereC2.custkey=O2.custkeyandO2.orderkey=L2.orderkey=P2.partkeyandC2.name=’张三’andNotexists(select*FromcustomerC3,orderO3,lineitem
6、L3,partP3WhereC3.custkey=O3.custkeyandO3.orderkey=L3.orderkey=P3.partkeyandP2.partkey=P3.partkeyAndC3,name=C1.name))6集合查询(交、并、差各设计一个)。查询顾客“张三”和“李四”都订购过的全部零件的信息。Select*FrompartPWhereP.partkeyin(selectL.partkeyFromcustomerC,lineitemL,ordersOWhereC,name=’张三’andc.cu
7、stkey=O.custkeyandO.orderkey=L.orderkey)INTERSECTSelect*FrompartP1WhereP1.partkeyin(selectL.partkeyFromcustomerC,lineitemL,ordersOWhereC,name=’李四’andc.custkey=O.custkeyandO.orderkey=L.orderkey)查询顾客“张三”和“李四”订购的全部零件的信息。Select*FrompartPWhereP.partkeyin(selectL.part
8、keyFromcustomerC,lineitemL,ordersOWhereC,name=’张三’andc.custkey=O.custkeyandO.orderkey=L.orderkey)UniomSelect*FrompartP1WhereP1.partkeyin(selectL.partkeyFromcustomerC,