雨巷编程

编程人生

SQL SERVER(项目实战)
--实训大作业(Sale数据库)

--单元5(创建数据库)
--创建名为Sale的销售数据库。该数据表有一个名为Sale.mdf的主数据文件和名字为Sale_log.ldf的事务日志文件。
--主数据文件容量为4MB,事务日志文件容量为10MB,数据文件和日志文件的最大容量为20MB,文件增量为1MB。
USE master
GO
CREATE DATABASE Sale
ON
PRIMARY
(NAME = Sale,
 FILENAME = 'D:\Sale.mdf',
 SIZE = 5MB,
 MAXSIZE = 20MB,
 FILEGROWTH = 1MB)
LOG ON
(NAME = Sale_log,
 FILENAME = 'D:\Sale_log.ldf',
 SIZE = 10MB,
 MAXSIZE = 20MB,
 FILEGROWTH = 1MB
)
GO


--单元6(创建数据表)
--创建客户信息表Customer
USE Sale
GO
CREATE TABLE Customer
(CusNo nvarchar(3) NOT NULL,
 CusName nvarchar(10) NOT NULL,
 Address nvarchar(20) NULL,
 Tel nvarchar(20) NULL
)
GO

--创建产品表信息Product
USE Sale
GO
CREATE TABLE Product
(ProNo nvarchar(5) NOT NULL,
 ProName nvarchar(20) NOT NULL,
 Price Decimal(8,2) NOT NULL,
 Stocks Decimal(8,0) NOT NULL
)
GO

--创建入库表信息ProIn
USE Sale
GO
CREATE TABLE ProIn
(InputDate DateTime NOT NULL,
 ProNo nvarchar(5) NOT NULL,
 Quantity Decimal(6,0) NOT NULL
)
GO

--创建销售表ProOut结构
USE Sale
GO
CREATE TABLE ProOut
(SaleDate DateTime NOT NULL,
 CusNo nvarchar(3) NOT NULL,
 ProNo nvarchar(5) NOT NULL,
 Quantity Decimal(6,0) NOT NULL
)
GO

--创建数据表数据
--创建Customer表数据
 USE Sale
 GO
 INSERT INTO Customer
 SELECT '001','杨婷','深圳','0755-22221111'
 UNION
 SELECT '002','陈萍','深圳','0755-22223333'
 UNION
 SELECT '003','李东','深圳','0755-22225555'
 UNION
 SELECT '004','叶合','深圳','0755-22227777'
 UNION
 SELECT '005','谭新','深圳','0755-22229999'
 GO

 --创建Product表数据
 USE Sale
 GO
 INSERT INTO Product
 SELECT '00001','电视','3000.00','800'
 UNION
 SELECT '00002','空调','2000.00','500'
 UNION
 SELECT '00003','床','1000.00','300'
 UNION
 SELECT '00004','餐桌','1500.00','200'
 UNION
 SELECT '00005','音响','5000.00','600'
 UNION
 SELECT '00006','沙发','6000.00','100'
 GO

 --创建Proln数据
 USE Sale
 GO
 INSERT INTO ProIn
 SELECT '2006-1-1','00001','10'
 UNION
 SELECT '2006-1-1','00002','5'
 UNION
 SELECT '2006-1-2','00001','5'
 UNION
 SELECT '2006-1-2','00003','10'
 UNION
 SELECT '2006-1-3','00001','10'
 UNION
 SELECT '2006-2-1','00003','20'
 UNION
 SELECT '2006-2-2','00001','10'
 UNION
 SELECT '2006-2-3','00004','30'
 UNION
 SELECT '2006-2-3','00003','20'
 GO

 --创建ProOut数据
 USE Sale
 GO
 INSERT INTO ProOut
 SELECT '2016-1-1','001','00001','10'
 UNION
 SELECT '2016-1-3','001','00001','5'
 UNION
 SELECT '2016-1-3','001','00001','5'
 UNION
 SELECT '2016-2-1','001','00001','10'
 UNION
 SELECT '2016-2-2','001','00001','10'
 UNION
 SELECT '2016-2-3','001','00001','20'
 UNION
 SELECT '2016-3-2','001','00001','10'
 UNION
 SELECT '2016-3-2','001','00001','30'
 UNION
 SELECT '2016-3-3','001','00001','20'
 GO
 


 --单元7(实施数据完整性)
--使用ALTER TABLE语句为Sale数据库中增加主键和外键约束
USE Sale
GO
ALTER TABLE Customer
ADD CONSTRAINT PK_Customer PRIMARY KEY(CusNo)
GO
ALTER TABLE Product
ADD CONSTRAINT PK_Product PRIMARY KEY(ProNo)
GO
ALTER TABLE ProIn
ADD CONSTRAINT FK_ProIn_Product FOREIGN KEY(ProNo)
REFERENCES Product (ProNo)
GO
ALTER TABLE ProOut
ADD CONSTRAINT PK_ProOut_Customer FOREIGN KEY (CusNo)
REFERENCES Customer(CusNo)
GO
ALTER TABLE ProOut
ADD CONSTRAINT PK_ProOut_Product FOREIGN KEY (ProNo)
REFERENCES Product(ProNo)
GO

--约束客户表Customer的CusNo列长度为3,产品表Product的ProNo列值长度为5
USE Sale
GO
ALTER TABLE Customer
ADD CONSTRAINT CK_Customer_CusNo CHECK(LEN(CusNo)=3)
GO
ALTER TABLE Product
ADD CONSTRAINT CK_Product_ProNo CHECK(LEN(ProNo)=5)
GO

--对产品表Product的Stocks列、Price列、入库表ProIn的Quantity列、销售表ProOut的Quantity列值进行约束,使其值必须大于0
USE Sale
GO
ALTER TABLE Product
ADD CONSTRAINT CK_Product_Stocks 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

--对销售表ProOut的SaleDate列进行约束,当不输入值时,系统默认其值为系统当前日期。
USE Sale
GO
Create DEFAULT CurrentDate
AS GETDATE()
GO
EXEC sp_bindefault CurrentDate,'ProOut.SaleDate'
GO



--单元8(实现索引)
--用户按照CusName(客户姓名)查询客户信息,希望提高查询速度。
USE Sale
GO
CREATE INDEX IX_Customer
ON Customer(CusName)
GO

--用户按照ProName(产品名称)查询客户信息,希望提高查询速度。
USE Sale
GO
CREATE INDEX IX_Product
ON Product(ProName)
GO

--用户按照SaleDate(销售日期)查询客户信息,希望提高查询速度。
USE Sale
GO
CREATE INDEX IX_SaleDate
ON ProOut(SaleDate)
GO



--单元9(T-SQL语言编程基础)
USE Sale
GO
DECLARE @SUM INT
SET @SUM = (SELECT COUNT(*) FROM Product)
PRINT '共有'+CONVERT(char(2),@SUM)+'种产品'

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_41463006/article/details/80330837
个人分类: 数据库
想对作者说点什么? 我来说一句

SQL SERVER范例开发大全.pdf

2013年07月06日 7.46MB 下载

sql竞赛项目实战答案

2008年10月24日 7KB 下载

sql server项目实战 s2

2009年01月04日 1.47MB 下载

简单的博客系统

2008年06月19日 2.3MB 下载

北大青鸟第一期项目实战部分

2008年10月26日 12.24MB 下载

ACCP5.0-S2-SQL

2009年01月09日 333KB 下载

没有更多推荐了,返回首页

不良信息举报

SQL SERVER(项目实战)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭