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

ALTER TABLE ProOut

ADD CONSTRAINT FK_ProOut_Product FOREIGN KEY (ProNo)

REFERENCES Product (ProNo)

/*外键:ProOut 表的CusNo*/ ALTER TABLE ProOut

ADD CONSTRAINT FK_ProOut_Customer FOREIGN KEY (CusNo)

REFERENCES Customer(CusNo)

/*外键:ProIn 表的ProNo*/ ALTER TABLE ProIn

ADD CONSTRAINT FK_ProIn_Product FOREIGN KEY (ProNo)

REFERENCES Product(ProNo)

--3.约束客户表Customer的CusNo列值长度为3;产品表Product的ProNo列值长度为5。 ALTER TABLE Customer

ADD CONSTRAINT CK_Customer_CusNo CHECK (LEN(CusNo)=3)

徐人凤

共 29 页 第 29 页

5/19/2015 29

29

GO

ALTER TABLE Product

ADD CONSTRAINT CK_Product_ProNo CHECK (LEN(ProNo)=5) GO

--测试: INSERT INTO

Product VALUES('000071','平板电脑',3000.00,800) GO

--系统会自动截断为长度5位。 --测试: INSERT INTO

Product VALUES('009','DVD',3000.00,800) GO

4.对产品表Product的Stocks列、Price列、入库表ProIn的Quantity列、销售表ProOut的Quantity列值进行约束,使其值必须大于0。 ALTER TABLE Product

ADD CONSTRAINT CK_Product_Stocks CHECK (Stocks>0) GO

徐人凤

共 30 页 第 30 页

5/19/2015 30

30

ALTER TABLE Product

ADD CONSTRAINT CK_Product_Price CHECK (Price>0) GO

ALTER TABLE ProIn

ADD CONSTRAINT CK_ProIn_Quantity CHECK (Quantity>0) GO

ALTER TABLE ProOut

ADD CONSTRAINT CK_ProOut_Quantity CHECK (Quantity>0) GO

5.对销售表ProOut的SaleDate列进行约束,当不输入值时,系统默认其值为系统当前日期。

CREATE DEFAULT CurrentDate AS GETDATE() GO

EXEC sp_bindefault CurrentDate,'ProOut.SaleDate' GO

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

单元8(提高查询速度) 本单元实训使用Sale数据库。

1.用户按照CusName(客户姓名)查询客户信息,希望提高查询速度。 USE Sale GO

CREATE INDEX IX_Customer ON Customer (CusName) GO

2.用户按照ProName(产品名称)查询产品信息,希望提高查询速度。 USE Sale GO

CREATE INDEX IX_Product ON Product (ProName) GO

3.用户按照SaleDate(销售日期)查询销售信息,希望提高查询速度。

徐人凤

共 32 页 第 32 页

5/19/2015 32

32