学生实验3.docx
《学生实验3.docx》由会员分享,可在线阅读,更多相关《学生实验3.docx(15页珍藏版)》请在冰豆网上搜索。
学生实验3
1、理解SQL查询的概念。
2、掌握SQLServer2000查询分析器的使用方法。
3、掌握SELECT语句在单表、多表和高级查询中的应用。
【实验要求】
使学生能够理解SQL查询的概念,掌握查询分析器的使用方法和SELECT语句在单表、多表和高级查询中的应用。
【实验环境】
1、操作系统:
WinXpProfessional
2、数据库:
SQLServer2000
【实验内容】
1、将实验二中建立的数据库及其对象还原到机器上。
2、检查数据库中的表格,如下:
3、作下列单表查询练习:
(1)查询所有产品的详细信息
(2)从Printer关系中找出所有彩色打印机的元组。
(3)找出价格低于3500元的所有PC机的型号、速度以及硬盘容量。
(4)找出价格低于3500元的所有PC机的型号、速度以及硬盘容量。
并将型号字段改成中文“型号”;速度字段改成“兆赫”;并将硬盘容量改成“兆字节”。
(5)找出所有打印机的制造商。
(6)找出费用高于4500元的Laptop电脑的型号、内存容量及其屏幕尺寸。
(7)找出具有32速或64速光驱而且价格低于4000元的所有PC机的型号、速度以及硬盘容量。
(8)找出PC机价格在4000-5000元的机器的型号、硬盘容量以及价格。
(9)从Product表中查询PC机和手提的型号和厂商。
(10)查询所有以P开头的机器类型的全部信息。
(11)查询含有P字母的机器类型的全部信息。
(12)查询手提的型号和价格。
价格按照降序排列。
(13)求出所有PC机的总价格、平均价格、以及最大、最小价格。
(14)从Product表中统计出每个厂商生产的型号数量
(15)从Product表中找出至少生产三种不同型号机器的厂商。
4、作下列多表和高级查询练习:
(1)找出速度至少为180赫兹的PC机的厂商
(2)查询便携式电脑具有最小有80G并且速度大于130的生产型号、厂商和价格?
(3)找出至少生产两种不同型号的PC机,且机器速度至少为150的厂商
(4)哪个厂商的便携式电脑具有最小有80G?
(5)找出厂商B生产的所有产品的型号和价格
(6)找出既销售便携式电脑,又销售个人电脑的厂商
(7)找出销售便携式电脑,但不销售个人电脑
(8)找出两种或两种以上PC机上出现的硬盘容量
(9)找出速度相同且ram相同的成对的PC型号。
一对型号只列出一次。
(10)写出SQL查询,该查询将生成所有产品的一切信息。
实验代码:
3
(1)select*fromProduct
(2)
select*
fromPrinter
wherecolor='1';
(3)
selectmodel,speed,hd
fromPC
whereprice<3500;
(4)
selectmodel'型号',speed'兆赫',hd'兆字节'
fromPC
whereprice<3500;
(5)
selectmaker
fromProduct,Printer
whereProduct.model=Printer.model;
(6)
selectmodel,ram,screen
fromLaptop
whereprice>4500;
(7)
selectmodel,speed,hd
fromPC
wherecd=32orcd=64andprice<4000;
(8)
selectmodel,hd,price
fromPC
whereprice>=4000andprice<=5000;
(9)
selectProduct.model,Product.maker
fromProduct
whereProduct.type='PC'orProduct.type='Laptop';
(10)
SELECT*
FROMProduct
WHEREtypeLIKE'P%';
(11)
SELECT*
FROMProduct
WHEREtypeLIKE'%P%';
(12)
selectmodel,price
fromLaptop
orderbypricedesc;
(13)
selectmax(price)'max',SUM(price)'sum',AVG(price)'avg',MIN(price)'min'
fromPC
(14)
selectmaker,count(model)asmany
fromProduct
groupbymaker
(15)
selectmaker,count(model)asmany
fromProduct
groupbymaker
havingcount(model)>=3;
4
(1)
selectmaker
fromProduct,PC
whereProduct.model=PC.modelandPC.speed>=180;
(2)
selectProduct.maker,Product.model,Laptop.price
fromProduct,Laptop
whereProduct.model=Laptop.modelandLaptop.hd>=80andLaptop.speed>=130;
(3)
selectmaker,count(Product.model)
fromProduct,PC
whereProduct.model=PC.modelandPC.speed>=150
groupbymaker
havingcount(Product.model)>=2;
(4)
selectmaker
fromProduct,Laptop
whereProduct.model=Laptop.modelandLaptop.hd>=80;
(5)
selectPC.model,PC.price
fromPC
wherePC.modelIN
(SELECTProduct.model
fromProduct
whereProduct.maker='B')
union
selectLaptop.model,Laptop.price
fromLaptop
whereLaptop.modelIN
(SELECTProduct.model
fromProduct
whereProduct.maker='B')
union
selectPrinter.model,Printer.price
fromPrinter
wherePrinter.modelIN
(SELECTProduct.model
fromProduct
whereProduct.maker='B')
(6)
selectdistinctp1.maker
fromProductp1,Productp2
wherep1.maker=p2.makerandp1.type='PC'andp2.type='Laptop';
(7)
selectdistinctProduct.maker
fromProduct
whereProduct.type='Laptop'andProduct.makerNOTIN
(selectProduct.maker
fromProduct
whereProduct.type='PC')
(8)
selectdistinctf1.hd
fromPCf1,PCf2
wheref1.hd=f2.hdandf1.model!
=f2.model;
(9)
selectdistinctf1.model,f2.model
fromPCf1,PCf2
wheref1.ram=f2.ramandf1.speed=f2.speedandf1.model(10)
select*
fromPC,Laptop,Product,Printer
whereProduct.model*=PC.modelandProduct.model*=Printer.modelandProduct.model*=Laptop.model;