关系查询与连接.docx
《关系查询与连接.docx》由会员分享,可在线阅读,更多相关《关系查询与连接.docx(14页珍藏版)》请在冰豆网上搜索。
关系查询与连接
数据库系统概论实验——关系查询与连接
实验题目
实验名称:
关系查询与连接
一、实验目的
1、理解SELECT语句的操作和基本使用方法,熟练掌握简单查询。
2、掌握SELECT语句的嵌套使用,实现表的复杂查询,进一步理解SELECT语句的高级使用方法。
3、理解JOIN语句的操作和基本使用方法,掌握内连接、外连接、自连接的概念和使用。
二、实验环境
使用SQL-Server2000数据库。
实
验
内
容
与
步
骤
实
验
内
容
与
步
骤
实
验
内
容
与
步
骤
三、实验内容与步骤
1、查找所有经理的姓名、职称、薪水。
SQL语句:
selectemp_name,title,salary
fromemployee
wheretitle='经理';
结果:
2、查找出姓“王”并且姓名的最后一个字为“功”的员工。
SQL语句:
select*
fromemployee
whereemp_namelike'王%功'
结果:
3、查找住在上海或北京的女员工,并显示其姓名、所属部门、职称、住址。
SQL语句:
selectemp_name,dept,title,addr
fromemployee
wheresex='F'and(addrlike'北京%'
oraddrlike'上海%')
结果:
4、在表sales中挑出销售金额大于等于10000元订单。
SQL语句:
selectorder_no
fromsales
wheretot_amt>10000;
结果:
5、选取订单金额最高的前10%的订单数据。
因为有21条纪录,所以其%10为2。
selecttop2withties*
fromsales
orderbytot_amtdesc;
结果:
6、查找出职称为经理或职称为职员的女员工的信息。
SQL语句:
select*
fromemployee
wheresex='F'and(title='经理'ortitle='职员');
结果:
7、删除sales表中作废的订单(其发票号码为I000000004)。
SQL语句:
deletefromsales
whereinvoice_no='I000000004';
结果:
8、计算出一共销售了几种产品。
SQL语句:
selectprod_id
fromsale_item
groupbyprod_id;
结果:
由以上结果可知一共销售了19种产品。
9、显示sale_item表中每种个别产品的订购金额总和,并且依据销售金额由大到小排列来显示出每一种产品的排行榜。
SQL语句:
selectorder_no,SUM(tot_amt)
fromsales
groupbyorder_no
groupbySUM(tot_amt)desc;
结果:
10、计算每一产品每月的销售金额总和,并将结果按销售(月份,产品编号)排序。
SQL语句:
selectqty*unit_price每月的销售金额总和
fromsale_item
orderbyorder_date,prod_id
结果:
11、由sales表中查找出销售金额最高的订单。
SQL语句:
selecttop1withties*
fromsales
orderbytot_amtdesc
结果:
12、由sales表中查找出订单金额大于“E0013业务员在1996/10/15这天所接任一张订单的金额”的所有订单,并显示承接这些订单的业务员和该条订单的金额。
SQL语句:
selectsales.order_no,sales.tot_amt,
sales.order_date,sales.ship_date,
sales.invoice_no,sales.cust_id
fromemployee,sales
whereemployee.emp_no=sales.sale_id
andsex='F'
结果:
13、找出公司女业务员所接的订单。
SQL语句:
selectsales.order_no,sales.tot_amt,
sales.order_date,sales.ship_date,
sales.invoice_no,sales.cust_id
fromemployee,sales
whereemployee.emp_no=sales.sale_id
andsex='F'
结果:
14、找出公司中姓名相同的员工,并且依据员工编号排序相识这些员工信息。
SQL语句:
select*fromemployee
whereemp_name=
(selectemp_name
fromemployee
groupbyemp_name
havingcount(emp_name)>1)
结果:
15、找出目前业绩未超过200000元的员工。
SQL语句:
selectemployee.emp_no,employee.emp_name,sex,
employee.dept,employee.title,employee.date_hired,
employee.birthday,employee.salary,employee.addr
fromemployee,sales
whereemployee.emp_no=sales.sale_idand
sales.tot_amt>200000
结果:
16、计算公司内各个部门的工资支出总和。
SQL语句:
selectdept,sum(salary)
fromemployee
groupbydept
结果:
17、计算每一产品销售数量总和与平均销售单价。
SQL语句:
selectprod_id,sum(qty)销售数量总和,
avg(unit_price)平均销售单价
fromsale_item
groupbyprod_id
结果:
18、查找出employee表中部门相同且住址相同的女员工的姓名、性别、职称、薪水、住址。
SQL语句:
selectemp_name,sex,
title,salary,addr
fromemployee
wheredeptin
(selectdept
fromemployee
groupbydept
havingcount(dept)>1)and
addrin
(selectaddr
fromemployee
groupbyaddr
havingcount(addr)>1)
结果:
19、检索product表和sale_item表中相同产品的产品编号、产品名称、数量、单价。
SQL语句:
selectsale_item.prod_id,prod_name,
qty,unit_price
fromsale_item,product
wheresale_item.prod_id=product.prod_id
结果:
20、检索product表和sale_item表中单价高于2400元的相同产品的产品编号、产品名称、数量、单价。
SQL语句:
selectsale_item.prod_id,prod_name
fromsale_item,product
wheresale_item.prod_id=product.prod_id
andsale_item.unit_price>2400
结果: