收藏 分销(赏)

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

上传人:xrp****65 文档编号:7015380 上传时间:2024-12-24 格式:DOC 页数:14 大小:97KB 下载积分:10 金币
下载 相关 举报
酒店管理系统_(数据库课程设计).doc_第1页
第1页 / 共14页
酒店管理系统_(数据库课程设计).doc_第2页
第2页 / 共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 客户 /*创建客户信息表*/ (客户编号 CHAR(8)PRIMARY KEY, 客户名称 CHAR(10)NOT NULL, 身份证号 CHAR(18)NOT NULL, 联系地址 CHAR(25), 联系电话 CHAR(10)) go --------------------------插入客户数据----------------------- 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') -------------------------------------------------------------- if exists(select * from sysobjects where name='客房') drop table 客房 go print 'drop table 客房' print 'create table 客房' go /*客房信息表*/ CREATE TABLE 客房 /*创建客房信息表*/ (客房编号 CHAR(8) PRIMARY KEY, 客房类型 CHAR(8)NOT NULL, 价格 SMALLMONEY NOT NULL, 床位数 INT NOT NULL, 使用状态 CHAR(8) NOT NULL) go -----------------------插入客房数据---------------------- 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,'使用中') -------------------------------------------------------------- if exists(select * from sysobjects where name='入住登记') drop table 入住登记 go print 'drop table 入住登记' print 'create table 入住登记' go /*入住登记信息表*/ CREATE TABLE 入住登记 /*创建入住登记信息表*/ (客房编号 CHAR(8)FOREIGN KEY REFERENCES 客房(客房编号), 客户编号 CHAR(8)FOREIGN KEY REFERENCES 客户(客户编号), 预定日期 DATETIME, 预定数量 INT, PRIMARY KEY(客房编号,客户编号)) go ---------------插入入住登记信息数据---------------------- 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) go ------------------------------------建立索引-------------------------------------------------- CREATE UNIQUE INDEX UKF ON 客房(客房编号,价格) go CREATE UNIQUE INDEX UKH ON 客户(客户编号,客户名称) go CREATE UNIQUE INDEX URZ ON 入住登记(客户编号,客房编号) go -----------------------------------建立触发器------------------------------------------------- -------建立控制触发器(保证在客房使用状态的一致性)------ if exists (select * from sysobjects where name='控制触发器') drop trigger 控制触发器 GO CREATE TRIGGER 控制触发器 ON 入住登记 FOR INSERT AS UPDATE 客房 SET 使用状态='使用中' WHERE 客房编号=ANY (SELECT 客房编号 FROM INSERTED ) go --------建立入住删除触发器(保证信息删除的一致性)---------- if exists (select * from sysobjects where name='入住删除触发器') drop trigger 入住删除触发器 GO CREATE TRIGGER 入住删除触发器 ON 入住登记 FOR DELETE AS BEGIN DELETE FROM 客户 WHERE 客户编号=ANY (SELECT 客户编号 FROM DELETED ) UPDATE 客房 SET 使用状态='未使用' WHERE 客房编号=ANY(SELECT 客房编号 FROM DELETED) END go -------建立客房删除触发器(保证删除的一致性)--------- if exists (select * from sysobjects where name='客房删除触发器') drop trigger 客房删除触发器 GO CREATE TRIGGER 客房删除触发器 ON 客房 FOR DELETE AS DELETE FROM 入住 WHERE 客户编号=ANY (SELECT 客户编号 FROM DELETED ) go ----------------------------------------创建查询视图----------------------------------------------- CREATE VIEW 入住信息查询 AS SELECT 入住登记.客房编号,客户名称,入住登记.客户编号,客房.客房类型,价格,使用状态 FROM 客房,客户,入住登记 WHERE 客房.客房编号=入住登记.客房编号 AND 入住登记.客户编号=客户.客户编号 go ----------------------------------------建立存储过程----------------------------------------------- --------------客房信息插入存储过程-------------------------- CREATE PROCEDURE 插入客房信息 (@KFB CHAR(8), @KFL CHAR(8), @JG SMALLMONEY, @CWS INT, @SYZT CHAR(8) ) AS INSERT INTO 客房 VALUES (@KFB,@KFL,@JG,@CWS,@SYZT) GO --------------------客房信息修改的存储过程--------------------- CREATE PROCEDURE 修改客房信息 (@KFB CHAR(8), @KFL CHAR(8), @JG SMALLMONEY, @CWS INT, @SYZT CHAR(8) ) AS UPDATE 客房 SET 客房类型=@KFL,价格=@JG,床位数=@CWS,使用状态=@SYZT WHERE 客房编号=@KFB go --------------------客房信息删除的存储过程--------------------- CREATE PROCEDURE 删除客房信息 (@KFB CHAR(8) ) AS DELETE FROM 客房 WHERE 客房编号=@KFB GO --------------------客户信息插入的存储过程--------------------- 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) go --------------------客户信息修改的存储过程--------------------- 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 GO --------------------客户信息删除的存储过程--------------------- CREATE PROCEDURE 删除客户信息 (@KHB CHAR(8) ) AS DELETE FROM 客户 WHERE 客户编号=@KHB go --------------------入住信息插入的存储过程--------------------- CREATE PROCEDURE 插入入住信息 (@KFB CHAR(8), @KHB CHAR(8), @YDRQ DATETIME, @YDSL INT ) AS INSERT INTO 入住登记 VALUES(@KFB,@KHB,@YDRQ,@YDSL) go --------------------入住信息修改的存储过程--------------------- CREATE PROCEDURE 修改入住信息 (@KFB CHAR(8), @KHB CHAR(8), @YDRQ DATETIME, @YDSL INT ) AS UPDATE 入住登记 SET 客房编号=@KFB,预定日期=@YDRQ ,预定数量=@YDSL WHERE 客户编号=@KHB go --------------------入住信息删除的存储过程--------------------- CREATE PROCEDURE 删除入住信息 (@KHB CHAR(8) ) AS DELETE FROM 入住登记 WHERE 客户编号=@KHB go --------------------客房编号查询的存储过程----------------------- if exists (select * from sysobjects where name='客房编号查询') drop procedure 客房编号查询 GO CREATE PROCEDURE 客房编号查询 (@KFB CHAR(8) ) AS SELECT 客房类型,价格,床位数,使用状态 FROM 客房 WHERE 客房编号=@KFB go --------------------客户编号查询的存储过程----------------------- if exists (select * from sysobjects where name='客户编号查询') drop procedure 客户编号查询 GO CREATE PROCEDURE 客户编号查询 (@KHB CHAR(8)) AS SELECT 客户编号,客户名称,身份证号,联系地址,联系电话 FROM 客户 WHERE 客户编号=@KHB go --------------------入住信息查询的存储过程----------------------- if exists (select * from sysobjects where name='入住客户编号查询') drop procedure 入住客户编号查询 GO CREATE PROCEDURE 入住客户编号查询 ( @KHB CHAR(8) ) AS SELECT 客户编号,客房编号,预定日期,预定数量 FROM 入住登记 WHERE 客户编号=@KHB
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服