1、 枣 庄 学 院 信息科学与工程学院课程设计任务书 题目: 超市管理系统 小组成员: 邓金鲤,张山峰,张啸 成员学号: 201512310,201512310245,201512310246 专业班级: 计算机科学与技术、15级升本2班 课 程: 数据库应用 指导教师: 迟庆云
2、 完成时间: 2015年 11月----2015年 12 月 枣庄学院信息科学与工程学院制 2015年11 月15日 开发小组成员分工及职责 邓金鲤: 建模,索引创建,触发器创建。 张山峰: 建表,视图创建,存储过程创建,程序检验。 视图创建,存储过程创建。 张啸: 程序整理分析,触发器创建,建模,存储过程创建。 课程设计任务书及成绩评定 课程设计的任务和具体要求 任务:综合运用数据库原理和SQL Server2008、Power designer的知识,完成一个信息管理系统的底层全面设计,
3、初步掌握数据库设计的基本方法。 具体要求: 1、需求分析:根据自己的选题,绘制的DFD、DD图表以及书写相关的文字说明。 2、概念结构设计、逻辑结构设计:应用Power designer绘制所选题目详细的CDM图,生成的物理数据模型(PDM),并自动生成数据库的数据表;设置实体完整性、域完整性和参照完整性,根据局部应用需要设计外模式。 3、物理结构设计:选定实施环境,存取方法、索引等。 4、数据实施和维护:用SQL Server2008加载数据(可以用Power designer生成测试数据),实现各种查询、链接应用程序,设计数据库中触发器、存储器等对象,并能对数据库做简单的维护操作
4、 5、设计小结:总结课程设计的过程、体会及建议。 6、其他:参考文献等。 指导教师签字: 迟庆云 日期: 2014-11-10 指导教师评语 成绩:____________ 指导教师签字: 迟庆云 日期: 2015-1-15 课程设计所需软件、硬件等 n 硬件环境:Iterl(R) Core(TM)2 Duo CPU,主频2.31GHz;内存3G; 硬盘320G以上;1024×768显示分辨率 n 软件环境: Pow
5、er designer、SQL Server2008 课程设计进度计划 起至日期 工作内容 备注 参考文献、资料索引 序号 文献、资料名称 编著者 出版单位 [1]刘宇君.SQL server数据库应用设计案例汇编[M].北京:中国铁道出版社, 2007.86-132 [2]童爱红等.Delphi数据库编程[M].北京:清华大学出版社, 2005.106-158 [3]刘波.基于Delphi的学生成绩管理系统[J].四川大学学报,2009,(10):283 28 目 录 1 创建表 1.1创建表………………
6、……………………………………………6 1.2创建默认约束……………………………………………………8 1.3创建已售货物表…………………………………………………10 2 创建外键 2.1 创建外键………………………………………………………11 2.2 创建交易历史信息表…………………………………………13 2.3 创建员工信息表………………………………………………15 3 创建视图 3.1 创建视图………………………………………………………21 3.2 查询表中若干列………………………………………………23
7、 3.3 查询表中所有列………………………………………………24 3.4 合并查询………………………………………………………25 3.5嵌套子查询……………………………………………………26 3.6聚合查询………………………………………………………27 3.7多表查询………………………………………………………28 一:创建表 create database hwglxt on primary (name='hwglxt', filename='d:\date\hwglxt.md
8、f', size=100mb,maxsize=unlimited, filegrowth=1mb) log on (name='hwglxt_log', filename='d:\date\hwglxtl_log.ldf', size=15mb,maxsize=unlimited, filegrowth=10%) go 截图: 二hwglxt数据库包含五个表,分别为购物车表, 已售货物表, 交易历史信息表, 员工写信息表,仓库表. (1)购物车表sql命令:( 跟踪记录当前钱顾客所购物品) Use hwglxt go create
9、 table 购物车表 ( 交易号 varchar (20)not null, 品名 nvarchar(12) not null, 货号 varchar(16) not null, 单价 money not null, 总数 int, 折扣 money, 总金额 money, 交易日期 date ) Go 创建默认约束 alter table 购物车表 add constraint gwcb_djl default '0' for 折扣 use hwglxt go insert 购物车表(交易号,品名,货号,单价,总数,折
10、扣,总金额,交易日期) values (0,'方便面','1234',2,'15',0,'30','2001-4-5') insert 购物车表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (1,'火腿肠','1235',1,'20',0,'20', '2001-4-5') insert 购物车表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (2,'可乐','1236',2.5,'15',0,'37', '2001-4-5') insert 购物车表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (
11、3,'雪碧','1237',3,'15',0,'45', '2001-4-5') insert 购物车表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values ( 4,'湿巾','1238',2,'30',0,'60', '2001-4-7') insert 购物车表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (5,'七喜','1239',3,'15',0,'45', '2001-4-7') insert 购物车表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (6,'美年达','1231',3,'30',0
12、'90', '2001-4-7') insert 购物车表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values ( 7,'勺子','1232',1,'30',0,'30', '2001-4-7') insert 购物车表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (8,'筷子','1233',1,'20',0,'20', '2001-4-7') insert 购物车表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (9,'毛巾','1241',4,'20',0,'80', '2001-4-8') ins
13、ert 购物车表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (0,'酱油' ,'1242',6,'20',0,'120', '2001-4-8') insert 购物车表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (1,'水饺','1243',8,'20',0,'160', '2001-4-8') insert 购物车表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (2,'王老吉','1244',3,'20',0,'60', '2001-4-8') insert 购物车表(交易号,品名,货号,单
14、价,总数,折扣,总金额,交易日期) values (3,'加多宝','1245',3,'200',0,'600','2001-3-28') insert 购物车表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (4,'和其正','1246',3,'200',0,'600','2001-3-28') insert 购物车表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (5,'蒙牛','1247',2.5,'200',0,'500','2001-3-28') insert 购物车表(交易号,品名,货号,单价,总数,折扣,总金额,
15、交易日期) values (6,'伊利','1248',2.5,'200',0,'500','2001-3-28') insert 购物车表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (8,'三元','1249',2.5,'200',0,'500','2001-3-28') 2:创建已售货物表 Use hwglxt go create table 已售货物表 ( 交易号 nvarchar(20)not null, 品名 nvarchar(12) not null, 货号 varchar(16) not null,
16、 单价 money not null, 总数 int, 折扣 money, 总金额 money, 交易日期 datetime primary key(交易号,货号) ) Go 为已售货物表创建默认约束 alter table 已售货物表 add constraint yshwb_djl default '0' for 折扣 二:创建外键 use hwglxt alter table 已售货物表 add constraint fk_已售货物表_仓库表foreign key (货号) references 仓库表(货号) go use hwgl
17、xt alter table 已售货物表 add constraint fk_已售货物表_交易历史信息表foreign key ( 交易号) references 交易历史信息表(交易号) go 输入数据,若是用sql 命令键入表中数据: use hwglxt go insert 已售货物表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (0,'方便面','1234',2,'15',0,'30','2001-4-5') insert 已售货物表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (1,'火腿肠','
18、1235',1,'20',0,'20', '2001-4-5') insert 已售货物表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (2,'可乐','1236',2.5,'15',0,'37', '2001-4-5') insert 已售货物表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (3,'雪碧','1237',3,'15',0,'45', '2001-4-5') insert 已售货物表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values ( 4,'湿巾','1238',2,'30',0,'60
19、', '2001-4-7') insert 已售货物表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (5,'七喜','1239',3,'15',0,'45', '2001-4-7') insert 已售货物表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (6,'美年达','1231',3,'30',0,'90', '2001-4-7') insert 已售货物表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values ( 7,'勺子','1232',1,'30',0,'30', '2001-4-7') ins
20、ert 已售货物表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (8,'筷子','1233',1,'20',0,'20', '2001-4-7') insert 已售货物表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (9,'毛巾','1241',4,'20',0,'80', '2001-4-8') insert 已售货物表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (0,'酱油' ,'1242',6,'20',0,'120', '2001-4-8') insert 已售货物表(交易号,品名,货号
21、单价,总数,折扣,总金额,交易日期) values (1,'水饺','1243',8,'20',0,'160', '2001-4-8') insert 已售货物表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (2,'王老吉','1244',3,'20',0,'60', '2001-4-8') insert 已售货物表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (3,'加多宝','1245',3,'200',0,'600','2001-3-28') insert 已售货物表(交易号,品名,货号,单价,总数,折扣,总金额,交
22、易日期) values (4,'和其正','1246',3,'200',0,'600','2001-3-28') insert 已售货物表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (5,'蒙牛','1247',2.5,'200',0,'500','2001-3-28') insert 已售货物表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) values (6,'伊利','1248',2.5,'200',0,'500','2001-3-28') insert 已售货物表(交易号,品名,货号,单价,总数,折扣,总金额,交易日期) val
23、ues (8,'三元','1249',2.5,'200',0,'500','2001-3-28') 3:创建交易历史信息表 Use hwglxt go create table 交易历史信息表 ( 交易号 nvarchar(20)not null, 交易时间 datetime, 受理人 varchar(12) primary key(交易号,受理人) ) Go 输入数据,若是用sql 命令键入表中数据: use hwglxt go insert 交易历史信息表(交易号,交易时间,受理人) values (0, '2001-3-28', 沈克楠) in
24、sert交易历史信息表(交易号,交易时间,受理人) values(1, , '2001-3-28',王丹) insert交易历史信息表(交易号,交易时间,受理人) values (2, '2001-3-28',刘鑫) insert交易历史信息表(交易号,交易时间,受理人) values (3, '2001-3-28',张吉) insert交易历史信息表(交易号,交易时间,受理人) values ( 4, '2001-3-28',耿娇) insert交易历史信息表(交易号,交易时间,受理人) values (5, '2001-3-28',朱丹) insert交易历史信息表(交
25、易号,交易时间,受理人)) values (6, '2001-3-28',王东) insert交易历史信息表(交易号,交易时间,受理人)) values ( 7, , '2001-3-28',王楠) insert交易历史信息表(交易号,交易时间,受理人) values (8, '2001-3-28',李楠) insert交易历史信息表(交易号,交易时间,受理人) values (9, '2001-3-28',王祥俊) 创建外键 use hwglxt alter table 交易历史信息表 add constraint fk_交易历史信息表_员工信息表foreign k
26、ey ( 受理人) references 员工信息表(Name) go 创建默认约束 alter table 交易历史信息表 add constraint jylsxx_djl default '0' for 交易号 4:创建员工信息表 Use hwglxt go create table 员工信息表 ( Name nvarchar(20)not null, Id varchar(12), Sex varchar(10), Secretcold nvarchar(16), Position nvarchar(16), Tel nvarc
27、har(16), Adress ntext, Email ntext, Age int, Add_time datetime primary key(Name) ) Go 输入数据,若是用sql 命令键入表中数据: use hwglxt go insert 员工信息表(Name,Id,Sex,Position ,Tel,Age,Add_time) values ('沈克楠',0,'男','收银员','1234560','20','1998-1-5') insert 员工信息表(Name,Id,Sex,Position ,Tel,Age,Add_time) val
28、ues ('王丹',1,'女','收银员','1234561','21','1999-2-5') insert 员工信息表(Name,Id,Sex,Position ,Tel,Age,Add_time) values ('刘鑫',2,'男','收银员','1234562','22','1998-3-5') insert 员工信息表(Name,Id,Sex,Position ,Tel,Age,Add_time) values ('张吉',3,'男','收银员','1234563','23','1999-4-5') insert 员工信息表(Name,Id,Sex,Position ,T
29、el,Age,Add_time) values ('耿娇',4,'女','收银员','1234564','21','1998-5-5') insert 员工信息表(Name,Id,Sex,Position ,Tel,Age,Add_time) values ('朱丹',5,'女','收银员','1234565','22','1999-6-5') insert 员工信息表(Name,Id,Sex,Position ,Tel,Age,Add_time) values ('王东',6,'男','收银员','1234566','23','1998-7-5') insert 员工信息表(Na
30、me,Id,Sex,Position ,Tel,Age,Add_time) values ('王楠',7,'女','收银员','1234567','23','1999-8-5') insert 员工信息表(Name,Id,Sex,Position ,Tel,Age,Add_time) values ('李楠',8,'女','收银员','1234568','22','1998-9-5') insert 员工信息表(Name,Id,Sex,Position ,Tel,Age,Add_time) values ('王祥俊',9,'男','收银员','1234569','21','1999-
31、10-5') 为员工信息表创建默认约束 alter table 员工信息表 add constraint ygglb_djl default '收银员' for Position 5:创建仓库表 Use hwglxt go create table仓库表 ( 货号 varchar(16)not null, 品名 nvarchar(12)not null , 数量 int not null, 类别 nvarchar(12) not null, 底价 float not null, 供货商 nvarchar(20), 入库时间 datetime, 原价
32、money not null, primary key(货号) ) Go 为仓库表创建默认约束 alter table 仓库表 add constraint ckb_djl default '食品' for 类别 use hwglxt go insert 仓库表(品名,货号,数量,供货商,入库时间) values ('方便面','1234', '135',' 康师傅','2001-3-25') insert 仓库表(品名,货号,数量,供货商,入库时间) values ('火腿肠','1235','180','金锣','2001-3-25') insert 仓库
33、表(品名,货号,数量,供货商,入库时间) values ('可乐','1236','135','百事','2001-3-25') insert 仓库表(品名,货号,数量,供货商,入库时间) values ('雪碧','1237','135','可口','2001-3-26') insert 仓库表(品名,货号,数量,供货商,入库时间) values ( '湿巾','1238','270','心心相印','2001-3-26') insert 仓库表(品名,货号,数量,供货商,入库时间) values ('七喜','1239','135','百事','2001-3-26') in
34、sert 仓库表(品名,货号,数量,供货商,入库时间) values ('美年达','1231','270','百事','2001-3-27') insert 仓库表(品名,货号,数量,供货商,入库时间) values ( '勺子','1232','270','嘉泰','2001-3-27') insert 仓库表(品名,货号,数量,供货商,入库时间) values ('筷子','1233','180','嘉泰','2001-3-27') insert 仓库表(品名,货号,数量,供货商,入库时间) values ('毛巾','1241','180','鸿运','2001-3-28
35、') insert 仓库表(品名,货号,数量,供货商,入库时间) values ('酱油' ,'1242','180','中粮','2001-3-28') insert 仓库表(品名,货号,数量,供货商,入库时间) values ('水饺','1243','180','湾仔码头','2001-3-28') insert 仓库表(品名,货号,数量,供货商,入库时间) values ('王老吉','1244','180','中药集团','2001-3-28') insert 仓库表(品名,货号,数量,供货商,入库时间) values ('加多宝','1245','180','JBD
36、','2001-3-28') insert 仓库表(品名,货号,数量,供货商,入库时间) values ('和其正','1246','180','哇哈哈','2001-3-29') insert 仓库表(品名,货号,数量,供货商,入库时间) values ('蒙牛','1247','180','蒙牛','2001-3-29') insert 仓库表(品名,货号,数量,供货商,入库时间) values ('伊利','1248','180','伊利','2001-3-30') insert 仓库表(品名,货号,数量,供货商,入库时间) values ('三元','1249','1
37、80','三元','2001-3-30') 三:创建视图 use hwglxt go create view 货物视图 as SELECT dbo.仓库表.货号, dbo.仓库表.品名, dbo.仓库表.类别, dbo.仓库表.供货商, dbo.已售货物表.交易号, dbo.交易历史信息表.受理人, dbo.员工信息表.Name, dbo.员工信息表.Id, dbo.员工信息表.Sex, dbo.员工信息表.Age, dbo.员工信息表.Add_time FROM dbo.仓库表INNER JOIN
38、 dbo.已售货物表ON dbo.仓库表.货号= dbo.已售货物表.货号INNER JOIN dbo.交易历史信息表ON dbo.已售货物表.交易号= dbo.交易历史信息表.交易号INNER JOIN dbo.员工信息表ON dbo.交易历史信息表.受理人= dbo.员工信息表.Name 1查询表中若干列 use hwglxt go
39、 select 品名,数量 from 仓库表 (2)查询表中所有列 use hwglxt go select * from 仓库表 go (3)合并查询 use hwglxt go select 货号from 购物车表 union select 品名from 已售货物表 go 4)嵌套子查询 use hwglxt go select * from 员工信息表 where Age = (select Age from 员工信息表 where Name = '李楠') and Name <> '李楠' go (5)聚合查询——查询数量在135和180之间的 use hwglxt go select * from 仓库表 where 数量between 135 and 180 --where 数量 not between 135 and 180 Go (6)多表查询 use hwglxt go select * from 交易历史信息表 left join 员工信息表 on 交易历史信息表.交易号= 员工信息表.Id go






