B17041622-洪宗涛-数据库实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验报告(2018/2019学年第二学期)课程名称数据库系统与设计实验名称数据库系统程序设计与分析实验时间2019年5,6月24/31,14/21日指导单位计算机学院/软件学院指导教师沈苏彬学生姓名洪宗涛班级学号B17041622学院(系)计算机学院专业软件工程(NIIT)1实验报告实验名称数据库系统程序设计与分析指导教师沈苏彬实验类型上机实验学时16实验时间2019-5-24/31,6-14/21一、实验目的和要求(1)掌握数据库系统创建和数据添加的程序设计方法(2)掌握采用SQL编程语言实现关系数据库查询的程序设计方法(3)掌握对于已有数据库进行有兴趣的数据查询设计方法(4)掌握对于复杂数据库查询的优化程序设计方法(5)掌握SQL编程性能监测和分析方法要求独立完成实验方案的设计、数据库的构建、数据录入、SQL程序的编制、调试和运行;要求独立完成实验报告的编写。二、实验环境(实验设备)硬件:微机软件:SQLServer2008三、实验原理及内容实验1、利用教材习题2.3.1给出的关系模式和习题2.4.1给出的数据,建立包括Product、PC、Laptop、Printer四个关系模式的关系数据库,并且录入给出的数据。实验2、按照教材习题6.2.2要求,编制查询语句,并且利用实验1已经建立的关系数据库,执行查询语句,得出查询结果。在编制查询语句时,建议参照习题2.4.1编制的相关查询的关系代数表达式。实验3、按照教材习题6.3.1要求,参照习题2.4.1编制的相关查询的关系代数表达式,利用核心数据库查询语言(即核心SQL,不包括GROUPBY、SUM、AVG、MIN、MAX、和COUNT语句)编制查询语句,对在实验1中建立的关系数据库进行查询,并且记录查询结果。实验4、按照教材习题6.4.6要求,利用完全数据库查询语言(完全SQL)编制查询语句,对在实验1中建立的关系数据库进行查询,并且记录查询结果。实验5、基于在实验1中建立的关系数据库和录入的数据进行数据查询,查找“具有最流行配置的PC型号和制造商”,查找“具有较高性价比的Laptop型号和制造商”,以及至少针对自己设立的一项有兴趣的题目,进行数据查询,得出查询结果,并且监测数据查询所花费的时间。实验6、对实验5的数据查询的SQL程序进行优化,重新执行以上的数据查询操作,监测优化后SQL程序所花费的时间,比较优化前后的数据查询的性能差异,分析其中的优化原理。参考教材《数据库系统基础教程(第三版)》中译本,JefferyD.Ullman,JenniferWidon著,岳丽华,金培权,万寿红等译.北京:机械工业出版社,2011.2实验11.Product、PC、Laptop、Printer四个关系模式的关系数据库的建立CREATETABLEProduct(makerCHAR(10),--制造商modelINTPRIMARYKEY,--型号typeCHAR(10)--产品类型);CREATETABLEPC(modelINTPRIMARYKEY,--型号speedFLOAT,--速度ramINT,--内存hdINT,--硬盘容量priceINT--价格);CREATETABLELaptop(modelINTPRIMARYKEY,--型号speedFLOAT,--速度ramINT,--内存hdINT,--硬盘容量screenFLOAT,--屏幕尺寸priceINT--价格);CREATETABLEPrinter(modelINTPRIMARYKEY,--型号colorCHAR(10),--色彩typeCHAR(10),--处理类型priceINT--价格);2.数据的录入及录入数据的查看Product表INSERTINTOProduct(maker,model,type)VALUES('A',1001,'pc'),('A',1002,'pc'),('A',1003,'pc'),3('A',2004,'laptop'),('A',2005,'laptop'),('A',2006,'laptop'),('B',1004,'pc'),('B',1005,'pc'),('B',1006,'pc'),('B',2007,'laptop'),('C',1007,'pc'),('D',1008,'pc'),('D',1009,'pc'),('D',1010,'pc'),('D',3004,'printer'),('D',3005,'printer'),('E',1011,'pc'),('E',1012,'pc'),('E',1013,'pc'),('E',2001,'laptop'),('E',2002,'laptop'),('E',2003,'laptop'),('E',3001,'printer'),('E',3002,'printer'),('E',3003,'printer'),('F',2008,'laptop'),('F',2009,'laptop'),('G',2010,'laptop'),('H',3006,'printer'),('H',3007,'printer');查看Product表SELECT*FROMProduct;4PC表INSERTINTOPC(model,speed,ram,hd,price)VALUES(1001,2.66,1024,250,2114),(1002,2.10,512,250,995),(1003,1.42,512,80,478),(1004,2.80,1024,250,649),(1005,3.20,512,250,630),(1006,3.20,1024,320,1049),(1007,2.20,1024,200,510),(1008,2.20,2048,250,770),(1009,2.00,1024,250,650),(1010,2.80,2048,300,770),(1011,1.86,2048,160,959),(1012,2.80,1024,160,649),(1013,3.06,512,80,529);5查看PC表SELECT*FROMPC;Laptop表INSERTINTOLaptop(model,speed,ram,hd,screen,price)VALUES(2001,2.00,2048,240,20.1,3673),(2002,1.73,1024,80,17.0,949),(2003,1.80,512,60,15.4,549),(2004,2.00,512,60,13.3,1150),(2005,2.16,1024,120,17.0,2500),(2006,2.00,2048,80,15.4,1700),(2007,1.83,1024,120,13.3,1429),(2008,1.60,1024,100,15.4,900),(2009,1.60,512,80,14.1,680),(2010,2.00,2048,160,15.4,2300);查看Laptop表SELECT*FROMLaptop;Printer表INSERTINTOPrinter(model,color,type,price)6VALUES(3001,'true','ink-jet',99),(3002,'false','laser',239),(3003,'true','laser',899),(3004,'true','ink-jet',120),(3005,'false','laser',120),(3006,'true','ink-jet',100),(3007,'true','laser',200);查看Printer表SELECT*FROMPrinter;实验2a.查询硬盘容量至少30G的笔记本电脑制造商及该电脑的速度SELECTmaker,speedFROMProduct,LaptopWHEREProduct.model=Laptop.modelANDhd=30;b.查询制造商B生产的任意类型的所有产品的型号和价格(SELECTProduct.modelASmodel,price7FROMProduct,PCWHEREProduct.model=PC.modelANDmaker='B')UNION(SELECTProduct.modelASmodel,priceFROMProduct,LaptopWHEREProduct.model=Laptop.modelANDmaker='B')UNION(SELECTProduct.modelASmodel,priceFROMProduct,PrinterWHEREProduct.model=Printer.modelANDmaker='B')c.查询只卖笔记本电脑不卖PC的厂商(SELECTmakerFROMProductWHEREtype='Laptop')EXCEPT(SELECTmakerFROMProductWHREtype='PC');d.查询出现在两种或两种以上PC中的硬盘的大小SELECTDISTINCTPC1.ramASramFROMPCPC1,PCPC2WHEREPC1.modelPC2.modelANDPC1.ram=PC2.ram;e.查询每对具有相同速度和RAM的PC的型号。每对只能列出一8次;例如,若(i,j)已被列出,则(j,i)就不能再被列出SELECTPC1.modelASi,PC2.modelASjFROMPCPC1,PCPC2WHEREPC1.speed=PC2.speedANDPC1.ram=PC2.ramANDPC1.modelPC2.model;f.查询生产至少两种速度至少为3.0的电脑(PC或笔记本电脑)的厂商SELECTmakerFROM((SELECTmaker,Product.modelASmodelFROMProduct,PCWHEREProduct.model=PC.modelANDspeed=3.0)UNION(SELECTmaker,Product.modelASmodelFROMProduct,LaptopWHEREProduct.model=Laptop.modelANDspeed=3.0))TempGROUPBYmakerHAVINGCOUNT(model)=2;实验3a.找出速度在3.0以上的PC制造商方法1SELECTDISTINCTmakerFROMProductWHEREmodelIN(SELECTmodelFROMPCWHEREspeed=3.0);方法2SELECTDISTINCTmaker9FROMProductWHEREEXISTS(SELECTmodelFROMPCWHEREPC.speed=3.0ANDmodel=Product.model);b.找出价格最高的打印机方法1SELECTmodelFROMPrinterWHEREprice=ALL(SELECTpriceFROMPrinter);方法2SELECTmodelFROMPrinterWHERENOT(priceANY(SELECTpriceFROMPrinter));c.找出速度比任何一台PC都慢的笔记本电脑方法1SELECTmodelFROMLaptopWHEREspeedALL(SELECTspeedFROMPC);方法2SELECTmodelFROMLaptopWHERENOT(speedANY(SELECTspeed10FROMPC));d.找出价格最高的产品(PC、笔记本电脑或打印机)的型号方法1SELECTmodelFROM((SELECTmodel,priceFROMPC)UNION(SELECTmodel,priceFROMLaptop)UNION(SELECTmodel,priceFROMPrinter))Temp1WHEREprice=ALL(SELECTpriceFROM((SELECTpr

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功