宁夏大学物理电气信息学院综合性实验
实验报告
课程名称数据库应用
实验学期 2011 至 2012 学年第二学期学生所在系物理电气信息学院电气系
年级 09级专业班级电子信息工程(1)班
学生姓名学号
任课教师
实验成绩
任课教师制
2012 年 6 月 10 日
图1 小型超市进销存总体设计管理系统通过上图,可以发现对于具体表的设计要求满足以下几个条件:
1、实现商品类型、供应商信息的管理
2、实现客户信息、商品信息的管理
3、实现商品入库管理
4、实现查询商品的基本信息
5、创建触发器,实现商品入库和销售时自动修改库存
6、创建视图统计某段时间内各种商品的入库数量和销售数量(2)顶层销售系统界面:
图2 顶层销售信息管理界面
商品销售时各分支之间关系:
图3 商品销售时数据库模块具体功能
补充说明前面总体设计图具体介绍:
1、基本信息:用于建立系统正常运行所必需的基础资料,如:本超市、员工(操作员)、计量单位、往来单位(供货商、客户)、分店、商品大类、商品类别等资料。
正式使用本软件前,必须先进行基础信息设置,然后才能顺利的开展工作。
"超市基本信息":超市基本信息的输入和修改。
"POS分机档案登记" :分级信息的输入、修改和删除。
"商品分类":商品分类信息的输入、修改、删除。
"商品档案":商品档案信息的输入、修改、删除和库存的增减。
"供应商档案":供应商信息的输入、修改、删除。
"价格自动生成设置":进货价、零售价、会员价、业务提成的整体调整。
"商品分类统计":分类信息的统计报表。
"商品档案统计":商品档案信息的统计报表。
"供应商档案统计":供应商信息的统计报表。
"超市分机统计":分机信息的统计报表。
2、进货管理:用于登记入库商品的名称、单价、数量及入库日期、供货商、经办人、存放分店等资料。
期初库存也在此输入。
"进货开单":进货开单、商品的添加、进货价的调整等。
"进货退货":进货退回。
"进货单汇总":进货单统计报表。
"总盘盈查询":盘赢利商品销售。
"总盘亏查询":盘吃亏商品销售。
"总盘点":所有盘点。
6、数据库管理:数据库备份、恢复、期初建账等。
"数据备份":数据库备份。
"数据恢复":数据库恢复。
"数据清理":数据清理。
"期初建账":建账。
"月初结算建账":建账。
(3)实体属性图:
1、基本信息属性:.
图4 超市基本信息实体属性图 2、供应商基本信息属性:
图5 供应商基本信息属性图
3、分机信息实体属性图:
图6 分机信息属性图
4、管理员实体属性图:
图7 管理员实体属性图
5、商品分类实体属性:
图8 商品分类实体属性图
6、进货单实体属性图:
图9 进货单实体属性图(4)主要进销存数据表的建立:
销售表:
运用一下语句进行插入数据:
insert into sale
(商品编号,商品名,日期,销售价格,日销售量,净赚) values
('9073','顶牛','2012-06-13','1.0','35','0.4')
进货表:
insert into commodity
(商品编号,商品名,进货价,进货日期,进货量,经销商,保质期) values
('9073','顶牛','0.6','2012-01-14','100','厦门','半年')
存货表:
insert into stock
(商品编号,商品名,经销商,现存货量,存货日期)
values
('6001','海飞丝','北京','8','2012-04-23')
select*from sale
select*from commodity
select*from stock
查询结果:
5、创建视图
(1)日销量查询:①向导建立
执行结果:
②日销量查询(建立视图后运行产生SQL语句):
SELECT dbo.sale.商品名 AS Expr1, dbo.stock.现存货量, modity.
进货价, modity.商品编号, dbo.sale.销售价格, dbo.stock.商品名,
dbo.sale.日销售量, dbo.sale.净赚
FROM modity INNER JOIN dbo.sale ON modity.商品编号 =
dbo.sale.商品编号INNER JOIN dbo.stock ON dbo.sale.商品编号=
dbo.stock.商品编号
(2)日销量+具体日期
SELECT dbo.sale.商品名 AS Expr1, dbo.stock.现存货量, modity.
进货价, modity.商品编号, dbo.sale.销售价格, dbo.stock.商品名,
dbo.sale.日销售量, dbo.sale.净赚, modity.进货日期, dbo.sale.
日期, dbo.stock.存货日期
FROM modity INNER JOIN dbo.sale ON modity.商品编号 =
dbo.sale.商品编号INNER JOIN dbo.stock ON dbo.sale.商品编号=
dbo.stock.商品编号
6、建立索引
(1)向导建立索引/键:
(2)SQL语句建立:
use超市进销存管理系统
create unique index IX_sale_id on sale(商品编号asc)
7、建立触发
(1)创建DML触发(After触发是在家记录变更后才被激活执行的,而且所创建的触发器都是临时的):
①创建触发:create trigger text on sale
after insert as
begin
select*from inserted
End
验证:use超市进销存管理系统
select*from inserted
②触发建立后:USE[超市进销存管理系统]
GO
/****** Object: Trigger [dbo].[text] Script Date: 06/18/2012 08:24:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger[dbo].[text]on[dbo].[sale]
after insert as。