37205-00_SQL Server 2005课后实训参考答案 下载本文

USE Sale GO

CREATE INDEX IX_ProOut ON ProOut (SaleDate) GO

徐人凤 共 33 页 第 33 页 5/19/2015 33 33

单元9(Transcact-SQL语言编程基础) 本单元实训使用Sale数据库。

1.计算有多少种产品(假设为@x),然后显示一条信息:共有x种产品。

USE Sale GO

DECLARE @x int

SET @x=(SELECT COUNT(*) FROM Product) PRINT '共有'+convert(char(2),@x) +'种产品。' GO

2.编写计算n!(n=20)的程序,并显示计算结果。

DECLARE @i int,@PRODUCT FLOAT --定义整型变量@i用来计数;@Product为存放结果的单元

SELECT @i=1,@PRODUCT=1 --给整型变量@i和@sum赋值 WHILE @i<=20 --当@i小于等于时,执行循环体

BEGIN --定义语句块 SELECT @PRODUCT=@PRODUCT*@i --求和 SELECT @i=@i+1 --计数单元加 END --语句块定义结束

PRINT '20!='+convert(char(11),@PRODUCT) --显示

徐人凤

共 34 页 第 34 页

5/19/2015 34

34

结果 GO

3、创建一自定义函数,能够利用该函数计算出销售总金额(数量Quantity*单价Price)。

CREATE FUNCTION GETProduct (@Quantity decimal(6,0), @Price decimal(8,2)) RETURNS decimal(10,2) AS BEGIN

RETURN (@Quantity*@Price) END --测试 SELECT

Price,Quantity,dbo.GETProduct(Price,Quantity) 'ProductQu'

FROM Product,ProOut

WHERE Product.ProNo=ProOut.ProNo GO

徐人凤

共 35 页 第 35 页

5/19/2015 35

35

单元10(保证数据安全性_视图) 本实训使用Sale数据库。

1.创建视图V_Sale1,显示销售日期、客户编号、客户姓名、产品编号、产品名称、单价、销售数量和销售金额。 CREATE VIEW V_Sale1 AS SELECT

SaleDate,CusName,ProName,Price,Quantity,SaleMoney=(Price*Quantity)

FROM ProOut PO,Customer C,Product P

WHERE P.ProNo=PO.ProNo AND C.CusNo=PO.CusNo GO

2.创建视图V_Sale2,统计每种产品的销售数量和销售金额。统计结果包括:产品编号、产品名称、单价、销售数量和销售金额。 CREATE VIEW V_Sale2 AS SELECT

P.ProNo,P.ProName,SaleQuantity=SUM(Quantity),SaleMoney=SUM(Price*Quantity) FROM ProOut PO,Product P

徐人凤

共 36 页 第 36 页

5/19/2015 36

36