数据库实验五

实验五 数据库编程

一、实验目的

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='通恒机械有限公司'

数据库系统概论

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值