实验目的和要求

1、掌握SELECT语句的语法格式;

2、掌握单表查询和多表连接查询;

3、了解相关子查询,不相关子查询。

实验内容

在销售管理数据库中完成下列查询操作:

1、集合查询;

2、各种查询的综合运用等。

实验任务&步骤

1、新增一名职工,修改职工数据(例如:ID),删除员工

INSERT INTO Employee(ID,Name,Sex)

VALUES(11,’XXX’,’女’,’2000-01-01′)

UPDATE Employee

SET ID=’01’

WHERE Name=’XXX’;

Delete部分:

2、新增一种产品,新增该产品采购订单,销售订单

表内数据更新:

注意:变量使用前必须声明并初始化变量否则会报错

DECLARE@newProductID INT;

3、删除该新增产品的所有数据

4、统计杭州的客户数量,并显示。

统计结果在视图下进行显示

5、查询单个订单销售数量(SellOrderNumber)大于50的职工的工号,姓名

6、公司进行双11活动,请在产品表格中新增一列,对原产品价格进行9.5折计算,并输入该列

SQL 中,小数数值有两种数据类型:floatdecimal,分别是近似数值和精确数值。其他小数类型,都可以使用float和decimal来替代,例如:双精度(double precision)数据类型等价于 float(53),real等价于float(24)。

当数值不允许精度丢失时,使用 decimal数据类型存储数据。

在计算小数的除法时,SQL Server 内部隐式升级数据类型——根据小数数值的数据类型,就近向float(24) 或float(53)转换。

此问先ADD COLUMN

然后再UPDATE,两步若同时进行会报错

运行结果:

7、将“杭州浦沿量具厂”供应商单独提供的产品的价格上浮10%(没有其它公司重复提供)

ADD‘涨价’列

关联表通过Purchase_order.ProviderID和Provider.ProviderID,Provider.ProductID和Product.ProductID

即语句

FROMPurchase_order

JOINProviderONPurchase_order.ProviderID =Provider.ProviderID

WHEREProvider.ProviderName =‘杭州浦沿量具厂’

8、公司原来的销售部主管离职,请在该部门选出符合主管条件的员工名单(工龄大于20年)

9、公司需要对大客户进行回访,请列出2012-2015年之间,购买金额前五的客户详细信息

采用“limit 5;”进行限制,运行时出现报错。

于是采用Top 5进行限制前五名的输出。

SELECTTOP5

C.CustomerID,

C.CompanyName,

SUM(P.Price *SO.SellOrderNumber)ASTotalPurchaseAmount

FROMCustomer C

JOINSell_Order SO ONC.CustomerID =SO.CustomerID

JOINProduct P ONSO.ProductID =P.ProductID

WHEREYEAR(SO.SellOrderDate)BETWEEN2012 AND2015

GROUPBYC.CustomerID,C.CompanyName

ORDERBYTotalPurchaseAmount DESC

10、年底销售部门进行绩效考核,请列出销售部门业绩前五的员工姓名及工号

相对于上一题只是联表后需再次嵌套,利用DepartmentID确认‘销售部’

即以下语句

WHEREE.DepartmentID =(

SELECTDepartmentID FROMDepartment

WHEREDepartmentName =‘销售部’)