书店销售管理系统----数据库原理及应用综合实验

这篇具有很好参考价值的文章主要介绍了书店销售管理系统----数据库原理及应用综合实验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

枯木逢春犹再发,人无两度再少年🍂

系统主要模块如下:
(1) 书店销售管理系统设计与实现—图书入库管理及查询统计
图书入库管理:维护入库图书信息(如图书编号、书名、作者、价格、图书分类、出版社等)。自动计算库存。
图书查询统计:按图书分类,出版社、书名、作者等条件查询图书的详细信息。支持模糊查询。
(2) 书店销售管理系统设计与实现—销售管理
销售管理:销售过的图书都记录在销售列表中,方便统计收入。图书销售后,实时记录图书库存,按每天统计销售额、按每个月或季度统计销售额并生成报表,并能根据销售数量统计生成畅销书名单。
(3) 书店销售管理系统设计与实现—书店会员管理
书店会员管理:提供会员信息的维护功能,可设置会员等级,不同级别的会员享受不同的折扣,可以变更折扣额度。

目录

一、数据字典

  1.图书实体表
  2.会员实体表
  3. 会员类型表
  4. 销售实体表
  5. 销售明细实体表

二、概念模型设计

  1. 图书基本信息E-R图
  2. 会员实体E-R图
  3.会员类型E-R图
  4.销售实体E-R图
  5.销售明细E-R图
  6.总体E-R图

三、逻辑结构设计

  逻辑模型图

四、物理结构设计

  设计与实现
   表的创建
   数据插入

五、SQL查询

  1. 分组统计、模糊查询
  2. 天销售额
  3. 天销售榜前三
  4.月销售额
  5. 月销售榜前三
  6.自动计算库存,支付金额(触发器)

一、数据字典

1. 图书实体表
字段名 别名 数据类型 长度 约束
图书编号 bookIsbn 字符型 20位 主码
图书名称 bookName 字符型 20位 not null
作者 bookAuthor 字符型 20位 not null
图书类别 bookType 字符型 20位 not null
价格 bookPrice 浮点型 \ not null
出版社 bookPublisher 字符型 20位 not null
库存 bookCount 整型 \ not null
2.会员实体表
字段名 别名 数据类型 长度 约束
会员id vipId 字符型 20位 主码
会员等级 vipLevel 整型 \ 外键
会员名字 vipName 字符型 20位 not null
会员性别 vipSex 字符型 20位 not null
会员年龄 vipAge 字符型 20位 not null
会员电话 vipTel 字符型 20位 not null
3. 会员类型表
字段名 别名 数据类型 长度 约束
会员等级 vipId 字符型 20位 主键
会员等级名 vipName 字符型 20位 not null
会员等级折扣 vipLevelDisCount float \ not null
4. 销售实体表
字段名 别名 数据类型 长度 约束
销售单号 saleId 字符型 20位 主键
会员ID vipId 字符型 20位 外键
销售日期 saleDate 日期型 \ not null
5. 销售明细实体表
字段名 别名 数据类型 长度 约束
销售明细id saleDetailId 字符型 20位 主键
销售单号 saleId 字符型 20位 外键
图书编号 bookIsbn 字符型 20位 外键
销售数量 bookSaleCount 整型 \ not null

二、概念模型设计

1. 图书基本信息E-R图

书店销售管理系统----数据库原理及应用综合实验

2. 会员实体E-R图

书店销售管理系统----数据库原理及应用综合实验

3.会员类型E-R图

书店销售管理系统----数据库原理及应用综合实验

4.销售实体E-R图

书店销售管理系统----数据库原理及应用综合实验

5.销售明细E-R图

书店销售管理系统----数据库原理及应用综合实验

6.总体E-R图

书店销售管理系统----数据库原理及应用综合实验

三、逻辑结构设计

E-R图向关系模型的转换(主键用下划线标出)

图书(图书编号,图书名称,作者,图书类别,价格,出版社,库存)

会员(会员id,会员等级,会员名字,会员性别,会员年龄,会员电话)

会员类型(会员等级,会员等级名,会员等级折扣)

销售(销售单号,会员ID,销售日期)

销售明细(销售明细id,销售单号,图书编号,销售数量)

逻辑模型图

书店销售管理系统----数据库原理及应用综合实验

四、物理结构设计

书店销售管理系统----数据库原理及应用综合实验

设计与实现

1. 创建book表
/*==============================================================*/
/* Table: book                                                  */
/*==============================================================*/
create table book (
   bookIsbn             char(20)             not null,
   bookName             char(20)             null,
   bookAuthor           char(20)             null,
   bookType             char(20)             null,
   bookPrice            float                null,
   bookPublisher        char(20)             null,
   bookCount            int                  null,
   constraint PK_BOOK primary key nonclustered (bookIsbn)
)

2.创建会员表

/*==============================================================*/
/* Table: vip                                                   */
/*==============================================================*/
create table vip (
   vipId                char(20)             not null,
   vipLevel             int                  null,
   vipName              char(20)             null,
   vipSex               char(20)             null,
   vipAge               char(20)             null,
   vipTel               char(20)             null,
   constraint PK_VIP primary key nonclustered (vipId)
)

3.创建会员类型表

/*==============================================================*/
/* Table: vipType                                               */
/*==============================================================*/
create table vipType (
   vipLevel             int                  not null,
   vipLevelName         char(20)             null,
   vipLevelDisCount     float                null,
   constraint PK_VIPTYPE primary key nonclustered (vipLevel)
)

4.创建销售实体表

/*==============================================================*/
/* Table: sale                                                  */
/*==============================================================*/
create table sale (
   saleId               char(20)             not null,
   vipId                char(20)             null,
   saleDate             datetime             null,
   constraint PK_SALE primary key nonclustered (saleId)
)

5.创建销售明细表

/*==============================================================*/
/* Table: saleDetail                                            */
/*==============================================================*/
create table saleDetail (
   saleDetailId         char(20)             not null,
   saleId               char(20)             null,
   bookIsbn             char(20)             null,
   bookSaleCount        int                  null,
   constraint PK_SALEDETAIL primary key nonclustered (saleDetailId)
)

6.创建表整体脚本如下:

/*==============================================================*/
/* DBMS name:      Microsoft SQL Server 2012                    */
/* Created on:     2022/11/18 8:12:35                           */
/*==============================================================*/


if exists (select 1
   from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
   where r.fkeyid = object_id('sale') and o.name = 'FK_SALE_BUY_VIP')
alter table sale
   drop constraint FK_SALE_BUY_VIP
go

if exists (select 1
   from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
   where r.fkeyid = object_id('saleDetail') and o.name = 'FK_SALEDETA_RELATIONS_SALE')
alter table saleDetail
   drop constraint FK_SALEDETA_RELATIONS_SALE
go

if exists (select 1
   from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
   where r.fkeyid = object_id('saleDetail') and o.name = 'FK_SALEDETA_RELATIONS_BOOK')
alter table saleDetail
   drop constraint FK_SALEDETA_RELATIONS_BOOK
go

if exists (select 1
   from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
   where r.fkeyid = object_id('vip') and o.name = 'FK_VIP_参照_VIPTYPE')
alter table vip
   drop constraint FK_VIP_参照_VIPTYPE
go

if exists (select 1
            from  sysobjects
           where  id = object_id('SysManageUser')
            and   type = 'U')
   drop table SysManageUser
go

if exists (select 1
            from  sysobjects
           where  id = object_id('book')
            and   type = 'U')
   drop table book
go

if exists (select 1
            from  sysindexes
           where  id    = object_id('sale')
            and   name  = 'buy_FK'
            and   indid > 0
            and   indid < 255)
   drop index sale.buy_FK
go

if exists (select 1
            from  sysobjects
           where  id = object_id('sale')
            and   type = 'U')
   drop table sale
go

if exists (select 1
            from  sysindexes
           where  id    = object_id('saleDetail')
            and   name  = 'Relationship_4_FK'
            and   indid > 0
            and   indid < 255)
   drop index saleDetail.Relationship_4_FK
go

if exists (select 1
            from  sysindexes
           where  id    = object_id('saleDetail')
            and   name  = 'Relationship_6_FK'
            and   indid > 0
            and   indid < 255)
   drop index saleDetail.Relationship_6_FK
go

if exists (select 1
            from  sysobjects
           where  id = object_id('saleDetail')
            and   type = 'U')
   drop table saleDetail
go

if exists (select 1
            from  sysindexes
           where  id    = object_id('vip')
            and   name  = '参照_FK'
            and   indid > 0
            and   indid < 255)
   drop index vip.参照_FK
go

if exists (select 1
            from  sysobjects
           where  id = object_id('vip')
            and   type = 'U')
   drop table vip
go

if exists (select 1
            from  sysobjects
           where  id = object_id('vipType')
            and   type = 'U')
   drop table vipType
go

/*==============================================================*/
/* Table: SysManageUser                                         */
/*==============================================================*/
create table SysManageUser (
   SMUId                char(20)             not null,
   SMUName              char(20)             null,
   SMUPassword          char(20)             null,
   SMUType              char(20)             null,
   constraint PK_SYSMANAGEUSER primary key nonclustered (SMUId)
)
go

/*==============================================================*/
/* Table: book                                                  */
/*==============================================================*/
create table book (
   bookIsbn             char(20)             not null,
   bookName             char(20)             null,
   bookAuthor           char(20)             null,
   bookType             char(20)             null,
   bookPrice            float                null,
   bookPublisher        char(20)             null,
   bookCount            int                  null,
   constraint PK_BOOK primary key nonclustered (bookIsbn)
)
go

/*==============================================================*/
/* Table: sale                                                  */
/*==============================================================*/
create table sale (
   saleId               char(20)             not null,
   vipId                char(20)             null,
   saleDate             datetime             null,
   constraint PK_SALE primary key nonclustered (saleId)
)
go

/*==============================================================*/
/* Index: buy_FK                                                */
/*==============================================================*/
create index buy_FK on sale (
vipId ASC
)
go

/*==============================================================*/
/* Table: saleDetail                                            */
/*==============================================================*/
create table saleDetail (
   saleDetailId         char(20)             not null,
   saleId               char(20)             null,
   bookIsbn             char(20)             null,
   bookSaleCount        int                  null,
   constraint PK_SALEDETAIL primary key nonclustered (saleDetailId)
)
go

/*==============================================================*/
/* Index: Relationship_6_FK                                     */
/*==============================================================*/
create index Relationship_6_FK on saleDetail (
bookIsbn ASC
)
go

/*==============================================================*/
/* Index: Relationship_4_FK                                     */
/*==============================================================*/
create index Relationship_4_FK on saleDetail (
saleId ASC
)
go

/*==============================================================*/
/* Table: vip                                                   */
/*==============================================================*/
create table vip (
   vipId                char(20)             not null,
   vipLevel             int                  null,
   vipName              char(20)             null,
   vipSex               char(20)             null,
   vipAge               char(20)             null,
   vipTel               char(20)             null,
   constraint PK_VIP primary key nonclustered (vipId)
)
go

/*==============================================================*/
/* Index: 参照_FK                                                 */
/*==============================================================*/
create index 参照_FK on vip (
vipLevel ASC
)
go

/*==============================================================*/
/* Table: vipType                                               */
/*==============================================================*/
create table vipType (
   vipLevel             int                  not null,
   vipLevelName         char(20)             null,
   vipLevelDisCount     float                null,
   constraint PK_VIPTYPE primary key nonclustered (vipLevel)
)
go

alter table sale
   add constraint FK_SALE_BUY_VIP foreign key (vipId)
      references vip (vipId)
go

alter table saleDetail
   add constraint FK_SALEDETA_RELATIONS_SALE foreign key (saleId)
      references sale (saleId)
go

alter table saleDetail
   add constraint FK_SALEDETA_RELATIONS_BOOK foreign key (bookIsbn)
      references book (bookIsbn)
go

alter table vip
   add constraint FK_VIP_参照_VIPTYPE foreign key (vipLevel)
      references vipType (vipLevel)
go
向book表中插入数据:
INSERT INTO [dbo].[book] ([bookIsbn], [bookName], [bookAuthor], [bookType], [bookPrice], [bookPublisher], [bookCount]) VALUES (N'isbn2103001         ', N'恋人拍卖行          ', N'Tom                 ', N'社会科学            ', N'12', N'商务印书馆          ', N'15')
GO
INSERT INTO [dbo].[book] ([bookIsbn], [bookName], [bookAuthor], [bookType], [bookPrice], [bookPublisher], [bookCount]) VALUES (N'isbn2103002         ', N'俄狄浦斯王          ', N'Kit                 ', N'工具书              ', N'3', N'人民出版社          ', N'11')
GO
INSERT INTO [dbo].[book] ([bookIsbn], [bookName], [bookAuthor], [bookType], [bookPrice], [bookPublisher], [bookCount]) VALUES (N'isbn2103003         ', N'至尊女王爷          ', N'xiaoming            ', N'工具书              ', N'7', N'中华书局            ', N'16')
GO
INSERT INTO [dbo].[book] ([bookIsbn], [bookName], [bookAuthor], [bookType], [bookPrice], [bookPublisher], [bookCount]) VALUES (N'isbn2103004         ', N'天是红尘岸          ', N'zhaoyun             ', N'专业书              ', N'14', N'商务印书馆          ', N'7')
GO
INSERT INTO [dbo].[book] ([bookIsbn], [bookName], [bookAuthor], [bookType], [bookPrice], [bookPublisher], [bookCount]) VALUES (N'isbn2103005         ', N'逐日追风剑          ', N'huatuo              ', N'小说                ', N'1', N'商务印书馆          ', N'2')
GO
INSERT INTO [dbo].[book] ([bookIsbn], [bookName], [bookAuthor], [bookType], [bookPrice], [bookPublisher], [bookCount]) VALUES (N'isbn2103006         ', N'雪中悍刀行          ', N'machao              ', N'儿童读物            ', N'4', N'商务印书馆          ', N'3')
GO
INSERT INTO [dbo].[book] ([bookIsbn], [bookName], [bookAuthor], [bookType], [bookPrice], [bookPublisher], [bookCount]) VALUES (N'isbn2103007         ', N'神级大魔头          ', N'sunbin              ', N'小说                ', N'6', N'商务印书馆          ', N'14')
GO
INSERT INTO [dbo].[book] ([bookIsbn], [bookName], [bookAuthor], [bookType], [bookPrice], [bookPublisher], [bookCount]) VALUES (N'isbn2103008         ', N'宿主请留步          ', N'shangguan           ', N'工具书              ', N'13', N'人民出版社          ', N'93')
GO
INSERT INTO [dbo].[book] ([bookIsbn], [bookName], [bookAuthor], [bookType], [bookPrice], [bookPublisher], [bookCount]) VALUES (N'isbn2103009         ', N'巴黎圣母院          ', N'zhouyu              ', N'工具书              ', N'11', N'人民出版社          ', N'3')
GO
INSERT INTO [dbo].[book] ([bookIsbn], [bookName], [bookAuthor], [bookType], [bookPrice], [bookPublisher], [bookCount]) VALUES (N'isbn2103010         ', N'徐霞客游记          ', N'xiaoqiao            ', N'社会科学            ', N'19', N'人民出版社          ', N'12')
GO
INSERT INTO [dbo].[book] ([bookIsbn], [bookName], [bookAuthor], [bookType], [bookPrice], [bookPublisher], [bookCount]) VALUES (N'isbn2103011         ', N'喧哗与骚动          ', N'baili               ', N'社会科学            ', N'10', N'人民出版社          ', N'18')
GO
INSERT INTO [dbo].[book] ([bookIsbn], [bookName], [bookAuthor], [bookType], [bookPrice], [bookPublisher], [bookCount]) VALUES (N'isbn2103012         ', N'苏菲的世界          ', N'make                ', N'社会科学            ', N'8', N'人民出版社          ', N'5')
GO

向vipType表中插入数据

INSERT INTO [dbo].[vipType] ([vipLevel], [vipLevelName], [vipLevelDisCount]) VALUES (N'0', N'普通会员            ', N'0.95')
GO
INSERT INTO [dbo].[vipType] ([vipLevel], [vipLevelName], [vipLevelDisCount]) VALUES (N'1', N'一级会员            ', N'0.9')
GO
INSERT INTO [dbo].[vipType] ([vipLevel], [vipLevelName], [vipLevelDisCount]) VALUES (N'2', N'二级会员            ', N'0.85')
GO
INSERT INTO [dbo].[vipType] ([vipLevel], [vipLevelName], [vipLevelDisCount]) VALUES (N'3', N'三级会员            ', N'0.8')
GO
INSERT INTO [dbo].[vipType] ([vipLevel], [vipLevelName], [vipLevelDisCount]) VALUES (N'4', N'四级会员            ', N'0.75')
GO
INSERT INTO [dbo].[vipType] ([vipLevel], [vipLevelName], [vipLevelDisCount]) VALUES (N'5', N'五级会员            ', N'0.7')
GO
INSERT INTO [dbo].[vipType] ([vipLevel], [vipLevelName], [vipLevelDisCount]) VALUES (N'6', N'六级会员            ', N'0.65')
GO
INSERT INTO [dbo].[vipType] ([vipLevel], [vipLevelName], [vipLevelDisCount]) VALUES (N'7', N'七级会员            ', N'0.6')
GO

向vip表中插入数据

INSERT INTO [dbo].[vip] ([vipId], [vipLevel], [vipName], [vipSex], [vipAge], [vipTel]) VALUES (N'v001                ', N'7', N'张三丰              ', N'男                  ', N'21                  ', N'19907078888         ')
GO
INSERT INTO [dbo].[vip] ([vipId], [vipLevel], [vipName], [vipSex], [vipAge], [vipTel]) VALUES (N'v002                ', N'6', N'杨暖昕              ', N'女                  ', N'22                  ', N'19803038888         ')
GO
INSERT INTO [dbo].[vip] ([vipId], [vipLevel], [vipName], [vipSex], [vipAge], [vipTel]) VALUES (N'v003                ', N'0', N'凌秋子              ', N'男                  ', N'36                  ', N'17806069999         ')
GO
INSERT INTO [dbo].[vip] ([vipId], [vipLevel], [vipName], [vipSex], [vipAge], [vipTel]) VALUES (N'v004                ', N'4', N'李楠                ', N'男                  ', N'18                  ', N'17806068888         ')
GO
INSERT INTO [dbo].[vip] ([vipId], [vipLevel], [vipName], [vipSex], [vipAge], [vipTel]) VALUES (N'v005                ', N'6', N'文春雪              ', N'男                  ', N'36                  ', N'18808089999         ')
GO
INSERT INTO [dbo].[vip] ([vipId], [vipLevel], [vipName], [vipSex], [vipAge], [vipTel]) VALUES (N'v006                ', N'3', N'陆亦思              ', N'男                  ', N'46                  ', N'17801010000         ')
GO
INSERT INTO [dbo].[vip] ([vipId], [vipLevel], [vipName], [vipSex], [vipAge], [vipTel]) VALUES (N'v007                ', N'1', N'代迎海              ', N'男                  ', N'18                  ', N'13109787777         ')
GO
INSERT INTO [dbo].[vip] ([vipId], [vipLevel], [vipName], [vipSex], [vipAge], [vipTel]) VALUES (N'v008                ', N'2', N'白紫玉              ', N'男                  ', N'17                  ', N'13120200897         ')
GO
INSERT INTO [dbo].[vip] ([vipId], [vipLevel], [vipName], [vipSex], [vipAge], [vipTel]) VALUES (N'v009                ', N'6', N'韩若初              ', N'女                  ', N'26                  ', N'17809271234         ')
GO

向sale表中插入数据

INSERT INTO [dbo].[sale] ([saleId], [vipId], [saleDate]) VALUES (N'saleid010           ', N'v001                ', N'2020-12-01 04:06:21.000')
GO
INSERT INTO [dbo].[sale] ([saleId], [vipId], [saleDate]) VALUES (N'saleid009           ', N'v002                ', N'2020-01-03 08:15:12.000')
GO
INSERT INTO [dbo].[sale] ([saleId], [vipId], [saleDate]) VALUES (N'saleid001           ', N'v001                ', N'2020-12-01 04:06:21.000')
GO
INSERT INTO [dbo].[sale] ([saleId], [vipId], [saleDate]) VALUES (N'saleid002           ', N'v002                ', N'2020-01-03 08:15:12.000')
GO
INSERT INTO [dbo].[sale] ([saleId], [vipId], [saleDate]) VALUES (N'saleid003           ', N'v005                ', N'2020-01-05 02:45:00.000')
GO
INSERT INTO [dbo].[sale] ([saleId], [vipId], [saleDate]) VALUES (N'saleid004           ', N'v009                ', N'2020-01-06 02:45:00.000')
GO
INSERT INTO [dbo].[sale] ([saleId], [vipId], [saleDate]) VALUES (N'saleid005           ', N'v007                ', N'2020-01-06 02:45:00.000')
GO
INSERT INTO [dbo].[sale] ([saleId], [vipId], [saleDate]) VALUES (N'saleid006           ', N'v003                ', N'2020-01-06 02:45:00.000')
GO
INSERT INTO [dbo].[sale] ([saleId], [vipId], [saleDate]) VALUES (N'saleid007           ', N'v004                ', N'2020-02-27 00:00:00.000')
GO
INSERT INTO [dbo].[sale] ([saleId], [vipId], [saleDate]) VALUES (N'saleid008           ', N'v001                ', N'2020-03-11 00:00:00.000')
GO

向saleDetail表中插入数据

INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'HAWGPIXSQBPRW6IA1TD4', N'saleid001           ', N'isbn2103001         ', N'19')
GO
INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'52SU70BURCAMS50F5QFD', N'saleid001           ', N'isbn2103004         ', N'9')
GO
INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'7FVQ0GKT5G9QB0P6TUA4', N'saleid001           ', N'isbn2103003         ', N'2')
GO
INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'C6VNTSXDUCOQKE37ER14', N'saleid001           ', N'isbn2103002         ', N'1')
GO
INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'UKA4710SMLJKWSQO389H', N'saleid002           ', N'isbn2103009         ', N'1')
GO
INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'970CM5NUN54WDHXNUYQ8', N'saleid002           ', N'isbn2103001         ', N'2')
GO
INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'P6G5AHGVYCGJBHD8NU9L', N'saleid002           ', N'isbn2103006         ', N'2')
GO
INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'WX1RIJJMQYACA4Y3FL69', N'saleid001           ', N'isbn2103004         ', N'15')
GO
INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'YF9G7JP86C3OVSE1AQR4', N'saleid003           ', N'isbn2103007         ', N'3')
GO
INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'UPH2K75GBCQI68W3NLXC', N'saleid006           ', N'isbn2103006         ', N'11')
GO
INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'V7OLOUXQ5WM9AIF96NSS', N'saleid005           ', N'isbn2103003         ', N'17')
GO
INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'5Q6MB5S4HA3Y0TNC HO ', N'saleid004           ', N'isbn2103002         ', N'8')
GO
INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'VWLWUACJQ36G0N7SVSCN', N'saleid002           ', N'isbn2103005         ', N'8')
GO
INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'8MFJ3SREX7OJ9D0GC69U', N'saleid006           ', N'isbn2103001         ', N'2')
GO
INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'ELK8E2O5E0W4Q4YHA0QK', N'saleid004           ', N'isbn2103007         ', N'7')
GO
INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'1                   ', N'saleid001           ', N'isbn2103008         ', N'1')
GO
INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'2                   ', N'saleid001           ', N'isbn2103008         ', N'6')
GO
INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'ELK8E2O5t68UQ4YHA0QK', N'saleid005           ', N'isbn2103007         ', N'2')
GO
INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'PA31CORBOML5W9MPLP88', N'saleid007           ', N'isbn2103001         ', N'2')
GO
INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'D16V7L1PD 19JI7GGDJN', N'saleid007           ', N'isbn2103002         ', N'1')
GO
INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'CPQKT SXWO LEL10 KFW', N'saleid008           ', N'isbn2103011         ', N'1')
GO
INSERT INTO [dbo].[saleDetail] ([saleDetailId], [saleId], [bookIsbn], [bookSaleCount]) VALUES (N'28N9LUIDU37HAWMCFC3 ', N'saleid008           ', N'isbn2103012         ', N'1')
GO

SQL查询

1.图书查询统计:按图书分类,出版社、书名、作者等条件查询图书的详细信息。支持模糊查询。
select bookType '图书分类' from book group by bookType;
select bookpublisher '出版社' from book group by bookpublisher;
select * from book where booktype like'%工具%';
select * from book where bookPublisher like '%商务印书馆%'
select * from book where bookname like '%王%'
2.天销售额(这里的销售额我算的是销售数量,也有人说是算销售金额)
select
  book.bookname,
  sum(booksalecount) day_sale_count
from
  (
		select
		  bookisbn,
		  booksalecount
		from
		  saledetail
		where
		  saleid in(
				select
				  saleid
				from
				  sale
				where
				  datepart(year, saledate) = 2020
				  and datepart(month, saledate) = 1
				  and datepart(day, saledate) = 6
		  )
  ) t1
  left join book on book.bookIsbn = t1.bookisbn
group by
  book.bookname;

书店销售管理系统----数据库原理及应用综合实验

3.天销售榜前三
select
  top 3 book.bookname,
  sum(booksalecount) sale_count
from
  (
    select
      bookisbn,
      booksalecount
    from
      saledetail
    where
      saleid in(
        select
          saleid
        from
          sale
        where
          datepart(year, saledate) = 2020
          and datepart(month, saledate) = 1
          and datepart(day, saledate) = 6
      )
  ) t1
  left join book on book.bookIsbn = t1.bookisbn
group by
  book.bookname
order by
  sale_count desc;

书店销售管理系统----数据库原理及应用综合实验

4.月销售额
select
  book.bookname,
  sum(booksalecount) book_count
from
(
    select
      bookisbn,
      booksalecount
    from
      saledetail
    where
      saleid in (
        select
          saleid
        from
          sale
        where
          datepart(year, saledate) = 2020
          and datepart(month, saledate) = 1
      )
  ) t1
  left join book on book.bookisbn = t1.bookisbn
group by
  book.bookname;

书店销售管理系统----数据库原理及应用综合实验

5.月销售榜前三
select
  top 3 book.bookname,
  sum(booksalecount) book_count
from
(
    select
      bookisbn,
      booksalecount
    from
      saledetail
    where
      saleid in (
        select
          saleid
        from
          sale
        where
          datepart(year, saledate) = 2020
          and datepart(month, saledate) = 1
      )
  ) t1
  left join book on book.bookisbn = t1.bookisbn
group by
  book.bookname
order by
  book_count desc;

书店销售管理系统----数据库原理及应用综合实验

6.自动计算库存,支付金额(触发器)
create trigger auto_update_bookcount_money on saleDetail
after insert
as
begin
	declare @booksalecount int;
	declare @bookisbn char(20);
	declare @bookcount int;
	select @bookisbn=bookisbn from inserted;
	select @booksalecount=bookSaleCount from inserted;
	select @bookcount=bookcount from book where bookisbn=@bookisbn;
	if(@booksalecount>@bookcount)
		begin
			print('购买数量:'+convert(varchar,@booksalecount)+', 库存量:'+convert(varchar,@bookcount)+'。 库存不足,订单支付失败!')
			rollback transaction;
		end
	else
		begin
			declare @newCount int
			update book set bookcount=(bookcount-@booksalecount) where bookisbn=@bookisbn;
			select @newCount=bookcount from book where bookisbn=@bookisbn;
			declare @saleId char(20);
			select @saleId=saleId,@bookIsbn=bookIsbn,@bookSaleCount=bookSaleCount from inserted;
			declare @bookPrice float;
			declare @bookName char(20);
			select @bookPrice=bookPrice,@bookName=bookName from book where bookIsbn=@bookIsbn;
			declare @vipId char(20);
			select @vipId=vipId from sale where saleId=@saleId;
			declare @vipName char(20);
			declare @vipLevel int;
			select @vipName=vipName,@vipLevel=vipLevel from vip where vipId=@vipId
			declare @vipLevelDiscount float;
			select @vipLevelDiscount=vipLevelDisCount from vipType where vipLevel=@vipLevel
			print(convert(varchar(6),@vipName)+'购买《'+convert(varchar(10),@bookName)+'》的消费金额为:'+convert(varchar,@bookSaleCount*@bookPrice*@vipLevelDiscount)+',  购买数量:'+convert(varchar,@bookSaleCount)+',  单价:'+convert(varchar,@bookPrice)+', 会员等级:'+convert(varchar,@vipLevel)+',  会员折扣:'+convert(varchar,@vipLevelDiscount)+', 更新后的库存量为:'+convert(varchar,@newCount))
		end
end

向销售明细表中插入一条数据测试,库存量和金额是否正确。

insert into saledetail values('3','saleid001','isbn2103002',1);

说明:销售明细id为3,这条销售明细属于saleid001销售id,售出的书id是isbn2103002,数量是1。

书店销售管理系统----数据库原理及应用综合实验
书店销售管理系统----数据库原理及应用综合实验
书店销售管理系统----数据库原理及应用综合实验文章来源地址https://www.toymoban.com/news/detail-457692.html

到了这里,关于书店销售管理系统----数据库原理及应用综合实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库管理系统(基于前端+后端+数据库)

      库存管理系统 包括模块: (1)基本信息管理。 (2)商品入库管理。 (3)商品出库管理。 (4)商品查询管理。 (5)查看商品目录。 实训步骤: 开发环境:html , css , js , python,Mysql,pycharm 需求分析: 和其他数据库系统相比, MySQL 有点与众不同,它的架构可以在多种

    2024年02月04日
    浏览(56)
  • 数据库应用:数据库管理系统与安装MySQL数据库

    目录 一、理论 1.数据库管理系统 2.关系型数据库 3.数据库 4.MySQL数据库 5.MySQL部署 二、实验 1.yum安装MySQL 2.编译安装MySQL 3.配置MySQL数据库的Tab补全  三、问题 1.数据库登录报错 2.数据库密码复杂度报错 3.数据库连接报错 四、总结 (1)概念 数据库管理系统(Database Management

    2024年02月13日
    浏览(44)
  • 数据库系统课程设计(高校成绩管理数据库系统的设计与实现)

    目录 1、需求分析 1 1.1 数据需求描述 1 1.2 系统功能需求 3 1.3 其他性能需求 4 2、概念结构设计 4 2.1 局部E-R图 4 2.2 全局E-R图 5 2.3 优化E-R图 6 3、逻辑结构设计 6 3.1 关系模式设计 6 3.2 数据类型定义 6 3.3 关系模式的优化 8 4、物理结构设计 9 4.1 聚簇设计 9 4.2 索引设计 9 4.3 分区设

    2024年02月03日
    浏览(52)
  • MySQL数据库:数据库管理系统与安装MySQL数据库

    目录 一、理论 1.数据库管理系统 2.关系型数据库 3.数据库 4.MySQL数据库 5.MySQL部署 二、实验 1.yum安装MySQL 2.编译安装MySQL 3.配置MySQL数据库的Tab补全  三、问题 1.数据库登录报错 2.数据库密码复杂度报错 3.数据库连接报错 四、总结 (1)概念 数据库管理系统(Database Management

    2024年02月12日
    浏览(46)
  • 数据库系统课设--人事管理系统

    目录 前言 一,课程设计的目的 二,总体设计 1 系统需求分析 1.1 系统功能分析 1.2 系统功能模块设计(划分) 1.3 与其它系统的关系 1.4 数据流程图 2 数据库设计 2.1 数据库需求分析 2.2 数据库概念结构设计 2.3 数据库逻辑结构设计 2.4 数据库的建立 2.4.1 数据库的建立 2.4.2 初始

    2024年02月06日
    浏览(45)
  • MySQL数据库设计作业 ——《网上书店系统》数据库设计实验报告

    普通用户:可以进行最基础的登陆操作,可浏览图书、按类别查询图书、查看 图书的详细信息,还可以注册成为会员。 会员:需要填写详细信息(真实姓名、性别、手机号、地址、邮箱等),可浏览图书、按类别查询图书、查看图书的详细信息,在此基础上,还可以订购图

    2024年02月04日
    浏览(59)
  • 学生信息管理系统(数据库)

    要求实现功能: (1)学生、课程、教师等信息的录入和维护,一门课只由一位教师上,一位教师可上多门课 (2)学生进行选课,一学期约20学分 (3)教师在每门课结束后给出学生成绩,不及格则补考后记录补考成绩 (4)能明细查询某学生的选课情况及某课程的选修学生情

    2024年02月03日
    浏览(34)
  • 网吧管理系统数据库设计

    摘  要:网吧管理系统是为解决大型网吧面临的复杂电脑管理业务流程和繁琐的客户服务、信息处理业务而开发的管理系统。它主要包含系统管理、会员管理、日常管理、查询管理、统计报表五个模块。数据库设计过程中主要进行了分析网吧电脑使用业务方面的需求,进行概

    2024年02月08日
    浏览(44)
  • 梅西生涯数据管理系统(Python+数据库)

    用 Tkinter + MySQL 实现简单的数据分析系统,一起来看看吧! 本篇博客主要分为两大部分,一部分主要是对数据库的操作,另一部分主要是使用Python进行一些程序设计与数据分析。 代码下载地址:https://download.csdn.net/download/m0_68111267/88029856 python tkinter mysql 1. 导入数据 以下是My

    2024年02月08日
    浏览(42)
  • 数据库系统实现 大学生宿舍管理系统

    目录 目录 第一章绪论 1.1项目研究的背景 第二章可行性分析与需求分析 2.1可行性分析 2.1.1操作可行性 2.1.2技术可行性 2.1.3设计可行性 2.2需求分析 2.2.1处理对象分析 2.2.2功能需求分析 2.2.3安全性与完整性分析 第三章系统设计 3.1系统架构图 3.2 E-R图 3.3 数据结构 3.3.1 用户信息结

    2024年02月06日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包