连锁超市数据库及代码Word文件下载.docx
《连锁超市数据库及代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《连锁超市数据库及代码Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
Provide
供货商表
Supermaket
超市表
Sale
销售表
Users
顾客表
Member
会员表
商品信息表(MerchInfo)
字段名
字段类型
长度
字段值约束
主/外键
对应中文名
MerchID
Int
4
Notnull
F
商品编号
MerchName
varchar
50
商品名称
MerchPrice
商品价格
BarCode
money
条形码
顾客表(User)
UserID
10
顾客编号
UserName
25
顾客名称
UserPW
顾客密码
UserStyle
int
2
顾客类型
会员表(Member)
MemberName
会员姓名
MemberCard
20
会员卡号
TotalCost
Money
累计金额
RegDate
Datetime
8
注册日期
销售表(Sale)
SaleID
流水账号
MerCHID
P
SaleDate
销售日期
SaleNum
销售数量
SalePrice
销售金额
供货表(Factory)
FactoryID
供货编号
FactoryDate
varchar
供货日期
FactorySL
供货数量
MerCHID
ProvideID
供货商号
供货商表(Provide)
ProvideName
供货商名称
ProvideAddress
250
供货商地址
ProvidePhone
供货商电话
仓库表(Supermaket)
SupermaketID
仓库编号
SupermaketName
仓库名称
SupermaketAddress
仓库地址
库存表
KCL
库存量
SPBH
CKBH
创建数据库
createdatabaseSuperMarketdb
onprimary(
name=SuperMarketdb,
filename='
C:
\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\SuperMarketdb.mdf'
size=100MB,
maxsize=200MB,
filegrowth=20MB)
logon(
name=SuperMarketlog,
\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\SuperMarketdb.ldf'
size=60MB,
maxsize=200MB,
filegrowth=20MB)
go
/*创建商品信息表*/
CREATETABLEMerchInfo(
MerchIDintPrimarykey,
MerchNamevarchar(50)NOTNULL,
MerchPricemoneyNOTNULL,
BarCodevarchar(20)NOTNULL,
)
GO
/*创建供货表*/
CREATETABLEFactory(
FactoryIDvarchar(10)Primarykey,
FactoryDateDatetimeNOTNULL,
FactorySLChar(4)NOTNULL,
MerCHIDvarchar(10)NOTNULL,
ProvideIDvarchar(10)NOTNULL)
GO
/*创建供货商表*/
CREATETABLEProvide(
ProvideIDvarchar(10)Primarykey,
ProvideNamevarchar(50)NOTNULL,
ProvideAddressvarchar(250)NOTNULL,
ProvidePhonevarchar(25)NOTNULL)
GO
/*创建仓库表*/
CREATETABLESupermaket(
SupermaketIDintPrimarykey,
SupermaketNamevarchar(10)NULL,
SupermaketAddressvarchar(10)NULL)
/*创建会员表*/
CREATETABLEMember(
MemberNamevarchar(10)Primarykey,
MemberCardvarchar(20)NOTNULL,
TotalCostmoneyNOTNULL,
RegDatedatetimeNOTNULL)
/*创建购买表*/
CREATETABLESale(
SaleIDintPrimarykey,
MerCHIDvarchar(10)NOTNULL,
SaleDatedatetimeNOTNULL,
SaleNumintNOTNULL,
SalePricemoneyNOTNULL,
UserIDvarchar(10)NOTNULL)
GO
/*创建顾客表*/
CREATETABLEUsers(
UserIDvarchar(10)Primarykey,
UserNamevarchar(25)NOTNULL,
UserPWvarchar(50)NOTNULL,
UserStyleintNOTNULL,)
/*----------添加表信息----------*/
MerchInfo:
INSERTINTOMerchInfo(MerchID,MerchName,MerchPrice,BarCode)
VALUES('
001'
'
德芙巧克力'
20'
11112222'
);
002'
上好佳'
2'
11113333'
003'
火腿肠'
5'
11114444'
004'
面包'
4'
11115555'
Users:
INSERTINTOUsers(UserID,UserName,UserPW,UserStyle)
张一'
985211'
1'
王二'
211985'
朱三'
369852'
郭四'
456321'
Member:
INSERTINTOMember(MemberName,MemberCard,TotalCost,RegDate)
200'
2014-12-1'
100'
2014-11-1'
350'
2014-9-3'
700'
2014-8-1'
Sale:
INSERTINTOsale(SaleID,MerCHID,SaleDate,SaleNum,SalePrice,UserID)
0000'
2014-12-28'
30'
750'
0001'
2014-12-16'
10'
500'
00002'
2014-12-15'
15'
400'
Factory:
INSERTINTOfactory(FactoryID,FactoryDate,FactorySL,MerCHID,ProvideID)
005'
010'
006'
2014-12-11'
012'
007'
2014-12-24'
011'
Provide:
INSERTINTOprovide(ProvideID,ProvideName,ProvideAddress,ProvidePhone)
蒙牛'
'
36363636'
伊利'
56565656'
飞鹤'
78787878'
Supermaket:
INSERTINTOSupermaket(SupermaketID,SupermaketName,SupermaketAddress)
01'
一号超市'
中华大街'
INSERTINTOSupermaket(SupermaketID,SupermaketName,SupermaketAddress)
02'
二号超市'
光明大街'
03'
三号超市'
人民路'
/*----------创建表间约束----------*/
/*供货表中商品编号、供应商号分别与商品信息表、供应商表之间的外键约束*/
ALTERTABLEFactoryADD
CONSTRAINTFK_Factory_MerCHIDFOREIGNKEY(MerCHID)REFERENCESMerchInfo(MerCHID),
CONSTRAINTFK_Factory_ProvideFOREIGNKEY(ProvideID)REFERENCESProvide(ProvideID)
/*销售表中商品编号与商品信息表之间的外键约束*/
ALTERTABLESaleADD
CONSTRAINTFK_Sale_MerchInfoFOREIGNKEY(MerChID)REFERENCESMerchInfo(MerchID)ONDELETECASCADE
/*入库表中商品编号与商品信息表之间的外键约束*/
ALTERTABLEStockADD
CONSTRAINTFK_Stock_MerchInfoFOREIGNKEY(MerchID)REFERENCESMerchInfo(MerchID)ONDELETECASCADE
GO
/*----------创建索引
----------*/
--在顾客表上建立一个以顾客编号、顾客密码为索引项的非聚集索引
CREATEnonclusteredINDEXIX_UsersONUsers(UserID,UserPW)
--在商品信息表上建立一个以商品编号为索引项的非聚集索引
CREATEnonclusteredINDEXIX_MerchInfoONMerchInfo(MerchID)
--在购买表上建立一个以购买编号、购买日期为索引项的非聚集索引
CREATEnonclusteredINDEXIX_SaleONSale(SaleID,SaleDate)
--在供货商表上建立一个以供货商号、供货商名称为索引项的非聚集索引
CREATEnonclusteredINDEXIX_ProvideONProvide(ProvideID,ProvideName)
/*----------创建视图----------*/
--创建用于查看商品信息情况的视图
CREATEVIEWv_MerchInfo
AS
SELECTMerchIDas商品编号,
MerchNameas商品名称,
MerchPriceas商品价格,
BarCodeas条形码
FROMMerchInfo
创建用于查询销售明细记录的视图
CREATEVIEWv_Sale
SELECTMerchInfo.MerchNameas商品名称,
MerchInfo.BarCodeas条形码,
MerchInfo.MerchPriceas商品价格,
Sale.SalePriceas销售金额,
Sale.SaleNumas销售数量,
Sale.SaleDateas销售日期
FROMSaleINNERJOIN
MerchInfoONSale.MerChID=MerchInfo.MerchID
创建用于供货情况的视图
CREATEVIEWv_Factory
SELECTFactory.FactorySLas供货数量,
Factory.FactoryDateas供货日期,
Provide.ProvideNameas供货商,
Provide.ProvideAddressas供货地址,
Provide.ProvidePhoneas供货电话
FROMFactoryINNERJOIN
ProvideONFactory.ProvideID=Provide.ProvideID
--1.查询顾客表姓名为张一的信息
select*
fromusers
whereusername='
;
--2.查询供货商编号为的货物信息
select*
fromProvide
whereProvideID='
--3.为供应商表添入一条数据
insert
intoprovide
values('
豆奶'
89898989'
)
--4.创建角色Super并对顾客修改,查询和插入的功能赋给角色Super
createroleSuper
grantupdate,select,insert
onUsers
toSuper
--5.收回角色Super顾客表插入的功能
revokeinsert
fromSuper
--6.删除角色Super
droproleSuper
--7.使用exists语句查询供货商地址为唐山的货物编号,货物名称和供货商电话
selectProvideID,ProvideName,ProvidePhone
fromProvide
whereexists
(select*fromProvide
whereProvide.Providename='
)
--8.建立触发器,当向供应商表插入新信息后,打印出:
添加一条供应商信息字样
createtriggerprovide_insert
onprovideafterinsert
asbeginprint'
添加一条供应商信息'
end
go
insertintoprovide
008'
芝麻糊'
67676767'
--9.创建查看一个超市信息的存储过程
createprocedurepro_Supermaket
as
selectSupermaketID,SupermaketName,SupermaketAddressfromSupermaket;
execpro_Supermaket