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