SQL Server 数据库课程设计某书店图书进货、销售管理系统(Myeclipse和mysql)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server 数据库课程设计某书店图书进货、销售管理系统(Myeclipse和mysql)相关的知识,希望对你有一定的参考价值。

SQL Server 数据库课程设计某书店图书进货、销售管理系统(用Myeclipse和mysql制作的)
某书店图书进货、销售管理系统
部分功能要求:
1) 实现图书类别、出版社、图书、仓库信息的管理;
2) 实现进货、入库管理;
3) 实现销售、出库管理;
4) 创建存储过程查询某段时间内各种图书的进货和销售情况;
5) 创建视图查询各类图书的库存总数;
6) 创建触发器当图书入库时自动修改相应图书的总量和存放仓库中该图书的数量;
7) 要求一单可以处理多种图书(比如销售设置销售单及其明细两个表);
8) 建立数据库相关表之间的参照完整性约束。

哪位大神做过这个题目或者类似的题目,上传一下。

这个是数据库设计,不是前端业务逻辑实现,只需要完成数据表的设计以及存储过程、视图、约束、用户自定义函数等的设计就可以了,不用考虑myeclipse前端的。 参考技术A 这个类似erp吧

SQL Server数据库操作

 通过SQL Server建库语句等,采用纯代码方式创建数据库,创建数据表,以及进行相应数据库操作,包括检索,插入,删除,修改。


以下通过一个例题说明数据库操作。

某仓储超市采用POS(Point of Sale)收银机负责前台的销售收款,为及时掌握销售信息,并依此指导进货,拟建立商品进、销、存数据库信息管理系统。经过系统需求分析、概念结构设计和逻辑结构设计,可以简化得到如下一组关系模式(其中     表示主键,    表示外键):

积分卡(用户编号,用户名,累积消费金额,积分点)

销售详单(销售流水号,商品编码,数量,金额,用户编号,收银员,时间)

销售日汇总(日期,商品编码,数量)

存货表(商品编码,数量)

进货表(送货号码,商品编码,数量,日期)

商品(商品编码,商品名称,单价)

请在SQL Server的查询分析器中按要求完成如下各题:

1、 创建名为Supermarket的数据库,数据文件名取为:Supermarket_data.mdf,日志文件名取为:Supermarket_log.ldf。

 

2、 按表1-6要求创建6张数据表,并为每张表设置主键码和外键码(若有的话)。

表1 Integralcard积分卡信息表

列名

数据类型

可否为空

说明

User_id

char(10)

Not null

用户编号

User_name

varchar(20)

Not null

用户名

Cumulative_consumption

numeric(8,2)

Not null

累计消费金额

Integral_point

numeric(5,0)

Not null

积分点

表2 Salesdetails 销售详单信息表

列名

数据类型

可否为空

说明

sales_id

char(10)

Not null

销售流水号

commodity_code

char(10)

Not null

商品编码

number

numeric(4,0)

null

数量

amount

numeric(9,2)

null

金额

User_id

char(10)

Not null

用户编号

cashier

varchar(20)

null

收银员

sd_time

datetime

null

时间

表3 Salesdatesummary 销售日汇总信息表

列名

数据类型

可否为空

说明

sds_date

datetime

Not null

日期

commodity_code

char(10)

Not null

商品编码

number

numeric(4,0)

null

数量

表4 Inventorylist存货信息表

列名

数据类型

可否为空

说明

commodity_code

char(10)

Not null

商品编码

number

numeric(4,0)

null

数量

表5 Purchasetable进货信息表

列名

数据类型

可否为空

说明

delivery_number

char(10)

Not null

送货号码

commodity_code

char(10)

Not null

商品编码

number

numeric(4,0)

null

数量

pt_date

datetime

Not null

日期

表6 Commodity商品信息表

列名

数据类型

可否为空

说明

commodity_code

char(10)

Not null

商品编码

commodity_name

varchar(10)

Not null

商品名称

commodity_price

numeric(7,2)

Not null

商品单价

 

3、在建好的6张表中,利用对象资源管理器分别输入和更新若干条记录,要求主键码不能为空和重复,外键码只能取另一张表的主键码之一。

 

4、针对该数据库的6张表,完成如下10个查询请求:

1)查询用户编号为’yh23001011’的用户的用户名、累积消费金额和积分点;

 

2)查询’张三’用户所购的全部商品的商品编码、商品名称、单价、数量和金额;

 

(3)查询2016年4月各类商品销售数量的排行榜,要求显示商品编号、商品名称和数量(按降序排列);

 

(4)根据销售详单中的销售流水号’xs80020001’和商品编码’sp03004561’,对存货表中的数量进行更新;

 

5根据进货表中的送货号码’sh00012288’和商品编码’sp03006677’, 对存货表中的数量进行更新;

 

(6)统计2016年4月中每一天的销售金额,要求显示日期、销售金额(按降序排列)。

 

5、针对该数据库的6张表,定义如下2个视图:

(1)定义一个商品存货的视图Commodity_Inventorylist,属性包括商品编码、商品名称、单价和数量;

 

(2)定义一个用户购买商品的详细清单User_Purchase_Details, 属性包括用户编号、用户名、商品编码、商品名称、单价和数量。


SQL Server 2008 R2上实现过程如下:


--创建数据库
--创建名为Supermarket的数据库,数据文件名取为:Supermarket_data.mdf,日志文件名取为:Supermarket_log.ldf。
USE master--使用系统
GO
CREATE DATABASE Supermarket --创建数据库

ON PRIMARY	--主文件
(
	NAME='Supermarket_data', --文件名
	FILENAME='D:\\SQLProject\\Supermarket_data.mdf',--路径
	SIZE=5MB,--初始大小
	MAXSIZE=100MB,--最大容量
	FILEGROWTH=10%--增长速度
)

LOG ON--日志文件
(
	NAME='Supermarket_log',
	FILENAME='D:\\SQLProject\\Supermarket_log.ldf',
	SIZE=5MB,
	FILEGROWTH=0
)
GO

--创建你数据库表
--模式(其中     表示主键,    表示外键):
--积分卡(用户编号,用户名,累积消费金额,积分点)
--销售详单(销售流水号,商品编码,数量,金额,用户编号,收银员,时间)
--销售日汇总(日期,商品编码,数量)
--存货表(商品编码,数量)
--进货表(送货号码,商品编码,数量,日期)
--商品(商品编码,商品名称,单价)
use Supermarket
go

--积分卡(用户编号,用户名,累积消费金额,积分点)
create table Integralcard
(
	User_id char(10) primary key not null,
	User_name varchar(20) not null,
	Cumulative_consumption numeric(8,2) not null,
	Integral_point numeric(5,0) not null
)
go

--销售详单(销售流水号,商品编码,数量,金额,用户编号,收银员,时间)
use Supermarket
go

create table Salesdetails
(
	sales_id char(10) not null,
	commodity_code char(10) not null foreign key(commodity_code) references Commodity(commodity_code)
	on delete cascade,
	number numeric(4,0) null,
	amount numeric(9,2) null,
	User_id char(10) not null foreign key(User_id) references Integralcard(User_id)
	on delete cascade,
	cashier varchar(20) null,
	sd_time datetime null
)
go
--外键
ALTER TABLE Salesdetails
ADD CONSTRAINT Salesdetails_KEY PRIMARY KEY(sales_id,commodity_code,User_id)
Go
--销售日汇总(日期,商品编码,数量)
use Supermarket
go

create table Salesdatesummary
(
	sds_date datetime not null,
	commodity_code char(10) not null  foreign key(commodity_code) references Commodity(commodity_code)
	on delete cascade,
	number numeric(4,0) null
)
go

ALTER TABLE Salesdatesummary
ADD CONSTRAINT Salesdatesummary_KEY PRIMARY KEY(commodity_code)
Go
--存货表(商品编码,数量)
use Supermarket
go

create table Inventorylist
(
	commodity_code char(10) not null foreign key(commodity_code) references Commodity(commodity_code)
	on delete cascade,
	number numeric(4,0) null
)
go
ALTER TABLE Inventorylist
ADD CONSTRAINT Inventorylist_KEY PRIMARY KEY(commodity_code)
Go

--进货表(送货号码,商品编码,数量,日期)
use Supermarket
go

create table Purchasetable
(
	delivery_number char(10) not null,
	commodity_code char(10) not null foreign key(commodity_code) references Commodity(commodity_code)
	on delete cascade,
	number numeric(4,0) null,
	pt_date datetime not null
)
go
--外键
ALTER TABLE Purchasetable
ADD CONSTRAINT Purchasetable_KEY PRIMARY KEY(delivery_number,commodity_code)
Go


--商品(商品编码,商品名称,单价)
use Supermarket
go

create table Commodity
(
	commodity_code char(10) primary key not null,
	commodity_name varchar(10) not null,
	commodity_price numeric(7,2) not null
)
go

-----------------------------------------------
--查询用户编号为’yh23001011’的用户的用户名、累积消费金额和积分点
use Supermarket
select User_name as 姓名,Cumulative_consumption as 累计消费金额,Integral_point as 积分点 from Integralcard
where User_id='yh23001011'
go


--查询’张三’用户所购的全部商品的商品编码、商品名称、单价、数量和金额;
use Supermarket
select com.commodity_code,com.commodity_name,com.commodity_price,sal.number,sal.amount
 from Commodity com,Salesdetails sal,Integralcard ca
where com.commodity_code=sal.commodity_code and sal.User_id=ca.User_id and ca.User_name='张三'
go

--查询2016年4月各类商品销售数量的排行榜,要求显示商品编号、商品名称和数量(按降序排列)
use Supermarket
select com.commodity_code,com.commodity_name,sal.number,sal.sd_time
from Commodity com,Salesdetails sal
where com.commodity_code=sal.commodity_code and sal.sd_time between '2016-04-01' and '2016-04-30' 
order by sal.number desc
go


--查看结果
use Supermarket
select number from Inventorylist
where Inventorylist.commodity_code='sp03004561'
go
--根据销售详单中的销售流水号’xs80020001’和商品编码’sp03004561’,对存货表中的数量进行更新
use Supermarket
update Inventorylist
set number= number - (select sal.number from Salesdetails sal
where sal.sales_id='xs80020001' and sal.commodity_code='sp03004561')
go
--查看更新结果
use Supermarket
select number from Inventorylist
where Inventorylist.commodity_code='sp03004561'
go


--查看结果
use Supermarket
select number from Inventorylist
where Inventorylist.commodity_code='sp03006677'
go
--根据进货表中的送货号码’sh00012288’和商品编码’sp03006677’, 对存货表中的数量进行更新
use Supermarket
update Inventorylist
set Inventorylist.number=Inventorylist.number +(select pur.number from Purchasetable pur
where pur.delivery_number='sh00012288' and pur.commodity_code='sp03006677')
go
--查看更新结果
use Supermarket
select number from Inventorylist
where commodity_code='sp03006677'
go

--统计2016年4月中每一天的销售金额,要求显示日期、销售金额(按降序排列)
use Supermarket
select sal.sds_date,salemoney=com.commodity_price*sal.number
from Commodity com,Salesdatesummary sal
where com.commodity_code=sal.commodity_code and sal.sds_date>='2016-04-01' and sal.sds_date<='2016-04-30'
go

--5
--定义一个商品存货的视图Commodity_Inventorylist,属性包括商品编码、商品名称、单价和数量
use Supermarket
go

create view Commodity_Inventorylist(commodity_code,commodity_name,commodity_price,number)
as select com.commodity_code,com.commodity_name,com.commodity_price,inve.number
 from Commodity com,Inventorylist inve
where com.commodity_code=inve.commodity_code
go

--定义一个用户购买商品的详细清单User_Purchase_Details, 属性包括用户编号、用户名、商品编码、商品名称、单价和数量
use Supermarket
go

create view User_Purchase_Details(User_id,User_name,commodity_code,commodity_name,commodity_price,number)
as select inte.User_id,inte.User_name,com.commodity_code,com.commodity_name,com.commodity_price,sal.number
from Integralcard inte,Salesdetails sal,Commodity com
where inte.User_id=sal.User_id and sal.commodity_code=com.commodity_code
go


数据库实现截图:




以上是关于SQL Server 数据库课程设计某书店图书进货、销售管理系统(Myeclipse和mysql)的主要内容,如果未能解决你的问题,请参考以下文章

书店管理系统课程设计( sql server+python)

Java之------单机版书店管理系统(设计思想和设计模式系列三)工具包和公共包

Java之------单机版书店管理系统(设计思想和设计模式系列三)工具包和公共包

计算机毕业设计之java+ssm图书商城_网上书店

SQL Server数据库操作

网上书店管理系统项目Java数据库编程实战