數(shù)據(jù)庫酒店管理系統(tǒng)課程設(shè)計_第1頁
數(shù)據(jù)庫酒店管理系統(tǒng)課程設(shè)計_第2頁
數(shù)據(jù)庫酒店管理系統(tǒng)課程設(shè)計_第3頁
數(shù)據(jù)庫酒店管理系統(tǒng)課程設(shè)計_第4頁
數(shù)據(jù)庫酒店管理系統(tǒng)課程設(shè)計_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 實驗題目題目8:酒店管理系統(tǒng)數(shù)據(jù)庫的設(shè)計與實現(xiàn)描述:設(shè)計一個酒店管理系統(tǒng),實現(xiàn)下列功能:1酒店客房信息維護(包括錄入,修改和刪除);2客人信息維護(包括錄入,修改和刪除;) 3入住信息登記; 酒店管理系統(tǒng)關(guān)系模式:房號(房間號,類型,狀態(tài),價格,位置,床位數(shù))入住信息(房間號,證件號,姓名,性別,入住日期)退房信息(房間號,證件號,結(jié)算日期,應(yīng)付金額)旅客(證件類型,證件號,姓名,性別,年齡,籍貫,現(xiàn)住址,職業(yè))使用(物品號,證件號,姓名,使用日期,押金)物品(物品號,數(shù)量,價格,用途)位 置旅 客客 房姓名性別證件號證件類型現(xiàn)住址房間號狀態(tài)價 格床位數(shù)物 品使 用數(shù) 量物品號用 途證件號物

2、品號押 金使用日期姓 名價 格類型應(yīng)付金額入住籍貫職業(yè)退 房 E-R 圖一:創(chuàng)建酒店管理系統(tǒng)數(shù)據(jù)庫create database 酒店管理系統(tǒng) /* 創(chuàng)建酒店管理系統(tǒng)數(shù)據(jù)庫 */ 二:創(chuàng)建客房信息表并添加數(shù)據(jù)create table 客房 /* 創(chuàng)建客房信息表 */( 房間號 char(8)primary key, 類型 varchar(16)not null, 狀態(tài) char(8)not null, 價格 smallmoney not null, 位置 varchar(14)not null, 床位數(shù) int check(床位數(shù)>0)not null)insert into 客房 va

3、lues('101','普通間','在使用',50,'三樓',2)insert into 客房 values('102','普通間','在使用',40,'三樓',1)insert into 客房 values('103','空調(diào)間','未使用',80,'三樓',2)insert into 客房 values('104','空調(diào)間','在使用',60,'

4、;二樓',1)insert into 客房 values('105','豪華間','在使用',200,'二樓',2)insert into 客房 values('106','豪華間','在使用',180,'一樓',1)insert into 客房 values('107','貴賓間','未使用',300,'一樓',1)insert into 客房 values('108','

5、;貴賓間','在使用',400,'一樓',2)所建的表為:101 普通間在使用 50.0000 三樓2102 普通間在使用 40.0000 三樓1103 空調(diào)間未使用 80.0000 三樓2104 空調(diào)間在使用 60.0000 二樓1105 豪華間在使用 200.0000二樓2106 豪華間在使用 180.0000一樓1107 貴賓間未使用 300.0000一樓1108 貴賓間在使用 400.0000一樓2 三:創(chuàng)建旅客信息表并添加數(shù)據(jù)create table 旅客 /* 創(chuàng)建旅客信息表 */( 證件類型 varchar(16), 證件號 varchar

6、(18)not null, 姓名 varchar(10) not null, 性別 char(4)not null, 年齡 int check(年齡>0)not null, 籍貫 text not null, 現(xiàn)住址 text not null, 職業(yè) varchar(20)not null)insert into 旅客 values('學(xué)生證','10211303','趙亦','男',20,'河北唐山','江西南昌','學(xué)生')insert into 旅客 values(&#

7、39;身份證','1021134357','錢爾','男',24,'北京大興區(qū)','上海浦東','工程師')insert into 旅客 values('軍官證','4236789','李思','男',30,'江西撫州','廣州','團長')insert into 旅客 values('身份證','10432187','孫珊',

8、9;女',32,'湖北武漢','湖南長沙','教師')insert into 旅客 values('身份證','1234876','周武','男',35,'南昌','香港','公務(wù)員')insert into 旅客 values('身份證','1357674','吳麗','女',40,'南京','合肥','經(jīng)理')所建

9、的表為:學(xué)生證10211303趙亦男 20河北唐山江西南昌學(xué)生身份證1021134357錢爾男 24北京大興區(qū)上海浦東工程師軍官證4236789李思男 30江西撫州廣州團長身份證10432187孫珊女 32湖北武漢湖南長沙教師身份證1234876周武男 35南昌香港公務(wù)員身份證1357674吳麗女 40南京合肥經(jīng)理 四:創(chuàng)建入住信息表并添加數(shù)據(jù)create table 入住信息 /* 創(chuàng)建入住信息表 */( 房間號 char(8)not null, 證件號 varchar(18)not null, 姓名 varchar(10) not null, 性別 char(4)not null, 入住日

10、期 datetime not null)insert into 入住信息 values('101','10211303','趙亦','男','2011-5-3')insert into 入住信息 values('102','1021134357','錢爾','男','2011-2-6')insert into 入住信息 values('104','4236789','李思','男&

11、#39;,'2011-8-7')insert into 入住信息 values('105','10432187','孫珊','女','2011-7-4')insert into 入住信息 values('106','1234876','周武','男','2011-3-6')insert into 入住信息 values('108','11357674','吳麗','

12、女','2011-9-2')所建的表為:101 10211303趙亦男 2011-05-03 00:00:00.000102 1021134357錢爾男 2011-02-06 00:00:00.000104 4236789李思男 2011-08-07 00:00:00.000105 10432187孫珊女 2011-07-04 00:00:00.000106 1234876周武男 2011-03-06 00:00:00.000108 11357674吳麗女 2011-09-02 00:00:00.000 五:創(chuàng)建退房信息表并添加數(shù)據(jù)create table 退房信息 /

13、* 創(chuàng)建退房信息表 */( 房間號 char(8)not null, 證件號 varchar(18) not null, 結(jié)算日期 datetime, 應(yīng)付金額 smallmoney)insert into 退房信息(房間號,證件號)values('101','101211303')所建的表為:101 101211303 NULLNULL 六:創(chuàng)建使用表并添加數(shù)據(jù)create table 使用 /* 創(chuàng)建使用表 */( 物品號 char(6)not null, 證件號 varchar(18), 使用日期 datetime, 押金 smallmoney)inser

14、t into 使用 values('001','11357674','2011-10-2',50)所建的表為:001 113576742011-10-02 00:00:00.00050.0000 七:創(chuàng)建物品表并添加數(shù)據(jù)create table 物品 /* 創(chuàng)建物品表 */( 物品號 char(6)not null, 物品名 varchar(16)not null, 數(shù)量 int not null, 價格 money not null, 用途 text)insert into 物品 values('001','毛巾'

15、;,100,20,'洗浴')insert into 物品 values('002','牙膏',50,10,'洗漱')insert into 物品 values('003','拖鞋',80,30,'穿著')insert into 物品 values('004','香皂',100,8,'洗浴')所建的表為:001 毛巾10020.0000 洗浴002 牙膏5010.0000 洗漱003 拖鞋8030.0000 穿著004 香皂1008.00

16、00 洗浴 八:創(chuàng)建旅客錄入的存儲過程create procedure 旅客錄入 /* 錄入旅客信息的存儲過程 */證件類型 varchar(16), -輸入?yún)?shù),對應(yīng)表各字段證件號 varchar(18),姓名 varchar(10),性別 char(4),年齡 int,籍貫 text,現(xiàn)住址 text,職業(yè) varchar(20),返回信息 varchar(50)=null output -輸出參數(shù),執(zhí)行結(jié)果返回信息asbegin tran -啟用事務(wù)-檢查是否有同一客人記錄if exists(select 證件號,姓名 from 旅客 where 證件號=證件號 and 姓名=姓名)be

17、gin select 返回信息='已存在該客人信息' goto onerror end-新增客人信息insert into 旅客(證件類型,證件號,姓名,性別,年齡,籍貫,現(xiàn)住址,職業(yè))values(證件類型,證件號,姓名,性別,年齡,籍貫,現(xiàn)住址,職業(yè))if error<>0begin select 返回信息='新增失敗' goto onerrorendselect 返回信息='新增成功'commit tranreturn-出錯處理onerror: rollback tran returndeclare 姓名 varchar(10)

18、declare 返回信息 varchar(50)exec 旅客錄入 證件類型='學(xué)生證',證件號='2345346554',姓名='張錦杰',性別='男',年齡=19,籍貫='廣東汕尾',現(xiàn)住址='江西南昌',職業(yè)='學(xué)生'print '姓名'+姓名select * from 旅客drop procedure 旅客錄入drop table 旅客 九:創(chuàng)建旅客修改的存儲過程create procedure 旅客修改 /* 修改旅客信息的存儲過程 */證件類型 varch

19、ar(16), -輸入?yún)?shù),對應(yīng)表各字段證件號 varchar(18),姓名 varchar(10),性別 char(4),年齡 int,籍貫 text,現(xiàn)住址 text,職業(yè) varchar(20),返回信息 varchar(50)=null output -輸出參數(shù),執(zhí)行結(jié)果返回信息asif not exists(select 證件號 from 旅客 where 證件號=證件號) select 返回信息='不存在此旅客的信息'update 旅客 set 證件類型=證件類型,姓名=姓名,性別=性別,年齡=年齡,籍貫=籍貫,現(xiàn)住址=現(xiàn)住址,職業(yè)=職業(yè)where 證件號=證件號e

20、xec 旅客修改 證件號='1357674',證件類型='身份證',姓名='吳麗',性別='女',年齡=48,籍貫='南京',現(xiàn)住址='合肥',職業(yè)='經(jīng)理'declare 返回信息 varchar(50)print '返回信息'+返回信息select '返回信息'=返回信息select * from 旅客drop procedure 旅客修改 十:創(chuàng)建旅客刪除的存儲過程create procedure 旅客刪除 /* 刪除旅客信息的存儲過程 */證件

21、號 varchar(18),返回信息 varchar(50)=null outputas begin tranif not exists(select 證件號 from 旅客 where 證件號=證件號)begin select 返回信息='不存在此旅客的信息' goto onerror enddelete from 旅客 where 證件號=證件號if error<>0begin select 返回信息='刪除失敗' goto onerror endselect 返回信息='成功刪除' commit tran -提交事務(wù) retur

22、nonerror: rollback tran returndeclare 證件號 varchar(18)declare 返回信息 varchar(50)exec 旅客刪除 證件號='10211303'select * from 旅客drop procedure 旅客刪除 十一:創(chuàng)建客房錄入的存儲過程create procedure 客房錄入 /* 錄入客房信息的存儲過程 */房間號 char(8),類型 varchar(16),狀態(tài) char(8),價格 smallmoney ,位置 varchar(14),床位數(shù) int,返回信息 varchar(50)=null outp

23、utasbegin tranif exists(select 房間號 from 客房 where 房間號=房間號)begin select 返回信息='已存在該客房信息' goto onerror endinsert into 客房(房間號,類型,狀態(tài),價格,位置,床位數(shù))values(房間號,類型,狀態(tài),價格,位置,床位數(shù))if error<>0begin select 返回信息='新增失敗' goto onerror end select 返回信息='新增成功' commit tran return onerror: rollba

24、ck tran returndeclare 返回信息 varchar(50)exec 客房錄入 房間號='109',類型='標準間',狀態(tài)='未使用',價格=50,位置='四樓',床位數(shù)=2drop procedure 客房錄入delete from 客房 where 房間號='109'select * from 客房十二:創(chuàng)建客房修改的存儲過程create procedure 客房修改 /* 客房修改的存儲過程 */房間號 char(8),類型 varchar(16),狀態(tài) char(8),價格 smallmon

25、ey,位置 varchar(14),床位數(shù) int,返回信息 varchar(50)=null output -輸出參數(shù),執(zhí)行結(jié)果返回信息asif not exists(select 房間號 from 客房 where 客房.房間號=房間號) select 返回信息='不存在該客房信息' print 返回信息+'返回信息'-修改客房信息update 客房 set 類型=類型,狀態(tài)=狀態(tài),價格=價格,位置=位置,床位數(shù)=床位數(shù)where 客房.房間號=房間號 exec 客房修改 房間號='1018',類型='普通間',狀態(tài)='

26、;在使用',價格=500,位置='三樓',床位數(shù)=2declare 返回信息 varchar(50)select '返回信息'=返回信息print 返回信息+'返回信息'select * from 客房drop procedure 客房修改 十三:創(chuàng)建客房刪除的存儲過程create procedure 客房刪除 /* 刪除客房信息的存儲過程 */房間號 varchar(18),返回信息 varchar(50)=null outputas begin tranif not exists(select 房間號 from 客房 where 房間

27、號=房間號)begin select 返回信息='不存在此客房的信息' goto onerror enddelete from 客房 where 房間號=房間號if error<>0begin select 返回信息='刪除失敗' goto onerror endselect 返回信息='成功刪除' commit tran -提交事務(wù) returnonerror: rollback tran returndeclare 房間號 varchar(18)declare 返回信息 varchar(50)exec 客房刪除 房間號='

28、101'select * from 客房drop procedure 客房刪除 十四:創(chuàng)建客房查詢的存儲過程create procedure 客房查詢 /* 查詢客房信息的存儲過程 */房間號 char(8),類型 varchar(16)output,狀態(tài) char(8)output,價格 smallmoney output,位置 varchar(14) output,床位數(shù) int outputasselect 類型,狀態(tài),價格,位置,床位數(shù)from 客房where 房間號=房間號 declare 房間號 char(8)declare 類型 varchar(16)declare 狀態(tài)

29、 char(8)declare 價格 smallmoney declare 位置 varchar(14)declare 床位數(shù) int exec 客房查詢 '101',類型 output,狀態(tài) output,價格 output,位置 output,床位數(shù) outputprint 狀態(tài)+'狀態(tài)'drop procedure 客房查詢十五:創(chuàng)建付款的存儲過程 create procedure 付款(證件號 varchar(18) /* 獲得應(yīng)付金額的存儲過程 */asupdate 退房信息set 結(jié)算日期=getdate()where 退房信息.證件號=證件號 an

30、d 結(jié)算日期 is nulldeclare 價格 smallmoneyselect 價格 from 客房 where 退房信息.證件號=證件號select 入住日期 from 入住信息 where 退房信息.證件號=證件號update 退房信息,入住信息set 應(yīng)付金額=datediff(dd,入住日期,getdate()*價格where 證件號=證件號 and 應(yīng)付金額 is null and 退房信息.證件號=入住信息.證件號update 客房 set 狀態(tài)='未使用' where 退房信息.證件號=證件號exec 付款 證件號='10211303'drop

31、 procedure 付款select * from 客房select * from 旅客select * from 入住信息select * from 退房信息十六:創(chuàng)建入住登記觸發(fā)器 create trigger 入住登記觸發(fā) /* 入住登記觸發(fā)器 */on 入住信息for insertasbegin update 客房 set 狀態(tài)='在使用' where 房間號 in (select 房間號 from inserted) enddrop trigger 入住登記觸發(fā)select * from 入住信息select * from 客房insert into 入住信息 values('103','10204','張金杰','男','2011-8-8') 十七:創(chuàng)建退房觸發(fā)器 create trig

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論