9512.net
甜梦文库
当前位置:首页 >> >>

综合应用题


第 1 页 共 8 页

综合应用题 综合应用题
1.使用 T-SQL 语句建立一个宾馆数据库。数据库名:bg 2.使用 T-SQL 语句在上述数据库中创建客房标准信息表、订房信息表、客房信息表等,具体表结构如下:(注:要 求表字段取英文名) roomtype (客房标准信息表) 列名 中文说明 typeid typename area bednum price htelephone bookin(订房信息表) 列名(英文名) 列名(英文名) bookno guest_id roomno staydate returndate discount ammount 客房类型编号 客房类型 面积 床位数量 单价 是否有电话 数据类型 char char numeric tinyint money char 2 精度 2 20 6,2 允许空值 × × √ × × √ 8>Badnum>0 默认“100” 默认“有” 说明 关键字

列名(中文名) 列名(中文名) 订房编号 身份证号 客房编号 入住日期 结算日期 折扣 金额

数据类型 char char char datetime datetime money money

精度 20 18 4

允许空值 × × × √ √ √ √ 关键字

说明

外键参照 rooms 表 roomno 默认为系统日期

rooms(客房信息表) 列名(英文名) 列名(英文名) roomno typeid roomposition roomprice putup roommemo

列名(中文名) 列名(中文名) 客房编号 客房类型 客房位置 单价 是否被预定 备注

数据类型 char char char money char varchar

精度 4 2 40

允许空值 × √ √ √ × √

说明 关键字

2 255

默认“否”

3.用 T---SQL 语句插入下列客房信息 客房编号 1003 客房类型 3 客房位置 10 层朝南 单价 100 是否被预定 否 备注

用 T—SQL 语言在上述数据库基础上,完成如下操作: 4.查询所有客户的身份证号、客房号、入住日期、结算日期等信息。

第 2 页 共 8 页

5.查询被预定的“标准间”(客房类型)的客房的客房编号, 按客房号的升序排序。 6.查询身份证号为“310222196711040064”的客户最近入住酒店的日期以及客房号,住了几天等信息。(说明:函数 datediff(day,参数 1,参数 2),此函数功能:计算两个日期类型数据间相差的天数,即参数 2-参数 1 的天数。) 7.创建存储过程 proc_kroom,实现功能:根据客房类型号,查询是否有该类型的未被预定的房间,如果有,则显示提 示信息“此类型的房间有未被预定的客房”;如果没有,则显示提示信息 “此类型的房间已预定满!”,若是不 存在的类型,要提示“输入错误!无此类型的房间”。 8.创建触发器,客户退房结算,自动修改客房信息表相应客房的预定状态。

解:
1、参考答案: create database bg go 2、参考答案: (1) use bg go create table roomtype (typeid char(2) not null primary key, typename varchar(20) not null, area numeric(6,2), bednum tinyint not null check (bednum>0 and bednum<8), price money not null default 100, htelphone char(2) default '有') go (2) use bg go create table rooms (roomno char(4) not null primary key, typeid char(2), roompostion char(40) , roomprice money, putup char(2) default '否', roommeno varchar(255)) go (3) use bg go create table bookin (bookno char(20) not null primary key, guest_id char(18) not null, roomno char(4) not null references rooms(roomno),

第 3 页 共 8 页

--也可以使用下面的两个中的任意一个 --roomno char(4) not null foreign key references rooms(roomno), --roomno char(4) not null constraint fk_roomno foreign key references rooms(roomno), staydate datetime default getdate(), returndate datetime, discount money, ammount money) go

数据准备示例 roomtype (客房标准信息表)

Insert into roomtype values('1', '总统间',500,3, 500, '有') Insert into roomtype values('2', '高标间',30 ,2, 200, '有') Insert into roomtype values('3', '标准间',20,4, 100, '有') 看一看 roomtype Select * from roomtype rooms(客房信息表) insert into rooms insert into rooms insert into rooms insert into rooms insert into rooms insert into rooms insert into rooms insert into rooms insert into rooms 看一看 rooms Select * from rooms bookin(订房信息表) 有位客人在 2006 年 11 月 12 日定房入住,客房编号为‘1003’ 在 bookin(订房信息表)中登记 insert into bookin(bookno,guest_id,roomno, staydate) values('1000001','123412341234123412','1003', '2006-11-12') 看一看 bookin Select * from bookin 修改 rooms(客房信息表)的该房间的状态,改 putup(是否被预定)为‘是’ 再看一看 rooms Select * from rooms values('1001','3','10 层朝南',100,'否',null) values('1002','3','10 层朝南',100,'否',null) values('1003','3','10 层朝南',100,'否',null) values('1004','3','10 层朝南',100,'否',null) values('1005','3','10 层朝南',100,'否',null) values('1101','2','10 层朝南',200,'否',null) values('1102','2','10 层朝南',200,'否',null) values('1103','2','10 层朝南',200,'否',null) values('1201','1','10 层朝南',500,'否',null)

第 4 页 共 8 页

update rooms set putup='是' where roomno='1003' 再看一看 rooms Select * from rooms

在 2006 年 11 月 15 日该客人结账离开,有关结算略,本例仅添上结算日期。 Update bookin set returndate='2006-11-15' where bookno='1000001' 再看一看 bookin Select * from booking 修改 rooms(客房信息表)的该房间的状态,改为 putup(是否被预定)为‘否’ update rooms set putup='否' where roomno='1003' 再看一看 rooms Select * from rooms

在 2006 年 11 月 21 日该客人又来定房入住客房编号为‘1005’,至今未离开,应在本宾馆。 insert into bookin(bookno,guest_id,roomno, staydate) values('1000002','123412341234123412','1005', '2006-11-21') 再看一看 bookin Select * from bookin 修改 rooms(客房信息表)的该房间的状态,改为 putup(是否被预定)为‘是’ update rooms set putup='是' where roomno='1005' 再看一看 rooms Select * from rooms

还又位客人在 2006 年 11 月 22 日来定房入住,客房编号为‘1102’ insert into bookin(bookno,guest_id,roomno, staydate) values('1000003','310222196711040064','1102', '2006-11-22') 再看一看 bookin Select * from bookin 修改 rooms(客房信息表)的该房间的状态,改为 putup(是否被预定)为‘是’ update rooms set putup='是' where roomno='1102' 再看一看 rooms Select * from rooms

在 2006 年 11 月 28 日该客人结账离开,有关结算略,本例仅添上结算日期。 Update bookin set returndate='2006-11-28' where bookno='1000003' 再看一看 bookin Select * from bookin 修改 rooms(客房信息表)的该房间的状态,改为 putup(是否被预定)为‘否’ update rooms set putup='否' where roomno='1102'

第 5 页 共 8 页

再看一看 rooms Select * from rooms

同学们,你不觉得这些代码很重复吗? 同学们,你不觉得这些代码很重复吗? 我们用存储过程和触发器解决。 我们用存储过程和触发器解决。 存储过程和触发器解决

第 6 页 共 8 页

3、参考答案: insert into rooms values('1006','3','10 层朝南',100,'否',null) 4、参考答案: select guest_id,roomno,staydate,returndate from bookin 5、参考答案: select roomno from roomtype,rooms where rooms.typeid=roomtype.typeid and roomtype.typename='标准间' and putup ='是' 6、参考答案: if exists(select * from bookin where guest_id='310222196711040064' and returndate is null) select guest_id,staydate,roomno,datediff(day,staydate,getdate()) as 入住天数 from bookin where guest_id='310222196711040064' and staydate=(select max(staydate) from bookin where guest_id='310222196711040064') else select guest_id,staydate,roomno,datediff(day,staydate,returndate) as 入住天数 from bookin where guest_id='310222196711040064' and staydate=(select max(staydate) from bookin where guest_id='310222196711040064') 修改为存储过程:注意蓝色的 Create proc cxts @guest_id char(18) As if exists(select * from bookin where guest_id=@guest_id and returndate is null) select guest_id,staydate,roomno,datediff(day,staydate,getdate()) as 入住天数 from bookin where guest_id=@guest_id and staydate=(select max(staydate) from bookin where guest_id=@guest_id) else select guest_id,staydate,roomno,datediff(day,staydate,returndate) as 入住天数 from bookin where guest_id=@guest_id and staydate=(select max(staydate) from bookin where guest_id=@guest_id)

执行存储过程 exec cxts '123412341234123412' 换个参数再执行存储过程 exec cxts '310222196711040064'

第 7 页 共 8 页

7、参考答案: Create proc proc_kroom @typeid char(2) as if not exists(select * from rooms where typeid=@typeid) print '输入错误!无此类型的房间' else if exists(select * from rooms where typeid=@typeid and putup ='否') print '此类型的房间有未被预定的客房' else print '此类型的房间已预定满!' 执行存储过程 exec proc_kroom '3' 换个参数再执行存储过程 exec proc_kroom '2' 换个参数再执行存储过程 exec proc_kroom '8'

再加测试数据,刘德华来了定下了唯一一套总统客房 再加测试数据,刘德华来了定下了唯一一套总统客房 来了定下了唯一一套
insert into bookin(bookno,guest_id,roomno, staydate) values('1000005','100000000000000000','1201', '2006-11-25') 执行存储过程 exec cxts '1'

对否?问题在那里?
8、参考答案: create trigger bookin_update on bookin for update as declare @a char(4) if (select returndate from inserted) is not null begin select @a=inserted.roomno from inserted update rooms set putup='否' where rooms.roomno=@a end else begin select @a=inserted.roomno from inserted update rooms set putup='是' where rooms.roomno=@a end 再看一看 rooms 和 Select * from rooms Select * from bookin 测试 Update bookin set returndate='2006-11-29' where bookno='1000005'

第 8 页 共 8 页

再看一看 rooms 和 bookin, Select * from rooms Select * from bookin

刘德华退房结算后,总统套房状态是什么? 刘德华退房结算后,总统套房状态是什么? 进一步思考: 进一步思考: 预定房间是否修改 预定状态’ 是否修改‘ 1、 预定房间是否修改‘预定状态’? 删除定房记录是否修改 预定状态’ 是否修改‘ 2、 删除定房记录是否修改‘预定状态’?


赞助商链接

更多相关文章:
综合应用题
综合应用题 - 综合应用题 1、电视机厂装一批电视,每天装 80 台,15 天可完成任务,如果要提前 3 天完成, 每天要装多少台? 2、某厂每天节约煤 40 千克,如果...
综合应用题
综合应用题 - 第 1 页共 8 页 综合应用题 综合应用题 1.使用 T-SQL 语句建立一个宾馆数据库。数据库名:bg 2.使用 T-SQL 语句在上述数据库中创建客房...
比与分数综合应用题
比与分数综合应用题 - 比与分数综合应用题(总数不变) 1、王华看一本故事书,看了一部分后,已看页数与未看页数的比是 2:5,接着他又看了 40 页,这时已看...
综合应用题(一)(含答案)
综合应用题(一)(含答案)_初三数学_数学_初中教育_教育专区 暂无评价|0人阅读|0次下载 综合应用题(一)(含答案)_初三数学_数学_初中教育_教育专区。综合应用...
小学四年级综合应用题提高练习题
小学四年级综合应用题提高练习题_数学_小学教育_教育专区。小学四年级综合应用题提高练习题,参加小竞赛可用 应用题综合提高训练 1、 一条长 2700 米的公路两旁从...
勾股定理综合应用题(含答案)
勾股定理综合应用题(含答案) - 答案 1、25 海里 2、2400 平方米或者 3987.5 平方米 3、10 千米 4、20km 5、 (1)AB=30 海里 BC=40 海里 (...
函数综合应用题
函数综合应用题一、题目分析及题目对学生的要求: 1、求解析式:要求学生能够根据题意建立相应坐标系,将实际问题转化成数学问题。 需要注意的是: (1) 不能忘记写...
三年级综合应用题
三年级综合应用题 - 1、 三(1)班有 24 名男同学,15 名女同学,体育课上老师安排 2 个男同学和 1 个女生为一组做游戏,一共可以安排多少个这样的小组?还有...
2015中考物理复习专题练习:综合应用题(含解析)
2015中考物理复习专题练习:综合应用题(含解析) - 综合应用题 1. 如图甲所示,为一款热狗棒机,将香肠通过上下夹板加热模式烤熟的设备,它采用进口温控技术,让发热板...
综合应用题
综合应用题 - 表单类型题 1. 拖拽题 a.现有数据库 stsc,其中有 student,score,course 三个表;请设计 一个表单 windstud,以实现 student 表的窗口...
更多相关标签:

All rights reserved Powered by 甜梦文库 9512.net

copyright ©right 2010-2021。
甜梦文库内容来自网络,如有侵犯请联系客服。zhit325@126.com|网站地图