[SQL]销售管理数据库的查询操作
实验目的和要求
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 中,小数数值有两种数据类型:float 和 decimal,分别是近似数值和精确数值。其他小数类型,都可以使用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
即语句
FROM Purchase_order
JOIN Provider ON Purchase_order.ProviderID = Provider.ProviderID
WHERE Provider.ProviderName = '杭州浦沿量具厂'
8、公司原来的销售部主管离职,请在该部门选出符合主管条件的员工名单(工龄大于20年)
9、公司需要对大客户进行回访,请列出2012-2015年之间,购买金额前五的客户详细信息
采用“limit 5;”进行限制,运行时出现报错。
于是采用Top 5进行限制前五名的输出。
SELECT TOP 5
C.CustomerID,
C.CompanyName,
SUM(P.Price * SO.SellOrderNumber) AS TotalPurchaseAmount
FROM Customer C
JOIN Sell_Order SO ON C.CustomerID = SO.CustomerID
JOIN Product P ON SO.ProductID = P.ProductID
WHERE YEAR(SO.SellOrderDate) BETWEEN 2012 AND 2015
GROUP BY C.CustomerID, C.CompanyName
ORDER BY TotalPurchaseAmount DESC
10、年底销售部门进行绩效考核,请列出销售部门业绩前五的员工姓名及工号
相对于上一题只是联表后需再次嵌套,利用DepartmentID确认‘销售部’
即以下语句
WHERE E.DepartmentID = (
SELECT DepartmentID FROM Department
WHERE DepartmentName = '销售部')