您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 《数据库系统原理》实验报告
学生实验报告(理工类)课程名称:数据库系统原理专业班级:14软件工程1班学生学号:1412101055学生姓名:孟祥辉所属院部:软件工程学院指导教师:麻春艳2015——2016学年第二学期金陵科技学院教务处制实验报告书写要求实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。实验报告书写说明实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。填写注意事项(1)细致观察,及时、准确、如实记录。(2)准确说明,层次清晰。(3)尽量采用专用术语来说明事物。(4)外文、符号、公式要准确,应使用统一规定的名词和符号。(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。实验报告装订要求实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。实验项目名称:数据库定义与操作语言实验学时:2同组学生姓名:孟陈、陈晓雪、季佰军实验地点:1318实验日期:5.19实验成绩:批改教师:批改时间:一、实验目的1、理解和掌握数据库DDL语言,能够熟练地使用SQLDDL语句创建、修改和删除数据库、模式和基本表。2、掌握SQL册亨徐设计基本规范,熟练运用SQL语言实现数据基本查询,包括单表查询、分组统计查询和连接查询3、掌握SQL嵌套查询和集合查询等,各种高级查询的设计方法等.4、熟悉数据库的数据更新操作,能够使用sql语句对数据库进行数据的插入、修改、删除操作。5、熟悉sql语言有关系图的操作,能够熟练使用sql语言来创建需要的视图,定义数据库外模式,并能使用所创建的视图实现数据管理。6、掌握所以设计原则和技巧,能够创建合适的索引以提高数据库查询、统计分析效率。二、实验内容和要求1、理解和掌握SQLDDL语句的语法,特别是各种参数的具体含义和使用方法;使用sql语句创建、修改和删除数据库、模式和基本表。掌握sql语句常见语法错误的调试方法。2、针对TPC-H数据库设计各种单表查询sql语句、分组统计查询语句;设计单个表针对自身的连接查询,涉及多个表的连接查询。理解和掌握sql查询语句各个子句的特点和作用,按照sql程序设计规范写出具体的sql查询语句,并调试通过。3、针对TPC-H数据库,证券分析用户查询要求,设计各种嵌套查询和集合查询。4、针对TPC-H数据库设计单元主唱入、批量数据插入、修改数据和删除数据的sql语句。理解和掌握insert、update、delete语法结构的各个组成成分,结合嵌套sql子查询,分别设计几个不同形式的插入、修改和删除数据的语句,并调试成功。5、针对给定的数据库模式,以及相应的应用要求,创建视图和带WITHCHECKOPTION的视图,并验证视图WITHCHECKOPTION选项的有效性。理解和掌握试图消解执行原理,掌握可更新视图和不可更新视图的区别。6、针对给定的数据库模式和具体应用需求,创建唯一索引、函数索引、复合索引等;修改索引;删除索引。设计相应的sql查询验证索引有效性,学习利用EXPLAIN命令分析sql查询是否使用了所创建的索引,并能够分析其原因,执行sql查询并估算索引提高查询效率的百分比,要求实验数据达到10万条记录以上的数据量,以便验证所以效果.三、实验过程1、数据库定义实验(1)定义数据库采用中文字符集创建名为TCHP的数据库。CREATEDATABASETPCHENCODING=’GBK’;(2)定义模式在数据库TPCH中创建名为SALES的模式。CreateSCHEMASales;(3)定义基本表在TPCH数据库的Sales模式中创建8个基本表。/*设置当前会话的搜索路径为sales模式、public模式,基本表就会自动创建在sales模式下。*/SETSEARCH_PATHTOSales,Public;CREATETABLERegion(regionkeyINTEGERPRIMARYKEY,nameCHAR(25),commentVARCHAR(152));CREATETABLENation(nationkeyINTEGERPRIMARYKEY,nameCHAR(25),addressVARCHAR(40),regionkeyINTEGERREFERENCESREGION(REGIONKEY),commentVARCHAR(152));CREATETABLESupplier(suppkeyINTEGERPRIMARYKEY,nameCHAR(25),addressVARCHAR(40),nationkeyINTEGERREFERENCESNation(nationkey),phoneCHAR(15),acctbalREAL,commentVARCHAR(101));CREATETABLEPart(partkeyINTEGERPRIMARYKEY,nameVARCHAR(55),mfgrCHAR(25),/*制造厂*/brandCHAR(10),typeVARCHAR(25),sizeINTEGER,containerCHAR(10),retailpriceREAL,commentVARCHAR(23));CREATETABLEPartSupp(partkeyINTEGERREFERENCESPart(partkey),suppkeyINTEGERREFERENCESSupplier(suppkey),availqtyINTEGER,supplycostREAL,commentvarchar(199),PRIMARYKEY(parkey,suppkey));CREATETABLECostomer(custkeyINTEGERPRIMARYKEY,nameVARCHAR(25),addressVARCHAR(40),nationkeyINTEGERREFERENCESNation(nationkey),phoneCHAR(15),acctbalREAL,mktsegmentCHAR(10),commentVARCHAR(117));CREATETABLEOrders(orderkeyINTEGERPRIMARYKEY,custkeyINTEGERREFERENCESCustomer(custkey),orderstatusCHAR(1),totalpriceREAL,orderdateDATE,orderpriorityINTEGER,commentVARCHAR(79));CREATETABLELineitem(orderkeyINTEGERREFERENCESOrder(orderkey),partkeyINTEGERREFERENCESPart(partkey),suppkeyINTEGERREFERENCESSupplier(suppkey),linenumberINTEGER,quantityREAL,extendedpriceREAL,discountREAL,taxREAL,returnflagCHAR(1),linestatusCHAR(1),shipinstructCHAR(25),shipmodeCHAR(10),commentVARCHAR(44),PRIMARYKEY(orderkey,linenumber),FOREIGNKEY(Partkey,suppkey)REFERENCESPartSupp(partkey,suppkey));2、数据基本查询(1)单表查询(实现投影操作)查询供应商的名称、地址和联系电话。SELECTEname,address,phoneFROMSupplier;(2)单表查询(实现选择操作)查询最近一周内提交的总价大于1000元的订单的编号、顾客编号等订单的所有信息。SELECT*FROMSales.OrdersWHERECURRENT_DATE-orderdata7ANDtotalprice1000;(3)不带分组过滤条件的分组统计查询统计每个顾客的订购金额SELECTC.custkey,SUM(O.totalprice)FROMcustomerC,OrdersOWHEREC.custkey=O.custkeyGROUPBYC.custkey;(4)带分组过滤条件的分组统计查询查询订单平均金额超过1000元的顾客编号及其姓名SELECTC.custkey,MAX(C.name)FROMCustomerC,OrdersOWHEREC.custkey=O.custkeyGROUPBYC.custkey;HAVINGAVG(O.totalprice)1000;(5)表单自身连接查询查询与“金仓集团”在同一个国家的供应商编号、名称和地址信息。SELECTF.suppkey,F.name,F.addressFROMSupplierF,SupplierSWHEREF.nationkey=S.nationkeyANDS.name='金仓集团';(6)两表连接查询(普通连接)查询供应价格大于零售价格的零件名、制造商名、零售价格和供应价格。SELECTP.name,P.mfgr,P.retailprice,PS.supplycostFROMPartP,PartsuppPSWHEREP.retailpricePS.supplycost;(7)两表连接查询(自然连接)查询供应价格大于零售价格的零件名、制造商名、零售价格和供应价格。SELECTP.name,P.mfgr,P.retailprice,PS.supplycostFROMPartP,PartsuppPSWHEREP.partkey=PS.partkeyANDP.retailpricePS.supplycost;(8)三表连接查询查询顾客“苏举库”订购的订单编号、总价及其订购的零件编号、数量和明细价格。SELECTO.orderkey,O.totalprice,L.partkey,L.quantity,L.extendedpriceFROMCustomC,OrdersO,LineitemLWHEREC.custkey=O.custkeyANDO.orderkey=L.orderkeyANDC.name='苏举库';3、数据高级查询实验(1)IN嵌套查询查询订购了“海大”制造的“船舶模拟驾驶舱”的顾客。SELECTcustkey,nameFROMCustomerWHEREcustkeyIN(SELECTO.custkeyFROMOrdersO,LineitmeL,PartSuppPS,PartPWHEREO.orderkey=L.orderkeyANDL.partkey=PS.partkeyANDL.suppkey=PS.suppkeyANDPS.partkey=P.partkeyANDP.mfgr='海大'ANDP.name='船舶模拟驾驶舱');SELECTcustkey,nameFROMCustomerWHEREcuskeyIN(SELECTO.custkeyFROMOrdersO,LineitemL,PartPWHEREO.orderkey=L.orderkeyANDL.partkey=P.partkeyANDp.mfgr='海大'ANDP.name='船舶模拟驾驶舱');(2)单层EXISTS嵌套查询查询没有购买过“海大”制造的“船舶模拟驾驶舱”的顾客。SELECTcustkey,nameFROMCustomerWHERENOTEXISTS(SELECTO.custkeyFROMOrdersO,LineitemL,PartSuppPS,PartPWHEREC.cuskey=O.custkeyA
本文标题:《数据库系统原理》实验报告
链接地址:https://www.777doc.com/doc-5661093 .html