第一篇:酒店管理系统 SQL数据库 实验设计
学院名称: 经济管理学院 课程题目: 酒店管理系统 授课教师: 单承戈
小组成员:祝梓惟(组长)潘佳丽 颜政
夏佳玉 杨荇贻 陈雪婷
教师评分:
二零一六年六月七日
概述
1、项目背景:
连锁酒店的兴衰,关键是管理。建设一间现代化的连锁酒店,需要的是钱,而要经营管理好一间连锁酒店,关键是管理。酒店管理是现代酒店的命脉,管理水平的高低,决定着酒店经营的成败。酒店是企业,同样是要重视管理的工作,加强管理。现代管理者即是财富,当代的管理者更是直接的财富。管理的意义,简单地讲,管就是主事,理就是治事,合起来为主管和治理人与事。随着中国加入WTO和经济全球化格局的形成,越来越多的人感到21世纪国际酒店的竞争激烈,从设备豪华到价格竞争发展到人才全方位的竞争。要竞争就必须创新。创新,是酒店的生命。商场如战场,成功的管理者及其管理需要刚柔结合。
现在的酒店管理进入e时代,未来酒店业的竞争必将进入一个新的阶段,伴随着我国旅游业的高速发展,宾馆酒店行业的服务档次迫切需要提高。在宾馆酒店竞争日趋激烈的今天,要成为佼佼者,就必须与高新技术紧密结合。硬件设施落后、管理水平滞后、服务质量低下的酒店将被逐步淘汰,传统的纯手工或简单的计算工具,已经不适应现代经济高速发展的要求,必须运用现代化管理手段,配备完善的自动化设备,提高酒店的服务水平与质量,从而赢得高信誉、强实力、好效益!本系统目地是为了一些酒店还没有使用管理软件,仍靠手工处理业务。
2、编写目的:
为连锁酒店的订房呼叫中心提供一种方便快捷的订房系统
3、软件定义:
酒店管理系统(呼叫中心用)
4、开发工具:
Microsoft SQL Server 2003数据库管理系统、Delphi7开发工具实现系统一、系统定义
酒店客房管理系统是为了在正常运营中需要对客房资源、客人信息、消费信息、结算信息等进行管理,利用酒店客房管理信息系统对客房的各个操作进行管理,能够及时了解各个环节中信息的变更,有利于提高管理的效率。
本项目要设计和实现一个能对酒店客房租住信息,客人信息,预订信息,消费信息,结算信息的管理,实现前台操作流程较方便,清晰,高效的信息管理系统。
二、功能需求分析
酒店管理:加盟酒店名、所在地、详细地址、联系电话、联系人等信息。员工管理:添加用户,修改员工密码。
客户管理:添加客户,查询,删除客户信息。会员系统:酒店会员进行预订时享有一定的优惠。客房管理:查询,修改客房状态和查询相关订单。
客房类型管理:添加客房类型,修改客房类型,删除客房类型。订房:预订客房,取消预订房间,查询订单,入住率。客房登记信息管理:查看客房登记信息。
财务管理:营业额管理、员工工资管理、收入结算。
三、系统设计
(一)逻辑结构设计
1.酒店表(酒店编号,酒店名称,所在城市,详细地址,电话,联系人)2.客房信息表(酒店名,客房号,状态标记,客房等级ROclass(标准、单间、套房),价格)
3.顾客信息表(顾客编号,表单自动编号,顾客姓名,性别,证件类型,证件号,联系电话,通讯地址,会员号)
4.员工信息表(员工号,员工姓名,密码,加入时间,部门)
5.预订表(自动编号,客房号, 顾客编号, 顾客姓名,客房类型,入住时间,离店时间,操作日期)
6.入住表(自动编号, 客房号, 顾客编号, 顾客姓名,客房类型,入住日期,退房日期,操作日期)
7.资金清算表(顾客编号, 顾客姓名,客房号,客房价格)
(二)概念结构设计
1.酒店信息
2.客房信息
3.顾客信息
4.员工信息
5.预定
6.入住
7.资金清算
(三)系统功能模块图
四、详细设计
(一)建立表格
--0酒店信息表 createtableHotel(Hotel_idvarchar(8)ROhotelnamevarchar(8)Hotel_cityvarchar(8)Hotel_addressvarchar(8)Hotel_numbervarchar(8)Hotel_Attnvarchar(8)-1 客房信息表
createtable Room--客房信息表
(ROhotelnamevarchar(8)primary key--酒店名 ROnovarchar(8)primarykey,--客房号 ROflatchar(4)default'空房',--状态标记
ROclassvarchar(20)notnull,--客房等级ROclass(豪华、标准、单间)ROdaypricemoney,--价格)
--2 顾客信息表 createtable Customs(CUnochar(8),CUnumintIDENTITY(1,1),--自动编号,--顾客编号,--触发器回滚--利用存储过程实现 CUnamevarchar(8),--顾客姓名 CUsexchar(4),--性别
CUtypechar(8)notnull,--证件类型 Cucardnochar(20)uniquenotnull,--证件号 CUphonevarchar(20)notnull,--联系电话 CUaddressvarchar(40),--通讯地址 CUflatbitnotnull,--是否为会员 CUVIPnochar(8)defaultnull primarykey(CUno))
--3操作人员表 createtable
Operator
(OPnovarchar(20)primarykey,--员工号 OPnamechar(8),--员工姓名 OPpasschar(10),--密码
OPdatesmalldatetime,--加入时间 OPdepartmentvarchar(30)--部门)--7预订表
createtableBookroom
(BRplannointIDENTITY(1,1),--自动编号 ROnovarchar(8),--客房号 CUnochar(8), CUnamechar(8),ROclassvarchar(20),--客房等级
BRplanentertimedatetime,--预订入住时间 BRleavetimedatetime,--离店时间
BRoper_datedatetime,--操作日期ROoper_date foreignkey(ROno)references room(ROno))--8入住表
createtableEnterroom(ERenternointIDENTITY(1,1),--自动编号 ROnovarchar(8), CUnochar(8), CUnamechar(8),ROclassvarchar(20),--客房等级 ERentertimedatetime,--入住时间 ERleavetimedatetime,--预离店时间
ERoper_datedatetime,--操作日期ROoper_date foreignkey(ROno)references room(ROno), foreignkey(OPno)references Operator(OPno))
--10资金清算表Zjqstable createtableZjqstable(ROnovarchar(8),--客房号 CUnochar(8),CUnamevarchar(8),--客人名称 ROdaypricemoney,--价格 primarykey(ROno,CUno),foreignkey(ROno)references room(ROno), foreignkey(CUno)references Customs(CUno), foreignkey(ROdayprice)referencesRoom(ROdayprice))
--0 insertintoHotel values('001','Sun_hotel','Beijing','Chaoyang 001','010-56561212','Ms.Pan');insertintoHotel values('002','Moon_hotel ','Shanghai','Xuhui 002','021-51513636','Ms.Xia');insertintoHotel values('003','Venus_hotel','Shenzhen','Futian 003','0755-56789000','Ms.Zhu');insertintoHotel values('004','Jupiter_hotel','Guangzhou',Tianhe 004','020-52345678','Ms.Yang');insertintoHotel values('005','Mercury_hotel','Chengdu','Pixian 005','028-83189222','Ms.Chen');insertintoHotel values('006','Mars_hotel','Chongqing','Yubei 006','023-82167676','Mr.Yan');insertintoHotel values('007','Saturn_hotel','Xiamen','Jimei 007','0592-84296666','Mr.Wang');insertintoHotel values('008','Flower_hotel','Wuhan','Hanyang 008','027-88238230','Mr.Li');insertintoHotel values('009','Grass_hotel','Hangzhou','Yuhang 009','0571-56591280','Mr.Su');insertintoHotel values('010','Tree_hotel','Shijiazhuang','Xinhua 010','0311-80082088','Mr.Xu');--1
insertinto Room(ROno,ROclass,ROdayprice)values('101','豪华','500');insertinto Room(ROno,ROclass,ROdayprice)values('102','豪华','500');insertinto Room(ROno,ROclass,ROdayprice)values('103','豪华','500');insertinto Room(ROno,ROclass,ROdayprice)values('104','豪华','500');
insertinto Room(ROno,ROclass,ROdayprice)values('202','标准','300');
insertinto Room(ROno,ROclass,ROdayprice)values('203','标准','300');
insertinto Room(ROno,ROclass,ROdayprice)values('204','标准','300');
insertinto Room(ROno,ROclass,ROdayprice)values('205','标准','300');
insertinto Room(ROno,ROclass,ROdayprice)values('301','单间','100');
insertinto Room(ROno,ROclass,ROdayprice)values('302','单间','100');
insertinto Room(ROno,ROclass,ROdayprice)values('303','单间','100');
insertinto Room(ROno,ROclass,ROdayprice)values('304','单间','100');
insertinto Room(ROno,ROclass,ROdayprice)values('305','单间','100');
insertinto Room(ROno,ROclass,ROdayprice)values('306','单间','100');
--2
select*from Customs
insertinto Customs(CUno,CUname,CUsex,CUtype,Cucardno,CUphone,CUaddress,CUflat,CUVIPno)values('1','张三','男','身份证','030510923434','***','福州',1,'1');
insertinto Customs(CUno,CUname,CUsex,CUtype,Cucardno,CUphone,CUaddress,CUflat,CUVIPno)values('2','李四','男','身份证','030510923435','***','福州',0,null);--3
insertinto Operator values('00001','小红','123456','2000-05-08 ','财务');insertinto Operator values('00002','小白','234567','1992-10-01 ','前台');insertinto Operator values('00003','小黄','345678','2010-10-01 ','前台');--7
insertinto bookroom(ROno,Cuno,CUname,Rolevel,BRplanentertime,BRleavetime,BRoper_date,OPno)values('101','1','张三','豪华', '2010/10/1','2010/10/10',getdate(),'00001');
insertinto bookroom(ROno,Cuno,CUname,Rolevel,BRplanentertime,BRleavetime,BRoper_date,OPno)values('102','2','李四','标准', '2010/10/2','2010/10/11',getdate(),'00002');
insertinto bookroom(ROno,Cuno,CUname,Rolevel,BRplanentertime,BRleavetime,BRoper_date,OPno)values('103','3','王五','单间', '2010/10/3','2010/10/12',getdate(),'00003');
insertinto bookroom(ROno,Cuno,CUname,Rolevel,BRplanentertime,BRleavetime,BRoper_date,OPno)values('104','4','颜宋','豪华', '2010/10/4','2010/10/10',getdate(),'00004');
insertinto bookroom(ROno,Cuno,CUname,Rolevel,BRplanentertime,BRleavetime,BRoper_date,OPno)values('105','5','李华','标准', '2010/10/5','2010/10/10',getdate(),'00005');
insertinto bookroom(ROno,Cuno,CUname,Rolevel,BRplanentertime,BRleavetime,BRoper_date,OPno)values('106','6','韩梅梅','豪华', '2010/10/6','2010/10/10',getdate(),'00006');
insertinto bookroom(ROno,Cuno,CUname,Rolevel,BRplanentertime,BRleavetime,BRoper_date,OPno)values('107','7','于耿耿','豪华', '2010/11/7','2010/11/12',getdate(),'00007');
insertinto bookroom(ROno,Cuno,CUname,Rolevel,BRplanentertime,BRleavetime,BRoper_date,OPno)values('108','8','谭森','标准', '2010/11/8','2010/11/13',getdate(),'00008');--8
insertintoenterroom(ROno,CUno,CUname,ROclass,ERentertime,ERleavetime,ERoper_date)values('101','1','张三,'豪华','2010/10/1','2010/10/10','2010/10/1');
insertintoenterroom(ROno,CUno,CUname,ROclass,ERentertime,ERleavetime,ERoper_date)values('102','2','李四','标准','2010/10/2','2010/10/11' ,'2010/10/1');
insertintoenterroom(ROno,CUno,CUname,ROclass,ERentertime,ERleavetime,ERoper_date)values('103','3','王五','单间','2010/10/3','2010/10/12' ,'2010/10/1');
insertintoenterroom(ROno,CUno,CUname,ROclass,ERentertime,ERleavetime,ERoper_date)values('104','4','颜宋','豪华','2010/10/4','2010/10/10' ,'2010/10/1');
insertintoenterroom(ROno,CUno,CUname,ROclass,ERentertime,ERleavetime,ERoper_date)values('105','5','李华','标准','2010/10/5','2010/10/10' ,'2010/10/1');
insertintoenterroom(ROno,CUno,CUname,ROclass,ERentertime,ERleavetime,ERoper_date)values('106','6','韩梅梅','豪华','2010/10/6','2010/10/10' ,'2010/10/1');
insertintoenterroom(ROno,CUno,CUname,ROclass,ERentertime,ERleavetime,ERoper_date)values('107','7','于耿耿','豪华','2010/11/7','2010/11/12' ,'2010/10/1');
(二)
第二篇:SQL数据库制作考务管理系统实验报告
一、实验目的1. 掌握sql server的基本用法
2. 熟悉掌握asp语言的应用
3. 掌握asp的页面结构和内置对象
4. 掌握asp与sql server数据库的连接和应用
5. 掌握asp 另外一个重要的语言——javascript,并熟悉它的应用
6.制作一个功能完善的考务管理系统
7.能够独立的完成系统策划,系统分析和程序的编写
8.提高发现问题,解决问题的能力
二、实验内容
制作一个考务管理系统,用于从考生报名、产生准考证到录取考生和打印成绩单即对考生考试和录取全过程的考务管理,系统要实现的功能有:考生报名,按报名顺序产生报名号;产生准考证号和打印准考证;输入考生成绩和输入录取合格标准;根据合格标准录取上线考生;打印考生成绩单和录取通知书;设置系统用户和系统初始化。
三、实验环境
1、windows xp或 windows XX;
2、安装 microsoft sql server XX 个人版。
3、iis 5.0及以上版本和浏览器ie5.5及以上版本
4、macromedia dreamwezver8等相关软件
四、实验步骤
首先:配置环境,安装sql server,macromedia dreamwezver8。
第二:对要做的系统进行构思、策划、布局。
第三:建立数据库kaoshi及数据表:学生信息表(student),用户表(yonghu),考生表(biaozhun)。
第四:建立连接数据库的文件conn.asp,其代码如下所示:
<%
set conn=server.createobject(“adodb.connection”)
conn.open “provider=sqloledb;” & “data source=localhost;initial catalog=ksd;user id=sa;password=100200;”
%>
第五:制作各个网页并联接所有需要联接的网页。
第六:运行整个系统,查找是否有错误,并进行修改直至整个系统运行无误。
五、实验过程与分析
(一)系统分析与总体设计
现在用计算机来进行考生的管理及考生的录取已普遍存在。因如果用人来进行这项工作将十分烦琐,系统管理员需要划分很多的时间和精力,而且还不能保证其正确率。
而用考务管理系统可以简化管理员的工作,还会提高工作的正确率。以下将对考务管理系统进行系统分析和设计。
(1)系统的功能描述
考务管理系统包括学生报名管理、考生成绩管理系统维护三大模块。
考生报名管理 包括报名处理、产生准考证、打印准考证和退出系统等4项功能。
考生成绩管理 包括考生成绩录入、合格标准录入、录取考生、打印成绩单和打印录取通知单等5项功能。
系统维护 包括用户设置和系统初始化等2项功能。
用户通过系统菜单执行相应的操作。
(2)数据库设计
本系统以sql server XX作为数据库平台。在sql server XX中设计一个数据库kaoshi,其中包含如下数据表。
1.student表
该表用于存放所有考生记录,包括基本数据.表的结构如图2所示。
2biaozhun表
该表用于存放录取考生的合格标准,其中只有一个记录,该记录指出各门课程的最低分和总分的最低分。只有各门成绩和总分都超过这个标准的考生才能被录取。该表的结构如图3所示。
3.yonghu表
该表用于存放本系统用户的信息。包括用户的用户名、密码和级别(只分“一般操作员”和“系统管理员”两类)。该表结构如图4所示。
六、实验结果与总结
实验中的考务管理系统是经过很多次的测试、修改再测试、再修改才完成的。也就是在多次的测试修改的过程中使我学发现了很多平时上课发现不了的问题,也发现了自己学习这门课程的薄弱的地方和学的不足的地方。通过实验期间的发现问题、分析问题、查找问题原因、解决问题及进一步完善考务管理系统的过程,我的能力和水平有一定程度的提高。经过一次独立完成系统给我以后编程打下了基础,让我面对的不再是茫然和无措,而是有条不紊的思绪和完成的信心。所以这次实验对我来说是一笔极大的财富。
当然,在实验中我也有很多不足的地方,系统也有需要进一步完善的地方,这主要是我对asp与sql server数据库的连接和应用不熟悉和经验不足的原因造成的。所以我还要在以后继续学习,以求做的更好。
第三篇:酒店管理系统 (数据库课程设计)
数据库 酒店管理系统 课程设计(基于 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
第四篇:人事管理系统数据库设计 sql代码
建立数据库:
create database 数据库
建表:
create table 部门信息表
(部门编号 char(2)primary key ,部门名称 nchar(14),部门职能 nchar(14),部门人数 char(4))go
create table 管理员信息表
(用户名 nchar(4)primary key ,密码 char(10),)go create table 用户信息表
(用户名char(10)primary key ,用户类型char(10),密码
char(10))go create table 员工工作岗位表
(姓名 nchar(4)primary key ,员工编号 char(4)
工作岗位 nchar(3),部门名称 nchar(10),参加工作时间 char(4))go
create table 员工学历信息表
(姓名 nchar(4)primary key ,员工编号 char(4)
学历 nchar(2),毕业时间 char(10),毕业院校 nchar(10),外语情况 nchar(10),专业
nchar(10))go create table 员工婚姻情况表
(姓名 nchar(4)primary key ,员工编号 char(4)
婚姻情况 nchar(2),配偶姓名 nchar(4),配偶年龄 char(3),工作单位 nchar(10),)go create table 员工基本信息表
(员工编号 char(4)primary key ,姓名 nchar(4),性别 nchar(1),民族 nchar(3),出生年月 char(14),学历 nchar(10),政治面貌 nchar(3),婚姻状况 nchar(2),部门名称 nchar(10),工作岗位 nchar(10),)
建立视图:
CREATE VIEW 按员工工作岗位查询
as SELECT 员工工作岗位表.工作岗位, 员工基本信息表.员工编号,员工基本信息表.姓名, 员工基本信息表.性别, 员工基本信息表.出生年月,员工基本信息表.学历, 员工基本信息表.婚姻状况,员工基本信息表.部门名称
FROM 员工工作岗位表 INNER JOIN
员工基本信息表 ON 员工工作岗位表.姓名 = 员工基本信息表.姓名
go CREATE VIEW 按员工详细信息查询 as SELECT 员工基本信息表.* FROM 员工基本信息表
go CREATE VIEW 按参加工作时间查询 as SELECT 员工工作岗位表.参加工作时间, 员工工作岗位表.工作岗位,员工基本信息表.员工编号, 员工基本信息表.姓名, 员工基本信息表.性别,员工基本信息表.出生年月, 员工基本信息表.部门名称 FROM 员工工作岗位表 INNER JOIN
员工基本信息表 ON 员工工作岗位表.姓名 = 员工基本信息表.姓名
触发器的建立 delete触发器:
create trigger 删除员工1 ON 员工工作岗位表
for delete AS BEGIN
DELETE FROM 员工基本信息表 WHERE 员工编号 IN(SELECT 员工编号 FROM DELETED)end go
create trigger 删除员工2 ON 员工学历信息表
for delete AS BEGIN
DELETE FROM 员工基本信息表 WHERE 员工编号 IN(SELECT 员工编号 FROM DELETED)end go create trigger 删除员工3 ON 员工婚姻情况表
for delete AS BEGIN
DELETE FROM 员工基本信息表 WHERE 员工编号 IN(SELECT 员工编号 FROM DELETED)end go create trigger 删除员工4 ON 员工基本信息表
for delete AS BEGIN
DELETE FROM 员工工作岗位表 WHERE 员工编号 IN(SELECT 员工编号 FROM DELETED)end go create trigger 删除员工5 ON 员工基本信息表
for delete AS BEGIN
DELETE FROM 员工学历信息表 WHERE 员工编号 IN(SELECT 员工编号 FROM DELETED)end go create trigger 删除员工6 ON 员工基本信息表
for delete AS BEGIN
DELETE FROM 员工婚姻情况表 WHERE 员工编号 IN(SELECT 员工编号 FROM DELETED)end
Update触发器:
Create Trigger 修改编号1
On 员工基本信息表
for Update
As
if Update(员工编号)
begin
Update 员工工作岗位表
Set 员工编号=i.员工编号
From 员工工作岗位表 br , Deleted
d ,Inserted i
Where br.员工编号=d.员工编号
end
go Create Trigger 修改编号2
On 员工基本信息表
for Update
As
if Update(员工编号)
begin
Update 员工学历信息表
Set 员工编号=i.员工编号
From 员工学历信息表 br , Deleted
d ,Inserted i
Where br.员工编号=d.员工编号
end go Create Trigger 修改编号3
On 员工基本信息表
for Update
As
if Update(员工编号)
begin
Update 员工婚姻情况表
Set 员工编号=i.员工编号
From 员工婚姻情况表 br , Deleted
Where br.员工编号=d.员工编号
end
go
Create Trigger 修改员工编号1
On 员工工作岗位表
for Update
As
if Update(员工编号)
begin
Update 员工基本信息表
Set 员工编号=i.员工编号
From 员工基本信息表 a , Deleted
Where a.员工编号=d.员工编号
end go Create Trigger 修改员工编号2
On 员工学历信息表
for Update
As
if Update(员工编号)
begin
d ,Inserted i d ,Inserted i
Update 员工基本信息表
Set 员工编号=i.员工编号
From 员工基本信息表 a , Deleted
d ,Inserted i
Where a.员工编号=d.员工编号
end go
Create Trigger 修改员工编号3
On 员工婚姻情况表
for Update
As
if Update(员工编号)
begin
Update 员工基本信息表
Set 员工编号=i.员工编号
From 员工基本信息表 a , Deleted
d ,Inserted i
Where a.员工编号=d.员工编号
end
存储过程的建立:
CREATE PROC 按婚姻查找
@婚姻状况 nchar(2)AS select 员工基本信息表.员工编号,员工基本信息表.姓名,员工婚姻情况表.婚姻情况,员工婚姻情况表.配偶姓名
from 员工基本信息表 inner join
员工婚姻情况表 on 员工基本信息表.员工编号=员工婚姻情况表.员工编号
where 员工婚姻情况表.婚姻情况=@婚姻状况 order by 员工基本信息表.员工编号
CREATE PROC 按学历查找
@员工学历 nchar(4)AS select 员工基本信息表.员工编号,员工基本信息表.姓名,员工学历信息表.学历,员工学历信息表.毕业院校,员工学历信息表.专业 from 员工基本信息表 inner join
员工学历信息表 on 员工基本信息表.员工编号=员工学历信息表.员工编号
where 员工学历信息表.学历=@员工学历 order by 员工基本信息表.员工编号
第五篇:SQL数据库心得
黄淮学院 2015---2016学年第 一 学期 《C#数据库应用程序开发技术与案例教程》课程
题目:
学习报告
院
系:数学科学系 专
业:数学与应用数学 年
级:1301B 姓
名:曹占营 学
号:1331110101 任课教师:杨锋英
2015年 12 月 30日
C#数据库学习报告
在日常生活中,我们和朋友、亲戚联系,会广泛用到通讯录,因此这门课程以通讯录开发为案例,教我们学习软件开发。
软件开发是一项非常注重实践工作,不可能只凭看书、看视频就学会软件开发,必须扎扎实实、一行一行的编写代码,不断积累项目经验,才能真正掌握编程技术,所以我们要亲自上级编写程序,才能真正掌握软件开发技术。
本书分为基础篇、进阶篇、高级篇,由浅入深地介绍了基于C#的数据库编程技术,所用的开发工具为Visual Studio 2008、SQL Server 2005以及Access 2007。
学习数据库的内容是从数据库、数据表的创建和修改开始的,表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表信息、查看表属性、修改表中的数据、删除表中的数据及修改表和删除表的操作。从课程中让我更明白一些知识,查询可以通过SQL语言进行完成,这样加深了查询语句的基本结构,让我们能更好的掌握其中语句,方便于我们后面的学习和应用。表是数据最重要的一个数据对象,表的创建好坏直接关系到数数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际应用中多使用表,对表的规划和理解就会越深刻。在编程方面是需要我们对于编程有逻辑思维能力及一定的编程技巧。在数据库中插入表、表中的信息等都需要注意,不然很容易出错。
在基础篇中,详细讲解了通讯录系统的设计、开发和安装部署这样一个完整过程,对各个任务进行详细讲解。基础篇学习分为9个任务,分别为系统分析与设计、用户登录、主窗体设计、联系人分组管理、联系人管理、用户密码修改、数据库备份与恢复、设计“关于”窗体、系统安装与部署。学完基础篇,即可开发出一个功能较为完备的通讯录系统。在联系人管理任务学习中,由于在Contact表中保存的是分组编号,而窗体上要显示的是分组名称,所以在查询语句中需要级联查询,即SQL语句为”select Contact.Id, Name, Phone, Email, QQ, GroupName from Contact, ContactGroup where Contact.GroupId = ContactGroup.Id”。为了实现代码复用,可以提供查询功能,根据用户选择的擦寻天剑,拼接产生SQL语句。同时为了支持模糊查询,还在SQL语句中用了like语句。通过SqlDataAdapter的Fill方法填充数据集,获取数据。数据集中有了数据以后,我们只需设置DataGridView控件的DataSource属性,就可以显示数据了。
在进阶篇中,介绍了企业项目开发中广发用到的参数化SQL语句、存储过程使用及定义数据库操作类,分为3个任务学习,分别为使用参数化SQL语句、使用存储过程、使用自定义数据库操作类,进一步提高我们的数据库编程能力。在使用存储过程任务学习中,了解到存储过程是在大型数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。在性能方面,存储过程有如下的优点。(1)与编译,存储过程预先编译好放在数据库内,减少编译语句所花的时间。(2)缓存,编译好的存储过程会进入缓存,所以对于经常执行的存储过程,除了第一次执行外,其他次执行的书都会有明显提高。(3)减少网络传输,特别对于处理一些数据的存储过程,不必像直接用SQL语句实现那样多次传送数据到客户端。通过前面的学习,细细体会对数据库的操作,可以发现,这么多操作其实可以分为4种。(1)对数据库进行非连接式查询操作,返回多条记录。这种操作可以通过SqlDataAdapter对象的Fill方法来完成,即把查询得到的结果填充到DataTable(或DataSet)对象中。(2)对数据库进行连接式查询操作,返回多条查询记录。这种操作可以通过SqlCommand对象的ExecuteReader方法来完成,返回SqlDataReader对象。(3)从数据库中检索单值。这种操作可以通过SqlCommand对象的ExecuteNonQuery方法来完成。ExecuteScalar方法返回的是Object类型,需要根据实际情况进行类型转换。(4)对数据库执行增、删、改操作。这种操作可以通过SqlCommand对象的ExecuteNonQuery方法来完成,返回增、删、改操作后数据库中受影响的行数。
在高级篇中,分为4个任务学习,分别为开发基于三层构架的通讯录程序、开发基于Access的通讯录程序、实现基于抽象工厂模式的三层架构、使用MD5加密用户密码。首先详细讲解了基于三层构架的通讯录程序开发过程以及如何开发一个基于Access的通讯录系统。最后,介绍了如何采用MD5加密技术对用户密码加密。MD5加密技术也是实际项目开发中广泛用到的,通过MD5加密用户密码,可以提高程序的安全性。“三层架构”一词中的“三层”是指:“表示层”、“业务逻辑层”、“数据访问层”。表示层:位于最外层,离用户最近。用于显示和接收用户输入的数据,为用户提供一种交互式操作界面。表示层的常见形式为WinFrom和WebForm。业务逻辑层:负责处理用户输入的信息,或者是将这些信息发送给数据访问层进行保存,或者是调用数据访问层中的函数再次读出这些数据。业务逻辑层也可以包括一些对“商业逻辑”描述代码在里面。数据访问层:仅实现对数据的保存和读取操作。可以访问数据库系统、二进制文件、文本文档或是XML文档。
在这一学期有限的几次实验课后,我虽然没有学会很多,但也学会了一些简单的操作,我学会了一些简单的数据运算,会建立一些简单的表。有时候在做实验时,对于实验中的一些东西我不怎么了解,但我还会去做,因为我想只有多练习才能熟练,也才能理解掌握知识。我不知道这一门课对其他同学来说怎么样,但对我来说却有些难,但我会努力。因为我认为它对我以后考计算机二级有很大的帮助。
很快这一学期马上就要结束了,数据库这一门课也很快就要结束了,但这一学期的学习让我知道了很多,也告诉了我在以后的人生中如何去做事,如何去做人。尤其是老师的耐心,老师的敬业精神感动了我,再做任何事时都应该认真负责,任何一个人都应该被尊重。