赞
踩
实验五 数据库编程
一、实验目的
1.掌握数据库编程各种控制语句的使用
2.掌握存储过程的创建
二、实验内容
编程计算S=2+4+6+……+100
DECLARE @i int,@sum int
SELECT @sum =0,@i=2
WHILE(@i<=100)
BEGIN
SET @sum+=@i
SET @i+=2
END
PRINT @SUM
编程计算S=1+(1+3)+(1+3+5)+……+(1+3+5……+51)
Σn²=n(n+1)(2n+1)/6
DECLARE @n int , @S int
SELECT @S=0,@n=1
WHILE (@n<=51)
BEGIN
SET @S=(@n*(@n+1)*(2*@n+1))/6
SET @n+=1
END
PRINT @S
查询是否有“打印机”的订单,如果有,输出“目前有打印机的订单”,如果没有,输出“目前没有打印机的订单”。
IF
(
SELECT COUNT(S.SellOrderID)
FROM Sell_Order S ,Product P
WHERE P.ProductID=S.ProductID AND P.ProductName='打印机'
)=0
PRINT '目前没有打印机的订单'
ELSE PRINT '目前有打印机的订单'
IF(
SELECT SellOrderID
FROM Sell_Order
WHERE EXISTS(SELECT ProductID
FROM Product
WHERE ProductName='打印机')
) IS NULL
PRINT '目前没有打印机的订单'
ELSE PRINT '目前有打印机的订单'
在销售管理数据库中创建存储过程proc_select,实现查询所有员工的功能。
CREATE procedure PROC_SELECT
AS
SELECT *
FROM Employee
在销售管理数据库中创建存储过程proc_employee_order,要求实现如下功能:根据员工的姓名查询该员工的奖金情况,奖金根据该员工接收订单的总金额计算得到(奖金=总金额*5%),调用存储过程,查询员工王孔若和蔡慧敏的奖金。
CREATE PROCEDURE PROC_EMPLOYEE_ORDER
@EMPLOYEENAME VARCHAR(10)
AS
SELECT EmployeeName,SUM(SellOrderNumber*Price*0.05)
FROM Employee,Sell_Order,Product
WHERE Employee.EmployeeID=Sell_Order.EmployeeID AND Sell_Order.ProductID=Product.ProductID AND Employee.EmployeeName=@EMPLOYEENAME
GROUP BY Employee.EmployeeName
EXEC PROC_EMPLOYEE_ORDER @EMPLOYEENAME='王孔若'
EXEC PROC_EMPLOYEE_ORDER @EMPLOYEENAME='蔡慧敏'
在销售管理数据库中创建存储过程proc_customer_order, 要求实现如下功能:根据客户的公司名称查询该客户的订单情况,如果该公司没有订购商品,则输出“某某公司没有订购商品”,否则输出订购商品的相关信息,包括公司名称,联系人姓名,订购商品名称,订购数量,单价。调用存储过程,查询“通恒机械有限公司”订购商品情况。
CREATE PROCEDURE PROC_CUSTOMER_ORDER
@COMPANYNAME VARCHAR(10)
AS
IF
(SELECT COUNT(SellOrderID)
FROM Sell_Order
GROUP BY CustomerID)=0
PRINT '某某公司没有订购商品'
ELSE
(
SELECT C.CompanyName,C.ContactName,P.ProductName,S.SellOrderNumber,P.Price
FROM Customer C,Sell_Order S,Product P
WHERE C.CustomerID=S.CustomerID AND S.ProductID=P.ProductID and c.CompanyName=@COMPANYNAME
)
EXEC PR0C_CUSTOMER_ORDER @COMPANYNAME='通恒机械有限公司'
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。