数据库系统原理与设计(第二版)实验一至实验三
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图1-11
12.统计至少销售了10件以上的商品编号和销售数量。
select productno商品编号,quantity商品数目
from orderdetail
where quantity>=10
图1-12
13.统计在业务科工作且在1973年或1967年出生的员工人数和平均工资
select count(*)人数,avg(salary)平均工资
group by a.productNo,a.productName,b.price
图2-10
11.使用左外连接查找每个客户的客户编号、名称、订货日期、订单金额、其中订货日期不显示时间日期格式为yyyy-mm-dd按客户编号排序 同一客户再按订单金额降序排序输出。
selecta.customerno客户编号,customername客户名称,convert(char(10),orderdate,120)销售日期,ordersum销售金额
Select*
from Customer
where CustomerNonot in ('C20050001','C20050004')
图1-6
图1-6
7.在订单明细表Ordermaster中挑出销售金额大于等于5000元的订单。
updateordermastersetordersum=sum2
fromordermaster a,(selectorderno,sum(quantity*price)sum2
实验一
1-1.查询员工的姓名、职务和薪水Baidu Nhomakorabea
select employeeName,headShip,salary
from employee
图1-1
2.查询名字中含有“有限”的客户姓名和所在地
select CustomerName,address
from Customer
where CustomerName like '%有限%'
select *
from OrderMaster
where orderSum>any(select orderSum from OrderMaster where salerNo='E2005002' andorderDate='2008-1-9')
图2-8
9.查询单价高于400元的商品编号 商品名称 订货数量和订货单价。
isnull (convert(char(10),birthday,120),'不详')出生日期,
case sex when 'M'then '男'
when 'F'then'女'
end as性别
from employee
where(address like '%上海%'or address like '%南昌%')and sex='F'
图2-5
6.使用子查询查找32M DRAM的销售情况 要求显示相应的销售员的姓名、性别、销售日期 销售数量和金额其中性别用“男”和“女”表示
selectemployeeName,casesex
when'M'then'男'
when'F'then'女'
endassex,b.orderDate,c.quantity销售数量,c.quantity*c.price金额
group by a.customerNo,a.customerName,b.orderNo
图2-4
5.查询没有订购商品的客户编号和客户名称
SELECTa.customerNo,customerName
FROMCustomer a
WHEREa.customerNoNOTIN(SELECTcustomerNoFROMOrderMaster)
图2-3
4.查找有销售记录的客户编号 名称和订单总额
select a.customerNo,a.customerName,b.orderNo,sum(quantity*price) orderSum
from Customer a,OrderMaster b,OrderDetail c
where a.customerNo=b.customerNo and b.orderNo=c.orderNo
whered.orderNo=e.orderNoandproductName='32M DRAM')
图2-6
7.查询OrderMaster表中订单金额最高的订单号及订单金额
select orderNo,sum(quantity*price) orderSum
from OrderDetail
group by orderNo
select a.employeeName,case sex when'F'then'女'
when'M'then'男'
end as sex,b.orderDate,c.quantity,c.price*c.quantity金额
图1-8
9.计算一共销售了几种商品
SELECT COUNT(DISTINCT productno)as种类
from orderDeta
图1-9
10.计算orderDetail表中每种商品的销售数量、平均价格和总销售量金额,并且依据销售金额由大到小输出。
SELECT productno商品种类,count(*)quantity,avg (price)平均价格,sum(quantity*price)金额
b.productNo=a.productNo
group by a.productNo,a.productName,b.price
select a.productNo,a.productName,sum(b.quantity)订货数量,b.price
from Product a full outer join OrderDetail b on a.productPrice>400 and b.productNo=a.productNo
from orderDetail
group by productno
order by金额desc
图1-10
11.按客户编号统计每个客户2008年2月的订单总金额。
select customerno,ordersum
from ordermaster
where year(orderDate)=2008 and month(orderDate)=2
图1-2
3.查询出姓“张”并且姓名的最后一个字为“梅”的员工。
select *
from employee
where employeeName like '张%梅'
图1-3
4.查询住址中含有上海或南昌的女员工,并显示其姓名、所属部门、职称、住址,其中性别用“男”和“女”显示
SELECT employeeName,department,address,
selecta.employeeNo,a.employeeName,casesex
when'F'then'女'
when'M'then'男'
Endsex,b.productName,d.quantity,d.price,d.quantity*d.price金额,orderDate=convert(char(10),orderDate,120)
from Employee a,Employee b
where a.employeeNo!=b.employeeNo and a.hireDate=b.hireDate
图2-1
2.查找与“陈诗杰”在同一个单位工作的员工姓名、性别、部门和职务
selecta.employeeName,a.sex,a.department,a.headShip
图2-9
10.分别使用左外连接、右外连接、完整外部连接查询单价高于400元的商品编号、商品名称、订货数量和订货单价并分析比较检索的结果。
select a.productNo,a.productName,sum(b.quantity)订货数量,b.price
from Product a left outer join OrderDetail b on a.productPrice>400 and b.productNo=a.productNo
select a.productNo,a.productName,sum(b.quantity)订货数量,b.price
from Product a,OrderDetail b
where a.productPrice>400 and b.productNo=a.productNo
group by a.productNo,a.productName,b.price
group by a.productNo,a.productName,b.price
select a.productNo,a.productName,sum(b.quantity)订货数量,b.price
from Product a right outer join OrderDetail b on a.productPrice>400 and
fromEmployee a,OrderMaster b,OrderDetail c
wherea.employeeNo=b.salerNoandb.orderNo=c.orderNoandc.productNoin(selectf.productNo
fromOrderMaster d,OrderDetail e,Product f
fromEmployee a,Employee b
wherea.department=b.departmentandb.employeeName='陈诗杰'
图2-2
3.在employee表中查询薪水超过员工平均薪水的员工信息
select *
from Employee a
where a.salary>(select avg(b.salary) from Employee b)
fromEmployee a,Product b,OrderMaster c,OrderDetail d
wherea.employeeNo=c.salerNoandb.productNo=d.productNoandc.orderNo=d.orderNo 图2-12
13.查询16M DRAM的销售情况要求显示相应的销售员的姓名、性别、销售日期、销售数量和金额、其中性别用“男” “女”表示。
from Employee
where department='业务科' and (year(birthday)=1973 or year(birthday)=1967)
图1-13
实验二
1.找出同一天进入公司工作的员工
select distincta.employeeNo,a.employeeName,a.hireDate
having sum(quantity*price)=(select max(orderSum)
from (select orderNo,sum(quantity*price) orderSum
from OrderDetail
group by orderNo)b)
图2-7
8.在订单主表中查询订单金额大于“E2005002业务员在2008-1-9这天所接的任一张订单的金额”的所有订单信息。
图1-4
5.查询出职务为“职员”或职务为“科长”的女员工的信息
select *
from employee
where (headship='职员' or headship='科长') and sex='F'
图1-5
6.选取编号不在“C20050001”和“C20050004”的客户编号、客户名称、客户地址。
fromorderdetail
groupbyorderno)b
wherea.orderno=b.orderno
Select *
From ordermaster
Where ordersum>=’5000’
图1-7
8.选取订单金额最高的前10%的订单数据
SELECT TOP 10 PERCENT *
from orderdetail order by price DESC
fromordermaster aleftouterjoincustomer bon(a.customerno=b.customerno)
orderbya.customerno,ordersumdesc
12.查找每个员工的销售记录 要求显示销售员的编号、姓名、性别、商品名称、数量、单价、金额和销售日期 其中性别使用“男”和“女”表示 日期使用yyyy-mm-dd格式显示。
12.统计至少销售了10件以上的商品编号和销售数量。
select productno商品编号,quantity商品数目
from orderdetail
where quantity>=10
图1-12
13.统计在业务科工作且在1973年或1967年出生的员工人数和平均工资
select count(*)人数,avg(salary)平均工资
group by a.productNo,a.productName,b.price
图2-10
11.使用左外连接查找每个客户的客户编号、名称、订货日期、订单金额、其中订货日期不显示时间日期格式为yyyy-mm-dd按客户编号排序 同一客户再按订单金额降序排序输出。
selecta.customerno客户编号,customername客户名称,convert(char(10),orderdate,120)销售日期,ordersum销售金额
Select*
from Customer
where CustomerNonot in ('C20050001','C20050004')
图1-6
图1-6
7.在订单明细表Ordermaster中挑出销售金额大于等于5000元的订单。
updateordermastersetordersum=sum2
fromordermaster a,(selectorderno,sum(quantity*price)sum2
实验一
1-1.查询员工的姓名、职务和薪水Baidu Nhomakorabea
select employeeName,headShip,salary
from employee
图1-1
2.查询名字中含有“有限”的客户姓名和所在地
select CustomerName,address
from Customer
where CustomerName like '%有限%'
select *
from OrderMaster
where orderSum>any(select orderSum from OrderMaster where salerNo='E2005002' andorderDate='2008-1-9')
图2-8
9.查询单价高于400元的商品编号 商品名称 订货数量和订货单价。
isnull (convert(char(10),birthday,120),'不详')出生日期,
case sex when 'M'then '男'
when 'F'then'女'
end as性别
from employee
where(address like '%上海%'or address like '%南昌%')and sex='F'
图2-5
6.使用子查询查找32M DRAM的销售情况 要求显示相应的销售员的姓名、性别、销售日期 销售数量和金额其中性别用“男”和“女”表示
selectemployeeName,casesex
when'M'then'男'
when'F'then'女'
endassex,b.orderDate,c.quantity销售数量,c.quantity*c.price金额
group by a.customerNo,a.customerName,b.orderNo
图2-4
5.查询没有订购商品的客户编号和客户名称
SELECTa.customerNo,customerName
FROMCustomer a
WHEREa.customerNoNOTIN(SELECTcustomerNoFROMOrderMaster)
图2-3
4.查找有销售记录的客户编号 名称和订单总额
select a.customerNo,a.customerName,b.orderNo,sum(quantity*price) orderSum
from Customer a,OrderMaster b,OrderDetail c
where a.customerNo=b.customerNo and b.orderNo=c.orderNo
whered.orderNo=e.orderNoandproductName='32M DRAM')
图2-6
7.查询OrderMaster表中订单金额最高的订单号及订单金额
select orderNo,sum(quantity*price) orderSum
from OrderDetail
group by orderNo
select a.employeeName,case sex when'F'then'女'
when'M'then'男'
end as sex,b.orderDate,c.quantity,c.price*c.quantity金额
图1-8
9.计算一共销售了几种商品
SELECT COUNT(DISTINCT productno)as种类
from orderDeta
图1-9
10.计算orderDetail表中每种商品的销售数量、平均价格和总销售量金额,并且依据销售金额由大到小输出。
SELECT productno商品种类,count(*)quantity,avg (price)平均价格,sum(quantity*price)金额
b.productNo=a.productNo
group by a.productNo,a.productName,b.price
select a.productNo,a.productName,sum(b.quantity)订货数量,b.price
from Product a full outer join OrderDetail b on a.productPrice>400 and b.productNo=a.productNo
from orderDetail
group by productno
order by金额desc
图1-10
11.按客户编号统计每个客户2008年2月的订单总金额。
select customerno,ordersum
from ordermaster
where year(orderDate)=2008 and month(orderDate)=2
图1-2
3.查询出姓“张”并且姓名的最后一个字为“梅”的员工。
select *
from employee
where employeeName like '张%梅'
图1-3
4.查询住址中含有上海或南昌的女员工,并显示其姓名、所属部门、职称、住址,其中性别用“男”和“女”显示
SELECT employeeName,department,address,
selecta.employeeNo,a.employeeName,casesex
when'F'then'女'
when'M'then'男'
Endsex,b.productName,d.quantity,d.price,d.quantity*d.price金额,orderDate=convert(char(10),orderDate,120)
from Employee a,Employee b
where a.employeeNo!=b.employeeNo and a.hireDate=b.hireDate
图2-1
2.查找与“陈诗杰”在同一个单位工作的员工姓名、性别、部门和职务
selecta.employeeName,a.sex,a.department,a.headShip
图2-9
10.分别使用左外连接、右外连接、完整外部连接查询单价高于400元的商品编号、商品名称、订货数量和订货单价并分析比较检索的结果。
select a.productNo,a.productName,sum(b.quantity)订货数量,b.price
from Product a left outer join OrderDetail b on a.productPrice>400 and b.productNo=a.productNo
select a.productNo,a.productName,sum(b.quantity)订货数量,b.price
from Product a,OrderDetail b
where a.productPrice>400 and b.productNo=a.productNo
group by a.productNo,a.productName,b.price
group by a.productNo,a.productName,b.price
select a.productNo,a.productName,sum(b.quantity)订货数量,b.price
from Product a right outer join OrderDetail b on a.productPrice>400 and
fromEmployee a,OrderMaster b,OrderDetail c
wherea.employeeNo=b.salerNoandb.orderNo=c.orderNoandc.productNoin(selectf.productNo
fromOrderMaster d,OrderDetail e,Product f
fromEmployee a,Employee b
wherea.department=b.departmentandb.employeeName='陈诗杰'
图2-2
3.在employee表中查询薪水超过员工平均薪水的员工信息
select *
from Employee a
where a.salary>(select avg(b.salary) from Employee b)
fromEmployee a,Product b,OrderMaster c,OrderDetail d
wherea.employeeNo=c.salerNoandb.productNo=d.productNoandc.orderNo=d.orderNo 图2-12
13.查询16M DRAM的销售情况要求显示相应的销售员的姓名、性别、销售日期、销售数量和金额、其中性别用“男” “女”表示。
from Employee
where department='业务科' and (year(birthday)=1973 or year(birthday)=1967)
图1-13
实验二
1.找出同一天进入公司工作的员工
select distincta.employeeNo,a.employeeName,a.hireDate
having sum(quantity*price)=(select max(orderSum)
from (select orderNo,sum(quantity*price) orderSum
from OrderDetail
group by orderNo)b)
图2-7
8.在订单主表中查询订单金额大于“E2005002业务员在2008-1-9这天所接的任一张订单的金额”的所有订单信息。
图1-4
5.查询出职务为“职员”或职务为“科长”的女员工的信息
select *
from employee
where (headship='职员' or headship='科长') and sex='F'
图1-5
6.选取编号不在“C20050001”和“C20050004”的客户编号、客户名称、客户地址。
fromorderdetail
groupbyorderno)b
wherea.orderno=b.orderno
Select *
From ordermaster
Where ordersum>=’5000’
图1-7
8.选取订单金额最高的前10%的订单数据
SELECT TOP 10 PERCENT *
from orderdetail order by price DESC
fromordermaster aleftouterjoincustomer bon(a.customerno=b.customerno)
orderbya.customerno,ordersumdesc
12.查找每个员工的销售记录 要求显示销售员的编号、姓名、性别、商品名称、数量、单价、金额和销售日期 其中性别使用“男”和“女”表示 日期使用yyyy-mm-dd格式显示。