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