范文网 作文大全 sql创建数据库代码 [连锁超市--数据库及代码] (精选)

sql创建数据库代码 [连锁超市--数据库及代码] (精选)

sql创建数据库代码 [连锁超市--数据库及代码] 实验7 数据库设计一、实验目的使学生能够对给定的实际需求,选择一种编程语言或开发工具,完成数据库设计,并实现数据的查询等操作,从而掌握数据库应用系统的设计方法和步骤。 熟悉大型数据库管理系。

sql创建数据库代码 [连锁超市--数据库及代码]

实验7 数据库设计

一、实验目的

使学生能够对给定的实际需求,选择一种编程语言或开发工具,完成数据库设计,并实现数据的查询等操作,从而掌握数据库应用系统的设计方法和步骤。 熟悉大型数据库管理系统的结构与组成; 熟悉数据库应用系统的设计方法和开发过程;

掌握一种大型数据库管理系统(SQL SERVER 或ORACLE) 的应用技术和开发工具的使用;

熟悉数据库设计工具的使用; 熟悉数据库安全的相关知识和技术; 熟悉数据库系统的管理和维护。 二、实验时数 4学时 三、实验内容

完整实践数据库应用系统设计的工程过程:需求分析\概念设计\逻辑设计\物理设计\实施\编写应用程序:

(1)需求分析:选定一个应用,对所设计的数据库系统有一定的调研分析, 其结果应该以简单的需求分析说明书\数据字典和数据流图(2级数据流即可) 表示; (2)概念分析:使用E-R 图作为描述工具. 描述出局部和全局的E-R 图; (3)逻辑设计:将E-R 图转化为相应的关系模式, 并根据范式理论进行优化分析,关系模式不少于3个;

(4)物理设计:根据需要设计必要的索引等结构;

(5)实施:以某种DBMS 为工具创建出完整的数据库. 在数据库中要表现出的知识点包括:

①设置数据完整性(参照完整性、实体完整性、自定义完整性(包括触发器) 。 ②设置用户, 并相应设计用户的权限和角色(用户设计至少3个,有不同的权限) 。

③建立存储过程完成相关操作至少2个, 以文件方式保存。④

(6) 编写应用程序:利用开发工具C++、 JAVA、.NET 平台或其它动态网页开发工具编写应用程序;

(7)以上内容, 请详细描述, 并有必要抓图; (8) 提交系统的源码程序、设计性实验报告。

商品信息表 (MerchInfo )

顾客表 (User )

会员表 (Member)

销售表 (Sale )

供货表 (Factory )

供货商表 (Provide )

仓库表 (Supermaket )

创建数据库

create database SuperMarketdb on primary (

name =SuperMarketdb ,

filename ="C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.mdf", size =100MB , maxsize =200MB , filegrowth =20MB ) log on (

name =SuperMarketlog ,

filename ="C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.ldf", size =60MB , maxsize =200MB , filegrowth =20MB ) go

/*创建商品信息表*/

CREATE TABLE MerchInfo (

MerchID int Primary key ,

MerchName varchar (50) NOT NULL , MerchPrice money NOT NULL , BarCode varchar (20) NOT NULL , ) GO

/*创建供货表*/

CREATE TABLE Factory (

FactoryID varchar (10) Primary key , FactoryDate Datetime NOT NULL , FactorySL Char (4) NOT NULL , MerCHID varchar (10) NOT NULL, ProvideID varchar (10) NOT NULL )

GO

/*创建供货商表*/

CREATE TABLE Provide (

ProvideID varchar (10) Primary key , ProvideName varchar (50) NOT NULL , ProvideAddress varchar (250) NOT NULL , ProvidePhone varchar (25) NOT NULL ) GO

/*创建仓库表*/

CREATE TABLE Supermaket ( SupermaketID int Primary key , SupermaketName varchar (10) NULL , SupermaketAddress varchar (10) NULL ) GO

/*创建会员表*/

CREATE TABLE Member (

MemberName varchar (10) Primary key , MemberCard varchar (20) NOT NULL , TotalCost money NOT NULL , RegDate datetime NOT NULL ) GO

/*创建购买表*/

CREATE TABLE Sale ( SaleID int Primary key ,

MerCHID varchar (10) NOT NULL,

SaleDate datetime NOT NULL , SaleNum int NOT NULL, SalePrice money NOT NULL, UserID varchar (10) NOT NULL) GO

/*创建顾客表*/

CREATE TABLE Users(

UserID varchar (10) Primary key , UserName varchar (25) NOT NULL , UserPW varchar (50) NOT NULL , UserStyle int NOT NULL , )

GO

/*----------添加表信息----------*/ MerchInfo :

INSERT INTO MerchInfo(MerchID , MerchName , MerchPrice , BarCode ) VALUES ("001" , " 德芙巧克力" , "20" , "11112222" );

INSERT INTO MerchInfo(MerchID , MerchName , MerchPrice , BarCode ) VALUES ("002" , " 上好佳" , "2" , "11113333" );

INSERT INTO MerchInfo(MerchID , MerchName , MerchPrice , BarCode ) VALUES ("003" , " 火腿肠" , "5" , "11114444" );

INSERT INTO MerchInfo(MerchID , MerchName , MerchPrice , BarCode ) VALUES ("004" , " 面包" , "4" , "11115555" ); Users :

INSERT INTO Users(UserID , UserName, UserPW, UserStyle) VALUES ("001" , " 张一" , "985211" , "1" );

INSERT INTO Users(UserID , UserName, UserPW, UserStyle) VALUES ("002" , " 王二" , "211985" , "2" );

INSERT INTO Users(UserID , UserName, UserPW, UserStyle)

VALUES ("003" , " 朱三" , "369852" , "2" );

INSERT INTO Users(UserID , UserName, UserPW, UserStyle) VALUES ("004" , " 郭四" , "456321" , "1" ); Member :

INSERT INTO Member(MemberName , MemberCard , TotalCost, RegDate ) VALUES (" 张一" , "001" , "200" , "2014-12-1" );

INSERT INTO Member(MemberName , MemberCard , TotalCost, RegDate ) VALUES (" 王二" , "002" , "100" , "2014-11-1" );

INSERT INTO Member(MemberName , MemberCard , TotalCost, RegDate ) VALUES (" 朱三" , "003" , "350" , "2014-9-3" );

INSERT INTO Member(MemberName , MemberCard , TotalCost, RegDate ) VALUES (" 郭四" , "004" , "700" , "2014-8-1" ); Sale :

INSERT INTO sale(SaleID , MerCHID , SaleDate, SaleNum, SalePrice , UserID ) VALUES ("0000" , "001" , "2014-12-28" , "30" , "750" , "002" );

INSERT INTO sale(SaleID , MerCHID , SaleDate, SaleNum, SalePrice , UserID ) VALUES ("0001" , "002" , "2014-12-16" , "10" , "500" , "001" );

INSERT INTO sale(SaleID , MerCHID , SaleDate, SaleNum, SalePrice , UserID ) VALUES ("00002" , "003" , "2014-12-15" , "15" , "400" , "003" ); Factory :

INSERT INTO factory(FactoryID , FactoryDate , FactorySL , MerCHID, ProvideID ) VALUES ("005" , "2014-12-1" , "500" , "002" , "010" );

INSERT INTO factory(FactoryID , FactoryDate , FactorySL , MerCHID, ProvideID ) VALUES ("006" , "2014-12-11" , "200" , "001" , "012" );

INSERT INTO factory(FactoryID , FactoryDate , FactorySL , MerCHID, ProvideID ) VALUES ("007" , "2014-12-24" , "500" , "003" , "011" ); Provide :

INSERT INTO provide(ProvideID , ProvideName , ProvideAddress , ProvidePhone ) VALUES ("003" , " 蒙牛" , " 内蒙古" , "36363636" );

INSERT INTO provide(ProvideID , ProvideName , ProvideAddress , ProvidePhone ) VALUES ("004" , " 伊利" , " 太原" , "56565656" );

INSERT INTO provide(ProvideID , ProvideName , ProvideAddress , ProvidePhone ) VALUES ("005" , " 飞鹤" , " 唐山" , "78787878" ); Supermaket :

INSERT INTO Supermaket (SupermaketID , SupermaketName, SupermaketAddress) VALUES ("01" , " 一号超市" , " 中华大街" );

INSERT INTO Supermaket(SupermaketID , SupermaketName, SupermaketAddress) VALUES ("02" , " 二号超市" , " 光明大街" );

INSERT INTO Supermaket(SupermaketID , SupermaketName, SupermaketAddress) VALUES ("03" , " 三号超市" , " 人民路" );

/*----------创建表间约束----------*/

/*供货表中商品编号、供应商号分别与商品信息表、供应商表之间的外键约束*/

ALTER TABLE Factory ADD

CONSTRAINT FK_Factory_MerCHID FOREIGN KEY (MerCHID ) REFERENCES MerchInfo (MerCHID ),

CONSTRAINT FK_Factory_Provide FOREIGN KEY (ProvideID ) REFERENCES Provide (ProvideID )

/*销售表中商品编号与商品信息表之间的外键约束*/ ALTER TABLE Sale ADD

CONSTRAINT FK_Sale_MerchInfo FOREIGN KEY ( MerChID ) REFERENCES MerchInfo (MerchID ) ON DELETE CASCADE

/*入库表中商品编号与商品信息表之间的外键约束*/ ALTER TABLE Stock ADD

CONSTRAINT FK_Stock_MerchInfo FOREIGN KEY ( MerchID) REFERENCES MerchInfo (MerchID ) ON DELETE CASCADE GO

/*----------创建索引 ----------*/

--在顾客表上建立一个以顾客编号、顾客密码为索引项的非聚集索引 CREATE nonclustered INDEX IX_Users ON Users(UserID , UserPW) GO

--在商品信息表上建立一个以商品编号为索引项的非聚集索引 CREATE nonclustered INDEX IX_MerchInfo ON MerchInfo(MerchID ) GO

--在购买表上建立一个以购买编号、购买日期为索引项的非聚集索引 CREATE nonclustered INDEX IX_Sale ON Sale(SaleID , SaleDate) GO

--在供货商表上建立一个以供货商号、供货商名称为索引项的非聚集索引 CREATE nonclustered INDEX IX_Provide ON Provide(ProvideID , ProvideName) GO

/*----------创建视图----------*/

--创建用于查看商品信息情况的视图

CREATE VIEW v_MerchInfo AS

SELECT MerchID as 商品编号, MerchName as 商品名称, MerchPrice as 商品价格, BarCode as 条形码 FROM MerchInfo GO

创建用于查询销售明细记录的视图

CREATE VIEW v_Sale

AS

SELECT MerchInfo. MerchName as 商品名称,

MerchInfo . BarCode as 条形码,

MerchInfo . MerchPrice as 商品价格,

Sale . SalePrice as 销售金额,

Sale . SaleNum as 销售数量,

Sale . SaleDate as 销售日期

FROM Sale INNER JOIN

MerchInfo ON Sale. MerChID = MerchInfo. MerchID

GO

创建用于供货情况的视图

CREATE VIEW v_Factory

AS

SELECT Factory . FactorySL as 供货数量,

Factory . FactoryDate as 供货日期,

Provide . ProvideName as 供货商,

Provide . ProvideAddress as 供货地址,

Provide . ProvidePhone as 供货电话

FROM Factory INNER JOIN

Provide ON Factory. ProvideID =Provide . ProvideID

GO

--1. 查询顾客表姓名为张一的信息

select *

from users

where username=" 张一" ;

--2. 查询供货商编号为的货物信息

select *

from Provide

where ProvideID="003"

--3. 为供应商表添入一条数据

insert

into provide

values ("007" , " 豆奶" , " 邯郸" , "89898989"

)

--4. 创建角色Super 并对顾客修改, 查询和插入的功能赋给角色Super create role Super

grant update , select , insert

on Users

to

Super

--5. 收回角色Super 顾客表插入的功能

revoke insert

on Users

from Super

--6. 删除角色Super

drop role Super

--7. 使用exists 语句查询供货商地址为唐山的货物编号, 货物名称和供货商电话

select ProvideID, ProvideName , ProvidePhone

from Provide

where exists

(select * from Provide

where Provide. Providename =" 唐山" )

--8. 建立触发器,当向供应商表插入新信息后,打印出:添加一条供应商信息字样

create trigger provide_insert

on provide after insert

as begin print " 添加一条供应商信息"

end

go

insert into provide

values ("008" , " 芝麻糊" , " 石家庄" , "67676767"

)

--9. 创建查看一个超市信息的存储过程

create procedure pro_Supermaket

as

select SupermaketID, SupermaketName, SupermaketAddress from Supermaket;

exec pro_Supermaket

上一篇
下一篇
返回顶部