logo资料库

酒店管理系统_(数据库课程设计.doc

第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
资料共14页,剩余部分请下载后查看
数据库 酒店管理系统 课程设计 (基于 SQL server 2000) 实现过程 1.1 通过查询分析器实现建立数据库、数据表 ------------------------------创建数据库和数据表---------------------------------- (1)创建酒店管理系统数据库 CREATE DATABASE 酒店管理系统 (2)创建客房信息表 CREATE TABLE 客房 (客房编号 CHAR(8) PRIMARY KEY, 客房类型 CHAR(8)NOT NULL, 价格 SMALLMONEY NOT NULL, 床位数 INT NOT NULL, 使用状态 CHAR(8) NOT NULL) INSERT INTO 客房 VALUES('101','一',100,1,'在使用') INSERT INTO 客房 VALUES('102','二',200,2,'在使用') INSERT INTO 客房 VALUES('103','二',200,1,'在使用') INSERT INTO 客房 VALUES('104','三',300,2,'在使用') INSERT INTO 客房 VALUES('105','三',300,1,'未使用') (3)创建客户信息表 CREATE TABLE 客户 (客户编号 CHAR(8)PRIMARY KEY, 客户名称 CHAR(10)NOT NULL, 身份证号 CHAR(18)NOT NULL, 联系地址 CHAR(25), 联系电话 CHAR(10)) INSERT INTO 客户 VALUES('1001','王一',12234,'江西','3245354') INSERT INTO 客户 VALUES('1002','张三',34234,'江西','2442442') INSERT INTO 客户 VALUES('1003','李四',56465,'江西','5654645') INSERT INTO 客户 VALUES('1004','王钱',65435,'江西','5676577') INSERT INTO 客户 VALUES('1005','孙志',11464,'江西','4234343') (4)创建入住登记表 CREATE TABLE 入住登记 (客房编号 CHAR(8)FOREIGN KEY REFERENCES 客房(客房编号), 客户编号 CHAR(8)FOREIGN KEY REFERENCES 客户(客户编号), 预定日期 DATETIME, 预定数量 INT, PRIMARY KEY(客房编号,客户编号))
INSERT INTO 入住登记 VALUES('101','1001',2010-10-10,1) INSERT INTO 入住登记 VALUES('102','1002',2010-12-10,1) INSERT INTO 入住登记 VALUES('103','1003',2010-12-26,1) INSERT INTO 入住登记 VALUES('104','1004',2010-12-9,1) ---------------------------------------创建查询视图---------------------------------------- 1.2 系统功能相应的查询视图: (1)客户信息查询视图 CREATE VIEW 客户信息查询 AS SELECT * FROM 客户 (2)客房信息查询 CREATE VIEW 客房信息查询 AS SELECT * FROM 客房 (3)入住信息查询 CREATE VIEW 入住登记信息查询 AS SELECT * FROM 入住登记 (4)入住信息查询 CREATE VIEW 入住信息查询 AS SELECT 入住登记.客房编号,客户名称,入住登记.客户编号,客房.客房类型, 价格,使用状态 FROM 客房,客户,入住登记 WHERE 客房.客房编号=入住登记.客房编号 AND 入住登记.客户编号=客户. 客户编号 ----------------------------------------------建立索引------------------------------------------------------ 1.3 建立索引及数据入库 1.建立客房编号,价格,客户编号,客户名称的索引 创建客房表索引: CREATE UNIQUE INDEX UKF ON 客房(客房编号,价格) 创建客户表索引: CREATE UNIQUE INDEX UKH ON 客户(客户编号,客户名称) 创建入住表索引: CREATE UNIQUE INDEX URZ ON 入住登记(客户编号,客房编号) 2.数据入库 方法一 酒店管理系统包括客房信息表,客户信息表,入住登记信息表。采用 Excel 中录
入数据,然后使用 SQL Server 2000 数据导入、导出功能直接将数据导入到相应的基本表。 方法二 在查询分析器中插入相关数据,用 SQL 语句插入。 -----------------------------------------创建存储过程----------------------------------------------------- 1.4 建立存储过程 1.4.1 客房信息存储过程 插入客房信息存储过程: CREATE PROCEDURE 插入客房信息 (@KFB CHAR(8), @KFL CHAR(8), @JG SMALLMONEY, @CWS INT, @SYZT CHAR(8) ) AS INSERT INTO 客房 VALUES (@KFB,@KFL,@JG,@CWS,@SYZT) 修改客房信息存储过程: CREATE PROCEDURE 修改客房信息 (@KFB CHAR(8), @KFL CHAR(8), @JG SMALLMONEY, @CWS INT, @SYZT CHAR(8) ) AS UPDATE 客房 SET 客房类型=@KFL,价格=@JG,床位数=@CWS,使用状态=@SYZT WHERE 客房编号=@KFB 删除客房信息存储过程: CREATE PROCEDURE 删除客房信息 (@KFB CHAR(8) ) AS DELETE FROM 客房 WHERE 客房编号=@KFB 1.4.2 客户信息存储过程 插入客户信息 CREATE PROCEDURE 插入客户信息 (@KHB CHAR(8), @KFM CHAR(10), @SFZ CHAR(18),
@LXDZ CHAR(25), @LXDH CHAR(10) ) AS INSERT INTO 客户 VALUES (@KHB,@KFM,@SFZ,@LXDZ,@LXDH) 修改客户信息 CREATE PROCEDURE 修改客户信息 (@KHB CHAR(8), @KFM CHAR(10), @SFZ CHAR(18), @LXDZ CHAR(25), @LXDH CHAR(10) ) AS UPDATE 客户 SET 客户名称=@KFM,身份证号=@SFZ,联系地址=@LXDZ,联系电话=@LXDH WHERE 客户编号=@KHB 删除客户信息 CREATE PROCEDURE 删除客户信息 (@KHB CHAR(8)) AS DELETE FROM 客户 WHERE 客户编号=@KHB EXEC 删除客户信息 @KHB='10009' 3.4.3 创建入住信息存储过程 插入入住信息 CREATE PROCEDURE 插入入住信息 (@KFB CHAR(8), @KHB CHAR(8), @YDRQ DATETIME, @YDSL INT ) AS INSERT INTO 入住登记 VALUES(@KFB,@KHB,@YDRQ,@YDSL) 修改入住信息 CREATE PROCEDURE 修改入住信息 (@KFB CHAR(8), @KHB CHAR(8),
@YDRQ DATETIME, @YDSL INT ) AS UPDATE 入住登记 SET 客房编号=@KFB,预定日期=@YDRQ ,预定数量=@YDSL WHERE 客户编号=@KHB 删除入住信息 CREATE PROCEDURE 删除入住信息 ( @KHB CHAR(8) ) AS DELETE FROM 入住登记 WHERE 客户编号=@KHB 1.5 查询存储过程的创建 客房编号查询 CREATE PROCEDURE 客房编号查询 (@KFB CHAR(8), @KFL CHAR(8)OUTPUT, @JG SMALLMONEY OUTPUT, @CWS INT OUTPUT, @SYZT CHAR(8)OUTPUT ) AS SELECT @KFL=客房类型,@JG=价格,@CWS=床位数,@SYZT=使用状态 FROM 客房 WHERE 客房编号=@KFB 客户编号查询 CREATE PROCEDURE 客户编号查询 (@KHB CHAR(8), @KFM CHAR(10)OUTPUT , @SFZ CHAR(18)OUTPUT, @LXDZ CHAR(25)OUTPUT, @LXDH CHAR(10)OUTPUT
) AS SELECT @KFM=客户名称,@SFZ=身份证号,@LXDZ=联系地址,@LXDH=联系电话 FROM 客户 WHERE 客户编号=@KHB 入住客户编号查询 CREATE PROCEDURE 入住客户编号查询 (@KFB CHAR(8)OUTPUT, @KHB CHAR(8), @YDRQ DATETIME OUTPUT, @YDSL INT OUTPUT ) AS SELECT @KFB=客房编号,@YDRQ=预定日期,@YDSL=预定数量 FROM 入住登记 WHERE 客户编号=@KHB ---------------------------------------建立触发器--------------------------------------------- 1.6、建立触发器保证数据的一致性 客房使用状态的控制 CREATE TRIGGER 控制触发器 ON 入住登记 FOR INSERT AS UPDATE 客房 SET 使用状态='使用中' WHERE 客房编号=ANY (SELECT 客房编号 FROM INSERTED ) 控制入住信息删除的触发器 CREATE TRIGGER 入住删除触发器 ON 入住登记 FOR DELETE AS BEGIN DELETE FROM 客户
WHERE 客户编号=ANY (SELECT 客户编号 FROM DELETED ) UPDATE 客房 SET 使用状态='未使用' WHERE 客房编号=ANY(SELECT 客房编号 FROM DELETED) END 客户信息删除的控制 CREATE TRIGGER 客户删除触发器 ON 客户 FOR DELETE AS BEGIN DELETE FROM 入住 WHERE 客户编号=ANY (SELECT 客户编号 FROM DELETED ) UPDATE 客房 SET 使用状态='未使用' WHERE 客房编号=ANY(SELECT 客房编号 FROM DELETED) END 客房删除触发器 CREATE TRIGGER 客房删除触发器 ON 客房 FOR DELETE AS DELETE FROM 入住 WHERE 客户编号=ANY (SELECT 客户编号 FROM DELETED )
酒店管理系统数据库脚本 ------------------------数据库初始化------------------------------------- set nocount on set dateformat mdy go use master go if exists(select * from sysdatabases where name='酒店管理系统') /*删除在 master 中已存*/ /*在的名为酒店管理系统的数据库*/ drop database 酒店管理系统 go --------------------------酒店管理系统的建立-------------------------------- create database 酒店管理系统 on primary (name='酒店管理系统_data', filename='d:\酒店管理系统.mdf', size=10, maxsize=50, filegrowth=5) /*设定系统主文件*/ /*创建事务日志文件*/ log on (name='酒店管理系统_log', filename='d:\酒店管理系统.ldf', size=5, maxsize=25, filegrowth=5) go ---------(注:删除查询分析器中的以上代码后,运行以下代码)---------- --------------------------------------建立信息表----------------------------------------- use 酒店管理系统 if exists(select * from sysobjects where name='客户') drop table 客户 go print 'drop table 客户' print 'create table 客户' go /*客户信息表*/ CREATE TABLE 客户 /*创建客户信息表*/
分享到:
收藏